Identify C3 Limiting Processes
identify_c3_limiting_processes.Rd
Identify limiting processes in a C3 curve, typically the result of a fit.
It is rate for users to call this function directly because it is used
internally ny fit_c3_aci
and fit_c3_variable_j
.
Usage
identify_c3_limiting_processes(
exdf_obj,
a_column_name = 'A_fit',
ac_column_name = 'Ac',
aj_column_name = 'Aj',
ap_column_name = 'Ap',
tol = 1e-3
)
Arguments
- exdf_obj
An
exdf
object representing a C3 response curve.- a_column_name
The name of the column in
exdf_obj
that contains the modeled net CO2 assimilation rate inmicromol m^(-2) s^(-1)
.- ac_column_name
The name of the column in
exdf_obj
that contains the modeled Rubisco-limited net CO2 assimilation rate inmicromol m^(-2) s^(-1)
.- aj_column_name
The name of the column in
exdf_obj
that contains the modeled RuBP-regeneration-limited net CO2 assimilation rate inmicromol m^(-2) s^(-1)
.- ap_column_name
The name of the column in
exdf_obj
that contains the modeled TPU-limited net CO2 assimilation rate inmicromol m^(-2) s^(-1)
.- tol
A relative tolerance factor used to identify when two rates are equal.
Details
For a C3 leaf, An
is given by either Ac
, Aj
, or
Ap
. See the documentation for calculate_c3_assimilation
for more information.
This function first identifies points where An = Ac
, An = Aj
,
and An = Ap
. The results are stored in columns called
Ac_limiting
, Aj_limiting
, and Ap_limiting
, where a value
of TRUE
indicates that the corresponding process is limiting.
Then, the overall limiting state is specified in the limiting_process
column. For example, points where An
equals Ac
but not Aj
or Ap
are designated by limiting_process = 'Ac'
, and likewise
for the other potential limiting processes. If more than one process is
limiting for a point, limiting_process
is set to 'co-limited'
.
Value
An exdf
object based on licor_exdf
that includes new columns as
described above: Ac_limiting
, Aj_limiting
, Ap_limiting
,
and limiting_process
. The categories of these new columns are
set to identify_c3_limiting_processes
to indicate that they were
created using this function.
Examples
# Identify limiting processes in an example curve
example_curve <- exdf(
data.frame(
A_fit = c(1.0, 2.0, 3.0, 4.0, 4.0),
Ac = c(1.0, 2.0, 5.0, 8.0, 9.0),
Aj = c(2.0, 2.5, 3.0, 4.0, 8.0),
Ap = c(NA, NA, 4.0, 4.0, 4.0)
),
units = data.frame(
A_fit = 'micromol m^(-2) s^(-1)',
Ac = 'micromol m^(-2) s^(-1)',
Aj = 'micromol m^(-2) s^(-1)',
Ap = 'micromol m^(-2) s^(-1)',
stringsAsFactors = FALSE
)
)
identify_c3_limiting_processes(example_curve)
#> A_fit [NA] (micromol m^(-2) s^(-1)) Ac [NA] (micromol m^(-2) s^(-1))
#> 1 1 1
#> 2 2 2
#> 3 3 5
#> 4 4 8
#> 5 4 9
#> Aj [NA] (micromol m^(-2) s^(-1)) Ap [NA] (micromol m^(-2) s^(-1))
#> 1 2.0 NA
#> 2 2.5 NA
#> 3 3.0 4
#> 4 4.0 4
#> 5 8.0 4
#> Ac_limiting [identify_c3_limits] () Aj_limiting [identify_c3_limits] ()
#> 1 TRUE FALSE
#> 2 TRUE FALSE
#> 3 FALSE TRUE
#> 4 FALSE TRUE
#> 5 FALSE FALSE
#> Ap_limiting [identify_c3_limits] () limiting_process [identify_c3_limits] ()
#> 1 FALSE Ac
#> 2 FALSE Ac
#> 3 FALSE Aj
#> 4 TRUE co-limited
#> 5 TRUE Ap