Convert accumulated values back to instantaneous values.
Some radiation parameters are sometimes provided as accumulated values over a given period (such as ECMWF radiation fields). The value at any given timestep is either the instantaneous value (at the beginning of the accumulation period) or the sum of the instantaneous value and the preceeding values. This can be illustrated as:
This filter recomputes the instantaneous values by considering that once a value gets smaller than its preceding values, the end of the accumulation period has been reached, so the value is kept as is and the process starts over again (thus this assumes that they are no negative values).
#include <ProcDeAccumulate.h>
Public Member Functions | |
ProcDeAccumulate (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &name) | |
virtual void | process (const unsigned int ¶m, const std::vector< MeteoData > &ivec, std::vector< MeteoData > &ovec) |
![]() | |
virtual | ~ProcessingBlock () |
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 |
bool | noStationsRestrictions () const |
Additional Inherited Members | |
![]() | |
static void | readCorrections (const std::string &filter, const std::string &filename, std::vector< double > &X, std::vector< double > &Y) |
static void | readCorrections (const std::string &filter, const std::string &filename, std::vector< double > &X, std::vector< double > &Y1, std::vector< double > &Y2) |
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) |
static std::vector< offset_spec > | readCorrections (const std::string &filter, const std::string &filename, const double &TZ, const size_t &col_idx=2) |
static std::map< std::string, std::vector< dates_range > > | readDates (const std::string &filter, const std::string &filename, const double &TZ) |
static std::set< std::string > | initStationSet (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &keyword) |
![]() | |
ProcessingBlock (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &name) | |
protected constructor only to be called by children More... | |
![]() | |
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) |
![]() | |
const std::set< std::string > | excluded_stations |
const std::set< std::string > | kept_stations |
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::ProcDeAccumulate::ProcDeAccumulate | ( | const std::vector< std::pair< std::string, std::string > > & | vecArgs, |
const std::string & | name | ||
) |
|
virtual |
Implements mio::ProcessingBlock.