View source: R/initial_guess_c3_variable_j.R
initial_guess_c3_variable_j | R Documentation |
Creates a function that makes an initial guess of "variable J" model parameter
values for one curve. This function is used internally by
fit_c3_variable_j
.
Values estimated by this guessing function should be considered inaccurate, and should always be improved upon by an optimizer.
initial_guess_c3_variable_j(
alpha_g,
alpha_old,
alpha_s,
alpha_t,
Gamma_star_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',
etr_column_name = 'ETR',
gamma_star_norm_column_name = 'Gamma_star_norm',
j_norm_column_name = 'J_norm',
kc_norm_column_name = 'Kc_norm',
ko_norm_column_name = 'Ko_norm',
oxygen_column_name = 'oxygen',
phips2_column_name = 'PhiPS2',
qin_column_name = 'Qin',
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 |
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 |
etr_column_name |
The name of the column in |
gamma_star_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 |
phips2_column_name |
The name of the column in |
qin_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 |
The variable J method is a fitting procedure for estimating values of
alpha_g
, alpha_old
, alpha_s
, alpha_t
,
Gamma_star_at_25
, J_at_25
, Kc_at_25
, Kc_at_25
,
RL_at_25
, tau
, Tp_at_25
, and Vcmax_at_25
from a
measured C3 CO2 response curve + chlorophyll fluorescence. For more
information about these parameters, see the documentation at
calculate_c3_variable_j
and
calculate_c3_assimilation
.
Here, we make an estimate for tau
by noting that gas exchange
measurement systems equipped with chlorophyll fluorometers typically make an
estimate for the electron transport rate (ETR
), which is essentially
synonymous with the actual RuBP regeneration rate. Thus, tau
can be
estimated by inverting the equation for J_actual
:
tau = ETR / (Qin * PhiPSII)
Estimates of the remaining parameters are calculated by setting Cc = Ci
and then calling initial_guess_c3_aci
.
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
, J_at_25
, Kc_at_25
, Ko_at_25
,
RL_at_25
, tau
, 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
# - Kc_at_25 to 400 micromol / mol
# - Ko_at_25 to 275 mmol / mol
guessing_func <- initial_guess_c3_variable_j(
alpha_g = 0,
alpha_old = 0,
alpha_s = 0,
alpha_t = 0,
Gamma_star = 40,
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_variable_j,
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.