Correct precipitation for undercatch in winter conditions.
This implements the standard methods for precipitation correction as described in "WMO Solid Precipitation Measurement Intercomparison", B. Goodison, P. Louie and D. Yang, 872, 1998 as well as the overview given by "Literature Study on the Correction of Precipitation Measurements", Annette Wagner, 2009. The correction parameters for the shielded Hellmann gauge (German version) are from "Wind-induced Precipitation Undercatch of the Hellmann Gauges", Daqing Yang et al, Nordic Hydrology, 30, 1999, pp 57-80 while the correction for Japanese RT-3 gauges comes from "Performance of Japanese precipitation gauges in winter", K. Yokoyama, H. Ohno, Y. Kominami, S. Inoue and T. Kawakata, Seppyo, 65, 2003, pp 303-316 (in Japanese with English summary). The correction for the Chinese Standard Precipitation Gauge is from "A Bias-Corrected Precipitation Climatology for China", B. Ye, Y. Daqing, D. Yongjian, H. Tianding, K. Toshio, 2004, Journal of Hydrometeorology, 5, 1147–1160.
These correction methods process pure snow and mixed precipitation differently, with the following thresholds:
They also depend on the usage of a shield around the gauge as well as the type of rain gauge that does the measurements, therefore this type must be specified as an argument. The coefficients are not always available both for shielded and unshielded gauges, so most of the time only one variation will be available and is specified below. The following methods can be specified as argument (only one can be specified):
#include <ProcUndercatch_WMO.h>
Public Member Functions | |
ProcUndercatch_WMO (const std::vector< std::string > &vec_args, const std::string &name) | |
virtual void | process (const unsigned int ¶m, const std::vector< MeteoData > &ivec, std::vector< MeteoData > &ovec) |
![]() | |
virtual | ~ProcessingBlock () |
std::string | getName () const |
const ProcessingProperties & | getProperties () const |
const std::string | toString () const |
Additional Inherited Members | |
![]() | |
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 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) |
![]() | |
ProcessingProperties | properties |
const std::string | block_name |
![]() | |
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::ProcUndercatch_WMO::ProcUndercatch_WMO | ( | const std::vector< std::string > & | vec_args, |
const std::string & | name | ||
) |
|
virtual |
Implements mio::ProcessingBlock.