1 #ifndef teca_multi_cf_reader_h
2 #define teca_multi_cf_reader_h
4 #include "teca_algorithm.h"
5 #include "teca_metadata.h"
7 #include "teca_cf_reader.h"
15 class teca_multi_cf_reader_internals;
16 using p_teca_multi_cf_reader_internals = std::shared_ptr<teca_multi_cf_reader_internals>;
75 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
76 TECA_SET_ALGORITHM_PROPERTIES()
83 std::
string get_input_file() {
return this->input_file; }
92 const std::string &key,
int provides_time,
93 int provides_geometry,
94 const std::vector<std::string> &variables);
104 const std::string &variable);
108 const std::vector<std::string> &variable);
119 void set_periodic_in_x(
int flag);
120 int get_periodic_in_x()
const;
128 void set_x_axis_variable(
const std::string &var);
129 std::string get_x_axis_variable()
const;
137 void set_y_axis_variable(
const std::string &var);
138 std::string get_y_axis_variable()
const;
148 void set_z_axis_variable(
const std::string &var);
149 std::string get_z_axis_variable()
const;
159 void set_t_axis_variable(
const std::string &var);
160 std::string get_t_axis_variable()
const;
169 void set_calendar(
const std::string &calendar);
170 std::string get_calendar()
const;
179 void set_t_units(
const std::string &units);
180 std::string get_t_units()
const;
200 void set_filename_time_template(
const std::string &templ);
201 std::string get_filename_time_template()
const;
210 TECA_ALGORITHM_VECTOR_PROPERTY(
double, t_value)
219 TECA_ALGORITHM_PROPERTY(
int, max_metadata_ranks)
238 void set_clamp_dimensions_of_one(
int flag);
239 int get_clamp_dimensions_of_one() const;
250 void set_target_bounds(const std::vector<
double> &bounds);
251 const std::vector<
double> &get_target_bounds() const;
259 void set_target_x_axis_variable(const std::
string &flag);
260 std::
string get_target_x_axis_variable() const;
268 void set_target_y_axis_variable(const std::
string &flag);
269 std::
string get_target_y_axis_variable() const;
276 void set_target_z_axis_variable(const std::
string &flag);
277 std::
string get_target_z_axis_variable() const;
285 void set_target_x_axis_units(const std::
string &flag);
286 std::
string get_target_x_axis_units() const;
294 void set_target_y_axis_units(const std::
string &flag);
295 std::
string get_target_y_axis_units() const;
303 void set_target_z_axis_units(const std::
string &flag);
304 std::
string get_target_z_axis_units() const;
313 TECA_ALGORITHM_PROPERTY(
int, validate_time_axis)
322 TECA_ALGORITHM_PROPERTY(
int, validate_spatial_coordinates)
329 void clear_cached_metadata();
334 const_p_teca_dataset execute(
unsigned int port,
335 const std::vector<const_p_teca_dataset> &input_data,
338 void set_modified() override;
341 std::
string input_file;
342 std::
string x_axis_variable;
343 std::
string y_axis_variable;
344 std::
string z_axis_variable;
345 std::
string t_axis_variable;
346 std::
string calendar;
348 std::
string filename_time_template;
349 std::vector<
double> t_values;
350 std::vector<
double> target_bounds;
351 std::
string target_x_axis_variable;
352 std::
string target_y_axis_variable;
353 std::
string target_z_axis_variable;
354 std::
string target_x_axis_units;
355 std::
string target_y_axis_units;
356 std::
string target_z_axis_units;
358 int max_metadata_ranks;
359 int clamp_dimensions_of_one;
360 int validate_time_axis;
361 int validate_spatial_coordinates;
363 p_teca_multi_cf_reader_internals internals;