MeteoIODoc 20240418.14865e3c
mio::FilterSuppr Class Reference

Detailed Description

Suppression filter.

Normally, this filter simply rejects all values. This is convenient to quickly turn a parameter off without modifying the original data. It is also possible to suppress some values based on specific criterias, with the following arguments:

  • TYPE: either FILE (suppress periods provided in a separate file) or FRAC (suppress a given fraction of the data) or ALL (suppress all values for this parameter), mandatory;
  • FILE: provide a file that contains a list of station ID's and timesteps specifying where the parameter should be suppressed;
  • FRAC: suppress a given fraction of the data at random. For example, 0.5 would ensure that at least 50% of the data set contains nodata for this parameter. In this case, it is possible to either delete individual points at random or time periods of a given width (given by the WIDTH argument, in seconds. There will always be at least one point between two consecutive periods).
ILWR::filter1 = suppr
ILWR::arg1::type = ALL
PSUM::filter1 = suppr
PSUM::arg1::type = FILE
PSUM::arg1::file = ./input/meteo/psum_suppr.dat
TA::filter1 = suppr
PSUM::arg1::type = FRAC
TA::arg1::FRAC = 0.5
TA::arg1::WIDTH = ${{24*3600}} ;delete full day at once. If not defined, individual points would be deleted

In the second example (PSUM), the file psum_suppr.dat would look like this (the time is given in the timezone declared in Input::TIME_ZONE):

*WFJ 2015-10-01T12:00
*DAV 2015-10-02T15:00
*WFJ 2015-11-10T06:00
*WFJ 2015-12-25T01:00 2015-12-27T13:30
*WFJ 2015-09-01T07:15 - 2015-09-10T20:30
STB2 2015-10-01T21:30

Time ranges are declared by providing two dates on the same line. For more visibility, the said two dates can be separated by " - " (with a white space character on both sides, as shown in the example above).

#include <FilterSuppr.h>

Public Member Functions

 FilterSuppr (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &name, const Config &cfg)
 
virtual void process (const unsigned int &param, const std::vector< MeteoData > &ivec, std::vector< MeteoData > &ovec)
 
- Public Member Functions inherited from mio::ProcessingBlock
virtual ~ProcessingBlock ()
 
virtual void process (const unsigned int &param, const std::vector< MeteoData > &ivec, std::vector< MeteoData > &ovec)=0
 
virtual void process (Date &dateStart, Date &dateEnd)
 
std::string getName () const
 
const ProcessingPropertiesgetProperties () const
 
const std::string toString () const
 
bool skipStation (const std::string &station_id) const
 Should the provided station be skipped in the processing? More...
 
bool noStationsRestrictions () const
 
const std::vector< DateRangegetTimeRestrictions () const
 

Additional Inherited Members

- Static Public Member Functions inherited from mio::ProcessingBlock
static void readCorrections (const std::string &filter, const std::string &filename, std::vector< double > &X, std::vector< double > &Y)
 Read a data file structured as X Y value on each lines. More...
 
static void readCorrections (const std::string &filter, const std::string &filename, std::vector< double > &X, std::vector< double > &Y1, std::vector< double > &Y2)
 Read a data file structured as X Y1 Y2 value on each lines. More...
 
static std::vector< double > readCorrections (const std::string &filter, const std::string &filename, const size_t &col_idx, const char &c_type, const double &init)
 Read a correction file applicable to repeating time period. More...
 
static std::vector< offset_specreadCorrections (const std::string &filter, const std::string &filename, const double &TZ, const size_t &col_idx=2)
 Read a correction file, ie a file structured as timestamps followed by values on each lines. More...
 
static std::map< std::string, std::vector< DateRange > > readDates (const std::string &filter, const std::string &filename, const double &TZ)
 Read a list of date ranges by stationIDs from a file. More...
 
- Protected Member Functions inherited from mio::ProcessingBlock
 ProcessingBlock (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &name, const Config &cfg)
 protected constructor only to be called by children More...
 
- Static Protected Member Functions inherited from mio::ProcessingBlock
static void extract_dbl_vector (const unsigned int &param, const std::vector< MeteoData > &ivec, std::vector< double > &ovec)
 
static void extract_dbl_vector (const unsigned int &param, const std::vector< const MeteoData * > &ivec, std::vector< double > &ovec)
 
- Protected Attributes inherited from mio::ProcessingBlock
const std::set< std::string > excluded_stations
 
const std::set< std::string > kept_stations
 
const std::vector< DateRangetime_restrictions
 
ProcessingProperties properties
 
const std::string block_name
 
- Static Protected Attributes inherited from mio::ProcessingBlock
static const double soil_albedo = .23
 
static const double snow_albedo = .85
 
static const double snow_thresh = .1
 parametrize the albedo from HS More...
 

Constructor & Destructor Documentation

◆ FilterSuppr()

mio::FilterSuppr::FilterSuppr ( const std::vector< std::pair< std::string, std::string > > &  vecArgs,
const std::string &  name,
const Config cfg 
)

Member Function Documentation

◆ process()

void mio::FilterSuppr::process ( const unsigned int &  param,
const std::vector< MeteoData > &  ivec,
std::vector< MeteoData > &  ovec 
)
virtual

Implements mio::ProcessingBlock.


The documentation for this class was generated from the following files: