View source: R/bigleaf_physiology.r
stomatal.slope | R Documentation |
Estimation of the intrinsic WUE metric "g1" (stomatal slope) from nonlinear regression.
stomatal.slope( data, Tair = "Tair", pressure = "pressure", GPP = "GPP", Gs = "Gs_mol", VPD = "VPD", Ca = "Ca", Rleaf = NULL, model = c("USO", "Ball&Berry", "Leuning"), robust.nls = FALSE, nmin = 40, fitg0 = FALSE, g0 = 0, fitD0 = FALSE, D0 = 1.5, Gamma = 50, missing.Rleaf.as.NA = FALSE, constants = bigleaf.constants(), ... )
data |
Data.frame or matrix containing all required columns |
Tair |
Air (or surface) temperature (deg C) |
pressure |
Atmospheric pressure (kPa) |
GPP |
Gross primary productivity (umol CO2 m-2 s-1) |
Gs |
Surface conductance to water vapor (mol m-2 s-1) |
VPD |
Vapor pressure deficit (kPa) |
Ca |
Atmospheric CO2 concentration (air or surface) (umol mol-1) |
Rleaf |
Ecosystem respiration stemming from leaves (umol CO2 m-2 s-1); defaults to 0 |
model |
Stomatal model used. One of |
robust.nls |
Use robust nonlinear regression ( |
nmin |
Minimum number of data required to perform the fit; defaults to 40. |
fitg0 |
Should g0 and g1 be fitted simultaneously? |
g0 |
Minimum stomatal conductance (mol m-2 s-1); ignored if |
fitD0 |
Should D0 be fitted along with g1 (and g0 if |
D0 |
Stomatal sensitivity parameter to VPD; only used if |
Gamma |
Canopy CO2 compensation point (umol mol-1); only used if |
missing.Rleaf.as.NA |
if Rleaf is provided, should missing values be treated as |
constants |
Kelvin - conversion degree Celsius to Kelvin |
... |
Additional arguments to |
All stomatal models were developed at leaf-level, but its parameters can also be estimated at ecosystem level (but be aware of caveats).
The unified stomatal optimization (USO) model is given by (Medlyn et al. 2011):
gs = g0 + 1.6*(1.0 + g1/sqrt(VPD)) * An/ca
The semi-empirical model by Ball et al. 1987 is defined as:
gs = g0 + g1* ((An * rH) / ca)
Leuning 1995 suggested a revised version of the Ball&Berry model:
gs = g0 + g1*An / ((ca - Γ) * (1 + VPD/D0))
where Γ is by default assumed to be constant, but likely varies with temperature and among
plant species.
The equations above are valid at leaf-level. At ecosystem level, An is replaced by GPP (or GPP - Rleaf,
where Rleaf is leaf respiration), and gs (stomatal conductance) by Gs (surface conductance).
The parameters in the models are estimated using nonlinear regression (nls
) if
robust.nls = FALSE
and weighted nonlinear regression if robust.nls = TRUE
.
The weights are calculated from nlrob
, and nls
is used for the actual fitting.
Alternatively to measured VPD and Ca (i.e. conditions at instrument height), conditions at
the big-leaf surface can be provided. Those can be calculated using surface.conditions
.
A nls
model object, containing information on the fitted parameters, their uncertainty range,
model fit, etc.
Medlyn B.E., et al., 2011: Reconciling the optimal and empirical approaches to modelling stomatal conductance. Global Change Biology 17, 2134-2144.
Ball T.J., Woodrow I.E., Berry J.A. 1987: A model predicting stomatal conductance and its contribution to the control of photosynthesis under different environmental conditions. In: Progress in Photosynthesis Research, edited by J.Biggins, pp. 221-224, Martinus Nijhoff Publishers, Dordrecht, Netherlands.
Leuning R., 1995: A critical appraisal of a combined stomatal-photosynthesis model for C3 plants. Plant, Cell and Environment 18, 339-355.
Knauer, J. et al., 2018: Towards physiologically meaningful water-use efficiency estimates from eddy covariance data. Global Change Biology 24, 694-710.
surface.conductance
## filter data to ensure that Gs is a meaningful proxy to canopy conductance (Gc) DE_Tha_Jun_2014_2 <- filter.data(DE_Tha_Jun_2014,quality.control=FALSE, vars.qc=c("Tair","precip","VPD","H","LE"), filter.growseas=FALSE,filter.precip=TRUE, filter.vars=c("Tair","PPFD","ustar","LE"), filter.vals.min=c(5,200,0.2,0), filter.vals.max=c(NA,NA,NA,NA),NA.as.invalid=TRUE, quality.ext="_qc",good.quality=c(0,1), missing.qc.as.bad=TRUE,GPP="GPP",doy="doy", year="year",tGPP=0.5,ws=15,min.int=5,precip="precip", tprecip=0.1,precip.hours=24,records.per.hour=2) # calculate Gs from the the inverted PM equation Ga <- aerodynamic.conductance(DE_Tha_Jun_2014_2,Rb_model="Thom_1972")[,"Ga_h"] # if G and/or S are available, don't forget to indicate (they are ignored by default). Gs_PM <- surface.conductance(DE_Tha_Jun_2014_2,Tair="Tair",pressure="pressure", Rn="Rn",G="G",S=NULL,VPD="VPD",Ga=Ga, formulation="Penman-Monteith")[,"Gs_mol"] ### Estimate the stomatal slope parameter g1 using the USO model mod_USO <- stomatal.slope(DE_Tha_Jun_2014_2,model="USO",GPP="GPP",Gs=Gs_PM, robust.nls=FALSE,nmin=40,fitg0=FALSE) ### Use robust regression to minimize influence of outliers in Gs mod_USO <- stomatal.slope(DE_Tha_Jun_2014_2,model="USO",GPP="GPP",Gs=Gs_PM, robust.nls=TRUE,nmin=40,fitg0=FALSE) ### Estimate the same parameter from the Ball&Berry model and prescribe g0 mod_BB <- stomatal.slope(DE_Tha_Jun_2014_2,model="Ball&Berry",GPP="GPP", robust.nls=FALSE,Gs=Gs_PM,g0=0.01,nmin=40,fitg0=FALSE) ## same for the Leuning model, but this time estimate both g1 and g0 (but fix D0) mod_Leu <- stomatal.slope(DE_Tha_Jun_2014_2,model="Leuning",GPP="GPP",Gs=Gs_PM, robust.nls=FALSE,nmin=40,fitg0=FALSE,D0=1.5,fitD0=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.