47 MeteoCH(
const std::string& configfile);
54 virtual void readStationData(
const Date& date, std::vector<StationData>& vecStation)
override;
57 std::vector< std::vector<MeteoData> >& vecMeteo)
override;
61 enum MetaField { ID, NAME, LATITUDE, LONGITUDE, ALTITUDE, WIGOS_ID, DATA_OWNER, NR_META };
64 using FileInfo = std::pair<DateRange, std::string>;
71 DataSource() : primary(), fallback(), hasFallback(
false) {}
74 void initMeteoCHConnection(
const Config& cfg);
75 void readStationMeta();
76 void parseMetaHeader(std::istringstream& csv_stream);
77 void parseMetaContent(std::istringstream& csv_stream);
78 void getStationDataFiles(std::string station_id);
79 DateRange createDateRangeFromPeriod(
const std::string& period,
char type =
'h');
84 std::string meteoio_param;
88 FieldMapping(
size_t idx,
const std::string& param,
89 double factor = 1.0,
double offset = 0.0)
90 : field_index(idx), meteoio_param(param),
91 units_factor(factor), units_offset(offset) {}
93 std::vector<FieldMapping> mapMeteoSwissParams(
const std::vector<std::string>& meteoswiss_fields);
94 std::vector<MeteoData> readCSVFile(
const StationData& sd,
const Date& start,
const Date& end,
const std::string& stationID,
const std::string& filename);
95 std::vector<MeteoData> parseCSVMeteoData(
const StationData& sd,
const Date& dateStart,
const Date& dateEnd, std::istringstream& csv_stream);
96 static Date parseTimestamp(
const std::string& timestamp);
97 void merge(std::vector<MeteoData>& results, std::vector<MeteoData>& vecData);
98 void merge(std::vector<MeteoData>& results, std::vector<MeteoData>& vec10minutes, std::vector<MeteoData>& vecHourly);
101 std::map<std::string, std::vector<DataSource>> sources;
102 std::map<std::string, size_t> requestedStationsMap;
103 std::map<MetaField, size_t> metadataFields;
104 std::vector<StationData> vecMeta;
106 std::string coordinparam;
111 static const int http_timeout_dflt;
112 static const std::string base_url;
113 static const std::string metadata_path;
114 static const std::string meteo_collection_path;
virtual void readStationData(const Date &date, std::vector< StationData > &vecStation) override
Fill vecStation with StationData objects for a certain date of interest.
Definition MeteoCH.cc:652
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 MeteoCH.cc:724
A class to represent meteo stations with attributes like longitude, latitude, etc.
Definition StationData.h:40