When long-term \(K\) time series (~3 years) are provided, one can perform
a signal dampening correction (when sensors were not re-installed;
see Peters et al. 2018). Applying the signal dampening
correction requires visually inspecting the correction curve
(see make.plot = TRUE
). The correction curve is constructed with
the day since installation and the day of year (DOY) to account for seasonal changes in \(K\)
values. The function returns corrected \(K\) values and the applied correction curve.
tdm_damp(input, k.threshold = 0.05, make.plot = TRUE, df = FALSE)
An is.trex
-compliant object (zoo
vector, data.frame
) of \(K\) values containing
a timestamp and a value column.
Numeric, the threshold below which daily maximum \(K\) values should not be considered (default = 0.05).
Logical; if TRUE
, a plot is generated presenting the correction curve and the \(K\) time series.
Logical; If TRUE
, output is provided in a data.frame
format
with a timestamp and a value column. If FALSE
, output
is provided as a zoo
vector object (default = FALSE).
@details The function fits a correction curve for signal dampening (e.g., due to wounding)
according to Peters et al. (2018). A sensor specific function is fitted to daily maximum
\(K\) values (considering a minimum cut-off threshold; see k.threshold
). Dependent variables
for the function include seasonality (DOY) and days since installation (\(t\)).
First, seasonal effects are removed by correcting the \(K\) series (residuals; \(Kresid\))
to a second-order polynomial with DOY. These residuals are then used within a
non-linear model:
$$K_{resid} = (a + b * t)/(1 + c * t + d * t^{2})$$
The fitted parameters for \(t\) (with \(a\), \(b\), \(c\) and \(d\)) are used to correct \(K\) and scale it to the maximum within the first year of installation. Note, that the stability of the fit has to be visually inspected before using the output data.
A zoo
object or data.frame
in the appropriate
format for other functionalities.
See tdm_dt.max
output specifications.
All \(K\) values for each method are provided when an is.trex
-object was used as input.
If an individual time series was provided for input with \(K\) values an alternative output is given:
corrected \(K\) values according to the correction curve.
\(K\) values provided as input.
data.frame
with the coefficients of the correction curve.
Peters RL, Fonti P, Frank DC, Poyatos R, Pappas C, Kahmen A, Carraro V, Prendin AL, Schneider L, Baltzer JL, Baron-Gafford GA, Dietrich L, Heinrich I, Minor RL, Sonnentag O, Matheny AM, Wightman MG, Steppe K. 2018. Quantification of uncertainties in conifer sap flow measured with the thermal dissipation method. New Phytologist 219:1283-1299 doi:10.1111/nph.15241
if (FALSE) {
#correct for dampening of the signal
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,
time.int = 15,
max.gap = 60,
decimals = 6,
df = FALSE
)
input[which(input < 0.2)] <- NA
input <-
tdm_dt.max(
input,
methods = c("pd", "mw", "dr"),
det.pd = TRUE,
interpolate = FALSE,
max.days = 10,
df = FALSE
)
output.data <- tdm_damp(input,
k.threshold = 0.05,
make.plot = TRUE,
df = FALSE)
str(output.data)
head(output.data[["k.dr"]])
plot(output.data[["k.dr"]], ylab = expression(italic("K")))
}