Generates relevant outputs from the sap flux density (SFD) values. This function provides both \(F_{d}\) (\(SFD\) expressed in \(mmol m^{-2} s^{-1}\)) and crown conductance values (\(G_{C}\); an analogue to stomatal conductance) in an easily exportable format. Additionally, the function can perform environmental filtering on \(F_{d}\) and \(G_{C}\) and model \(G_{C}\) sensitivity to vapour pressure deficit (VPD). The user can choose between in- (method = "env.filt") or excluding (method = "stat") environmental filtering on the \(G_{C}\) and adjust the filter threshold manually.

out.data(
  input,
  vpd.input,
  sr.input,
  prec.input,
  peak.hours = c(10:14),
  low.sr = 150,
  peak.sr = 300,
  vpd.cutoff = 0.5,
  prec.lim = 1,
  method = "env.filt",
  max.quant = 1,
  make.plot = TRUE
)

Arguments

input

An is.trex-compliant time series from tdm_cal.sfd outputs (e.g., X$sfd.mw$sfd)

vpd.input

An is.trex-compliant object an individual series of VPD in kPa (see vpd). The extent and temporal resolution should be equal to input. Use dt.steps to correct if needed.

sr.input

An is.trex-compliant object of an individual series of solar irradiance (e.g. either PAR or global radiation; see sr). The extent and temporal resolution should be equal to input. Use dt.steps to correct if needed. This data is only needed when applying the "env.filt" method.

prec.input

An is.trex-compliant object of daily precipitation in mm d-1 (see preci). The extent should be equal to input with a daily temporal resolution. Use dt.steps to correct if needed. This data is only needed when applying the "env.filt" method.

peak.hours

Numeric vector with hours which should be considered as peak-of-the-day hours (default = c(10:14)). This variable is only needed when the "stat" method is selected.

low.sr

Numeric threshold value in the unit of the sr.input time-series (e.g., W m-2) to exclude cloudy days which impact \(G_{C}\) (default = 150 W m-2). This variable is only needed when the "env.filt" method is selected.

peak.sr

Numeric threshold value in the unit of the sr.input time-series (e.g., W m-2) to exclude hours which are not considered as peak-of-the-day hours (default = 300 W m-2). This variable is only needed when the "env.filt" method is selected.

vpd.cutoff

Numeric threshold value in kPa for peak-of-the-day mean VPD to eliminate unrealistic and extremely high values of \(G_{C}\) due to low VPD values or high values of \(G_{C}\) (default = 0.5 kPa).

prec.lim

Numeric threshold value in mm d-1 for daily precipitation to remove rainy days (default = 1 mm d-1). This variable is only needed when "env.filt" method is selected.

method

Character string indicating whether precipitation and solar irradiance data should be used to determined peak-of-the-day \(G_{C}\) values and filter the daily \(G_{C}\) values ("env.filt") or not ("stat"; default). When "env.filt" is selected, input, vpd.input, sr.input, prec.input, peak.sr, low.sr, vpd.cutoff and prec.lim have to be provided. When "stat" is selected only input, vpd.input and peak.hours.

max.quant

Numeric, defining the quantile of the \(G_{C}\) data which should be considered as GC.max (default = 1).

make.plot

Logical; if TRUE, a plot is generated presenting the response of \(G_{C}\) to VPD.

Value

A named list of data.frame objects, containing the following items:

raw

A data.frame containing the input data and filtered values. Columns include the timestamp [,"timestamp"] (e.g., "2012-01-01 00:00:00"), year of the data [,"year"], day of year [,"doy"], input solar radiance data [,"sr"], daily average radiance data [,"sr"], input vapour pressure deficit data [,"vpd"], isolated peak-of-the-day vapour pressure deficit values [,"vpd.filt"], input daily precipitation [,"prec.day"], sap flux density expressed in mmol m-2 s-1 [,"fd"], crown conductance expressed in mmol m-2 s-1 kPa-1 [,"gc"], and the filtered crown conductance [,"gc.filt"]

peak.mean

A data.frame containing the daily mean crown conductance values. Columns include the timestamp [,"timestamp"] (e.g., "2012-01-01"), peak-of-the-day vapour pressure deficit [,"vpd.filt"], the filtered crown conductance mmol m-2 s-1 kPa-1 [,"gc.filt"], and the normalized crown conductance according to the maximum crown conductance [,"gc.norm"].

sum.mod

A model summary object (see summary()) of the model between VPD and \(G_{C}\).

sum.mod.norm

A model summary object (see summary()) of the model between VPD and \(G_{C}\)/\(GC.max\).

Details

Various relevant outputs can be derived from the SFD data. This function provides the option to recalculate SFD to \(F_{d}\) (expressed in mmol m-2 s-1) and crown conductance (according to Pappas et al. 2018). \(G_{C}\) is estimated per unit sapwood area, where \(G_{C} = F_{d} / VPD\) (in kPa), assuming that i) the stem hydraulic capacitance between the height of sensor and the leaves is negligible, and ii) that the canopy is well coupled to the atmosphere. In order to reduce the effect of stem hydraulic capacitance, peak-of-the-day \(G_{C}\) are solely considered for calculating daily average \(G_{C}\). Peak-of-the-day conditions are defined by peak.hours or peak.sr. Moreover, to analyse the relationship between \(G_{C}\) and environmental measurements (e.g., VPD), the daily mean peak-of-the-day \(G_{C}\) values can be restricted to: i) non-cloudy days (see low.sr), to reduce the impact of low irradiance on \(G_{C}\), ii) non-rainy days (see prec.lim), as wet leaves are not well coupled to the atmosphere, and iii) daily mean peak-of-the-day \(G_{C}\) great then a threshold (see vpd.cutoff), to eliminate unrealistically high \(G_{C}\) values due to low \(F_{d}\) or VPD values (when method = "env.filt"). Moreover, the sensitivity of the daily mean peak-of-the-day \(G_{C}\) to VPD is modelled by fitting the following model:

$$G_{C} = \alpha + \beta VPD^{-0.5}$$

Besides using the raw daily mean peak-of-the-day \(G_{C}\) values, the function also applies a normalization where daily mean peak-of-the-day \(G_{C}\) is standardized to the maximum conductance (GC.max; see max.quant).

Examples

if (FALSE) {
#Gc response function
#Gc response function
raw   <- is.trex(example.data(type="doy"), tz="GMT",
                 time.format="%H:%M", solar.time=TRUE,
                 long.deg=7.7459, ref.add=FALSE)

input <- dt.steps(input=raw, start="2013-05-01 00:00", end="2013-11-01 00:00",
                   time.int=15, max.gap=60, decimals=10, df=FALSE)

input[which(input<0.2)]<- NA
input <- tdm_dt.max(input, methods=c("dr"), det.pd=TRUE, interpolate=FALSE,
                 max.days=10, df=FALSE)

output.data<- tdm_cal.sfd(input,make.plot=TRUE,df=FALSE,wood="Coniferous", decimals = 6)

input<- output.data$sfd.dr$sfd

output<- out.data(input=input, vpd.input=vpd, sr.input=sr, prec.input=preci,
                  low.sr = 150, peak.sr=300, vpd.cutoff= 0.5, prec.lim=1,
                  method="env.filt", max.quant=0.99, make.plot=TRUE)
head(output)

}