1 #ifndef teca_cf_reader_h
2 #define teca_cf_reader_h
4 #include "teca_algorithm.h"
5 #include "teca_metadata.h"
13 class teca_cf_reader_internals;
14 using p_teca_cf_reader_internals = std::shared_ptr<teca_cf_reader_internals>;
86 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
87 TECA_SET_ALGORITHM_PROPERTIES()
94 TECA_ALGORITHM_VECTOR_PROPERTY(std::
string, file_name)
107 TECA_ALGORITHM_PROPERTY(std::
string, files_regex)
114 TECA_ALGORITHM_PROPERTY(
int, periodic_in_x)
121 TECA_ALGORITHM_PROPERTY(
int, periodic_in_y)
128 TECA_ALGORITHM_PROPERTY(
int, periodic_in_z)
136 TECA_ALGORITHM_PROPERTY(std::
string, x_axis_variable)
144 TECA_ALGORITHM_PROPERTY(std::
string, y_axis_variable)
151 TECA_ALGORITHM_PROPERTY(std::
string, z_axis_variable)
159 TECA_ALGORITHM_PROPERTY(std::
string, t_axis_variable)
167 TECA_ALGORITHM_PROPERTY(std::
string, calendar)
175 TECA_ALGORITHM_PROPERTY(std::
string, t_units)
197 TECA_ALGORITHM_PROPERTY(std::
string, filename_time_template)
205 TECA_ALGORITHM_VECTOR_PROPERTY(
double, t_value)
214 TECA_ALGORITHM_PROPERTY(
int, max_metadata_ranks)
224 TECA_ALGORITHM_PROPERTY(
int, clamp_dimensions_of_one)
229 void clear_cached_metadata();
236 const_p_teca_dataset execute(
238 const std::vector<const_p_teca_dataset> &input_data,
241 virtual
void set_modified() override;
244 std::vector<std::
string> file_names;
245 std::
string files_regex;
246 std::
string x_axis_variable;
247 std::
string y_axis_variable;
248 std::
string z_axis_variable;
249 std::
string t_axis_variable;
250 std::
string calendar;
252 std::
string filename_time_template;
253 std::vector<
double> t_values;
257 int max_metadata_ranks;
258 int clamp_dimensions_of_one;
259 p_teca_cf_reader_internals internals;