Optimal \(\chi\) and leaf \(\ce{CO2}\)
Run this notebook
Read the guide on setting up your computer to run Jupyter notebooks
Download
this notebookas a Jupyter notebook.
Once the key photosynthetic environment variables have been calculated, the next step is to estimate the following parameters:
The ratio of carboxylation to transpiration cost factors (
beta, \(\beta\)). In some approaches, this is taken as a fixed value, but other approaches apply penalties to \(\beta\) based on environmental conditions:Two methods follow Lavergne et al. (2020) in using a statistical model of the variation of \(\beta\) with local soil moisture content (
theta, \(\theta\))The experimental rootzone stress approaches apply a user-provided local rootzone stress factor directly to a fixed value of \(\beta\) during the calculation of \(\xi\). This factor is not currently estimated within
pyrealm.
The value \(\chi = c_i/c_a\), which is the unitless ratio of leaf internal \(\ce{CO2}\) partial pressure (\(c_i\), Pa) to ambient \(\ce{CO2}\) partial pressure (\(c_a\), Pa).
The parameter \(\xi\), which captures the sensitivity of \(\chi\) to vapour pressure deficit (VPD). This is a critical variable in the subdaily form of the P Model as it is expected to show slow responses to environmental change and should acclimate towards optimal behaviour on a time scale of days or weeks.
\(\ce{CO2}\) limitation factors to both light assimilation (\(m_j\)) and carboxylation (\(m_c\)) along with their ratio (\(m_{joc} = m_j / m_c\)).
The optimal_chi module provides a range of methods for
calculating optimal \(\chi\) and the other key values. The table below gives the method
names, which are used to select a particular approach when fitting a P Model using the
method_optchi argument.
In the background, those method names are used to select from a set of classes that
implement the different calculations. Some of the examples below show these classes
being used directly. The methods and classes built into pyrealm are shown below, but
it is possible for users to add alternative methods for use within a P Model.
Method name |
Method class |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The sections and plots below show how optimal \(\chi\), \(m_j\) and \(m_c\) vary with differing methods and environmental conditions.
<>:51: SyntaxWarning: invalid escape sequence '\c'
<>:51: SyntaxWarning: invalid escape sequence '\c'
/tmp/ipykernel_1467/2975497538.py:51: SyntaxWarning: invalid escape sequence '\c'
(ax1, "chi", "Optimal $\chi$"),
The prentice14 method
This C3 method follows the approach detailed in Prentice et al. (2014), see
OptimalChiPrentice14 for details.
/home/docs/checkouts/readthedocs.org/user_builds/pyrealm/checkouts/latest/pyrealm/pmodel/pmodel.py:481: UserWarning:
Pyrealm 2.0.0 uses a new default for the quantum yield of photosynthesis (phi0=1/8).
You may need to change settings to duplicate results from pyrealm 1.0.0.
warn(
The c4 method
This C4 method follows the approach detailed in Prentice et al. (2014), but uses
a C4 specific version of the unit cost ratio (\(\beta\)). It also sets \(m_j = m_c = 1\).
See OptimalChiC4 for details.
The c4_no_gamma method
This method drops terms from the approach given in Prentice et al. (2014) to reflect
the assumption that photorespiration (\(\Gamma^\ast\)) is negligible in C4 photosynthesis.
It uses the same \(\beta\) estimate as
OptimalChiC4
and also also sets \(m_j = 1\), but \(m_c\) is calculated as in
OptimalChiPrentice14. See
OptimalChiC4NoGamma() for details.
The lavergne20_c3 and lavergne20_c4 methods
These methods follow the approach detailed in Lavergne et al. (2020), which fitted
an empirical model of \(\beta\) for C3 plants as a function of volumetric soil moisture
(\(\theta\), m3/m3), using data from leaf gas exchange measurements. The C4 method takes
the same approach but with modified empirical parameters giving predictions of
\(\beta_{C3} = 9 \times \beta_{C4}\). Following the approach of
OptimalChiC4NoGamma, \(m_c\) is calculated
but \(m_j=1\).
Warning
Note that Lavergne et al. (2020) found no relationship between C4 \(\beta\)
values and soil moisture in leaf gas exchange data The
OptimalChiLavergne20C4 method is an
experimental
feature - see the documentation for the
OptimalChiLavergne20C4 and
OptimalChiC4 methods for the theoretical
rationale.
Variation in \(\beta\) with soil moisture
The calculation details are provided in the description of the
OptimalChiLavergne20C3 method, but the
variation in \(\beta\) with \(\theta\) is shown below.
/home/docs/checkouts/readthedocs.org/user_builds/pyrealm/checkouts/latest/pyrealm/core/experimental.py:72: ExperimentalFeatureWarning: 'Be aware that OptimalChiLavergne20C4 is an experimental feature of pyrealm and the implementation and API may change within major versions.'
warn(qualname, ExperimentalFeatureWarning)
Estimation of optimal \(\chi\)
The plots below show the impacts on optimal \(\chi\) across a temperature gradient for two values of VPD and soil moisture, with constant atmospheric pressure (101325 Pa) and CO2 (280 ppm).
\(m_j\) and \(m_c\)
The plots below illustrate the impact of temperature and \(\theta\) on \(m_j\) and \(m_c\), again with constant atmospheric pressure (101325 Pa) and CO2 (280 ppm).
The rootzone stress methods
These are experimental approaches that take a rootzone stress factor and use this to
directly penalise \(\beta\) in calculating \(\xi\) and hence \(\chi\) and other variables. The
approach is being developed by Rodolfo
Nobrega
and the calculation of the factor itself is not yet included in pyrealm.
Variation in \(\beta\) with rootzone stress
The calculation details are provided in the description of the following three methods but the variation in \(\beta\) with rootzone stress is shown below.
/home/docs/checkouts/readthedocs.org/user_builds/pyrealm/checkouts/latest/pyrealm/core/experimental.py:72: ExperimentalFeatureWarning: 'Be aware that OptimalChiPrentice14RootzoneStress is an experimental feature of pyrealm and the implementation and API may change within major versions.'
warn(qualname, ExperimentalFeatureWarning)
/home/docs/checkouts/readthedocs.org/user_builds/pyrealm/checkouts/latest/pyrealm/pmodel/optimal_chi.py:354: RuntimeWarning: invalid value encountered in divide
self.mjoc = self.mj / self.mc
/home/docs/checkouts/readthedocs.org/user_builds/pyrealm/checkouts/latest/pyrealm/core/experimental.py:72: ExperimentalFeatureWarning: 'Be aware that OptimalChiC4NoGammaRootzoneStress is an experimental feature of pyrealm and the implementation and API may change within major versions.'
warn(qualname, ExperimentalFeatureWarning)
/home/docs/checkouts/readthedocs.org/user_builds/pyrealm/checkouts/latest/pyrealm/pmodel/optimal_chi.py:815: RuntimeWarning: divide by zero encountered in divide
self.mjoc = self.mj / self.mc
Estimation of optimal \(\chi\) with rootzone stress
The plots below show the impacts on optimal \(\chi\) across a temperature gradient for two values of VPD and rootzone stress, with constant atmospheric pressure (101325 Pa) and CO2 (280 ppm).