47 iCSVIO(
const std::string &configfile);
51 virtual void readStationData(
const Date &date, std::vector<StationData> &vecStation)
override;
52 virtual void readMeteoData(
const Date &dateStart,
const Date &dateEnd, std::vector<std::vector<MeteoData>> &vecMeteo)
override;
54 virtual void writeMeteoData(
const std::vector<std::vector<MeteoData>> &vecMeteo,
const std::string &name =
"")
override;
58 void parseInputSection();
59 void parseOutputSection();
62 static void identify_fields(
const std::vector<std::string> &fields, std::vector<size_t> &indexes,
MeteoData &md,
const std::string &geometry_field);
63 static double getSnowpackSlope(
const std::string &
id);
65 void setMetaDataPosition(
const iCSVFile ¤t_file,
StationData &meta,
const double &nodata_value)
const;
66 void setMetaDataSlope(
const iCSVFile ¤t_file,
StationData &meta,
const double &nodata_value)
const;
68 void readDataSequential(
iCSVFile ¤t_file)
const;
69 std::vector<MeteoData> createMeteoDataVector(
iCSVFile ¤t_file, std::vector<Date> &date_vec, std::vector<geoLocation> &location_vec)
const;
71 static void setMeteoDataFields(
MeteoData &tmp_md,
iCSVFile ¤t_file,
const Date &date, std::vector<size_t> &indexes,
double nodata);
74 void prepareOutfile(
iCSVFile &outfile,
const std::vector<MeteoData> &vecMeteo,
bool file_exists)
const;
75 void handleNewFile(
iCSVFile &outfile,
const std::vector<MeteoData> &vecMeteo,
bool file_exists)
const;
76 static void handleFileAppend(
iCSVFile &outfile,
const std::vector<MeteoData> &vecMeteo);
78 static std::string getGeometry(
const geoLocation &loc);
79 static bool checkLocationConsistency(
const std::vector<MeteoData> &vecMeteo);
80 bool createFilename(
iCSVFile &outfile,
const std::vector<MeteoData> &vecvecMeteo,
size_t station_num)
const;
81 void createMetaDataSection(
iCSVFile ¤t_file,
const std::vector<MeteoData> &vecMeteo)
const;
82 static void createFieldsSection(
iCSVFile ¤t_file,
const std::vector<MeteoData> &vecMeteo);
83 void writeToFile(
const iCSVFile &outfile);
87 const std::string iCSV_version =
"1.0";
88 const std::string iCSV_firstline =
"# iCSV " + iCSV_version +
" UTF-8";
90 std::vector<iCSVFile> stations_files;
93 std::string coordin, coordinparam, coordout, coordoutparam;
94 std::string file_extension_out, outpath, versioning_str;
98 bool snowpack_slopes, read_sequential, allow_overwrite, allow_append;
A class to represent meteo stations with attributes like longitude, latitude, etc.
Definition StationData.h:40
virtual void readMeteoData(const Date &dateStart, const Date &dateEnd, std::vector< std::vector< MeteoData > > &vecMeteo) override
Fill vecMeteo with a time series of objects corresponding to the interval indicated by dateStart and ...
Definition iCSVIO.cc:262
virtual void readStationData(const Date &date, std::vector< StationData > &vecStation) override
Fill vecStation with StationData objects for a certain date of interest.
Definition iCSVIO.cc:247
virtual void writeMeteoData(const std::vector< std::vector< MeteoData > > &vecMeteo, const std::string &name="") override
Write vecMeteo time series to a certain destination.
Definition iCSVIO.cc:517