36 const std::string& i_anetz1,
const std::string& i_anetz2,
const std::string& i_anetz3,
37 const size_t& nr_coeffs,
38 const double& coeff1,
const double& coeff2,
const double& coeff3)
65 ImisIO(
const std::string& configfile);
71 std::vector< std::vector<MeteoData> >& vecMeteo);
74 void openDBConnection(oracle::occi::Environment*& env, oracle::occi::Connection*& conn);
75 void closeDBConnection(oracle::occi::Environment*& env, oracle::occi::Connection*& conn);
76 void getDBParameters();
78 size_t getStationIDs(
const std::string& stat_code,
79 const std::string& sqlQuery, std::vector<std::string>& vecStationMetaData,
80 oracle::occi::Statement*& stmt);
81 size_t getStationMetaData(
const std::string& stat_abk,
const std::string& stao_nr,
82 const std::string& sqlQuery, std::vector<std::string>& vecMetaData,
83 oracle::occi::Statement*& stmt);
84 size_t getSensorDepths(
const std::string& stat_abk,
const std::string& stao_nr,
85 const std::string& sqlQuery, std::vector<std::string>& vecHTS1,
86 oracle::occi::Statement*& stmt);
87 bool getStationData(
const std::string& stat_abk,
const std::string& stao_nr,
88 const Date& dateS,
const Date& dateE,
89 const std::vector<std::string>& i_vecHTS1,
90 std::vector< std::vector<std::string> >& vecMeteoData,
91 oracle::occi::Environment*& env, oracle::occi::Statement*& stmt);
93 void parseDataSet(
const std::vector<std::string>& meteo_in,
MeteoData& md,
bool& _fullStation);
94 void readData(
const Date& dateStart,
const Date& dateEnd, std::vector< std::vector<MeteoData> >& vecMeteo,
95 const size_t& stationindex,
const std::vector<StationData>& vecStationID,
96 oracle::occi::Environment*& env, oracle::occi::Statement*& stmt);
97 void readSWE(
const Date& dateStart,
const Date& dateEnd, std::vector< std::vector<MeteoData> >& vecMeteo,
98 const size_t& stationindex,
const std::vector<StationData>& vecStationIDs,
99 oracle::occi::Environment*& env, oracle::occi::Statement*& stmt);
100 void readStationIDs(std::vector<std::string>& vecStationID);
101 void parseStationID(
const std::string& stationID, std::string& stnAbbrev, std::string& stnNumber);
103 void readStationMetaData(oracle::occi::Connection*& conn);
104 void convertSnowTemperature(
MeteoData& meteo,
const std::string& parameter);
105 void convertSensorDepth(
MeteoData& meteo,
const std::string& parameter);
109 void findAnetzStations(std::map<std::string, size_t>& mapAnetzNames, std::vector<StationData>& vecAnetzStation);
110 void assimilateAnetzData(
const AnetzData& ad,
111 const std::map<std::string, size_t>& mapAnetzNames,
const std::vector< std::vector< std::pair<Date, double> > > &vecPsum,
112 const size_t& stationindex, std::vector< std::vector<MeteoData> >& vecMeteo);
113 void computeAnetzPSUM(std::vector<MeteoData> &vecMeteo, std::vector< std::pair<Date, double> > &vecPsum);
115 static const double in_tz;
117 std::string coordin, coordinparam, coordout, coordoutparam;
118 std::vector<StationData> vecStationMetaData;
119 std::map<std::string, std::string> mapDriftStation;
120 static const double plugin_nodata;
121 static const std::string sqlQueryStationIDs;
122 static const std::string sqlQueryStationMetaData;
123 static const std::string sqlQuerySensorDepths;
124 static const std::string sqlQueryMeteoDataDrift;
125 static const std::string sqlQueryMeteoData;
126 static const std::string sqlQuerySWEData;
127 std::string oracleUserName_in;
128 std::string oraclePassword_in;
129 std::string oracleDBName_in;
130 bool useAnetz, use_imis_psum, use_psum_snowpack;
132 static std::map<std::string, AnetzData> mapAnetz;
133 static const bool __init;
134 static bool initStaticData();
ImisIO(const std::string &configfile)
Definition: ImisIO.cc:215
size_t nrOfCoefficients
Definition: ImisIO.h:49
virtual void readMeteoData(const Date &dateStart, const Date &dateEnd, std::vector< std::vector< MeteoData > > &vecMeteo)
Fill vecMeteo with a time series of objects corresponding to the interval indicated by dateStart and ...
Definition: ImisIO.cc:372
AnetzData()
Definition: ImisIO.h:32
A class representing the IO Layer of the software Alpine3D. For each type of IO (File, DB, Webservice, etc) a derived class is to be created that holds the specific implementation of the appropriate virtual methods. The IOHandler class is a wrapper class that is able to deal with all above implementations of the IOInterface abstract base class.
Definition: IOInterface.h:43
std::vector< double > coeffs
Definition: ImisIO.h:50
virtual void readStationData(const Date &date, std::vector< StationData > &vecStation)
Fill vecStation with StationData objects for a certain date of interest.
Definition: ImisIO.cc:251
size_t nrOfAnetzStations
Definition: ImisIO.h:49
AnetzData(const size_t &nr_anetz, const std::string &i_anetz1, const std::string &i_anetz2, const std::string &i_anetz3, const size_t &nr_coeffs, const double &coeff1, const double &coeff2, const double &coeff3)
Definition: ImisIO.h:35
The class with-in the data from the database are treated. The MeteoData and the StationData will be s...
Definition: ImisIO.h:63
A class that reads a key/value file. These files (typically named *.ini) follow the INI file format s...
Definition: Config.h:58
const double nodata
This is the internal nodata value.
Definition: IOUtils.h:60
std::vector< std::string > anetzstations
Definition: ImisIO.h:51
A class to handle timestamps. This class handles conversion between different time display formats (I...
Definition: Date.h:79
A class to represent a singular measurement received from one station at a certain time (represented ...
Definition: MeteoData.h:101