MeteoIODoc 20240424.8175a1b4
mio::ESOLIPGenerator Class Reference

Detailed Description

Generate precipitation from changes in snow height.

This implements the approach laid out in Mair et al., "ESOLIP–estimate of solid and liquid precipitation at sub-daily time resolution by combining snow height and rain gauge measurements", Hydrology and Earth System Sciences Discussions, 10(7), 8683-8714, 2013. or Mair E., Leitinger G., Della Chiesa S., Niedrist G., Tappeiner U., Bertoldi G., "A simple method to combine snow height and meteorological observations to estimate winter precipitation at sub-daily resolution", Journal of Hydrological Sciences, in revision, 2015. The snow density relies on Zwart, "Significance of new-snow properties for snowcover development",master's thesis, Institute for Marine and Atmospheric Research, University of Utrecht, 78 pp, 2007.

Note
only identified precipitation events are written out, this means that it is recommended to run through a Cst=0 data generator afterward
[Generators]
PSUM::generator1 = ESOLIP

#include <ESOLIPGenerator.h>

Public Member Functions

 ESOLIPGenerator (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &i_algo, const std::string &i_section, const double &TZ)
 
bool generate (const size_t &param, MeteoData &md, const std::vector< MeteoData > &vecMeteo)
 
bool create (const size_t &param, const size_t &ii_min, const size_t &ii_max, std::vector< MeteoData > &vecMeteo)
 Fill one time series of MeteoData for one station. More...
 
- Public Member Functions inherited from mio::GeneratorAlgorithm
virtual ~GeneratorAlgorithm ()
 
virtual bool generate (const size_t &param, MeteoData &md, const std::vector< MeteoData > &vecMeteo)=0
 
virtual bool create (const size_t &param, const size_t &ii_min, const size_t &ii_max, std::vector< MeteoData > &vecMeteo)=0
 Fill one time series of MeteoData for one station. More...
 
bool skipStation (const std::string &station_id) const
 Should this station be skipped, based on user-provided station ID restrictions? More...
 
bool skipTimeStep (const Date &dt) const
 Should this timestep be skipped, based on user-provided time restrictions? More...
 
std::vector< DateRangegetTimeRestrictions () const
 
std::string getAlgo () const
 

Additional Inherited Members

- Protected Member Functions inherited from mio::GeneratorAlgorithm
 GeneratorAlgorithm (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &i_algo, const std::string &i_section, const double &TZ)
 protected constructor only to be called by children More...
 
virtual void parse_args (const std::vector< std::pair< std::string, std::string > > &)
 
- Static Protected Member Functions inherited from mio::GeneratorAlgorithm
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::GeneratorAlgorithm
const std::vector< DateRangetime_restrictions
 
const std::set< std::string > excluded_stations
 
const std::set< std::string > kept_stations
 
const std::string algo
 
const std::string section
 
- Static Protected Attributes inherited from mio::GeneratorAlgorithm
static const double soil_albedo = .23
 
static const double snow_albedo = .85
 
static const double snow_thresh = .1
 

Constructor & Destructor Documentation

◆ ESOLIPGenerator()

mio::ESOLIPGenerator::ESOLIPGenerator ( const std::vector< std::pair< std::string, std::string > > &  vecArgs,
const std::string &  i_algo,
const std::string &  i_section,
const double &  TZ 
)
inline

Member Function Documentation

◆ create()

bool mio::ESOLIPGenerator::create ( const size_t &  param,
const size_t &  ii_min,
const size_t &  ii_max,
std::vector< MeteoData > &  vecMeteo 
)
virtual

Fill one time series of MeteoData for one station.

This is used by the dataCreators to create a new parameter in one go for the whole timeseries.

Parameters
[in]parammeteo parameter to generate
[in]ii_minminimum index to apply it to in vecMeteo
[in]ii_maxmaximum index to apply it to in vecMeteo
[in]vecMeteometeo timeseries to process
Returns
true if all missing data points for the given parameter could be generated, false otherwise

Implements mio::GeneratorAlgorithm.

◆ generate()

bool mio::ESOLIPGenerator::generate ( const size_t &  param,
MeteoData md,
const std::vector< MeteoData > &  vecMeteo 
)
virtual

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