Evapotranspiration
This page is a work in progress. If you have any questions or notice any errors, please raise an issue.
Overview
Evapotranspiration (ET) is the combined process of water evaporation from soil and open water surfaces, evaporation of water intercepted by the canopy, and transpiration through leaf stomata. These processes remove water from the surface, driving latent heat flux and competing with sensible heat and ground heat fluxes in the surface energy balance.
All evapotranspiration pathways are primarily driven by the vapor pressure deficit or specific humidity deficit $\Delta q = q_{\text{sat}}(T_s) - q_a$, where $q_{\text{sat}}(T_s)$ is the saturation specific humidity at surface temperature $T_s$ (kg/kg) and $q_a$ is the atmospheric specific humidity at reference height (kg/kg).
Each pathway is also modulated by aerodynamic resistance $r_a$ (s/m) (between surface and atmosphere) and/or stomatal resistance $r_s$ (s/m) (in transpiration).
Terrarium.AbstractEvapotranspiration — Type
Base type for evapotranspiration processes.
subtypes(Terrarium.AbstractEvapotranspiration)2-element Vector{Any}:
GroundEvaporation
PALADYNCanopyEvapotranspirationBare ground evaporation
Terrarium.GroundEvaporation — Type
struct GroundEvaporation{NF, GR<:Terrarium.AbstractGroundEvaporationResistanceFactor} <: Terrarium.AbstractEvapotranspiration{NF}Evaporation scheme for bare ground that calculates the humidity flux as
\[E = \beta \frac{\Delta q}{r_a}\]
where Δq is the vapor pressure deficit in terms of specific humidity, rₐ is aerodynamic resistance, and β is an evaporation limiting factor.
variables(GroundEvaporation(Float32))Variables
├─ Prognostic:
├─ Auxiliary:
├── evaporation_ground [m s^-1] on XY{Center, Center}
├─ Inputs:
├── skin_temperature [°C] on XY{Center, Center}
├─ Namespaces:
Canopy evapotranspiration
Terrarium.PALADYNCanopyEvapotranspiration — Type
struct PALADYNCanopyEvapotranspiration{NF, GR<:Terrarium.AbstractGroundEvaporationResistanceFactor} <: Terrarium.AbstractEvapotranspiration{NF}Canopy evapotranspiration scheme from PALADYN (Willeit 2016) that includes a canopy evaporation term based on the saturation fraction of canopy water defined by the canopy hydrology scheme.
\[E_g &= \beta \frac{\Delta q}{r_a} \ E_c &= f_{\text{can}} \frac{\Delta q}{r_a} \ T_c &= \frac{\Delta q}{r_a + r_s} \\]
Properties:
C_can: Drag coefficient for the traansfer of heat and water between the ground and canopyground_resistance: Parameterization for ground resistance to evaporation/sublimation
variables(PALADYNCanopyEvapotranspiration(Float32))Variables
├─ Prognostic:
├─ Auxiliary:
├── evaporation_canopy [m s^-1] on XY{Center, Center}
├── evaporation_ground [m s^-1] on XY{Center, Center}
├── transpiration [m s^-1] on XY{Center, Center}
├─ Inputs:
├── skin_temperature [°C] on XY{Center, Center}
├── ground_temperature [°C] on XY{Center, Center}
├── canopy_water_conductance [m s^-1] on XY{Center, Center}
├─ Namespaces:
Evaporation from the canopy
Evaporation of water intercepted by the canopy depends on the saturation state of the canopy (fraction of leaves wet),
\[\begin{equation} E_{\text{can}} = f_{\text{can}} \frac{\Delta q}{r_a}\,, \end{equation}\]
where $f_{\text{can}}$ is the canopy saturation fraction (0 = dry, 1 = saturated) (-) and $\Delta q$ is the vapor pressure deficit (kg/kg).
When $f_{\text{can}} = 0$ (completely dry canopy), $E_{\text{can}} = 0$. When $f_{\text{can}} = 1$ (wet canopy), evaporation proceeds at the potential rate.
Ground evaporation
Evaporation from exposed soil or under-canopy surfaces is limited by soil water availability,
\[\begin{equation} E_{\text{ground}} = \beta \frac{\Delta q}{r_a + r_e}\,, \end{equation}\]
where $\beta$ is the ground evaporation resistance factor (0 to 1) (-) and $r_e$ is the aerodynamic resistance between ground and canopy (s/m).
The resistance factor $\beta$ is computed from soil moisture in the upper layer: $\beta = 1$ when soil is wet (at field capacity) and $\beta \to 0$ as soil dries.
Transpiration
Plant transpiration occurs through stomata and is controlled by stomatal conductance,
\[\begin{equation} T_{\text{canopy}} = \frac{\Delta q}{r_a + r_s}\,, \end{equation}\]
where $r_s = 1 / g_w$ is the stomatal resistance (s/m) and $g_w$ is the stomatal conductance (m/s) (computed from photosynthesis; see ...).
High stomatal conductance (when photosynthetically active) leads to low stomatal resistance and high transpiration. This creates a strong coupling between carbon uptake (photosynthesis) and water loss (transpiration).
Total evapotranspiration
The PALADYN approach combines all three pathways,
\[\begin{equation} \text{ET} = E_{\text{can}} + E_{\text{ground}} + T_{\text{canopy}}\,, \end{equation}\]
to obtain a total ET flux that can be converted into the [latent heat flux][@ref "Latent heat flux"] for use in the surface energy balance.
Process interface
Terrarium.compute_auxiliary! — Method
compute_auxiliary!(
state,
grid,
evap::GroundEvaporation,
atmos::Terrarium.AbstractAtmosphere,
constants::PhysicalConstants
)
compute_auxiliary!(
state,
grid,
evap::GroundEvaporation,
atmos::Terrarium.AbstractAtmosphere,
constants::PhysicalConstants,
soil::Union{Nothing, Terrarium.AbstractSoil}
)
Terrarium.compute_auxiliary! — Method
compute_auxiliary!(
state,
grid,
evap::PALADYNCanopyEvapotranspiration,
canopy_interception::Terrarium.AbstractCanopyInterception,
atmos::Terrarium.AbstractAtmosphere,
constants::PhysicalConstants
)
compute_auxiliary!(
state,
grid,
evap::PALADYNCanopyEvapotranspiration,
canopy_interception::Terrarium.AbstractCanopyInterception,
atmos::Terrarium.AbstractAtmosphere,
constants::PhysicalConstants,
soil::Union{Nothing, Terrarium.AbstractSoil}
)
Ground resistance parameterizations
Terrarium.ConstantEvaporationResistanceFactor — Type
struct ConstantEvaporationResistanceFactor{NF} <: Terrarium.AbstractGroundEvaporationResistanceFactorRepresents a spatiotemporally constant, prescribed ground evaporation resistance factor.
Terrarium.SoilMoistureResistanceFactor — Type
struct SoilMoistureResistanceFactor{NF} <: Terrarium.AbstractGroundEvaporationResistanceFactorImplements the soil moisture limiting resistance factor of Lee and Pielke (1992),
\[\beta = \frac{1}{4} \left[1 - \cos\left(π \theta_1/\theta_{\text{fc}} \right)\right] \quad \text{for } \theta_1 < \theta_{\text{fc}}\]
otherwise $\beta=1$.
Coupling to soil hydrology
Subtypes of AbstractEvapotranpsiration automatically inherit an implementation of the forcing interface for SoilHydrology, which computes the contribution of ET to the soil moisture tendency in each soil layer. The default implementation draws the rescaled surface humidity flux only from the uppermost soil layer.
Terrarium.forcing — Method
forcing(i, j, k, grid, clock, fields, evtr::AbstractEvapotranspiration, ::AbstractSoilHydrology)Compute and return the evapotranspiration forcing for soil moisture at the given indices i, j, k. The ET forcing is just the surface_humidity_flux rescaled by the thickness of layer k.
Kernel functions
Terrarium.surface_humidity_flux — Function
surface_humidity_flux(i, j, grid, fields, ::AbstractEvapotranspiration)Compute the surface humidity flux [m/s] at cell i, j based on the current state.
Terrarium.compute_transpiration — Function
compute_transpiration(
_::PALADYNCanopyEvapotranspiration{NF},
Δq,
rₐ,
gw_can
) -> Any
Compute potential transpiration from the given humidity gradient, aerodynamic resistance rₐ and stomatal conductance gw_can.
Terrarium.compute_evaporation_ground — Function
compute_evaporation_ground(
_::PALADYNCanopyEvapotranspiration,
Δq,
β,
rₐ,
rₑ
) -> Any
Compute potential evaporation from the ground below the canopy, following Eq. 5, PALADYN (Willeit 2016); Δq is the humidity gradient, β is the ground evaporation resistance factor, rₐ is aerodynamic resistance, and rₑ is aerodynamic resistance between the ground and canopy.
Terrarium.compute_evaporation_canopy — Function
compute_evaporation_canopy(
_::PALADYNCanopyEvapotranspiration,
Δq,
f_can,
rₐ
) -> Any
Compute evaporation of water intercepted by the canopy from humidity gradient Δq, canopy saturation fraction f_can, and aerodynamic resistance rₐ.
Terrarium.ground_evaporation_resistance_factor — Function
ground_evaporation_resistance_factor(i, j, grid, fields, :AbstractGroundEvaporationResistanceFactor, args...)Compute the resistance factor against ground evaporation [-] based on the current state and implementation-specific process dependencies in args.