stomatal.slope {bigleaf}R Documentation

Stomatal Slope Parameter "g1"

Description

Estimation of the intrinsic WUE metric "g1" (stomatal slope) from nonlinear regression.

Usage

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(),
  ...
)

Arguments

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 "USO","Ball&Berry","Leuning".

robust.nls

Use robust nonlinear regression (nlrob)? Default is FALSE.

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 fitg0 = TRUE.

fitD0

Should D0 be fitted along with g1 (and g0 if fitg0 = TRUE)?; only used if model = "Leuning".

D0

Stomatal sensitivity parameter to VPD; only used if model = "Leuning" and fitD0 = FALSE.

Gamma

Canopy CO2 compensation point (umol mol-1); only used if model = "Leuning". Can be a constant or a variable. Defaults to 50 umol mol-1.

missing.Rleaf.as.NA

if Rleaf is provided, should missing values be treated as NA (TRUE) or set to 0 (FALSE, the default)?

constants

Kelvin - conversion degree Celsius to Kelvin
Rgas - universal gas constant (J mol-1 K-1)
DwDc - Ratio of the molecular diffusivities for water vapor and CO2

...

Additional arguments to nls or nlrob if robust.nls = TRUE.

Details

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 - \Gamma) * (1 + VPD/D0))

where \Gamma 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.

Value

A nls model object, containing information on the fitted parameters, their uncertainty range, model fit, etc.

References

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.

See Also

surface.conductance

Examples

## 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)


[Package bigleaf version 0.8.2 Index]