curvefits {phenofit} | R Documentation |
Fine Curve fitting
Description
Fine Curve fitting for INPUT time-series.
Usage
curvefits(INPUT, brks, options = list(), ...)
Arguments
INPUT |
A list object with the elements of 't', 'y', 'w', 'Tn' (optional)
and 'ylu', returned by |
brks |
A list object with the elements of 'fit' and 'dt', returned by
|
options |
see section: options for fitting for details. |
... |
other parameters to |
Value
List of phenofit fitting object.
options for fitting
-
methods
(defaultc('AG', 'Beck', 'Elmore', 'Zhang')``): Fine curve fitting methods, can be one or more of
c('AG', 'Beck', 'Elmore', 'Zhang', 'Gu', 'Klos')‘. Note that ’Gu' and 'Klos' are very slow. -
iters
(default 2): max iterations of fine fitting. -
wFUN
(defaultwTSM
): Character or function, weights updating function of fine fitting function. -
wmin
(default 0.1): min weights in the weights updating procedure. -
use.rough
(default FALSE): Whether to use rough fitting smoothed time-series as input? Iffalse
, smoothed VI by rough fitting will be used for Phenological metrics extraction; Iftrue
, original inputy
will be used (rough fitting is used to divide growing seasons and update weights. -
use.y0
(default TRUE): boolean. whether to use originaly0
as the input ofplot_input
, note that not for curve fitting.y0
is the original value before the process ofcheck_input
. -
nextend
(default 2): Extend curve fitting window, untilnextend
good or marginal points are found in the previous and subsequent growing season. -
maxExtendMonth
(default 1): Search good or marginal good values in previous and subsequentmaxExtendMonth
period. -
minExtendMonth
(default 0.5): Extend period defined bynextend
andmaxExtendMonth
, should be no shorter thanminExtendMonth
. When all points of the input time-series are good value, then the extending period will be too short. In that situation, we can't make sure the connection between different growing seasons is smoothing. -
minPercValid
: (default 0, not use). If the percentage of good- and marginal- quality points is less thanminPercValid
, curve fiting result is set toNA
. -
minT
: (not use). IfTn
not provided inINPUT
,minT
will not be used.minT
use night temperature Tn to define backgroud value (days withTn < minT
treated as ungrowing season).
See Also
Examples
data("CA_NS6")
d = CA_NS6
nptperyear <- 23
INPUT <- check_input(d$t, d$y, d$w, QC_flag = d$QC_flag,
nptperyear = nptperyear, south = FALSE,
maxgap = nptperyear/4, alpha = 0.02, wmin = 0.2)
# plot_input(INPUT)
# Rough fitting and growing season dividing
wFUN <- "wTSM"
brks2 <- season_mov(INPUT,
options = list(
rFUN = "smooth_wWHIT", wFUN = wFUN,
r_min = 0.05, ypeak_min = 0.05,
lambda = 10,
verbose = FALSE
))
# plot_season(INPUT, brks2, d)
# Fine fitting
fits <- curvefits(
INPUT, brks2,
options = list(
methods = c("AG", "Beck", "Elmore", "Zhang"), #,"klos", "Gu"
wFUN = wFUN,
nextend = 2, maxExtendMonth = 2, minExtendMonth = 1, minPercValid = 0.2
)
)
r_param = get_param(fits)
r_pheno = get_pheno(fits)
r_gof = get_GOF(fits)
d_fit = get_fitting(fits)
g <- plot_curvefits(d_fit, brks2)
grid::grid.newpage(); grid::grid.draw(g)