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
)
An is.trex
-compliant time series from tdm_cal.sfd
outputs
(e.g., X$sfd.mw$sfd
)
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.
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.
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.
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.
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.
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.
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).
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.
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
.
Numeric, defining the quantile of the \(G_{C}\) data which should be considered as GC.max (default = 1).
Logical; if TRUE
, a plot is generated presenting the response of \(G_{C}\) to VPD.
A named list of data.frame
objects,
containing the following items:
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"]
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"].
A model summary object (see summary()
)
of the model between VPD and \(G_{C}\).
A model summary object (see summary()
)
of the model between VPD and \(G_{C}\)/\(GC.max\).
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
).
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)
}