1 #ifndef teca_table_reader_h
2 #define teca_table_reader_h
4 #include "teca_algorithm.h"
5 #include "teca_metadata.h"
7 #include "teca_table.h"
94 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
95 TECA_SET_ALGORITHM_PROPERTIES()
98 TECA_ALGORITHM_PROPERTY(std::
string, file_name)
105 TECA_ALGORITHM_PROPERTY(std::
string, index_column)
110 TECA_ALGORITHM_PROPERTY(
int, generate_original_ids)
113 TECA_ALGORITHM_VECTOR_PROPERTY(std::
string, metadata_column_name)
116 TECA_ALGORITHM_VECTOR_PROPERTY(std::
string, metadata_column_key)
119 void add_metadata_column(const std::
string &column, const std::
string &key)
121 this->append_metadata_column_name(column);
122 this->append_metadata_column_key(key);
126 void clear_metadata_columns()
128 this->clear_metadata_column_names();
129 this->clear_metadata_column_keys();
134 enum {format_csv, format_bin, format_xlsx, format_auto};
135 TECA_ALGORITHM_PROPERTY(
int, file_format)
136 void set_file_format_csv(){ this->set_file_format(format_csv); }
137 void set_file_format_bin(){ this->set_file_format(format_bin); }
138 void set_file_format_xlsx(){ this->set_file_format(format_xlsx); }
139 void set_file_format_auto(){ this->set_file_format(format_auto); }
146 const std::vector<teca_metadata> &input_md)
override;
148 const_p_teca_dataset execute(
unsigned int port,
149 const std::vector<const_p_teca_dataset> &input_data,
152 void set_modified()
override;
153 void clear_cached_metadata();
156 std::string file_name;
157 std::string index_column;
158 int generate_original_ids;
160 std::vector<std::string> metadata_column_names;
161 std::vector<std::string> metadata_column_keys;
163 struct teca_table_reader_internals;
164 teca_table_reader_internals *internals;