Unstable

initial_sensible_heat_flux_canopy_daily(rn_24_canopy, t_24_init)

Computes the initial sensible heat flux before the iteration which solves the stability corrections. The first estimation of transpiration is used to estimate the initial sensible heat flux.

\[H_{canopy}=Q_{canopy}^{*}-T\]
Parameters
  • rn_24_canopy (float) – daily net radiation for the canopy, \(Q_{canopy}^{*}\) [W m-2]

  • t_24_init (float) – initial estimate of daily transpiration, \(T\) [W m-2]

Returns

h_canopy_24_init – initial estimate of the sensible heat flux, \(H^{canopy}\) [W m-2]

Return type

float

initial_sensible_heat_flux_soil_daily(rn_24_soil, e_24_init, g0_24)

Computes the initial sensible heat flux before the iteration which solves the stability corrections. The first estimation of transpiration is used to estimate the initial sensible heat flux.

\[H_{soil}=Q_{soil}^{*}-G_{0}-E\]
Parameters
  • rn_24_soil (float) – daily net radiation for the soil, \(Q_{canopy}^{*}\) [W m-2]

  • g0_24 (float) – daily soil heat flux, \(G_{0}\) [W m-2]

  • e_24_init (float) – initial estimate of daily evaporation, \(E\) [W m-2]

Returns

h_soil_24_init – initial estimate of the sensible heat flux, \(H_{canopy}\) [W m-2]

Return type

float

initial_friction_velocity_daily(u_b_24, z0m, disp, z_b=100)

Computes the initial friction velocity without using stability corrections.

\[u_{*}=\frac{k \cdot u_{b}}{ln\left(\frac{z_{b}-d}{z_{0,m}}\right)}\]
Parameters
  • u_b_24 (float) – daily wind speed at blending heigt, \(u_{b}\) [m s-1]

  • z0m (float) – surface roughness, \(z_{0,m}\) [m]

  • disp (float) – displacement height, \(d\) [m]

  • z_b (float) – blending height, \(z_{b}\) [m]

Returns

u_star_24_init – initial estimate of the daily friction velocity, \(u_{*}\) [m s-1]

Return type

float

initial_friction_velocity_soil_daily(u_b_24, disp, z_b=100)

Computes the initial firction velocity without using stability corrections.

\[u_{*}=\frac{k \cdot u_{b}}{ln\left(\frac{z_{b}-d}{z_{0,m}}\right)}\]
Parameters
  • u_b_24 (float) – daily wind speed at blending heigt, \(u_{b}\) [m s-1]

  • disp (float) – displacement height, \(d\) [m]

  • z_b (float) – blending height, \(z_{b}\) [m]

Returns

u_star_24_soil_init – initial estimate of the daily friction velocity for soil, \(u_{*}\) [m s-1]

Return type

float

monin_obukhov_length(h_flux, ad, u_star, t_air_k)

Computes the Monin-Obukhov length. The Monin-Obukhov length is used to describe the effects of buoyancy on turbulent flows. The Monin-Obukhov length is usually negative during daytime.

\[L=\frac{-\rho c_{p}u_{*}^{3}T_{a}}{kgH_{canopy}}\]
Parameters
  • h_flux (float) – sensible heat flux, \(H\) [W m-2]

  • ad (float) – air density, \(\rho\) [kg m-3]

  • u_star (float) – Monin Obukhov length, \(L\) [m]

  • t_air_k (float) – air tempererature in kelvin, \(T_{a}\) [K]

Returns

monin – monin obukhov length, \(L\) [m]

Return type

float

stability_parameter(monin, disp, z_b=100)

Computes the stability parameter introduced by Monin and Obukhov. This parameter includes effects of both shear stress and buoyancy on turbulence. It is applicable to blending height.

\[x_{b}=1-16\left(\frac{z_{b}-d}{L}\right)^{0.25}\]
Parameters
  • monin (float) – monin obukhov length, \(L\) [m]

  • z_b (float) – blending height, \(z_{b}\) [m]

  • disp (float) – displacement height, \(d\) [m]

Returns

x_b – stability parameter used in stability correction, \(x_{b}\) [-]

Return type

float

stability_factor(x_b)

Computes the stability correction for heat at blending height.

\[\psi_{h,b}=2 \cdot \ln\left(\frac{1+x_{b}}{2}\right)+ \ln\left(\frac{1+x_{b}^{2}}{2}\right)- 2 \cdot \arctan\left(x_{b}\right)+0.5 \cdot \pi\]
Parameters

x_b (float) – stability parameter used in stability correction, \(x_{b}\) [-]

Returns

sf – stability correction for heat, \(\psi_{h,b}\) [-]

Return type

float

stability_parameter_obs(monin, z_obs)

Computes the stability parameter introduced by Monin and Obukhov. This parameter includes effects of both shear stress and buoyancy on turbulence. It is applicable to observation height.

\[x_{obs}=1-16\left(\frac{z_{obs}}{L}\right)^{0.25}\]
Parameters
  • monin (float) – monin obukhov length, \(L\) [m]

  • z_obs (float) – observation height, \(z_{obs}\) [m]

Returns

x_b_obs – stability parameter used in stability correction for observation height, \(x_{obs}\) [-]

Return type

float

stability_correction_heat_obs(x_b_obs)

Computes the stability correction for heat at observation height.

\[\psi_{h,obs}=2 \cdot \ln\left(\frac{1+x_{obs}^{2}}{2}\right)\]
Parameters

x_b_obs (float) – stability parameter used in stability correction for observation height, \(x_{obs}\) [-]

Returns

sf_obs – stability correction for heat for observation height, \(\psi_{h,obs}\) [-]

Return type

float

friction_velocity(u_b, z_b, z0m, disp, sf)

Computes the friction velocity.

\[u_{*}=\frac{k \cdot u_{b}}{ln\left(\frac{z_{b}-d}{z_{0,m}}\right)-\psi_{h,b}}\]
Parameters
  • u_b (float) – windspeed at blending height, \(u_{b}\) [m]

  • z_b (float) – blending height, \(z_{b}\) [m]

  • z0m (float) – roughness length, \(z_{0,m}\) [m]

  • disp (float) – displacement height, \(d\) [m]

  • sf (float) – stability factor at blending height, \(\psi_{h,b}\) [m]

Returns

u_star – friction velocity, \(u_{*}\) [m s-1]

Return type

float

ra_canopy(h_canopy_init, t_air_k, u_star_init, ad, z0m, disp, u_b, z_obs=2, z_b=100, iter_ra=3)

Computes the aerodynamical resistance for canopy using an iterative approach. The iteration is needed to compute the frication velocity at blending height Iteration stops either after five iterations or if the difference between two subsequent estimations is less than 0.01.

\[\begin{split}L &= \frac{-\rho c_{p}u_{*}^{3}T_{a}}{kgH_{canopy}}\\ x_{b} &= 1-16\left(\frac{z_{b}-d}{L}\right)^{0.25}\\ \psi_{h,b} &= 2 \ln\left(\frac{1+z_{b}}{2}\right)+ \ln\left(\frac{1+z_{b}^{2}}{2}\right)- 2\arctan\left(x_{b}\right)+0.5\pi\\ u_{*} &= \frac{ku_{b}}{ln\left(\frac{z_{b}-d}{z_{0,m}}\right)-\psi_{h,b}}\end{split}\]

The friction velocity is independent of height. So this value can be used to calculate together with the stability correction for heat on observation heigth the aerodynamical resistance.

\[\begin{split}x_{obs}&=1-16 \cdot \left(\frac{z_{obs}}{L}\right)^{0.25} \\ \psi_{h,obs}&=2 \cdot \ln\left(\frac{1+x_{obs}^{2}}{2}\right) \\ r_{a,canopy}&=\frac{\ln\left(\frac{z_{obs}-d} {0.1 \cdot z_{0,m}}\right)-\psi_{h,obs}}{k \cdot u_{*}}\end{split}\]
Parameters
  • h_canopy_init (float) – initial estimate of the sensible heat flux, \(H^{canopy}\) [W m-2]

  • t_air_k (float) – air tempererature in kelvin, \(T_{a}\) [K]

  • u_star_init (float) – initial estimate of the daily friction velocity, \(u_{*}\) [m s-1]

  • ad (float) – air density, \(\rho\) [kg m-3]

  • z_b (float) – blending height, \(z_{b}\) [m]

  • z_obs (float) – observation height, \(z_{obs}\) [m]

  • z0m (float) – roughness length, \(z_{0,m}\) [m]

  • disp (float) – displacement height, \(d\) [m]

  • u_b (float) – windspeed at blending height, \(u_{b}\) [m/s]

  • iter_ra (integer) – number of iterations for aerodynamical resistance, \(n_{ra}\) [-]

Returns

ra_canopy – aerodynamical resistance for canopy, \(r_{a,canopy}\) [s m-1]

Return type

float

transpiration(rn_24_canopy, ssvp_24, ad_24, vpd_24, psy_24, r_canopy, h_canopy_24_init, t_air_k_24, u_star_24_init, z0m, disp, u_b_24, z_obs=2, z_b=100, iter_h=3)

Computes the transpiration using an iterative approach. The iteration is needed to compute the aerodynamical resistance.Iteration stops either after five iterations orif the difference between two subsequent estimations is less than 0.01. The iteration is started with an estimate on \(H\) using the initial guess without stability corrections. Subsequent iterations use the guess with stability corrections.

\[T=\frac{\Delta\left(Q_{canopy}^{*}\right)+\rho c_{p}\ frac{\Delta_{e}}{r_{a,canopy}}}{\Delta+ \gamma\left(1+\frac{r_{canopy}}{r_{a,canopy}}\right)}\]
Parameters
  • rn_24_canopy (float) – net radiation for the canopy, \(Q^{*}_{canopy}\) [Wm-2]

  • ssvp_24 (float) – daily slope of saturated vapour pressure curve \(\Delta_{24}\) [mbar K-1]

  • ad_24 (float) – daily air density, \(\rho_{24}\) [kg m-3]

  • vpd_24 (float) – daily vapour pressure deficit \(\Delta_{e,24}\) [mbar]

  • psy_24 (float) – daily psychrometric constant, \(\gamma_{24}\) [mbar K-1]

  • r_canopy (float) – canopy resistance, \(r_{canopy}\) [sm-1]

  • h_canopy_24_init (float) – initial estimate of the sensible heat flux, \(H^{canopy}\) [W m-2]

  • t_air_k_24 (float) – daily air tempererature in kelvin, \(T_{a}\) [K]

  • u_star_24_init (float) – initial estimate of the daily friction velocity, \(u_{*}\) [m s-1]

  • z0m (float) – roughness length, \(z_{0,m}\) [m]

  • disp (float) – displacement height, \(d\) [m]

  • u_b_24 (float) – daily windspeed at blending height, \(u_{b}\) [m]

  • z_b (float) – blending height, \(z_{b}\) [m]

  • z_obs (float) – observation height, \(z_{obs}\) [m]

  • iter_h (integer) – number of iterations for sensible heat flux, \(n_h\) [-]

Returns

t_24 – daily transpiration energy equivalent, \(T_{24}\) [W m-2]

Return type

float

ra_soil(h_soil_24_init, t_air_k, u_star_24_init, ad, disp, u_b, z_obs=2, z_b=100, iter_ra=3)

Computes the aerodynamical resistance for canopy using an iterative approach. The iteration is needed to compute the friction velocity at blending height Iteration stops either after five iterations or if the difference between two subsequent estimations is less than 0.01.

\[\begin{split}L &= \frac{-\rho c_{p}u_{*}^{3}T_{a}}{kgH_{soil}}\\ x_{b} &= 1-16\left(\frac{z_{b}-d}{L}\right)^{0.25}\\ \psi_{h,b} &= 2\ln\left(\frac{1+z_{b}}{2}\right)+ \ln\left(\frac{1+z_{b}^{2}}{2}\right)- 2\arctan\left(x_{b}\right)+0.5\pi\\ u_{*} &= \frac{ku_{b}}{ln\left(\frac{z_{b}-d}{z_{0,soil}}\right) -\psi_{h,b}}\end{split}\]

The friction velocity is independent of height. So this value can be used to calculate together with the stability correction for heat on observation heigth the aerodynamical resistance.

\[\begin{split}x_{obs} &= 1-16\left(\frac{z_{obs}}{L}\right)^{0.25} \\ \psi_{h,obs} &= 2\ln\left(\frac{1+x_{obs}^{2}}{2}\right) \\ r_{a,soil} &= \frac{\ln\left(\frac{z_{obs}-d} {0.1z_{0,soil}}\right)-\psi_{h,obs}}{ku_{*}}\end{split}\]
Parameters
  • h_soil_24_init (float) – initial estimate of the sensible heat flux for soil, \(H^{soil}\) [W m-2]

  • t_air_k (float) – air tempererature in kelvin, \(T_{a}\) [K]

  • u_star_24_init (float) – initial estimate of the daily friction velocity, \(u_{*}\) [m s-1]

  • ad (float) – air density, \(\rho\) [kg m-3]

  • z_b (float) – blending height, \(z_{b}\) [m]

  • z_obs (float) – observation height, \(z_{obs}\) [m]

  • disp (float) – displacement height, \(d\) [m]

  • u_b (float) – windspeed at blending height, \(u_{b}\) [m]

  • iter_ra (integer) – number of iterations for aerodynamical resistance, \(n_{ra}\) [-]

Returns

ra_soil – aerodynamical resistance for soil, \(r_{a,soil}\) [s m-1]

Return type

float

evaporation(rn_24_soil, g0_24, ssvp_24, ad_24, vpd_24, psy_24, r_soil, h_soil_24_init, t_air_k_24, u_star_24_soil_init, disp, u_b_24, z_b=100, z_obs=2, iter_h=3)

Computes the evaporation using an iterative approach. The iteration is needed to compute the aerodynamic resistance.Iteration stops either after five iterations or if the difference between two subsequent estimations is less than 0.01. The iteration is started with an estimate on \(H\) using the initial guess without stability corrections. Subsequent iterations use the guess with stability corrections.

\[E=\frac{\Delta\left(Q_{soil}^{*}-G\right)+ \rho c_{p}\frac{\Delta_{e}}{r_{a,soil}}} {\Delta+\gamma\left(1+\frac{r_{soil}}{r_{a,soil}}\right)}\]
Parameters
  • rn_24_soil (float) – net radiation for the soil, \(Q^{*}_{canopy}\) [Wm-2]

  • g0_24 (float) – daily soil heat flux, \(G\) [Wm-2]

  • ssvp_24 (float) – daily slope of saturated vapour pressure curve \(\Delta_{24}\) [mbar K-1]

  • ad_24 (float) – daily air density, \(\rho_{24}\) [kg m-3]

  • vpd_24 (float) – daily vapour pressure deficit \(\Delta_{e,24}\) [mbar]

  • psy_24 (float) – daily psychrometric constant, \(\gamma_{24}\) [mbar K-1]

  • r_soil (float) – soil resistance, \(r_{soil}\) [sm-1]

  • h_soil_24_init (float) – initial estimate of the sensible heat flux for soil, \(H^{soil}\) [W m-2]

  • t_air_k_24 (float) – daily air temperature in kelvin, \(T_{a}\) [K]

  • u_star_24_soil_init (float) – initial estimate of the daily friction velocity for soil, \(u_{*}\) [m s-1]

  • disp (float) – displacement height, \(d\) [m]

  • u_b_24 (float) – daily wind speed at blending height, \(u_{b}\) [m]

  • z_b (float) – blending height, \(z_{b}\) [m]

  • z_obs (float) – observation height, \(z_{obs}\) [m]

  • iter_h (integer) – number of iterations for sensible heat flux, \(n_h\) [-]

Returns

e_24 – daily evaporation energy equivalent, \(E_{24}\) [W m-2]

Return type

float

transpiration_mm(t_24, lh_24)

Computes the canopy transpiration based on the Penman Monteith equation adapted for canopy.

\[T=T \cdot \frac{d_{sec}}{\lambda_{24}}\]

where the following constants are used

  • \(d_{sec}\) seconds in the day = 86400 [s]

Parameters
  • t_24 (float) – daily transpiration energy equivalent, \(E^{0}\) [W m-2]

  • lh_24 (float) – daily latent heat of evaporation, \(\lambda_{24}\) [J/kg]

Returns

t_24_mm – daily transpiration in mm, \(T\) [mm d-1]

Return type

float

evaporation_mm(e_24, lh_24)

Computes the soil evaporation based on the Penman Monteith equation adapted for soils.

\[E=E \cdot \frac{d_{sec}}{\lambda_{24}}\]

where the following constants are used

  • \(d_{sec}\) seconds in the day = 86400 [s]

Parameters
  • e_24 (float) – daily evaporation energy equivalent, \(E^{0}\) [W m-2]

  • lh_24 (float) – daily latent heat of evaporation, \(\lambda_{24}\) [J/kg]

Returns

e_24_mm – daily evaporation in mm, \(E\) [mm d-1]

Return type

float