MeteoIODoc 20241221.207bde49
mio::ListonWindAlgorithm Class Reference

Detailed Description

Curvature/slope influenced wind interpolation algorithm.

This is an implementation of the method described in G. E. Liston and K. Elder, "A meteorological distribution system for high-resolution terrestrial modeling (MicroMet)", Journal of Hydrometeorology, 7.2, 2006. The wind speed and direction are spatially interpolated using IDWLapseAlgorithm. Then, the wind speed and direction fields are altered by wind weighting factors and wind diverting factors (respectively) calculated from the local curvature and slope (as taken from the DEM, see DEMObject). The wind diverting factor is actually the same as in RyanAlgorithm. It takes the following arguments:

  • ETA: this is a topographic length scale (m) for calculating the curvature. Recommended is to choose this length scale equal to approximately half the wavelength of the topographic features within the domain (e.g., the distance from a typical ridge to the nearest valley) (default: equal to grid cell size).
  • SCALE: this is a scaling parameter to smooth the IDW distribution. In effect, this is added to the distance in order to move into the tail of the 1/d distribution (default: 1000m);
  • ALPHA: this is an exponent to the 1/d distribution (default: 1);
  • all the trend-controlling arguments supported by Trend::Trend().
VW::algorithms = LISTON_WIND

#include <ListonWindAlgorithm.h>

Public Member Functions

 ListonWindAlgorithm (const std::vector< std::pair< std::string, std::string > > &vecArgs, const std::string &i_algo, const std::string &i_param, TimeSeriesManager &i_tsm)
 
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...
 

Protected Member Functions

void simpleWindInterpolate (const DEMObject &dem, Grid2DObject &VW, Grid2DObject &DW)
 
- 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

Trend trend
 
std::vector< double > vecDataVW
 
std::vector< double > vecDataDW
 vectors of extracted VW and DW More...
 
double eta
 
double scale
 
double alpha
 a scale parameter for calculating curvature, a scale parameter to smooth out the 1/dist and an exponent More...
 
size_t param_idx
 
bool inputIsAllZeroes
 
- Protected Attributes inherited from mio::InterpolationAlgorithm
TimeSeriesManagertsmanager
 
Date date
 
std::vector< MeteoDatavecMeteo
 
std::vector< double > vecData
 store the measurement for the given parameter More...
 
std::vector< StationDatavecMeta
 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...
 

Additional Inherited Members

- Public Attributes inherited from mio::InterpolationAlgorithm
const std::string algo
 

Constructor & Destructor Documentation

◆ ListonWindAlgorithm()

mio::ListonWindAlgorithm::ListonWindAlgorithm ( const std::vector< std::pair< std::string, std::string > > &  vecArgs,
const std::string &  i_algo,
const std::string &  i_param,
TimeSeriesManager i_tsm 
)

Member Function Documentation

◆ calculate()

void mio::ListonWindAlgorithm::calculate ( const DEMObject dem,
Grid2DObject grid 
)
virtual

Implements mio::InterpolationAlgorithm.

Reimplemented in mio::RyanAlgorithm.

◆ getQualityRating()

double mio::ListonWindAlgorithm::getQualityRating ( const Date i_date)
virtual

Implements mio::InterpolationAlgorithm.

Reimplemented in mio::RyanAlgorithm.

◆ simpleWindInterpolate()

void mio::ListonWindAlgorithm::simpleWindInterpolate ( const DEMObject dem,
Grid2DObject VW,
Grid2DObject DW 
)
protected

Member Data Documentation

◆ alpha

double mio::ListonWindAlgorithm::alpha
protected

a scale parameter for calculating curvature, a scale parameter to smooth out the 1/dist and an exponent

◆ eta

double mio::ListonWindAlgorithm::eta
protected

◆ inputIsAllZeroes

bool mio::ListonWindAlgorithm::inputIsAllZeroes
protected

◆ param_idx

size_t mio::ListonWindAlgorithm::param_idx
protected

◆ scale

double mio::ListonWindAlgorithm::scale
protected

◆ trend

Trend mio::ListonWindAlgorithm::trend
protected

◆ vecDataDW

std::vector<double> mio::ListonWindAlgorithm::vecDataDW
protected

vectors of extracted VW and DW

◆ vecDataVW

std::vector<double> mio::ListonWindAlgorithm::vecDataVW
protected

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