94 static std::vector<std::string> paramname, description, units;
95 static const bool __init;
96 static bool initStaticData();
126 typedef enum MERGE_TYPE {
138 typedef enum MERGE_CONFLICTS {
230 void setResampled(
const bool& in_resampled) {resampled = in_resampled;}
233 void setFiltered(
const size_t& param,
const bool& in_filtered =
true);
235 void setGenerated(
const size_t& param,
const bool& in_generated =
true);
242 const double&
operator()(
const size_t& parindex)
const;
243 double&
operator()(
const std::string& parname);
244 const double&
operator()(
const std::string& parname)
const;
250 std::vector<double>
getHeightsForParameter(
const std::string& in_parname,
bool include_default =
true,
const std::set<std::string>& additional_parameters = std::set<std::string>())
const;
251 size_t listUnknownParameters(
const std::set<std::string>& additional_params = std::set<std::string>())
const;
255 static bool getTypeAndNo(
const std::string& parname, std::string& par,
double& number,
const std::set<std::string>& additional_parameters = std::set<std::string>());
256 static bool sameParameterType(
const std::string& par1,
const std::string& par2,
const std::set<std::string>& additional_parameters = std::set<std::string>());
257 static std::vector<std::string>
retrieveAllHeightsForParam(
const std::set<std::string>& available_parameters,
const std::string& parname,
const std::set<std::string>& additional_parameters = std::set<std::string>());
258 static std::vector<std::string>
retrieveAllParametersAtHeight(
const std::set<std::string>& available_parameters,
const double& height,
const std::set<std::string>& additional_parameters = std::set<std::string>());
259 static std::set<double>
retrieveAllHeights(
const std::set<std::string>& available_parameters,
const std::set<std::string>& additional_parameters = std::set<std::string>());
260 static std::set<std::string>
retriveUniqueParameters(
const std::set<std::string>& available_parameters,
const std::set<std::string>& additional_parameters=std::set<std::string>());
261 static std::vector<std::string>
sortListByParams(
const std::vector<std::string>& param_list,
const std::set<std::string>& available_parameters = std::set<std::string>());
420 unsigned int extra_flag : 3;
425 static std::vector<std::string> s_default_paramname;
426 static const double epsilon;
427 static const bool __init;
428 static bool initStaticData();
431 std::vector<std::string> extra_param_name;
432 std::vector<double> data;
434 size_t nrOfAllParameters;
438 std::vector<flag_field> flags;
439 static flag_field zero_flag;
A class to handle timestamps. This class handles conversion between different time display formats (I...
Definition Date.h:87
A class to represent a singular measurement received from one station at a certain time (represented ...
Definition MeteoData.h:108
double & operator()(const size_t &parindex)
Definition MeteoData.cc:507
bool isNodata() const
Are all the fields set to nodata?
Definition MeteoData.cc:597
size_t getNrOfParameters() const
Definition MeteoData.h:248
bool isGenerated(const size_t ¶m) const
Definition MeteoData.cc:621
friend std::istream & operator>>(std::istream &is, MeteoData &data)
Definition MeteoData.cc:695
StationData meta
The meta data of the measurement.
Definition MeteoData.h:406
FORMATS
Keywords for selecting the toString formats.
Definition MeteoData.h:111
@ COMPACT
output optimized to print the content of vector<MeteoData>
Definition MeteoData.h:114
@ FULL
Shows detailed information, including nodata fields.
Definition MeteoData.h:113
@ DFLT
Shows detailed information, skipping nodata fields.
Definition MeteoData.h:112
void setGenerated(const size_t ¶m, const bool &in_generated=true)
Definition MeteoData.cc:616
Merge_Type
Available MeteoData merging strategies. When the two stations both have data at a given time step,...
Definition MeteoData.h:126
@ WINDOW_MERGE
Similar to a full merge but within the time range of station1.
Definition MeteoData.h:130
@ FULL_MERGE
All timestamps from station2 are brought into station1 even if the timestamps don't match.
Definition MeteoData.h:129
@ STRICT_MERGE
Station1 receives data from station2 only for common timestamps.
Definition MeteoData.h:127
@ EXPAND_MERGE
If station2 can provide some data before/after station1, this extra data is added to station1.
Definition MeteoData.h:128
static const std::string & getParameterName(const size_t &parindex)
Definition MeteoData.cc:210
static std::set< std::string > retriveUniqueParameters(const std::set< std::string > &available_parameters, const std::set< std::string > &additional_parameters=std::set< std::string >())
Definition MeteoData.cc:371
void setFiltered(const size_t ¶m, const bool &in_filtered=true)
Definition MeteoData.cc:606
void standardizeNodata(const double &plugin_nodata)
Standardize nodata values The plugin-specific nodata values are replaced by MeteoIO's internal nodata...
Definition MeteoData.cc:483
static MeteoGrids::Parameters findGridParam(const Parameters &mpar)
Definition MeteoData.cc:394
static bool sameParameterType(const std::string &par1, const std::string &par2, const std::set< std::string > &additional_parameters=std::set< std::string >())
Definition MeteoData.cc:273
static std::string convertHeightToString(const double &height)
Definition MeteoData.cc:286
bool operator!=(const MeteoData &in) const
Operator that tests for inequality.
Definition MeteoData.h:400
void reset()
Resets all the meteo parameters to IOUtils::nodata NOTE: member vars date and resampled are not affec...
Definition MeteoData.cc:474
static void merge(std::vector< MeteoData > &vec1, const std::vector< MeteoData > &vec2, const bool &simple_merge=false, const Merge_Conflicts &conflicts_strategy=CONFLICTS_PRIORITY_FIRST)
Simple merge strategy for vectors containing meteodata for a given timestamp. If some fields of the M...
Definition MeteoData.cc:866
static Parameters findMeteoParam(const MeteoGrids::Parameters &gpar)
Definition MeteoData.cc:401
bool param_exists(const std::string &parname) const
Check whether a certain parameter is a part of this MeteoData instance.
Definition MeteoData.cc:421
Date date
Timestamp of the measurement.
Definition MeteoData.h:405
static std::string parToString(const Parameters ¶m)
Definition MeteoData.cc:159
bool isFiltered(const size_t ¶m) const
Definition MeteoData.cc:611
static std::vector< std::string > sortListByParams(const std::vector< std::string > ¶m_list, const std::set< std::string > &available_parameters=std::set< std::string >())
Definition MeteoData.cc:310
const std::string getStationID() const
Definition MeteoData.h:410
void setResampled(const bool &in_resampled)
Definition MeteoData.h:230
static std::set< std::string > listAvailableParameters(const std::vector< MeteoData > &vecMeteo)
List the parameters that have a least one valid value in a vector of MeteoData.
Definition MeteoData.cc:1048
size_t addParameter(const std::string &i_paramname)
Add another variable to the MeteoData object, a double value will be added and the nrOfParameters inc...
Definition MeteoData.cc:436
bool isResampled() const
Definition MeteoData.h:229
size_t getOccurencesOfParameter(const Parameters &par, const std::set< std::string > &additional_parameters=std::set< std::string >()) const
Definition MeteoData.cc:579
bool hasConflicts(const MeteoData &meteo2) const
Check for data conflicts between two MeteoData objects Conflicts are defined as two identical data fi...
Definition MeteoData.cc:1025
Parameters
this enum provides indexed access to meteorological fields
Definition MeteoData.h:145
@ P
Air pressure.
Definition MeteoData.h:146
@ HS
Height of snow.
Definition MeteoData.h:153
@ ISWR
Incoming short wave radiation.
Definition MeteoData.h:158
@ TAU_CLD
Cloud transmissivity or ISWR/ISWR_clear_sky.
Definition MeteoData.h:160
@ VW
Wind velocity.
Definition MeteoData.h:154
@ VW_MAX
Maximum wind velocity.
Definition MeteoData.h:156
@ PSUM
Water equivalent of precipitations, either solid or liquid.
Definition MeteoData.h:161
@ PSUM_PH
Precipitation phase: between 0 (fully solid) and 1(fully liquid)
Definition MeteoData.h:162
@ TSNOW
Temperature within the snow.
Definition MeteoData.h:152
@ TA
Air temperature.
Definition MeteoData.h:147
@ TSS
Temperature of the snow surface.
Definition MeteoData.h:150
@ TSOIL
Temperature within the soil.
Definition MeteoData.h:151
@ ILWR
Incoming long wave radiation (downwelling)
Definition MeteoData.h:159
@ firstparam
Definition MeteoData.h:145
@ RH
Relative humidity.
Definition MeteoData.h:148
@ lastparam
Definition MeteoData.h:163
@ TSG
Temperature of the ground surface.
Definition MeteoData.h:149
@ DW
Wind direction.
Definition MeteoData.h:155
@ RSWR
Reflected short wave radiation.
Definition MeteoData.h:157
static MeteoData::Merge_Conflicts getMergeConflicts(std::string merge_conflicts)
Parse a string containing a merge conflcits type and return the proper enum member for it.
Definition MeteoData.cc:729
static const size_t nrOfParameters
holds the number of meteo parameters stored in MeteoData
Definition MeteoData.h:408
bool operator<(const MeteoData &in) const
so vectors can be sorted by timestamps
Definition MeteoData.h:401
const std::string toString(const FORMATS format=DFLT) const
Print the content of the current object.
Definition MeteoData.cc:636
static std::vector< std::string > retrieveAllHeightsForParam(const std::set< std::string > &available_parameters, const std::string &parname, const std::set< std::string > &additional_parameters=std::set< std::string >())
Definition MeteoData.cc:331
void setResampledParam(const size_t ¶m, const bool &in_resampled=true)
Definition MeteoData.cc:626
static std::vector< std::string > retrieveAllParametersAtHeight(const std::set< std::string > &available_parameters, const double &height, const std::set< std::string > &additional_parameters=std::set< std::string >())
Definition MeteoData.cc:356
static Parameters toParameter(const std::string ¶mStr)
Definition MeteoData.cc:134
static MeteoData::Merge_Type getMergeType(std::string merge_type)
Parse a string containing a merge type and return the proper enum member for it.
Definition MeteoData.cc:718
static void unifyMeteoData(METEO_SET &vecMeteo)
Ensure all elements in a METEO_SET have the same parameters.
Definition MeteoData.cc:1074
static size_t getStaticParameterIndex(const std::string &parname)
Definition MeteoData.cc:384
static size_t mergeTimeSeries(std::vector< MeteoData > &vec1, const std::vector< MeteoData > &vec2, const Merge_Type &strategy=STRICT_MERGE, const Merge_Conflicts &conflicts_strategy=CONFLICTS_PRIORITY_FIRST)
Simple merge strategy for two vectors containing meteodata time series for two stations....
Definition MeteoData.cc:749
static bool getTypeAndNo(const std::string &parname, std::string &par, double &number, const std::set< std::string > &additional_parameters=std::set< std::string >())
Definition MeteoData.cc:234
static std::set< double > retrieveAllHeights(const std::set< std::string > &available_parameters, const std::set< std::string > &additional_parameters=std::set< std::string >())
Definition MeteoData.cc:342
const std::string & getNameForParameter(const size_t &parindex) const
Definition MeteoData.cc:412
Merge_Conflicts
Available MeteoData conflict resolution strategies. When two stations are merged, there is a merge co...
Definition MeteoData.h:138
@ CONFLICTS_PRIORITY_LAST
Station2 has priority over station 1.
Definition MeteoData.h:140
@ CONFLICTS_AVERAGE
The merged value is the average of station1 and station2.
Definition MeteoData.h:141
@ CONFLICTS_PRIORITY_FIRST
Station1 has priority over station 2.
Definition MeteoData.h:139
friend std::ostream & operator<<(std::ostream &os, const MeteoData &data)
Definition MeteoData.cc:675
bool isResampledParam(const size_t ¶m) const
Definition MeteoData.cc:631
size_t listUnknownParameters(const std::set< std::string > &additional_params=std::set< std::string >()) const
Definition MeteoData.cc:1063
void setDate(const Date &in_date)
A setter function for the measurement date.
Definition MeteoData.h:200
bool operator==(const MeteoData &) const
Operator that tests for equality.
Definition MeteoData.cc:492
bool operator>(const MeteoData &in) const
so vectors can be sorted by timestamps
Definition MeteoData.h:402
std::vector< double > getHeightsForParameter(const std::string &in_parname, bool include_default=true, const std::set< std::string > &additional_parameters=std::set< std::string >()) const
Definition MeteoData.cc:559
size_t getParameterIndex(const std::string &parname) const
Definition MeteoData.cc:543
MeteoData(void)
The default constructor initializing every double attribute to nodata and the Date to julian==0....
Definition MeteoData.cc:454
A class to represent the meteorological parameters that could be contained in a grid....
Definition MeteoData.h:43
static const std::string getParameterName(const size_t &parindex)
Definition MeteoData.cc:84
Parameters
this enum provides names for possible meteogrids (from an ARPS file, etc)
Definition MeteoData.h:46
@ PSUM_L
Water equivalent of liquid precipitation.
Definition MeteoData.h:65
@ OLWR
Outgoing long wave radiation.
Definition MeteoData.h:59
@ TSS
Temperature snow surface.
Definition MeteoData.h:68
@ firstparam
Definition MeteoData.h:46
@ TSG
Temperature ground surface.
Definition MeteoData.h:67
@ TA
Air temperature.
Definition MeteoData.h:47
@ VW
Wind velocity.
Definition MeteoData.h:51
@ ISWR
Incoming short wave radiation.
Definition MeteoData.h:54
@ P
Air pressure.
Definition MeteoData.h:71
@ SLOPE
DEM slope angle.
Definition MeteoData.h:82
@ V
North component of wind.
Definition MeteoData.h:74
@ DEM
Digital Elevation Model.
Definition MeteoData.h:80
@ ISWR_DIFF
Incoming short wave, diffuse.
Definition MeteoData.h:56
@ AZI
DEM slope azimuth.
Definition MeteoData.h:83
@ RSNO
Snow mean density.
Definition MeteoData.h:77
@ ISWR_DIR
Incoming short wave, direct.
Definition MeteoData.h:57
@ PSUM_S
Water equivalent of solid precipitation.
Definition MeteoData.h:66
@ TD
Dew Point temperature.
Definition MeteoData.h:50
@ W
Vertical component of wind.
Definition MeteoData.h:75
@ VW_MAX
Maximum wind velocity.
Definition MeteoData.h:53
@ CLD
Total cloud cover in oktas (see https://en.wikipedia.org/wiki/Okta)
Definition MeteoData.h:61
@ lastparam
Definition MeteoData.h:84
@ TAU_CLD
Cloud transmissivity or ISWR/ISWR_clear_sky.
Definition MeteoData.h:60
@ TSOIL
Temperature within the soil, at a given depth.
Definition MeteoData.h:69
@ PSUM
Water equivalent of precipitations, either solid or liquid.
Definition MeteoData.h:63
@ U
East component of wind.
Definition MeteoData.h:73
@ ILWR
Incoming long wave radiation.
Definition MeteoData.h:58
@ P_SEA
Sea level air pressure.
Definition MeteoData.h:72
@ RH
Relative humidity.
Definition MeteoData.h:48
@ RSWR
Reflected short wave radiation.
Definition MeteoData.h:55
@ TSNOW
Temperature within the snow, at a given depth.
Definition MeteoData.h:70
@ ROT
Total generated runoff.
Definition MeteoData.h:78
@ SHADE
Hillshade.
Definition MeteoData.h:81
@ QI
Specific humidity.
Definition MeteoData.h:49
@ ALB
Albedo.
Definition MeteoData.h:79
@ PSUM_PH
Precipitation phase, between 0 (fully solid) and 1 (fully liquid)
Definition MeteoData.h:64
@ HS
Height of snow.
Definition MeteoData.h:62
@ DW
Wind direction.
Definition MeteoData.h:52
@ SWE
Snow Water Equivalent.
Definition MeteoData.h:76
static const std::string getParameterDescription(const size_t &parindex, const bool &allow_ws=true)
Definition MeteoData.cc:92
static const size_t nrOfParameters
holds the number of meteo parameters stored in MeteoData
Definition MeteoData.h:86
static size_t getParameterIndex(const std::string &parname)
Definition MeteoData.cc:114
static const std::string getParameterUnits(const size_t &parindex)
Definition MeteoData.cc:106
A class to represent meteo stations with attributes like longitude, latitude, etc.
Definition StationData.h:40
std::string stationID
ID of the Station, typically a short string.
Definition StationData.h:131
static const double plugin_nodata
Definition GRIBIO.cc:141
std::vector< MeteoData > METEO_SET
Definition MeteoData.h:32