View source: R/estimate_operating_point.R
estimate_operating_point | R Documentation |
Uses linear interpolation to estimate Cc
, Ci
, and An
at
atmospheric CO2 concentration from the data in the exdf
object, which
should represent a single A-Ci curve. This function can accomodate alternative
column names for the variables taken from the data 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.
estimate_operating_point(
aci_exdf,
Ca_atmospheric,
type = 'c3',
a_column_name = 'A',
ca_column_name = 'Ca',
cc_column_name = 'Cc',
ci_column_name = 'Ci',
pcm_column_name = 'PCm',
return_list = FALSE
)
aci_exdf |
An |
Ca_atmospheric |
The atmospheric CO2 concentration (with units of |
type |
The type of photosynthesis: either |
a_column_name |
The name of the column in |
ca_column_name |
The name of the column in |
cc_column_name |
The name of the column in |
ci_column_name |
The name of the column in |
pcm_column_name |
The name of the column in |
return_list |
A logical value indicating whether or not to return the results as a list.
Most users will only need to use |
When analyzing or interpreting A-Ci curves, it is often useful to determine
the values of Ci
and An
that correspond to typical growth
conditions (where Ca
is set to the atmospheric value). Together, these
special values of Ci
and An
specify the "operating point" of the
leaf.
However, for a variety of practical reasons, most A-Ci curves do not actually
contain a measurement point where Ca
is at the atmospheric value.
Nevertheless, it is possible to apply linear interpolation to the observed
Ci - Ca
and An - Ca
relations to estimate the operating point.
This function automates that procedure. It also calculates the operating
values of Cc
(for c3
A-Ci curves) and PCm
(for c4
A-Ci curves).
This function assumes that aci_exdf
represents a single
A-Ci curve. Typically, this function is not directly called by users because
the fitting functions fit_c3_aci
and fit_c4_aci
automatically use this function to determine the operating point.
The return value depends on return_list
and type
.
When return_list
is FALSE
, this function returns an exdf
object based on aci_exdf
that includes its identifier columns as well
as values of Ca_atmospheric
, operating_Ci
, operating_An
,
and operating_Cc
(or operating_PCm
) in columns with those names.
When return_list
is TRUE
, this function returns a list with the
following named elements: Ca_atmospheric
, operating_Ci
,
operating_An
, operating_Cc
(or operating_PCm
), and
operating_exdf
. The first four are numeric values as described above,
while operating_exdf
is an exdf
object with one row that can be
passed to calculate_c3_assimilation
or
calculate_c4_assimilation
in order to estimate the operating
An
from a photosynthesis model.
If Ca_atmospheric
is outside the range of Ca
values in
aci_exdf
, then the operating point cannot be reasonably estimated; in
this case, a warning occurs and all calculated return values are set to
NA
. If Ca_atmospheric
is NA
, all calculated return values
are set to NA
but no warning occurs.
# Read an example Licor file included in the PhotoGEA package
licor_file <- read_gasex_file(
PhotoGEA_example_file_path('c3_aci_1.xlsx')
)
# Define a new column that uniquely identifies each curve
licor_file[, 'species_plot'] <-
paste(licor_file[, 'species'], '-', licor_file[, 'plot'] )
# Organize the data
licor_file <- organize_response_curve_data(
licor_file,
'species_plot',
c(9, 10, 16),
'CO2_r_sp'
)
# Calculate temperature-dependent values of photosynthetic parameters
licor_file <- calculate_temperature_response(licor_file, c3_temperature_param_sharkey)
# Calculate the total pressure in the Licor chamber
licor_file <- calculate_total_pressure(licor_file)
# Calculate Cc, assuming an infinite mesophyll conductance (so `Cc` = `Ci`)
licor_file <- apply_gm(licor_file, Inf)
# Determine the operating point for just one curve from the data set
one_result <- estimate_operating_point(
licor_file[licor_file[, 'species_plot'] == 'tobacco - 1', , TRUE],
Ca_atmospheric = 420
)
one_result[, 'operating_Cc']
one_result[, 'operating_Ci']
one_result[, 'operating_An']
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.