SNOWPACK 20240717.43bd1bf
CanopyData Class Reference

Detailed Description

Canopy data used as a pointer in the SnowStation structure.

  1. INSTANTANEOUS VARIABLES
    1. Canopy "state" variables, and some auxiliaries
    2. Properties which could be given here or as a parameter field
    3. Aerodynamic resistances
  2. CUMULATED/AVERAGE VARIABLES
    cumulated between time series output timesteps - these variables can be moved or mirrored in a canopy "surface" data structure
    1. Albedo and similar auxiliaries
    2. Radiation fluxes
    3. Canopy turbulent heat fluxes
    4. Canopy evaporative fluxes
    5. Canopy mass fluxes

#include <DataClasses.h>

Public Member Functions

 CanopyData ()
 
void initialize (const SN_SNOWSOIL_DATA &SSdata, const bool useCanopyModel, const bool isAlpine3D)
 Initialize all the CData elements value with values by default or with values read from the SNO file. This function is called in SnowStation::initialize, whch is called by XXX in the main(). More...
 
void reset (const bool &cumsum_mass)
 
void initializeSurfaceExchangeData ()
 Function called to initialize the canopy "Surface" exchange data (to enable accumulated mass and energy fluxes) More...
 
void multiplyFluxes (const double &factor)
 If multiple fluxes have been summed over multiple time steps, the fluxes then need to be averaged by the number of steps. The albedos are also averaged in this method. More...
 
const std::string toString () const
 

Public Attributes

double int_cap_snow
 
double int_cap_rain
 Specific interception capacity for rain (I_LAI) (mm/LAI) More...
 
double interception_timecoef
 
double can_alb_dry
 RADIATION BALANCE. More...
 
double can_alb_wet
 
double can_alb_snow
 
double krnt_lai
 
double can_diameter
 
double biomass_heat_capacity
 
double biomass_density
 
double lai_frac_top_default
 
double trunk_frac_height
 
double trunkalb
 
double et
 
bool canopy_stabilitycorrection
 
double roughmom_to_canopyheight_ratio
 Ratio between canopy height and roughness length. More...
 
double displ_to_canopyheight_ratio
 As above for displacement height. More...
 
double raincrease_snow
 
double canopytemp_maxchange_perhour
 Maximum allowed canopy temperature change (K hr-1) More...
 
double roughheat_to_roughmom_ratio
 (~=1, but Not allowed to be exactly 1) More...
 
double can_ch0
 minimum heat exchange (Wm-2K-1) at zero wind More...
 
double can_rs_mult
 1+CAN_RS_MULT = maximum factor to increase Cdata->rs below canopy More...
 
double rsmin
 TRANSPIRATION. More...
 
double f3_gd
 gd (Pa-1) parameter for canopy surface resistance response to vapour pressure: More...
 
double rootdepth
 Root depth, determining the soil layers influenced by root water uptake. More...
 
double wp_fraction
 Wilting point, defined as a fraction of water content at field capacity (-) More...
 
double h_wilt
 Wilting point pressure head, when using Richards equation for soil. More...
 
double storage
 intercepted water (mm or kg m-2) More...
 
double temp
 temperature (K) More...
 
double sigf
 radiation transmissivity (1) More...
 
double ec
 longwave emissivity (1) More...
 
double lai
 
double z0m
 
double z0h
 
double zdispl
 
double height
 
double direct_throughfall
 
double ra
 from canopy air to reference height More...
 
double rc
 from canopy to canopy air More...
 
double rs
 from subsurface to canpopy air More...
 
double rstransp
 stomatal surface resistance for transpiration More...
 
double canopyalb
 canopy albedo [-] More...
 
double totalalb
 total albedo above canopy and snow/soil surface [-] More...
 
double wetfraction
 fraction of canopy covered by interception [-] More...
 
double intcapacity
 maximum interception storage [mm] More...
 
double rswrac
 upward shortwave above canopy More...
 
double iswrac
 downward shortwave radiation above canopy More...
 
double rswrbc
 upward shortwave below canopy More...
 
double iswrbc
 downward shortwave radiation below canopy More...
 
double ilwrac
 downward longwave radiation ABOVE canopy More...
 
double rlwrac
 upward longwave radiation ABOVE canopy More...
 
double ilwrbc
 downward longwave radiation BELOW canopy More...
 
double rlwrbc
 upward longwave radiation BELOW canopy More...
 
double rsnet
 net shortwave radiation More...
 
double rlnet
 net longwave radiation More...
 
double sensible
 
double latent
 
double latentcorr
 
double transp
 
double intevap
 
double interception
 
double throughfall
 
double snowunload
 
double snowfac
 snowfall above canopy More...
 
double rainfac
 rainfall above canopy More...
 
double liquidfraction
 
double sigftrunk
 radiation interception cross section for trunk layer () More...
 
double Ttrunk
 trunk temperature (K) More...
 
double CondFluxCanop
 biomass heat storage flux towards Canopy (if 1L) towards Leaves (if 2L). (>0 towards canopy) More...
 
double CondFluxTrunks
 biomass heat storage flux towards Trunks (if 2L) More...
 
double LWnet_Trunks
 net LW to trunks (>0 towards trunks) More...
 
double SWnet_Trunks
 net SW to trunks (>0 towards trunks) More...
 
double QStrunks
 sensible heat flux from trunks (>0 if heat lost from trunk) More...
 
double forestfloor_alb
 albedo of the forest floor More...
 
double BasalArea
 basal area of trees on the stand More...
 
double HMLeaves
 Leaves heat mass (J K-1 /m2 ground surface) More...
 
double HMTrunks
 Trunks heat mass (J K-1 /m2 ground surface) More...
 

Friends

std::ostream & operator<< (std::ostream &os, const CanopyData &data)
 
std::istream & operator>> (std::istream &is, CanopyData &data)
 

Constructor & Destructor Documentation

◆ CanopyData()

CanopyData::CanopyData ( )
inline

Member Function Documentation

◆ initialize()

void CanopyData::initialize ( const SN_SNOWSOIL_DATA SSdata,
const bool  useCanopyModel,
const bool  isAlpine3D 
)

Initialize all the CData elements value with values by default or with values read from the SNO file. This function is called in SnowStation::initialize, whch is called by XXX in the main().

Parameters
SSdatasoil data SN_SNOWSOIL_DATA& SSdata created in the main.
useCanopyModelset to true if the canopy model is used
isAlpine3Dset to true when calling from Alpine3D in order to prevent the generation of warnings
Author
Adrien Michel

Specific interception capacity for rain (I_LAI) (mm/LAI)

Coef in interception function, see (Pomeroy et al,1998) where a value of 0.7 was found to be appropriate for hourly time-step, but smaller time steps require smaller values, 0.5 was found reasoanble by using the SnowMIP2 data (2007-12-09)

RADIATION BALANCE

TURBULENT HEAT EXCHANGE Stab. corr. aerodyn. resist. above and below canopy: 0=off and 1=on (Monin-Obukhov formulation)

Ratio between canopy height and roughness length

As above for displacement height

Fractional increase of aerodynamic resistance for evaporation of intercepted snow.

  • 10.0 from Koivusalo and Kokkonen (2002)
  • 8.0 calibration with Alptal data

Maximum allowed canopy temperature change (K hr-1)

(~=1, but Not allowed to be exactly 1)

minimum heat exchange (Wm-2K-1) at zero wind

1+CAN_RS_MULT = maximum factor to increase Cdata->rs below canopy

TRANSPIRATION Minimum canopy surface resistance, 500 (sm-1) is for needle leaf treas van den Hurk et al (2000) *75% Gustafsson et al (2003)

gd (Pa-1) parameter for canopy surface resistance response to vapour pressure:

  • 0.0003 = trees (needle or broadleafs)
  • 0=crops, grass, tundra etc

Root depth, determining the soil layers influenced by root water uptake

Wilting point, defined as a fraction of water content at field capacity (-)

Wilting point pressure head, when using Richards equation for soil.

< longwave emissivity (1)

< radiation transmissivity (1)

< from canopy air to reference height

< from canopy to canopy air

< from subsurface to canpopy air

< canopy albedo [-]

< total albedo above canopy and snow/soil surface [-]

< fraction of canopy covered by interception [-]

< maximum interception storage [mm]

< upward shortwave above canopy

< downward shortwave radiation above canopy

< upward shortwave below canopy

< downward shortwave radiation below canopy

< downward longwave radiation ABOVE canopy

< upward longwave radiation ABOVE canopy

< downward longwave radiation BELOW canopy

< upward longwave radiation BELOW canopy

< net shortwave radiation

< net longwave radiation

< snowfall above canopy

< rainfall above canopy

< radiation interception cross section for trunk layer ()

< biomass heat storage flux towards Canopy (if 1L) towards Leaves (if 2L). (>0 towards canopy)

< biomass heat storage flux towards Trunks (if 2L)

< net LW to trunks (>0 towards trunks)

< net SW to trunks (>0 towards trunks)

< sensible heat flux from trunks (>0 if heat lost from trunk)

< albedo of the forest floor

< basal area of trees on the stand

< Leaves heat mass (J K-1 /m2 ground surface)

< Trunks heat mass (J K-1 /m2 ground surface)

◆ initializeSurfaceExchangeData()

void CanopyData::initializeSurfaceExchangeData ( )

Function called to initialize the canopy "Surface" exchange data (to enable accumulated mass and energy fluxes)

◆ multiplyFluxes()

void CanopyData::multiplyFluxes ( const double &  factor)

If multiple fluxes have been summed over multiple time steps, the fluxes then need to be averaged by the number of steps. The albedos are also averaged in this method.

Parameters
factorAveraging factor (for example, 1/Nsteps)

◆ reset()

void CanopyData::reset ( const bool &  cumsum_mass)

◆ toString()

const std::string CanopyData::toString ( ) const

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const CanopyData data 
)
friend

◆ operator>>

std::istream & operator>> ( std::istream &  is,
CanopyData data 
)
friend

Member Data Documentation

◆ BasalArea

double CanopyData::BasalArea

basal area of trees on the stand

◆ biomass_density

double CanopyData::biomass_density

◆ biomass_heat_capacity

double CanopyData::biomass_heat_capacity

ENERGY BALANCE parameters for HeatMass and 2layercanopy

◆ can_alb_dry

double CanopyData::can_alb_dry

RADIATION BALANCE.

◆ can_alb_snow

double CanopyData::can_alb_snow

◆ can_alb_wet

double CanopyData::can_alb_wet

◆ can_ch0

double CanopyData::can_ch0

minimum heat exchange (Wm-2K-1) at zero wind

◆ can_diameter

double CanopyData::can_diameter

◆ can_rs_mult

double CanopyData::can_rs_mult

1+CAN_RS_MULT = maximum factor to increase Cdata->rs below canopy

◆ canopy_stabilitycorrection

bool CanopyData::canopy_stabilitycorrection

TURBULENT HEAT EXCHANGE Stab. corr. aerodyn. resist. above and below canopy: 0=off and 1=on (Monin-Obukhov formulation)

◆ canopyalb

double CanopyData::canopyalb

canopy albedo [-]

◆ canopytemp_maxchange_perhour

double CanopyData::canopytemp_maxchange_perhour

Maximum allowed canopy temperature change (K hr-1)

◆ CondFluxCanop

double CanopyData::CondFluxCanop

biomass heat storage flux towards Canopy (if 1L) towards Leaves (if 2L). (>0 towards canopy)

◆ CondFluxTrunks

double CanopyData::CondFluxTrunks

biomass heat storage flux towards Trunks (if 2L)

◆ direct_throughfall

double CanopyData::direct_throughfall

◆ displ_to_canopyheight_ratio

double CanopyData::displ_to_canopyheight_ratio

As above for displacement height.

◆ ec

double CanopyData::ec

longwave emissivity (1)

◆ et

double CanopyData::et

◆ f3_gd

double CanopyData::f3_gd

gd (Pa-1) parameter for canopy surface resistance response to vapour pressure:

  • 0.0003 = trees (needle or broadleafs)
  • 0=crops, grass, tundra etc

◆ forestfloor_alb

double CanopyData::forestfloor_alb

albedo of the forest floor

◆ h_wilt

double CanopyData::h_wilt

Wilting point pressure head, when using Richards equation for soil.

◆ height

double CanopyData::height

◆ HMLeaves

double CanopyData::HMLeaves

Leaves heat mass (J K-1 /m2 ground surface)

◆ HMTrunks

double CanopyData::HMTrunks

Trunks heat mass (J K-1 /m2 ground surface)

◆ ilwrac

double CanopyData::ilwrac

downward longwave radiation ABOVE canopy

◆ ilwrbc

double CanopyData::ilwrbc

downward longwave radiation BELOW canopy

◆ int_cap_rain

double CanopyData::int_cap_rain

Specific interception capacity for rain (I_LAI) (mm/LAI)

◆ int_cap_snow

double CanopyData::int_cap_snow

CANOPY PARAMETERS DEFAULT VALUES These values can be changed in the .sno file brief History of changed values:

  • 2007-12-20: update based on data from all SnowMIP2 sites, and calibration using Alptal data brief Specific interception capacity for snow (i_LAI) (mm/LAI)
    Please note that this parameter is further multiplied with (0.27+46/new_snow_density[Ta]) following (Pomeroy et al, Hydr. Proc. 1998)
  • 5.9 Spruce and 6.6 Pine (Schmidt&Glums,CanJForRes,1991)

◆ intcapacity

double CanopyData::intcapacity

maximum interception storage [mm]

◆ interception

double CanopyData::interception

◆ interception_timecoef

double CanopyData::interception_timecoef

Coef in interception function, see (Pomeroy et al,1998) where a value of 0.7 was found to be appropriate for hourly time-step, but smaller time steps require smaller values, 0.5 was found reasoanble by using the SnowMIP2 data (2007-12-09)

◆ intevap

double CanopyData::intevap

◆ iswrac

double CanopyData::iswrac

downward shortwave radiation above canopy

◆ iswrbc

double CanopyData::iswrbc

downward shortwave radiation below canopy

◆ krnt_lai

double CanopyData::krnt_lai

◆ lai

double CanopyData::lai

◆ lai_frac_top_default

double CanopyData::lai_frac_top_default

◆ latent

double CanopyData::latent

◆ latentcorr

double CanopyData::latentcorr

◆ liquidfraction

double CanopyData::liquidfraction

◆ LWnet_Trunks

double CanopyData::LWnet_Trunks

net LW to trunks (>0 towards trunks)

◆ QStrunks

double CanopyData::QStrunks

sensible heat flux from trunks (>0 if heat lost from trunk)

◆ ra

double CanopyData::ra

from canopy air to reference height

◆ raincrease_snow

double CanopyData::raincrease_snow

Fractional increase of aerodynamic resistance for evaporation of intercepted snow.

  • 10.0 from Koivusalo and Kokkonen (2002)
  • 8.0 calibration with Alptal data

◆ rainfac

double CanopyData::rainfac

rainfall above canopy

◆ rc

double CanopyData::rc

from canopy to canopy air

◆ rlnet

double CanopyData::rlnet

net longwave radiation

◆ rlwrac

double CanopyData::rlwrac

upward longwave radiation ABOVE canopy

◆ rlwrbc

double CanopyData::rlwrbc

upward longwave radiation BELOW canopy

◆ rootdepth

double CanopyData::rootdepth

Root depth, determining the soil layers influenced by root water uptake.

◆ roughheat_to_roughmom_ratio

double CanopyData::roughheat_to_roughmom_ratio

(~=1, but Not allowed to be exactly 1)

◆ roughmom_to_canopyheight_ratio

double CanopyData::roughmom_to_canopyheight_ratio

Ratio between canopy height and roughness length.

◆ rs

double CanopyData::rs

from subsurface to canpopy air

◆ rsmin

double CanopyData::rsmin

TRANSPIRATION.

Minimum canopy surface resistance, 500 (sm-1) is for needle leaf treas van den Hurk et al (2000) *75% Gustafsson et al (2003)

◆ rsnet

double CanopyData::rsnet

net shortwave radiation

◆ rstransp

double CanopyData::rstransp

stomatal surface resistance for transpiration

◆ rswrac

double CanopyData::rswrac

upward shortwave above canopy

◆ rswrbc

double CanopyData::rswrbc

upward shortwave below canopy

◆ sensible

double CanopyData::sensible

◆ sigf

double CanopyData::sigf

radiation transmissivity (1)

◆ sigftrunk

double CanopyData::sigftrunk

radiation interception cross section for trunk layer ()

◆ snowfac

double CanopyData::snowfac

snowfall above canopy

◆ snowunload

double CanopyData::snowunload

◆ storage

double CanopyData::storage

intercepted water (mm or kg m-2)

◆ SWnet_Trunks

double CanopyData::SWnet_Trunks

net SW to trunks (>0 towards trunks)

◆ temp

double CanopyData::temp

temperature (K)

◆ throughfall

double CanopyData::throughfall

◆ totalalb

double CanopyData::totalalb

total albedo above canopy and snow/soil surface [-]

◆ transp

double CanopyData::transp

◆ trunk_frac_height

double CanopyData::trunk_frac_height

◆ trunkalb

double CanopyData::trunkalb

◆ Ttrunk

double CanopyData::Ttrunk

trunk temperature (K)

◆ wetfraction

double CanopyData::wetfraction

fraction of canopy covered by interception [-]

◆ wp_fraction

double CanopyData::wp_fraction

Wilting point, defined as a fraction of water content at field capacity (-)

◆ z0h

double CanopyData::z0h

◆ z0m

double CanopyData::z0m

◆ zdispl

double CanopyData::zdispl

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