MeteoIODoc  MeteoIODoc-2.9.0
mio::AllSkyLWGenerator Class Reference

Detailed Description

ILWR all sky parametrization.

Using air temperature (TA) and relative humidity (RH) and optionnally cloud transmissivity (TAU_CLD), this offers the choice of several all-sky parametrizations, with the following arguments:

  • TYPE: specify which parametrization should be used, from the following:
    • CARMONA – from Carmona et al., "Estimation of daytime downward longwave radiation under clear and cloudy skies conditions over a sub-humid region." Theoretical and applied climatology 115.1-2 (2014): 281-295.
    • CRAWFORD – from Crawford and Duchon, "An Improved Parametrization for Estimating Effective Atmospheric Emissivity for Use in Calculating Daytime Downwelling Longwave Radiation", Journal of Applied Meteorology, 38, 1999, pp 474-480
    • OMSTEDT – from Omstedt, "A coupled one-dimensional sea ice-ocean model applied to a semi-enclosed basin", Tellus, 42 A, 568-582, 1990, DOI:10.1034/j.1600-0870.1990.t01-3-00007.
    • KONZELMANN – from Konzelmann et al., "Parameterization of global and longwave incoming radiation for the Greenland Ice Sheet." Global and Planetary change 9.1 (1994): 143-164.
    • UNSWORTH – from Unsworth and Monteith, "Long-wave radiation at the ground", Q. J. R. Meteorolo. Soc., Vol. 101, 1975, pp 13-24 coupled with a clear sky emissivity following (Dilley, 1998).
  • USE_RSWR. If set to TRUE, when no ISWR is available but RSWR and HS are available, a ground albedo is estimated (either soil or snow albedo) and ISWR is then computed from RSWR. Unfortunatelly, this is not very precise... (thus default is false)

If no cloud transmissivity is provided in the data, it is calculated from the solar index (ratio of measured iswr to potential iswr, therefore using the current location (lat, lon, altitude) and ISWR to parametrize the cloud cover). This relies on (Kasten and Czeplak, 1980) except for Crawford that provides its own parametrization. The last evaluation of cloud transmissivity is used all along during the times when no ISWR is available if such ratio is not too old (ie. no more than 1 day old). If only RSWR is measured, the measured snow height is used to determine if there is snow on the ground or not. In case of snow, a snow albedo of 0.85 is used while in the abscence of snow, a grass albedo of 0.23 is used in order to compute ISWR from RSWR (please be aware that this very significantly degrades the performance of the parametrization). Finally, it is recommended to also use a clear sky generator (declared after this one) for the case of no available short wave measurement (by declaring the ClearSky generator after AllSky).

[Generators]
ILWR::generator1 = allsky_LW
ILWR::arg1::type = Omstedt

The graph below shows the comparison between measured and modeled ILWR depending on the chosen parametrization. The measured data (ISWR, TA, RH and the reference ILWR) comes from the Weissfluhjoch *WFJ AWS (2691m, Davos, Switzerland) for the 2010-08-01 – 2019-08-01 period with half-hourly resolution. The data has been binned every 5 W/m², the black dots represent the average of the bin, the greay area contains every data point (ie it shows the minimum and maximum data) while the brown area is defined as average±σ.

Comparison between measured and parametrized ILWR at the Weissfluhjoch *WFJ station (2691m, Davos, Switzerland) for the 2010-08-01 – 2019-08-01 period

#include <AllSkyLWGenerator.h>

Public Member Functions

 AllSkyLWGenerator (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)
 
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 ()
 
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...
 
- 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

◆ AllSkyLWGenerator()

mio::AllSkyLWGenerator::AllSkyLWGenerator ( 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::AllSkyLWGenerator::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::AllSkyLWGenerator::generate ( const size_t &  param,
MeteoData md 
)
virtual

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