Generate solar radiation out of daily sums.
Daily sums of solar radiation (once, per day, any time during the day). Data provided at midnight is considered to belong to the day that just finished) are compared to the potential radiation, leading to an atmospheric loss factor. This loss factor is then applied to the potential solar radiation calculated at the requested time. When using this algorithm for RSWR, an albedo is required. A default value of 0.5 is used. If the snow height is available and greater than a 10cm threshold, a snow albedo is used. Below this threshold, a soil albedo is used.
#include <DailySolarResampling.h>
Public Member Functions | |
Daily_solar (const std::string &i_algoname, const std::string &i_parname, const double &dflt_max_gap_size, const std::vector< std::pair< std::string, std::string > > &vecArgs) | |
void | resample (const std::string &stationHash, const size_t &index, const ResamplingPosition &position, const size_t ¶mindex, const std::vector< MeteoData > &vecM, MeteoData &md) |
std::string | toString () const |
Public Member Functions inherited from mio::ResamplingAlgorithms | |
ResamplingAlgorithms (const std::string &i_algoname, const std::string &i_parname, const double &dflt_max_gap_size, const std::vector< std::pair< std::string, std::string > > &) | |
virtual | ~ResamplingAlgorithms () |
const std::string | getAlgo () const |
virtual void | resample (const std::string &stationHash, const size_t &index, const ResamplingPosition &position, const size_t ¶mindex, const std::vector< MeteoData > &vecM, MeteoData &md)=0 |
void | resetResampling () |
virtual std::string | toString () const =0 |
Additional Inherited Members | |
Public Types inherited from mio::ResamplingAlgorithms | |
enum | ResamplingPosition { exact_match , before , after , begin , end } |
Static Public Member Functions inherited from mio::ResamplingAlgorithms | |
static size_t | searchBackward (gap_info &last_gap, const size_t &pos, const size_t ¶mindex, const std::vector< MeteoData > &vecM, const Date &resampling_date, const double &i_max_gap_size) |
static size_t | searchForward (gap_info &last_gap, const size_t &pos, const size_t ¶mindex, const std::vector< MeteoData > &vecM, const Date &resampling_date, const double &i_max_gap_size, const size_t &indexP1) |
static gap_info | findGap (const size_t &pos, const size_t ¶mindex, const std::vector< MeteoData > &vecM, const Date &resampling_date, const double &i_max_gap_size) |
Protected Member Functions inherited from mio::ResamplingAlgorithms | |
void | getNearestValidPts (const std::string &stationHash, const size_t &pos, const size_t ¶mindex, const std::vector< MeteoData > &vecM, const Date &resampling_date, const double &i_max_gap_size, size_t &indexP1, size_t &indexP2) |
This function returns the last and next valid points around a given position. More... | |
Static Protected Member Functions inherited from mio::ResamplingAlgorithms | |
static double | partialAccumulateAtLeft (const std::vector< MeteoData > &vecM, const size_t ¶mindex, const size_t &pos, const Date &curr_date) |
static double | partialAccumulateAtRight (const std::vector< MeteoData > &vecM, const size_t ¶mindex, const size_t &pos, const Date &curr_date) |
static double | linearInterpolation (const double &x1, const double &y1, const double &x2, const double &y2, const double &x3) |
This function solves the equation y = ax + b for two given points and returns y for a given x. More... | |
static Date | getDailyStart (const Date &resampling_date) |
For a given date, find the start of the day, considering that for midnight we return the day before! (as is necessary for daily averages, sums, etc that can be provided at midnight for the day before) More... | |
static size_t | getDailyValue (const std::vector< MeteoData > &vecM, const size_t ¶mindex, size_t pos, const Date &intervalStart, const Date &intervalEnd) |
Find a unique value in a given time interval. This is useful for retrieving a unique daily average, daily sum, etc. More... | |
Protected Attributes inherited from mio::ResamplingAlgorithms | |
const std::string | algo |
const std::string | parname |
double | max_gap_size |
Static Protected Attributes inherited from mio::ResamplingAlgorithms | |
static const double | soil_albedo = .23 |
grass albedo More... | |
static const double | snow_albedo = .85 |
snow albedo More... | |
static const double | snow_thresh = .1 |
These thresholds are used to handle solar radiation. More... | |
mio::Daily_solar::Daily_solar | ( | const std::string & | i_algoname, |
const std::string & | i_parname, | ||
const double & | dflt_max_gap_size, | ||
const std::vector< std::pair< std::string, std::string > > & | vecArgs | ||
) |
|
virtual |
Implements mio::ResamplingAlgorithms.
|
virtual |
Implements mio::ResamplingAlgorithms.