View source: R/initial_guess_c3_aci.R
initial_guess_c3_aci | R Documentation |
Creates a function that makes an initial guess of FvCB model parameter values
for one curve. This function is used internally by fit_c3_aci
.
Values estimated by this guessing function should be considered inaccurate, and should always be improved upon by an optimizer.
initial_guess_c3_aci(
alpha_g,
alpha_old,
alpha_s,
alpha_t,
Gamma_star_at_25,
gmc_at_25,
Kc_at_25,
Ko_at_25,
cc_threshold_rd = 100,
Wj_coef_C = 4.0,
Wj_coef_Gamma_star = 8.0,
a_column_name = 'A',
ci_column_name = 'Ci',
gamma_star_norm_column_name = 'Gamma_star_norm',
gmc_norm_column_name = 'gmc_norm',
j_norm_column_name = 'J_norm',
kc_norm_column_name = 'Kc_norm',
ko_norm_column_name = 'Ko_norm',
oxygen_column_name = 'oxygen',
rl_norm_column_name = 'RL_norm',
total_pressure_column_name = 'total_pressure',
tp_norm_column_name = 'Tp_norm',
vcmax_norm_column_name = 'Vcmax_norm'
)
alpha_g |
A dimensionless parameter where |
alpha_old |
A dimensionless parameter where |
alpha_s |
A dimensionless parameter where |
alpha_t |
A dimensionless parameter where |
Gamma_star_at_25 |
The chloroplastic CO2 concentration at which CO2 gains from Rubisco
carboxylation are exactly balanced by CO2 losses from Rubisco oxygenation,
at 25 degrees C, expressed in |
gmc_at_25 |
The mesophyll conductance to CO2 diffusion at 25 degrees C, expressed in
|
Kc_at_25 |
The Michaelis-Menten constant for Rubisco carboxylation at 25 degrees C,
expressed in |
Ko_at_25 |
The Michaelis-Menten constant for Rubisco oxygenation at 25 degrees C,
expressed in |
cc_threshold_rd |
An upper cutoff value for the chloroplast CO2 concentration in
|
Wj_coef_C |
A coefficient in the equation for RuBP-regeneration-limited carboxylation,
whose value depends on assumptions about the NADPH and ATP requirements of
RuBP regeneration; see |
Wj_coef_Gamma_star |
A coefficient in the equation for RuBP-regeneration-limited carboxylation,
whose value depends on assumptions about the NADPH and ATP requirements of
RuBP regeneration; see |
a_column_name |
The name of the column in |
ci_column_name |
The name of the column in |
gamma_star_norm_column_name |
The name of the column in |
gmc_norm_column_name |
The name of the column in |
j_norm_column_name |
The name of the column in |
kc_norm_column_name |
The name of the column in |
ko_norm_column_name |
The name of the column in |
oxygen_column_name |
The name of the column in |
rl_norm_column_name |
The name of the column in |
total_pressure_column_name |
The name of the column in |
tp_norm_column_name |
The name of the column in |
vcmax_norm_column_name |
The name of the column in |
Here we estimate values of J_at_25
, RL_at_25
, Tp_at_25
,
and Vcmax_at_25
from a measured C3 CO2 response curve. It is difficult
to estimate values of alpha_g
, alpha_old
, alpha_s
,
alpha_t
, Gamma_star_at_25
, gmc_at_25
, Kc_at_25
,
Ko_at_25
from a curve, so they must be supplied beforehand. For more
information about these parameters, see the documentation for
calculate_c3_assimilation
.
Estimating RL: Regardless of which process is limiting at low
Cc
, it is always true that An = -RL
when
Cc = Gamma_star_agt
. Here we make a linear fit of the measured
An
vs. Cc
values, and evaluate it at at
Cc = Gamma_star_agt
to estimate RL
. If the linear fit
predicts a negative value for RL
, we use a typical value
instead (0.5 micromol m^(-2) s^(-1)
).
Estimating Vc: Once an estimate for RL
has been found,
the RuBP carboxylation rate Vc
can be estimated using
Vc = (An + RL) / (1 - Gamma_star_agt / Cc)
. This is useful for
the remaining parameter estimates.
Estimating Vcmax: An estimate for Vcmax
can be
obtained by solving the equation for Wc
for Vcmax
, and
evaluating it with Wc = Vc
as estimated above. In the
rubisco-limited part of the curve, Vc = Wc
and the estimated
values of Vcmax
should be reasonable. In other parts of the
curve, Wc
is not the limiting rate, so Vc < Wc
.
Consequently, the estimated values of Vcmax
in these parts of
the curve will be smaller. So, to make an overall estimate, we choose
the the largest estimated Vcmax
value.
Estimating J and Tp: Estimates for these parameters can be
made using the equations for Wj
and Wp
, similar to the
approach followed for Vcmax
.
For the parameter values estimated above, the values of RL_norm
,
Vcmax_norm
, and J_norm
are used to convert the values at leaf
temperature to the values at 25 degrees C.
A function with one input argument rc_exdf
, which should be an
exdf
object representing one C3 CO2 response curve. The return value of
this function will be a numeric vector with twelve elements, representing the
values of alpha_g
, alpha_old
, alpha_s
, alpha_t
,
Gamma_star_at_25
, gmc_at_25
, J_at_25
, Kc_at_25
,
Ko_at_25
, RL_at_25
, Tp_at_25
, and Vcmax_at_25
(in
that order).
# 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 the total pressure in the Licor chamber
licor_file <- calculate_total_pressure(licor_file)
# Calculate temperature-dependent values of C3 photosynthetic parameters
licor_file <- calculate_temperature_response(licor_file, c3_temperature_param_bernacchi)
# Create the guessing function; here we set:
# - All alpha values to 0
# - Gamma_star_at_25 to 40 micromol / mol
# - gmc to infinity
# - Kc_at_25 to 400 micromol / mol
# - Ko_at_25 to 275 mmol / mol
guessing_func <- initial_guess_c3_aci(
alpha_g = 0,
alpha_old = 0,
alpha_s = 0,
alpha_t = 0,
Gamma_star = 40,
gmc_at_25 = Inf,
Kc_at_25 = 400,
Ko_at_25 = 275
)
# Apply it and see the initial guesses for each curve
print(by(licor_file, licor_file[, 'species_plot'], guessing_func))
# A simple way to visualize the guesses is to "fit" the curves using the null
# optimizer, which simply returns the initial guess
aci_results <- consolidate(by(
licor_file,
licor_file[, 'species_plot'],
fit_c3_aci,
fit_options = list(alpha_old = 0),
optim_fun = optimizer_null(),
remove_unreliable_param = 0
))
plot_c3_aci_fit(aci_results, 'species_plot', 'Ci')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.