MERGE input editing command.
It is possible to merge different data sets together, with the MERGE command. This is useful, for example, to provide measurements from different stations that actually share the same measurement location or to build "composite" station from multiple real stations (in this case, using EXCLUDE and/or KEEP commands to fine tune how the composite station(s) is/are built). It is also possible to restrict which parameters are to be merged with the PARAMS keyword (providing a space-delimited list of parameters).
Please note that the order of declaration defines the priority (ie the first station that has a value for a given parameter has priority). Please also note that which timestamps will be merged depends on the chosen merge strategy with the MERGE_STRATEGY option (see MeteoData::Merge_Type, by default it is MeteoData::EXPAND_MERGE). The handling of merge conflicts can be configured with the MERGE_CONFLICTS optional argument (see MeteoData::Merge_Conflicts, by default it is MeteoData::CONFLICTS_PRIORITY_FIRST). Furthermore, a station can be merged into multiple other stations, but circular dependencies are prohibited (and checked for).
#include <DataEditingAlgorithms.h>
Public Member Functions | |
EditingMerge (const std::string &i_stationID, const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &name, const Config &cfg) | |
virtual void | editTimeSeries (std::vector< METEO_SET > &vecMeteo) |
Apply this editing block. More... | |
virtual void | editTimeSeries (STATIONS_SET &vecStation) |
Apply this editing block to the StationData. More... | |
std::set< std::string > | requiredIDs () const |
Get the station IDs this editing block depends on for this station. More... | |
Public Member Functions inherited from mio::EditingBlock | |
EditingBlock (const std::string &i_stationID, const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &name, const Config &cfg) | |
virtual | ~EditingBlock () |
virtual void | editTimeSeries (std::vector< METEO_SET > &vecMeteo) |
Apply this editing block. More... | |
virtual void | editTimeSeries (STATIONS_SET &vecStation) |
Apply this editing block to the StationData. More... | |
virtual std::set< std::string > | requiredIDs () const |
Get the station IDs this editing block depends on for this station. More... | |
virtual std::set< std::string > | providedIDs () const |
Get the station IDs this editing block provides based on this station. More... | |
virtual std::set< std::string > | purgeIDs () const |
Get the station IDs to purge after using them for this station ID. More... | |
const std::string | toString () const |
Additional Inherited Members | |
Protected Member Functions inherited from mio::EditingBlock | |
std::string | getName () const |
bool | skipStation (const std::vector< MeteoData > &vecMeteo) const |
Return true if this station ID should be skipped. More... | |
METEO_SET | timeFilterFromStation (const METEO_SET &vecMeteo) const |
Prepare a station that will be merged in case of time restrictions. More... | |
Static Protected Member Functions inherited from mio::EditingBlock | |
static std::set< std::string > | initStationSet (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &keyword) |
Protected Attributes inherited from mio::EditingBlock | |
const std::set< std::string > | excluded_stations |
const std::set< std::string > | kept_stations |
const std::vector< DateRange > | time_restrictions |
const std::string | stationID |
const std::string | block_name |
mio::EditingMerge::EditingMerge | ( | const std::string & | i_stationID, |
const std::vector< std::pair< std::string, std::string > > & | vecArgs, | ||
const std::string & | name, | ||
const Config & | cfg | ||
) |
|
virtual |
Apply this editing block to the StationData.
This applies the editing block for its station that has been declared in the constructor on the provided StationData timeseries.
vecStation | StationData timeseries for all stations |
Reimplemented from mio::EditingBlock.
|
virtual |
Apply this editing block.
This applies the editing block for its station that has been declared in the constructor on the provided MeteoData timeseries.
vecMeteo | MeteoData timeseries for all stations |
Reimplemented from mio::EditingBlock.
|
virtual |
Get the station IDs this editing block depends on for this station.
Reimplemented from mio::EditingBlock.