66 ImisIO(
const std::string& configfile);
70 virtual void readStationData(
const Date& date, std::vector<StationData>& vecStation)
override;
72 std::vector< std::vector<MeteoData> >& vecMeteo)
override;
75 void openDBConnection(oracle::occi::Environment*& env, oracle::occi::Connection*& conn)
const;
76 void closeDBConnection(oracle::occi::Environment*& env, oracle::occi::Connection*& conn)
const;
77 void getDBParameters();
79 std::vector<std::string> getStationIDs(
const std::string& stat_code,
80 const std::string& sqlQuery, oracle::occi::Statement*& stmt)
const;
81 std::vector<std::string> getStationMetaData(
const std::string& stat_abk,
const std::string& stao_nr,
82 const std::string& sqlQuery, oracle::occi::Statement*& stmt)
const;
83 std::vector<std::string> getSensorDepths(
const std::string& stat_abk,
const std::string& stao_nr,
84 const std::string& sqlQuery, oracle::occi::Statement*& stmt)
const;
85 bool getStationData(
const std::string& stat_abk,
const std::string& stao_nr,
86 const Date& dateS,
const Date& dateE,
87 const std::vector<std::string>& i_vecHTS1,
88 std::vector< std::vector<std::string> >& vecMeteoData,
89 oracle::occi::Environment*& env, oracle::occi::Statement*& stmt);
91 static void parseDataSet(
const std::vector<std::string>& meteo_in,
MeteoData& md,
const bool& fullStation);
92 void readData(
const Date& dateStart,
const Date& dateEnd, std::vector< std::vector<MeteoData> >& vecMeteo,
93 const size_t& stationindex,
const std::vector<StationData>& vecStationID,
94 oracle::occi::Environment*& env, oracle::occi::Statement*& stmt);
95 void readSWE(
const Date& dateStart,
const Date& dateEnd, std::vector< std::vector<MeteoData> >& vecMeteo,
96 const size_t& stationindex,
const std::vector<StationData>& vecStationIDs,
97 oracle::occi::Environment*& env, oracle::occi::Statement*& stmt);
98 std::vector<std::string> readStationIDs();
99 static void parseStationID(
const std::string& stationID, std::string& stnAbbrev, std::string& stnNumber);
101 void readStationMetaData(oracle::occi::Connection*& conn);
102 void convertSnowTemperature(
MeteoData& meteo,
const std::string& parameter);
103 void convertSensorDepth(
MeteoData& meteo,
const std::string& parameter);
104 void convertUnits(
MeteoData& meteo,
const bool& reduce_pressure);
107 void findAnetzStations(std::map<std::string, size_t>& mapAnetzNames, std::vector<StationData>& vecAnetzStation)
const;
108 void assimilateAnetzData(
const AnetzData& ad,
109 const std::map<std::string, size_t>& mapAnetzNames,
const std::vector< std::vector< std::pair<Date, double> > > &vecPsum,
110 const size_t& stationindex, std::vector< std::vector<MeteoData> >& vecMeteo);
111 static std::vector< std::pair<Date, double> > computeAnetzPSUM(std::vector<MeteoData> &vecMeteo);
113 static const double in_tz;
115 std::string coordout, coordoutparam;
116 std::vector<StationData> vecStationMetaData;
117 std::map<std::string, std::string> mapDriftStation;
118 static const double plugin_nodata;
119 static const std::string sqlQueryStationIDs;
120 static const std::string sqlQueryStationMetaData;
121 static const std::string sqlQuerySensorDepths;
122 static const std::string sqlQueryMeteoDataDrift;
123 static const std::string sqlQueryMeteoData;
124 static const std::string sqlQuerySWEData;
125 static const std::string coordin, coordinparam;
126 std::string oracleUserName_in;
127 std::string oraclePassword_in;
128 std::string oracleDBName_in;
129 bool useAnetz, use_imis_psum, use_psum_snowpack;
131 static std::map<std::string, AnetzData> mapAnetz;
132 static std::map< std::string, std::pair<double, double> > mapSlopes;
133 static const bool __init;
134 static bool initStaticData();