Skip to contents padding-top: 70px;

Calculate leaf-temperature-dependent values of various parameters using Gaussian equations. This function can accomodate alternative names for the leaf temperature column. It also checks the units of the leaf temperature column and will produce an error of the units are not correct.

Usage

calculate_peaked_gaussian(
    exdf_obj,
    peaked_gaussian_parameters,
    tleaf_column_name = 'TleafCnd'
  )

Arguments

exdf_obj

An exdf object representing data from a Licor gas exchange measurement system.

peaked_gaussian_parameters

A list of named lists. Each list element should describe the optimal temperature in degrees C (t_opt), the "width" in degrees C (sigma), and the units (units) for a variable that follows a peaked Gaussian temperature dependence. The name of each list element should be the corresponding name of the variable.

tleaf_column_name

The name of the column in exdf_obj that contains the leaf temperature in units of degrees C.

Details

A Gaussian equation is sometimes used to model the temperature dependence of a biochemical rate parameter. Typically this is expressed by

(1) rate = optimal_rate * exp(-(T - T_opt)^2 / sigma^2)

where optimal_rate is the highest rate which occurs at the optimal temperature T_opt, T is the current temperature, and sigma represents the "width" of the peak. More technically, it can be described as the difference in temperature away from the optimal value at which the rate falls to 37 percent (1/e) of its maximum.

The calculate_peaked_gaussian function only calculates the temperature response part of equation (1):

(2) exp(-(T - T_opt)^2 / sigma^2)

Thus, it returns dimensionless scaling factors that are normalized to the optimal rate.

In calculate_peaked_gaussian, the optimal temperature (t_opt), width (sigma), and units (units) for a variable must be specified as elements of a list, which itself is a named element of peaked_gaussian_parameters. For example, if a variable called Jmax has t_opt = 43, sigma = 26, and units of micromol mol^(-1), the peaked_gaussian_parameters argument could be specified as follows: list(Jmax_norm = list(t_opt = 43, sigma = 26, units = 'normalized to Jmax at its optimal temperature')). It is rare to directly specify these parameters directly; instead, it is more typical to use one of the pre-set values such as c4_peaked_gaussian_von_caemmerer.

Value

An exdf object based on exdf_obj that includes one new column for each element of peaked_gaussian_parameters, where the temperature-dependent values of these new columns are determined using the temperature values specified by the tleaf_column_name column. The category of each of these new columns is calculate_peaked_gaussian to indicate that they were created using this function.

Examples

# Read an example Licor file included in the PhotoGEA package
licor_file <- read_gasex_file(
  PhotoGEA_example_file_path('ball_berry_1.xlsx')
)

licor_file <- calculate_peaked_gaussian(licor_file, c4_peaked_gaussian_von_caemmerer)

licor_file$units$Jmax_norm      # View the units of the new `Jmax_norm` column
#> [1] "normalized to Jmax at its optimal temperature"
licor_file$categories$Jmax_norm # View the category of the new `Jmax_norm` column
#> [1] "calculate_peaked_gaussian"
licor_file[,'Jmax_norm']        # View the values of the new `Jmax_norm` column
#>  [1] 0.8088529 0.7877075 0.7725850 0.7672886 0.7672643 0.7642028 0.7567095
#>  [8] 0.8508149 0.8302269 0.8305354 0.8238703 0.8305546 0.8302903 0.8312231
#> [15] 0.8710333 0.8564725 0.8476327 0.8463848 0.8455012 0.8324916 0.8421953
#> [22] 0.8798907 0.8620890 0.8490935 0.8431072 0.8454905 0.8323599 0.8315117