Evapotranspiration

Warning

This page is a work in progress. If you have any questions or notice any errors, please raise an issue.

Overview

Evapotranspiration ($\text{ET}$) (m/s) 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 gradient or specific humidity gradient at the surface $\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 (kg/kg) at a particular reference height.

Each pathway is also modulated by aerodynamic resistance(s) $r_a$ (s/m) (between surface and atmosphere) and possibly stomatal resistance $r_s$ (s/m) (in the case of transpiration).

subtypes(Terrarium.AbstractEvapotranspiration)
2-element Vector{Any}:
 BareGroundEvaporation
 PALADYNCanopyEvapotranspiration

Bare ground evaporation

The simplest case where no vegetation is considered.

Terrarium.BareGroundEvaporationType
BareGroundEvaporation{NF, GR} <: AbstractEvapotranspiration

Evaporation scheme for bare ground that calculates the humidity flux as

\[E = \beta \frac{\Delta q}{r_a}\]

where Δq is the specific humidity difference, rₐ is aerodynamic resistance, and β is an evaporation limiting factor.

source
variables(BareGroundEvaporation(Float32))
Variables
├─ Prognostic: 
├─ Auxiliary: 
├── ground_evaporation_conductance [m s^-1] on XY{Center, Center}
├── evaporation_ground [m s^-1] on XY{Center, Center}
├─ Inputs: 
├── skin_temperature [°C] on XY{Center, Center}
├─ Namespaces:

Vegetated land evapotranspiration

A big-leaf approach that combines canopy evaporation, transpiration and ground evaporation in parallel.

Terrarium.PALADYNCanopyEvapotranspirationType
struct PALADYNCanopyEvapotranspiration{NF, GR<:Terrarium.AbstractGroundEvaporationResistanceFactor} <: Terrarium.AbstractEvapotranspiration{NF}

Canopy evapotranspiration scheme from PALADYN ([16, Eq. (5)]) that includes a canopy evaporation term based on the saturation fraction of canopy water defined by the canopy hydrology scheme.

\[E_{\text{ground}} = \beta \frac{\Delta q}{r_a + r_e}\]

\[E_{\text{can}} = f_{\text{can}} \frac{\Delta q}{r_a}\]

\[T_{\text{can}} = \frac{\Delta q}{r_a + r_s}\]

Properties:

  • C_can: Drag coefficient for the transfer of heat and water between the ground and canopy

  • ground_resistance: Parameterization for ground resistance to evaporation/sublimation

References

  • [16] Willeit and Ganopolski, Geoscientific Model Development (2016)
source
variables(PALADYNCanopyEvapotranspiration(Float32))
Variables
├─ Prognostic: 
├─ Auxiliary: 
├── ground_evaporation_conductance [m s^-1] on XY{Center, Center}
├── canopy_evaporation_conductance [m s^-1] on XY{Center, Center}
├── transpiration_conductance [m s^-1] on XY{Center, Center}
├── 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}
├─ Namespaces:

Evaporation from the canopy

Evaporation of water intercepted by the canopy $E_{\text{can}}$ (m/s) 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 gradient (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.

The canopy evaporation vapor conductance is computed as

\[\begin{equation} g_{\text{can}} = \frac{f_{\text{can}}}{r_a}\,, \end{equation}\]

and the flux is $E_{\text{can}} = g_{\text{can}} \cdot \Delta q$.

Ground evaporation

Evaporation from exposed soil or under-canopy surfaces $E_{\text{ground}}$ (m/s) 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 ground evaporation vapor conductance is computed as

\[\begin{equation} g_{\text{ground}} = \frac{\beta}{r_a + r_e}\,, \end{equation}\]

and the flux is $E_{\text{ground}} = g_{\text{ground}} \cdot \Delta q$.

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{can}} = \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 Stomatal conductance).

The transpiration vapor conductance is computed as

\[\begin{equation} g_{\text{trp}} = \frac{1}{r_a + r_s}\,, \end{equation}\]

and the flux is $T_{\text{can}} = g_{\text{trp}} \cdot \Delta q$.

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 in parallel,

\[\begin{equation} \text{ET} = E_{\text{can}} + E_{\text{ground}} + T_{\text{can}}\,, \end{equation}\]

to obtain a total surface humidity flux $\text{ET}$ (m/s) that can be converted into the [latent heat flux][@ref "Turbulent fluxes"] expressed in W/m² for use in the surface energy balance.

Evaporation flux computation

All evapotranspiration pathways share a unified functional form:

\[\begin{equation} E = \Delta q \cdot g\,, \end{equation}\]

where $g$ is the vapor conductance (m/s) specific to each pathway. The unified function compute_evaporation_flux handles all three pathways:

Terrarium.compute_evaporation_fluxFunction
compute_evaporation_flux(
    _::Terrarium.AbstractEvapotranspiration,
    Δq,
    g
) -> Any

Compute an evapotranspiration flux (m/s, positive upwards) as the product of a vapor conductance g (m/s) and a specific humidity difference Δq (kg/kg). All evapotranspiration components — soil/canopy evaporation and transpiration — share the functional form $E = Δq · g$, differing only in which conductance and humidity difference are supplied.

source

Conductance functions

The vapor conductances for each pathway are computed separately and stored as auxiliary fields during the compute_auxiliary! pass. These conductances are skin-temperature-independent (held fixed during the surface energy balance solve).

Transpiration conductance

Terrarium.transpiration_conductanceFunction
transpiration_conductance(
    _::PALADYNCanopyEvapotranspiration{NF},
    rₐ,
    g_stm
) -> Any

Compute the transpiration vapor conductance [m/s] from aerodynamic resistance rₐ and stomatal conductance g_stm. The transpiration flux is this conductance times the humidity gradient.

source

Canopy evaporation conductance

Terrarium.canopy_evaporation_conductanceFunction
canopy_evaporation_conductance(
    _::PALADYNCanopyEvapotranspiration,
    f_can,
    rₐ
) -> Any

Compute the canopy evaporation vapor conductance [m/s] from canopy saturation fraction f_can and aerodynamic resistance rₐ. The canopy evaporation flux is this conductance times the humidity gradient.

source

Ground evaporation conductance

Ground resistance parameterizations

The ground evaporation resistance factor $\beta$ is computed from soil moisture using parameterizations of AbstractGroundEvaporationResistanceFactor:

Terrarium.SoilMoistureResistanceFactorType
struct SoilMoistureResistanceFactor{NF} <: Terrarium.AbstractGroundEvaporationResistanceFactor

Implements the soil moisture limiting resistance factor of [28],

\[\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$.

References

  • [28] Lee and Pielke, Journal of Applied Meteorology (1992)
source
Terrarium.ground_evaporation_resistance_factorFunction
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.

source

Process interface

Terrarium.compute_auxiliary!Method
compute_auxiliary!(
    state,
    grid,
    evaporation::BareGroundEvaporation,
    ::NoCanopyInterception,
    constants::PhysicalConstants,
    atmos::Terrarium.AbstractAtmosphere
)
compute_auxiliary!(
    state,
    grid,
    evaporation::BareGroundEvaporation,
    ::NoCanopyInterception,
    constants::PhysicalConstants,
    atmos::Terrarium.AbstractAtmosphere,
    soil::Union{Nothing, Terrarium.AbstractSoil}
)
compute_auxiliary!(
    state,
    grid,
    evaporation::BareGroundEvaporation,
    ::NoCanopyInterception,
    constants::PhysicalConstants,
    atmos::Terrarium.AbstractAtmosphere,
    soil::Union{Nothing, Terrarium.AbstractSoil},
    snow::Union{Nothing, Terrarium.AbstractSnow}
)
source
Terrarium.compute_auxiliary!Method
compute_auxiliary!(
    state,
    grid,
    evapotranspiration::PALADYNCanopyEvapotranspiration,
    canopy_interception::Terrarium.AbstractCanopyInterception,
    constants::PhysicalConstants,
    atmos::Terrarium.AbstractAtmosphere,
    soil::Terrarium.AbstractSoil,
    vegetation::Terrarium.AbstractVegetation,
    args...
)
source

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.forcingMethod
forcing(i, j, k, grid, clock, fields, evapotranspiration::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.

source

Kernel functions

The following kernel functions are used internally during the compute_auxiliary! pass:

Terrarium.surface_humidity_fluxFunction
surface_humidity_flux(i, j, grid, fields, ::AbstractEvapotranspiration)

Compute the surface humidity flux [m/s] at cell i, j based on the current state.

source
Terrarium.compute_evapotranspiration_conductances!Function
compute_evapotranspiration_conductances!(
    out,
    i,
    j,
    grid,
    fields,
    evaporation::BareGroundEvaporation,
    constants::PhysicalConstants,
    atmos::Terrarium.AbstractAtmosphere
) -> Any
compute_evapotranspiration_conductances!(
    out,
    i,
    j,
    grid,
    fields,
    evaporation::BareGroundEvaporation,
    constants::PhysicalConstants,
    atmos::Terrarium.AbstractAtmosphere,
    soil::Union{Nothing, Terrarium.AbstractSoil}
) -> Any

Compute and store the skin-driven ground evaporation vapor conductance on grid for the given bare-ground evaporation scheme.

source
compute_evapotranspiration_conductances!(
    out,
    i,
    j,
    grid,
    fields,
    evapotranspiration::PALADYNCanopyEvapotranspiration,
    canopy_interception::Terrarium.AbstractCanopyInterception,
    constants::PhysicalConstants,
    atmos::Terrarium.AbstractAtmosphere,
    soil::Terrarium.AbstractSoil,
    vegetation::Terrarium.AbstractVegetation,
    args...
) -> Any

Compute and store the skin-driven vapor conductances on grid for the given scheme evapotranspiration and process dependencies.

source