Check that the time evolution of a given parameter is consistent with its past evolution.
Compare sum of differences between snow depth (HS) value and HS value before and HS value afterwards, respectively, with 4 times of the standard deviation of HS in a defined time period (something like MAD) First, the standard deviation of HS is calculated for a certain time period. Afterwards, the difference between the value and the value before and the difference between the value and the following value are calculated. Then, the sum of the two differences is calculated and compared with 4 times of the standard deviation. Is the sum lower than the standard deviation, the HS value is accepted. Otherwise the HS value gets invalid. References/Literature: Zahumensky, Igor, 2004: Guidelines on Quality Control Procedures for Data from Automatic Weather Stations, World Meteorological Organisation
It takes as arguments the window parameters as defined in WindowedFilter::setWindowFParams().
#include <FilterTimeconsistency.h>
Public Member Functions | |
FilterTimeconsistency (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &name, const Config &cfg) | |
virtual void | process (const unsigned int ¶m, const std::vector< MeteoData > &ivec, std::vector< MeteoData > &ovec) |
virtual void | process (const unsigned int ¶m, const std::vector< MeteoData > &ivec, std::vector< MeteoData > &ovec)=0 |
Public Member Functions inherited from mio::ProcessingBlock | |
virtual | ~ProcessingBlock () |
virtual void | process (const unsigned int ¶m, const std::vector< MeteoData > &ivec, std::vector< MeteoData > &ovec)=0 |
virtual void | process (Date &dateStart, Date &dateEnd) |
std::string | getName () const |
const ProcessingProperties & | getProperties () 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< DateRange > | getTimeRestrictions () const |
bool | skipHeight (const double &height) const |
Should the provided height be skipped in the processing? More... | |
Additional Inherited Members | |
Public Types inherited from mio::WindowedFilter | |
enum | Centering { left , center , right } |
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_spec > | readCorrections (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... | |
Static Public Attributes inherited from mio::ProcessingBlock | |
static const double | default_height |
Protected Member Functions inherited from mio::WindowedFilter | |
WindowedFilter (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &name, const Config &cfg, const bool &skipWindowParams=false) | |
Construct a WindowedFilter Object. This is for filters that require a certain window of data. More... | |
void | setWindowFParams (const std::vector< std::pair< std::string, std::string > > &vecArgs) |
Parse the arguments in order to retrieve the user parameters for the data window. The following parameters are recognized: More... | |
const std::vector< const MeteoData * > & | get_window (const size_t &index, const std::vector< MeteoData > &ivec) |
A function that cuts out the desired window for the 'index' element within ivec, the window elements are stored into vec_window Calls to this function have to start with index 0, then 1, 2, 3, ... vec_window is not allowed to be changed between two calls. More... | |
bool | get_window_specs (const size_t &index, const std::vector< MeteoData > &ivec, size_t &start, size_t &end) const |
A function that computes the start and end for a window for the 'index' element from ivec The principle is to compute the first index that matches the minimum number of points criteria, and the one that matches the minimum time window, then combine them (with the equivalent of OR: we take the MIN index). Afterward, we compute the last index [...] for number of points and the last index [...] for the time window and combine them (with the equivalent of OR: we take the MIN index) or vice versa for right centering. 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 ¶m, const std::vector< MeteoData > &ivec, std::vector< double > &ovec) |
static void | extract_dbl_vector (const unsigned int ¶m, const std::vector< const MeteoData * > &ivec, std::vector< double > &ovec) |
Protected Attributes inherited from mio::WindowedFilter | |
Duration | min_time_span |
This is filled in the constructor by calling setWindowFParams. More... | |
Centering | centering |
This is filled in the constructor by calling setWindowFParams. More... | |
size_t | min_data_points |
This is filled in the constructor by calling setWindowFParams. More... | |
size_t | last_start |
size_t | last_end |
bool | is_soft |
Protected Attributes inherited from mio::ProcessingBlock | |
const std::set< std::string > | excluded_stations |
const std::set< std::string > | kept_stations |
const std::vector< DateRange > | time_restrictions |
std::set< double > | included_heights |
std::set< double > | excluded_heights |
bool | all_heights |
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... | |
mio::FilterTimeconsistency::FilterTimeconsistency | ( | const std::vector< std::pair< std::string, std::string > > & | vecArgs, |
const std::string & | name, | ||
const Config & | cfg | ||
) |
|
virtual |
Implements mio::WindowedFilter.