fit_ball_berry {PhotoGEA}R Documentation

Fits the Ball-Berry model to an experimental curve

Description

Calculates a linear fit of stomatal conductance vs. the Ball-Berry index using the data in the exdf object. This function can accomodate alternative column names for the variables taken from the Licor file in case they change at some point in the future. This function also checks the units of each required column and will produce an error if any units are incorrect.

Usage

  fit_ball_berry(
    replicate_exdf,
    bb_index_column_name = 'bb_index',
    gsw_column_name = 'gsw'
  )

Arguments

replicate_exdf

An exdf object representing one Ball-Berry curve.

bb_index_column_name

The name of the column in replicate_exdf that contains the Ball-Berry index in mol m^(-2) s^(-1).

gsw_column_name

The name of the column in replicate_exdf that contains the stomatal conductance to water vapor in mol m^(-2) s^(-1).

Details

The Ball-Berry model is a simple way to describe the response of a leaf's stomata to its assimilation rate and local environmental conditions. Specifically, it predicts stomatal conductance to water vapor using the following equation:

gsw = bb_0 + bb_1 * A * h_s / C_s

where gsw is the stomatal conductance, A is the net assimilation rate, h_s is the relative humidity at the leaf surface, and C_s is the CO2 concentration at the leaf surface. The term A * h_s / C_s is commonly referred to as the Ball-Berry index, while the intercept (bb_0) and slope (bb_1) of the linear relationship are the Ball-Berry parameters which describe the stomatal response.

Although this model is certainly an oversimplification, it does encode some important stomatal responses. For example, when humidity is low, the stomata close, reducing stomatal conductance. Likewise, if the CO2 concentration around the leaf is depleted, the stomata open to allow more CO2 to diffuse into the leaf's interior, increasing somatal conductance. For more information about this model and some possible alternatives, see the following papers:

Ball-Berry parameters are typically determined by measuring a Ball-Berry curve, where one or more of the factors that influence the Ball-Berry index is systematically varied across a range of values. At each value, care is taken that net assimilation and stomatal conductance have reached their steady-state values, and then those values are recorded. Then, a linear fit of the experimentally observed stomatal conductances as a function of the Ball-Berry index is performed to extract estimates for the Ball-Berry intercept and slope.

This function uses lm to perform the fit.

This function assumes that replicate_exdf represents a single Ball-Berry curve. To fit multiple curves at once, this function is often used along with by.exdf and consolidate.

Value

A list with two elements:

Examples

# Read an example Licor file included in the PhotoGEA package, calculate
# additional gas properties, calculate the Ball-Berry index, define a new column
# that uniquely identifies each curve, and then perform a fit to extract the
# Ball-Berry parameters from each curve.
licor_file <- read_gasex_file(
  PhotoGEA_example_file_path('ball_berry_1.xlsx')
)

licor_file <- calculate_total_pressure(licor_file)

licor_file <- calculate_gas_properties(licor_file)

licor_file[,'species_plot'] <-
  paste(licor_file[,'species'], '-', licor_file[,'plot'])

licor_file <- calculate_ball_berry_index(licor_file)

# Fit just one curve from the data set (it is rare to do this)
one_result <- fit_ball_berry(
  licor_file[licor_file[, 'species_plot'] == 'soybean - 1a', , TRUE]
)

# Fit all curves in the data set (it is more common to do this)
bb_results <- consolidate(by(
  licor_file,
  licor_file[, 'species_plot'],
  fit_ball_berry
))

# View the fitting parameters for each species / plot
col_to_keep <- c('species', 'plot', 'species_plot', 'bb_intercept', 'bb_slope', 'r_squared')
bb_results$parameters[ , col_to_keep]

# View the fits for each species / plot
plot_ball_berry_fit(bb_results, 'species_plot')

[Package PhotoGEA version 1.3.3 Index]