MeteoIODoc  MeteoIODoc-2.6.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mio::FilterOffsetsnowdepth Class Reference

Detailed Description

Correct offset of snow depth (HS) measurements because of wrong offset justifications of the sensor First, the mean daily snow surface temperature (SST) is calculated. If it is higher than a given threshold for a certain time period, the offset of snow depth (HS) can be determined. The offset of HS is the median of the measured HS in the certain time period. This is done for the first and last week of the year with SST higher the chosen threshold. That means that normally one offset is calculated in spring and one offset in autumn.

Author
Anna-Maria Tilg
Date
2015-12-08 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

Remarks:

  • nodata values are excluded from the calculation of the standard deviation ?????? => checken
  • Two arguments expected (both have to be fullfilled for the filter to start operating):
    • minimal number of points in window
    • minimal time interval spanning the window (in seconds)
  • only window position "center" possible
  • keyword "soft" not allowed
    • the two arguments may be preceded by the keywords "left", "center" or "right", indicating the window position ?????? => checken
    • the keyword "soft" maybe added, if the window position is allowed to be adjusted to the data present ?????? => checken
Valid examples for the io.ini file:
HS::filter1 = time_consistency
HS::arg1 = soft left 1 1800 (1800 seconds time span for the left leaning window)
TA::filter1 = time_consistency
TA::arg1 = 10 600 (strictly centered window spanning 600 seconds and at least 10 points)

#include <FilterOffsetsnowdepth.h>

Public Member Functions

 FilterOffsetsnowdepth (const std::vector< std::string > &vec_args, const std::string &name)
 
virtual void process (const unsigned int &param, const std::vector< MeteoData > &ivec, std::vector< MeteoData > &ovec)
 
- Public Member Functions inherited from mio::WindowedFilter
 WindowedFilter (const std::string &name)
 
- Public Member Functions inherited from mio::FilterBlock
virtual ~FilterBlock ()
 
- Public Member Functions inherited from mio::ProcessingBlock
virtual ~ProcessingBlock ()
 
std::string getName () const
 
const ProcessingPropertiesgetProperties () const
 
const std::string toString () const
 

Additional Inherited Members

- Public Types inherited from mio::WindowedFilter
enum  Centering { left, center, right }
 
- Protected Member Functions inherited from mio::WindowedFilter
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 too 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::FilterBlock
 FilterBlock (const std::string &filter_name)
 protected constructor only to be called by children More...
 
- Protected Member Functions inherited from mio::ProcessingBlock
 ProcessingBlock (const std::string &name)
 protected constructor only to be called by children More...
 
void convert_args (const size_t &min_nargs, const size_t &max_nargs, const std::vector< std::string > &vec_args, std::vector< double > &dbl_args) const
 
- Static Protected Member Functions inherited from mio::WindowedFilter
static unsigned int get_centering (std::vector< std::string > &vec_args)
 
- Static Protected Member Functions inherited from mio::FilterBlock
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)
 
- Static Protected Member Functions inherited from mio::ProcessingBlock
static bool is_soft (std::vector< std::string > &vec_args)
 
static void readCorrections (const std::string &filter, const std::string &filename, const char &c_type, const double &init, std::vector< double > &corrections)
 
- Protected Attributes inherited from mio::WindowedFilter
Duration min_time_span
 
Centering centering
 
size_t last_start
 
size_t last_end
 
size_t min_data_points
 
bool is_soft
 
- Protected Attributes inherited from mio::ProcessingBlock
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

mio::FilterOffsetsnowdepth::FilterOffsetsnowdepth ( const std::vector< std::string > &  vec_args,
const std::string &  name 
)

Member Function Documentation

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

Implements mio::WindowedFilter.


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