'bake' leaf parameters using temperature response functions

bake(leaf_par, enviro_par, bake_par, constants, assert_units = TRUE)

temp_resp1(par25, E_a, R, T_leaf, T_ref, unitless)

temp_resp2(par25, D_s, E_a, E_d, R, T_leaf, T_ref, unitless)

Arguments

leaf_par

A list of leaf parameters inheriting class leaf_par. This can be generated using the make_leafpar function.

enviro_par

A list of environmental parameters inheriting class enviro_par. This can be generated using the make_enviropar function.

bake_par

A list of temperature response parameters inheriting class bake_par. This can be generated using the make_bakepar function.

constants

A list of physical constants inheriting class constants. This can be generated using the make_constants function.

assert_units

Logical. Should parameter units be checked? The function is faster when FALSE, but input must be in correct units or else results will be incorrect without any warning.

par25

Parameter value at 25 °C of class units.

E_a

Empirical temperature response value in J/mol of class units.

R

Ideal gas constant in J / (mol K) of class units. See make_constants().

T_leaf

Leaf temperature in K of class units. Will be converted to °C.

T_ref

Reference temperature in K of class units.

unitless

Logical. Should units be set? The function is faster when FALSE, but input must be in correct units or else results will be incorrect without any warning.

D_s

Empirical temperature response value in J / (mol K) of class units.

E_d

Empirical temperature response value in J/mol of class units.

Value

Constructor function for baked class. This will also inherit class leaf_par() and list(). This function ensures that temperature is "baked in" to leaf parameter calculations T_leaf using temperature response functions detailed below.

Details

Several leaf parameters (leaf_par()) are temperature sensitive. Temperature-sensitive parameters are input at a reference temperature of 25 °C. These parameters are provided as par_name25 and then "baked" using the appropriate temperature response function and parameters in bake_par(). The "baked" parameter will have the name without "25" appended (par_name). E.g. V_cmax25 becomes V_cmax.

Temperature response functions following Buckley and Diaz-Espejo (2015)

Temperature response function 1 (temp_response1):

$$\mathrm{par}(T_\mathrm{leaf}) = \mathrm{par25}~\mathrm{exp}(E_\mathrm{a} / (R T_\mathrm{ref}) (T_\mathrm{leaf} - 25) / (T_\mathrm{leaf} + 273.15))$$

\(T_\mathrm{ref}\) is the reference temperature in K
\(T_\mathrm{leaf}\) is the leaf temperature in °C

Temperature response function 2 (temp_response2) is the above equation multiplied by:

$$(1 + \mathrm{exp}((D_\mathrm{s} / R - E_\mathrm{d} / (R T_\mathrm{ref})))) / (1 + \mathrm{exp}((D_\mathrm{s} / R) - (E_\mathrm{d} / (R (T_\mathrm{leaf} + 273.15)))))$$

Function 1 increases exponentially with temperature; Function 2 peaks a particular temperature.

References

Buckley TN, Diaz-Espejo A. 2015. Partitioning changes in photosynthetic rate into contributions from different variables. Plant, Cell and Environment 38: 1200-1211.

Examples

bake_par = make_bakepar()
constants = make_constants(use_tealeaves = FALSE)
enviro_par = make_enviropar(use_tealeaves = FALSE)
leaf_par = make_leafpar(
  replace = list(T_leaf = set_units(293.15, K)),
  use_tealeaves = FALSE
)
baked_leafpar = bake(leaf_par, enviro_par, bake_par, constants)

baked_leafpar$V_cmax25
#> 150 [umol/m^2/s]
baked_leafpar$V_cmax
#> 104.7069 [umol/m^2/s]