Closed yufenghe22 closed 1 month ago
By default, PhotoGEA
uses an Arrhenius function for the temperature response of Vcmax
when fitting C3 A-Ci curves. This is usually accomplished by calling something like licor_data <- calculate_arrhenius(licor_data, c3_arrhenius_bernacchi)
. One result of this command is that licor_data
will now have a column called Vcmax_norm
that encodes the temperature response as a dimensionless multiplicative factor. Its value will be 1 when the leaf temperature is 25, and usually different from 1 otherwise. During the fitting process, the value of Vcmax
at the leaf temperature will be calculated as Vcmax_at_25 * Vcmax_norm
.
So, if you want to use a different temperature response, you can do something like the following:
# Calculate Arrhenius temperature response
licor_data <- calculate_arrhenius(licor_data, c3_arrhenius_bernacchi)
# Override the default Vcmax temperature response
Vcmax_temperature_response <- function(Tleaf, ...) {
# This function should return a dimensionless multiplicative factor representing the temperature response of Vcmax
return(1)
}
licor_data[, 'Vcmax_norm'] <- Vcmax_temperature_response(licor_data[, 'TleafCnd'], other_param)
Then you can continue with the rest of the fitting as usual.
In PhotoGEA
, the temperature response was deliberately separated from the fitting process to make it as flexible as possible. Currently, there are built-in functions for Arrhenius and Gaussian temperature responses (calculate_arrhenius
and calculate_peaked_gaussian
, respectively). But users are free to use any temperature response via the technique described above. Eventually, more temperature response functions can be added to the package.
Thanks! This works perfectly. I created a standalone R function of the BioCro FvCB module (https://github.com/Matthews-Research-Group/BioCro-ePhotosynthesis-v2/tree/master/enzyme_optimization/fit_Aci/for_calibration_with_OBS/my_scripts). Using the parameters from PhotoGEA (with my new Vcmax temperature function), I can generate ACi and AQ results (see below), almost the same as your results.
This shows that the R function is valid, consistent with BioCro's and PhotoGEA. The purpose of creating a standalone R fucntion of the FvCB is that one can generate ACi, AQ or AT curves more conveniently by changing Vcmax and/or Jmax. For me, I need it for calibrating/comparing ePhotosynthesis. The function takes inputs like the follows,
BioCro_FvCB <- function(Qin,Tleaf,Ci,Vcmax,Jmax,Rd,TPU){}
PhotoGEA outputs the
Vcmax_at_25
by the functionfit_c3_aci
. Is it assuming anarrhenius_exponential
of the temperature response betweenVcmax
andVcmax_at_25
? Now I have a new temperature response function, how can I add that to PhotoGEA? I think it might affect the estimated value ofVcmax_at_25
.