This module calculates the radiative transfer of SW radiation in snow-covered terrain. It can take into account anisotropic reflection of light on snow (forward scattering) and multiple reflections in the terrain.
More...
|
| TerrainRadiationComplex (const mio::Config &cfg, const mio::DEMObject &dem_in, const std::string &method) |
|
| ~TerrainRadiationComplex () |
|
virtual void | getRadiation (mio::Array2D< double > &direct, mio::Array2D< double > &diffuse, mio::Array2D< double > &terrain, const mio::Array2D< double > &direct_unshaded_horizontal, const mio::Array2D< double > &total_ilwr, mio::Array2D< double > &sky_ilwr, mio::Array2D< double > &terrain_ilwr, double solarAzimuth, double solarElevation) |
| Computes direct, diffuse and terrain radiation for each gridpoint. Terrain radiation. More...
|
|
virtual void | setMeteo (const mio::Array2D< double > &albedo, const mio::Array2D< double > &ta) |
|
void | getSkyViewFactor (mio::Array2D< double > &o_sky_vf) |
|
void | setSP (const mio::Date timestamp, const double solarAzimuth, const double solarElevation) |
|
void | writeSP (const unsigned int max_steps) |
|
| TerrainRadiationAlgorithm (const std::string &i_algo) |
|
virtual | ~TerrainRadiationAlgorithm () |
|
bool | hasSP () |
|
virtual void | getRadiation (mio::Array2D< double > &direct, mio::Array2D< double > &diffuse, mio::Array2D< double > &terrain, const mio::Array2D< double > &direct_unshaded_horizontal, const mio::Array2D< double > &total_ilwr, mio::Array2D< double > &sky_ilwr, mio::Array2D< double > &terrain_ilwr, double solarAzimuth, double solarElevation)=0 |
|
virtual void | setMeteo (const mio::Array2D< double > &albedo, const mio::Array2D< double > &ta)=0 |
|
virtual void | setSP (const mio::Date, const double, const double) |
|
virtual void | writeSP (const unsigned int) |
|
virtual void | getSkyViewFactor (mio::Array2D< double > &o_sky_vf)=0 |
|
This module calculates the radiative transfer of SW radiation in snow-covered terrain. It can take into account anisotropic reflection of light on snow (forward scattering) and multiple reflections in the terrain.
The price for this complexity is high: The initialization time is extremely long (for a DEM with 30'000 pixels it can be 12 hours. However, if a ViewList-file is generated during the initialization, it can be bypassed in later simulations. ) In the main computation loop, the effort is considerable too and may dominate the simulation time in many cases. Therefore, this module is recommended for explicit radiation investigations based on relatively small, high-resolution DEM's. It can also be coupled to the SolarPanel-module for precise simulation of radiation on photovoltaic panels.
The algorithm is described in F. von Rütte et al., "How Forward-Scattering Snow and Terrain Change the Alpine Radiation Balance
With Application to Solar Panels", Journal of Geophysical Research: Atmospheres 126.15 (2021), 10.1029/2020JD034333 or in the master thesis of Felix von Rütte (under the supervision of M. Lehning), entitled "Radiative Transfer Model for Snowy Mountains" (in the comments, it is often referred to by the abbreviation "MT").
This algorithm is configured with the following ini keys:
- COMPLEX_ANISOTROPY: Whether a snow BRDF should be included. False means isotropic scattering (true or false);
- COMPLEX_MULTIPLE : Whether multiple scattering in the terrain should be taken into account (true or false);
- COMPLEX_WRITE_VIEWLIST : Whether the initialization data should be written to file (it requires an already existing "output" folder); (true or false);
- COMPLEX_READ_VIEWLIST : Whether an existing initialization file should be read in; bypassing the initialization (true or false);
- COMPLEX_VIEWLISTFILE : Path and filename to the ViewList file if existing, for example "../input/surface-grids/ViewList_Totalp_30x30.rad", ()
[EBalance]
TERRAIN_RADIATION = TRUE
TERRAIN_RADIATION_METHOD = COMPLEX
COMPLEX_ANISOTROPY = TRUE
COMPLEX_MULTIPLE = TRUE
COMPLEX_WRITE_VIEWLIST = FALSE
COMPLEX_READ_VIEWLIST = TRUE
COMPLEX_VIEWLISTFILE = ../input/surface-grids/ViewList_Totalp_30x30.rad