1 #ifndef teca_multi_cf_reader_h
2 #define teca_multi_cf_reader_h
4 #include "teca_config.h"
5 #include "teca_algorithm.h"
6 #include "teca_metadata.h"
8 #include "teca_cf_reader.h"
16 class teca_multi_cf_reader_internals;
17 using p_teca_multi_cf_reader_internals = std::shared_ptr<teca_multi_cf_reader_internals>;
76 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
77 TECA_SET_ALGORITHM_PROPERTIES()
83 int set_input_file(const std::
string &input_file);
84 std::
string get_input_file() {
return this->input_file; }
93 const std::string &key,
int provides_time,
94 int provides_geometry,
95 const std::vector<std::string> &variables);
105 const std::string &variable);
109 const std::vector<std::string> &variable);
120 void set_periodic_in_x(
int flag);
121 int get_periodic_in_x()
const;
129 void set_x_axis_variable(
const std::string &var);
130 std::string get_x_axis_variable()
const;
138 void set_y_axis_variable(
const std::string &var);
139 std::string get_y_axis_variable()
const;
149 void set_z_axis_variable(
const std::string &var);
150 std::string get_z_axis_variable()
const;
160 void set_t_axis_variable(
const std::string &var);
161 std::string get_t_axis_variable()
const;
170 void set_calendar(
const std::string &calendar);
171 std::string get_calendar()
const;
180 void set_t_units(
const std::string &units);
181 std::string get_t_units()
const;
201 void set_filename_time_template(
const std::string &templ);
202 std::string get_filename_time_template()
const;
211 TECA_ALGORITHM_VECTOR_PROPERTY(
double, t_value)
220 TECA_ALGORITHM_PROPERTY(
int, max_metadata_ranks)
231 void set_clamp_dimensions_of_one(
int flag);
232 int get_clamp_dimensions_of_one() const;
242 void set_collective_buffer(
int flag);
243 int get_collective_buffer() const;
254 void set_target_bounds(const std::vector<
double> &bounds);
255 const std::vector<
double> &get_target_bounds() const;
263 void set_target_x_axis_variable(const std::
string &flag);
264 std::
string get_target_x_axis_variable() const;
272 void set_target_y_axis_variable(const std::
string &flag);
273 std::
string get_target_y_axis_variable() const;
280 void set_target_z_axis_variable(const std::
string &flag);
281 std::
string get_target_z_axis_variable() const;
289 void set_target_x_axis_units(const std::
string &flag);
290 std::
string get_target_x_axis_units() const;
298 void set_target_y_axis_units(const std::
string &flag);
299 std::
string get_target_y_axis_units() const;
307 void set_target_z_axis_units(const std::
string &flag);
308 std::
string get_target_z_axis_units() const;
317 TECA_ALGORITHM_PROPERTY(
int, validate_time_axis)
326 TECA_ALGORITHM_PROPERTY(
int, validate_spatial_coordinates)
333 void clear_cached_metadata();
340 const_p_teca_dataset execute(
unsigned int port,
341 const std::vector<const_p_teca_dataset> &input_data,
344 void set_modified() override;
347 std::
string input_file;
348 std::
string x_axis_variable;
349 std::
string y_axis_variable;
350 std::
string z_axis_variable;
351 std::
string t_axis_variable;
352 std::
string calendar;
354 std::
string filename_time_template;
355 std::vector<
double> t_values;
356 std::vector<
double> target_bounds;
357 std::
string target_x_axis_variable;
358 std::
string target_y_axis_variable;
359 std::
string target_z_axis_variable;
360 std::
string target_x_axis_units;
361 std::
string target_y_axis_units;
362 std::
string target_z_axis_units;
364 int max_metadata_ranks;
366 int collective_buffer;
367 int validate_time_axis;
368 int validate_spatial_coordinates;
370 p_teca_multi_cf_reader_internals internals;
The interface to TECA pipeline architecture.
Definition: teca_algorithm.h:244
A reader for data stored in NetCDF CF format in multiple files.
Definition: teca_multi_cf_reader.h:67
int add_variable_reader(const std::string &key, const std::string &variable)
adds to the list of variables that a reader will provide
void get_variables(std::vector< std::string > &vars)
get the list of variables that the reader will serve up
int set_time_reader(const std::string &key)
sets the reader that provides the time axis
int set_variable_reader(const std::string &key, const std::vector< std::string > &variable)
sets the list of variable that a reader will provide.
int set_geometry_reader(const std::string &key)
sets the reader that provides the mesh geometry
int add_reader(const std::string ®ex, const std::string &key, int provides_time, int provides_geometry, const std::vector< std::string > &variables)
TECA_EXPORT int clamp_dimensions_of_one(unsigned long nx_max, unsigned long ny_max, unsigned long nz_max, unsigned long *extent, bool verbose)
p_teca_error_handler error_handler TECA_EXPORT
The global error handler instance.