Ags#
- class abcmodel.land.biosphere.ags.AgsState(rs, wl, cliq, wCO2, cveg, rsCO2=<factory>, gcco2=<factory>, ci=<factory>, co2abs=<factory>, wCO2A=<factory>, wCO2R=<factory>, wltend=<factory>)[source]#
Bases:
AbstractBiosphereStateA-gs biosphere state.
- rs: Array#
Surface resistance [s m-1].
- wl: Array#
Canopy water content [m].
- cliq: Array#
Wet fraction of canopy [-].
- wCO2: Array#
Total CO2 flux [mol m-2 s-1].
- cveg: Array#
Vegetation fraction [-].
- rsCO2: Array#
Stomatal resistance to CO2.
- gcco2: Array#
Conductance to CO2.
- ci: Array#
Intercellular CO2 concentration.
- co2abs: Array#
CO2 assimilation rate / concentration.
- wCO2A: Array#
Net assimilation flux [mol m-2 s-1].
- wCO2R: Array#
Respiration flux [mol m-2 s-1].
- wltend: Array#
Canopy water content tendency [m].
- class abcmodel.land.biosphere.ags.AgsModel(c3c4='c3', lai=2.0, cveg=0.85, wmax=0.0002, wwilt=0.171, wfc=0.323, w2=0.21)[source]#
Bases:
AbstractBiosphereModel[AgsState]Ags land surface biosphere model with coupled photosynthesis and stomatal conductance.
- Parameters:
c3c4 (
str) – string indicating whether the model should use C3 or C4 photosynthesis. Default is “c3”.lai (
float) – leaf area index [m2 m-2]. Default is 2.0.cveg (
float) – vegetation fraction [-]. Default is 0.85.wmax (
float) – maximum water storage capacity of the canopy [m]. Default is 0.0002.wwilt (
float) – soil moisture content at wilting point [m3 m-3]. Default is 0.171.wfc (
float) – soil moisture content at field capacity [m3 m-3]. Default is 0.323.w2 (
float) – soil moisture content at the second layer [m3 m-3]. Default is 0.21.
- init_state(rs=1000000.0, wl=0.0, cliq=0.0, wCO2=0.0)[source]#
Initialize the Ags state.
- Parameters:
rs (
float) – Surface resistance [s m-1]. Default is 1.0e6.wl (
float) – Canopy water content [m]. Default is 0.0.cliq (
float) – Wet fraction of canopy [-]. Default is 0.0.wCO2 (
float) – Total CO2 flux [mol m-2 s-1]. Default is 0.0.
- Returns:
The initialized AgsState.
- compute_co2comp(thetasurf)[source]#
Compute the CO₂ compensation concentration
co2comp.Notes
The CO₂ compensation point \(\Gamma\) is the CO₂ concentration at which net photosynthesis is zero. It follows a Q₁₀ temperature response:
\[\Gamma = \Gamma_{298} \cdot \rho \cdot Q_{10}^{\,0.1\,(\theta_s - 298)}\]where \(\Gamma_{298}\) is the compensation point at 298 K, \(\rho\) is the air density, \(Q_{10}\) is the relative increase per 10 K, and \(\theta_s\) is the surface potential temperature.
- compute_gm(thetasurf)[source]#
Compute the mesophyll conductance
gm.Notes
Mesophyll conductance \(g_m\) controls the diffusion of CO₂ from intercellular spaces to the sites of carboxylation. It follows a temperature response with a Q₁₀ factor and high/ low temperature inhibition:
\[g_m = \frac{g_{m,298} \cdot Q_{10}^{\,0.1\,(\theta_s - 298)}} {\bigl(1 + e^{0.3\,(T_1 - \theta_s)}\bigr) \bigl(1 + e^{0.3\,(\theta_s - T_2)}\bigr)}\]where \(g_{m,298}\) is the mesophyll conductance at 298 K, \(\theta_s\) is the surface potential temperature, and \(T_1, T_2\) are temperature thresholds.
- compute_fmin(gm)[source]#
Compute the minimum stomatal conductance factor
fmin.Notes
The minimum conductance factor \(f_{\min}\) is derived from the quadratic relation between minimum stomatal conductance \(g_{\min}\) and mesophyll conductance \(g_m\):
\[f_{\min} = \frac{-f_0 + \sqrt{f_0^2 + \dfrac{4 g_{\min} g_m}{\nu}}}{2 g_m}, \qquad f_0 = \frac{g_{\min}}{\nu} - \frac{g_m}{9},\]where \(\nu = 1.6\) is the ratio of diffusivity of water vapour to CO₂, and \(g_{\min}\) is the minimum stomatal conductance.
- compute_ds(surf_temp, e)[source]#
Compute the vapour pressure deficit
ds.Notes
The vapour pressure deficit at the surface is given by
\[D_s = \frac{e_{\text{sat}}(T_s) - e}{1000},\]where \(e_{\text{sat}}\) is the saturation vapour pressure at the surface temperature \(T_s\) and \(e\) is the actual vapour pressure. The result is in kPa.
- compute_d0(fmin)[source]#
Compute the reference vapour pressure deficit
d0.Notes
The reference VPD is derived from the minimum conductance factor:
\[D_0 = \frac{f_0 - f_{\min}}{a_d},\]where \(f_0\) is a shape parameter and \(a_d\) is the sensitivity of the VPD response.
- compute_internal_co2(ds, d0, fmin, co2, co2comp)[source]#
Compute the intercellular CO₂ concentration
ci.Notes
The intercellular CO₂ concentration \(C_i\) is computed from the CO₂ absorption concentration and the compensation point:
\[\begin{split}c_f &= f_0 \left(1 - \frac{D_s}{D_0}\right) + f_{\min} \frac{D_s}{D_0} \\ \text{CO}_{2,\text{abs}} &= \text{CO}_2 \frac{M_{\text{CO}_2}} {M_{\text{air}}} \rho \\ C_i &= c_f (\text{CO}_{2,\text{abs}} - \Gamma) + \Gamma\end{split}\]where \(c_f\) is the fractional reduction factor, \(\text{CO}_2\) is the atmospheric CO₂ concentration, \(M_{\text{CO}_2}\) and \(M_{\text{air}}\) are the molar masses of CO₂ and dry air, and \(\rho\) is the air density.
- Returns:
A tuple
(ci, co2abs).
- compute_max_gross_primary_production(thetasurf)[source]#
Compute the maximal gross primary production
ammax.Notes
The maximum gross primary production \(A_{m,\max}\) follows a temperature response identical in structure to mesophyll conductance:
\[A_{m,\max} = \frac{A_{m,298} \cdot Q_{10}^{\,0.1\,(\theta_s - 298)}} {\bigl(1 + e^{0.3\,(T_1 - \theta_s)}\bigr) \bigl(1 + e^{0.3\,(\theta_s - T_2)}\bigr)}\]where \(A_{m,298}\) is the value at 298 K and \(\theta_s\) is the surface potential temperature.
- compute_soil_moisture_stress_factor(w2)[source]#
Compute the soil moisture stress factor
fstr.Notes
The soil moisture stress factor \(\beta_w\) is computed from the relative soil moisture:
\[\beta_w = \frac{w_2 - w_{\text{wilt}}} {w_{\text{fc}} - w_{\text{wilt}}}\]clipped to \([\varepsilon, 1]\). The stress factor is then adjusted using a piecewise function depending on the parameter \(c_{\beta}\):
\[\begin{split}f_{\text{str}} = \begin{cases} \beta_w & c_\beta = 0 \\[4pt] \dfrac{1 - e^{-p \beta_w}}{1 - e^{-p}} & c_\beta > 0 \end{cases}\end{split}\]where the shape parameter \(p\) increases with \(c_{\beta}\).
- compute_gross_assimilation(ammax, gm, ci, co2comp)[source]#
Compute the gross assimilation rate
am.Notes
The gross assimilation rate follows an exponential approach to saturation (Collatz et al., 1991):
\[A_m = A_{m,\max} \left(1 - \exp\!\left( -\frac{g_m\,(C_i - \Gamma)}{A_{m,\max}} \right)\right)\]where \(A_{m,\max}\) is the maximal gross primary production, \(g_m\) is the mesophyll conductance, \(C_i\) is the intercellular CO₂ concentration, and \(\Gamma\) is the CO₂ compensation concentration.
- compute_dark_respiration(am)[source]#
Compute the dark respiration rate
rdark.Notes
Dark respiration is proportional to the gross assimilation rate:
\[R_{\text{dark}} = \frac{A_m}{9}\]where \(A_m\) is the gross assimilation rate.
- compute_absorbed_par(in_srad)[source]#
Compute the absorbed photosynthetically active radiation
par.Notes
The absorbed PAR is estimated as 50% of the incoming solar radiation, scaled by the vegetation fraction, with a lower bound:
\[\text{PAR} = \max\!\left(0.5 \cdot R_s \cdot c_{\text{veg}},\, 0.1\right)\]where \(R_s\) is the incoming solar radiation and \(c_{\text{veg}}\) is the vegetation fraction.
- compute_canopy_co2_conductance(alphac, par, am, rdark, fstr, co2abs, co2comp, ds, d0, fmin)[source]#
Compute the canopy CO₂ conductance
gcco2.Notes
The canopy CO₂ conductance \(g_{c,\text{CO}_2}\) is computed by scaling leaf-level photosynthesis to the canopy using the big-leaf approach with the exponential integral \(E_1\) (Sellers et al., 1996):
\[\begin{split}y &= \frac{\alpha_c k_x \text{PAR}}{A_m + R_{\text{dark}}} \\ A_n &= (A_m + R_{\text{dark}}) \left(1 - \frac{E_1(y e^{-k_x L}) - E_1(y)}{k_x L} \right) \\ D_* &= \frac{D_0}{a_1 (f_0 - f_{\min})} \\ g_{c,\text{CO}_2} &= L \left(\frac{g_{\min}}{\nu} + \frac{a_1 f_{\text{str}} A_n} {(\text{CO}_{2,\text{abs}} - \Gamma) (1 + D_s / D_*)}\right)\end{split}\]where \(L\) is the leaf area index, \(k_x\) is the extinction coefficient, \(\nu = 1.6\) is the diffusivity ratio, and \(a_1 = 1 / (1 - f_0)\).
- compute_rs(gcco2)[source]#
Compute the surface resistance
rs.Notes
The surface (stomatal) resistance is related to the canopy CO₂ conductance by
\[r_s = \frac{1}{1.6 \, g_{c,\text{CO}_2}}\]where the factor \(1.6\) is the ratio of diffusivity of water vapour to CO₂, and \(g_{c,\text{CO}_2}\) is the canopy CO₂ conductance.
- compute_light_use_efficiency(co2abs, co2comp)[source]#
Compute the light use efficiency
alphac.Notes
The light use efficiency depends on the CO₂ concentration:
\[\alpha_c = \alpha_0 \, \frac{\text{CO}_{2,\text{abs}} - \Gamma} {\text{CO}_{2,\text{abs}} + 2\Gamma}\]where \(\alpha_0\) is the quantum efficiency and \(\Gamma\) is the CO₂ compensation concentration.
- compute_surface_co2_resistance(gcco2)[source]#
Compute the surface resistance to CO₂
rsCO2.Notes
The surface resistance to CO₂ is the reciprocal of the canopy CO₂ conductance:
\[r_{s,\text{CO}_2} = \frac{1}{g_{c,\text{CO}_2}}\]where \(g_{c,\text{CO}_2}\) is the canopy CO₂ conductance.
- compute_net_assimilation(co2abs, ci, ra, rsCO2)[source]#
Compute the net CO₂ assimilation rate
an.Notes
The net assimilation rate follows Fick’s law of diffusion:
\[A_n = -\frac{\text{CO}_{2,\text{abs}} - C_i} {r_a + r_{s,\text{CO}_2}}\]where \(\text{CO}_{2,\text{abs}}\) is the CO₂ absorption concentration, \(C_i\) is the intercellular CO₂ concentration, \(r_a\) is the aerodynamic resistance, and \(r_{s,\text{CO}_2}\) is the surface resistance to CO₂.
- compute_soil_water_fraction(wg)[source]#
Compute the soil water fraction
fw.Notes
The soil water fraction used for respiration scaling is
\[f_w = \frac{c_w \, w_{\max}}{w_g + w_{\min}}\]where \(w_g\) is the surface soil moisture, \(w_{\max}\) and \(w_{\min}\) are empirical parameters, and \(c_w\) is a scaling constant.
- compute_respiration(temp_soil, fw)[source]#
Compute the soil respiration rate
resp.Notes
Soil respiration follows an Arrhenius-type temperature response with a moisture limitation:
\[R = R_{10} \cdot (1 - f_w) \cdot \exp\!\left(\frac{E_0}{283.15 \cdot R} \left(1 - \frac{283.15}{T_{\text{soil}}} \right)\right)\]where \(R_{10}\) is the respiration rate at 283.15 K, \(f_w\) is the soil water fraction, \(E_0\) is the activation energy, and \(T_{\text{soil}}\) is the soil temperature.
- compute_cliq(wl)[source]#
Compute the wet fraction
cliq.Notes
The wet fraction is defined as
\[c_{\text{liq}} = \frac{W_l}{\text{LAI}\cdot W_{\text{max}}},\]where \(W_l\) is the water layer depth, \(\text{LAI}\) is the leaf area index and \(W_{\text{max}}\) is the thickness of the water layer on wet vegetation. In case \(W_l > \text{LAI}\cdot W_{\text{max}}\), the wet fraction is set to 1.
References
Equation 9.19 from the CLASS book.
- compute_wltend(le_liq)[source]#
Compute the water layer depth tendency
wltend.Notes
The water layer depth tendency is the rate at which water is added to or taken from the vegetation, described by
\[\frac{\text{d} w}{\text{d} t} = -\frac{LE_{\text{liq}}}{\rho_w L_v},\]where \(LE_{\text{liq}}\) is dew, \(\rho_w\) is water density and \(L_v\) is the latent heat of vaporization.
References
Equation 9.20 from the CLASS book, with sign convention.