DEM-based wind-exposure interpolation algorithm.
This is an implementation of the method described in Winstral, Elder, & Davis, "Spatial snow modeling of wind-redistributed snow using terrain-based parameters", 2002, Journal of Hydrometeorology, 3(5), 524-538. The DEM is used to compute wind exposure factors that are used to alter the precipitation fields. It is usually a good idea to provide a DEM that also contain the accumulated snow height in order to get a progressive softening of the terrain features.
It takes the following arguments:
If type=AUTO, the synoptic wind direction will be computed as follow: the stations are located in the DEM and their wind shading (or exposure) is computed. If at least one station is found that is not sheltered from the wind (in every direction), it provides the synoptic wind (in case of multiple stations, the vector average is used). Please note that the stations that are not included in the DEM are considered to be sheltered. If no such station is found, the vector average of all the available stations is used.
Another example, using non-default values for the base algorithm:
#include <WinstralAlgorithm.h>
Public Member Functions | |
WinstralAlgorithm (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &i_algo, const std::string &i_param, TimeSeriesManager &i_tsm, GridsManager &i_gdm, Meteo2DInterpolator &i_mi) | |
virtual double | getQualityRating (const Date &i_date) |
virtual void | calculate (const DEMObject &dem, Grid2DObject &grid) |
Public Member Functions inherited from mio::InterpolationAlgorithm | |
InterpolationAlgorithm (const std::vector< std::pair< std::string, std::string > > &, const std::string &i_algo, const std::string &i_param, TimeSeriesManager &i_tsm) | |
virtual | ~InterpolationAlgorithm () |
virtual double | getQualityRating (const Date &i_date)=0 |
virtual void | calculate (const DEMObject &dem, Grid2DObject &grid)=0 |
std::string | getInfo () const |
Return an information string about the interpolation process. More... | |
Additional Inherited Members | |
Public Attributes inherited from mio::InterpolationAlgorithm | |
const std::string | algo |
Protected Member Functions inherited from mio::InterpolationAlgorithm | |
std::vector< double > | getData (const Date &i_date, const std::string &i_param) |
size_t | getData (const Date &i_date, const std::string &i_param, std::vector< double > &o_vecData, std::vector< StationData > &o_vecMeta) |
Protected Attributes inherited from mio::InterpolationAlgorithm | |
TimeSeriesManager & | tsmanager |
Date | date |
std::vector< MeteoData > | vecMeteo |
std::vector< double > | vecData |
store the measurement for the given parameter More... | |
std::vector< StationData > | vecMeta |
store the station data for the given parameter More... | |
std::ostringstream | info |
to store some extra information about the interplation process More... | |
const std::string | param |
the parameter that we will interpolate More... | |
size_t | nrOfMeasurments |
Number of stations that have been used, so this can be reported to the user. More... | |
mio::WinstralAlgorithm::WinstralAlgorithm | ( | const std::vector< std::pair< std::string, std::string > > & | vecArgs, |
const std::string & | i_algo, | ||
const std::string & | i_param, | ||
TimeSeriesManager & | i_tsm, | ||
GridsManager & | i_gdm, | ||
Meteo2DInterpolator & | i_mi | ||
) |
|
virtual |
Implements mio::InterpolationAlgorithm.
|
virtual |
Implements mio::InterpolationAlgorithm.