1 #ifndef teca_multi_cf_reader_h
2 #define teca_multi_cf_reader_h
4 #include "teca_algorithm.h"
5 #include "teca_metadata.h"
6 #include "teca_shared_object.h"
15 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()
79 int set_input_file(
const std::string &input_file);
83 int add_reader(
const std::string &key,
84 const std::string &files_regex,
85 int provides_time,
int provides_geometry,
86 const std::vector<std::string> &variables);
89 int set_time_reader(
const std::string &key);
92 int set_geometry_reader(
const std::string &key);
95 int add_variable_reader(
const std::string &key,
96 const std::string &variable);
99 int set_variable_reader(
const std::string &key,
100 const std::vector<std::string> &variable);
103 void get_variables(std::vector<std::string> &vars);
106 TECA_ALGORITHM_PROPERTY(
int, periodic_in_x)
107 TECA_ALGORITHM_PROPERTY(
int, periodic_in_y)
108 TECA_ALGORITHM_PROPERTY(
int, periodic_in_z)
114 TECA_ALGORITHM_PROPERTY(std::string, x_axis_variable)
115 TECA_ALGORITHM_PROPERTY(std::string, y_axis_variable)
116 TECA_ALGORITHM_PROPERTY(std::string, z_axis_variable)
117 TECA_ALGORITHM_PROPERTY(std::string, t_axis_variable)
121 TECA_ALGORITHM_PROPERTY(std::string, t_calendar)
122 TECA_ALGORITHM_PROPERTY(std::string, t_units)
135 TECA_ALGORITHM_PROPERTY(std::string, filename_time_template)
139 TECA_ALGORITHM_VECTOR_PROPERTY(
double, t_value)
145 TECA_ALGORITHM_PROPERTY(
int, max_metadata_ranks)
151 void clear_cached_metadata();
154 const std::vector<teca_metadata> &input_md)
override;
156 const_p_teca_dataset execute(
unsigned int port,
157 const std::vector<const_p_teca_dataset> &input_data,
160 void set_modified()
override;
163 std::string x_axis_variable;
164 std::string y_axis_variable;
165 std::string z_axis_variable;
166 std::string t_axis_variable;
167 std::string t_calendar;
169 std::string filename_time_template;
170 std::vector<double> t_values;
174 int max_metadata_ranks;
176 p_teca_multi_cf_reader_internals internals;