Description Usage Arguments Details Value See Also Examples
Divide growing seasons according to rough fitting (rFUN
) result .
For season
, rough fitting is applied for whole.
For season_mov
rough fitting is applied in every year, during which
maxExtendMonth
is extended.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55  season(
INPUT,
rFUN = smooth_wWHIT,
wFUN = wTSM,
iters = 2,
wmin = 0.1,
lambda,
nf = 3,
frame = floor(INPUT$nptperyear/5) * 2 + 1,
minpeakdistance,
ypeak_min = 0.1,
r_max = 0.2,
r_min = 0.05,
rtrough_max = 0.6,
MaxPeaksPerYear = 2,
MaxTroughsPerYear = 3,
calendarYear = FALSE,
IsPlot = FALSE,
plotdat = INPUT,
print = FALSE,
adj.param = TRUE,
rm.closed = TRUE,
is.continuous = TRUE,
.check_season = TRUE,
...
)
season_mov(
INPUT,
rFUN = smooth_wWHIT,
wFUN = wTSM,
iters = 2,
wmin = 0.1,
IsOptim_lambda = FALSE,
lambda = NULL,
nf = 3,
frame = floor(INPUT$nptperyear/5) * 2 + 1,
maxExtendMonth = 12,
calendarYear = FALSE,
r_min = 0.05,
rtrough_max = 0.6,
...,
len_min = 45,
len_max = 650,
.check_season = TRUE,
years.run = NULL,
IsPlot = TRUE,
IsPlot.vc = FALSE,
IsPlot.OnlyBad = FALSE,
plotdat = INPUT,
print = TRUE,
titlestr = ""
)
stat_season(INPUT, brks)

INPUT 
A list object with the elements of 
rFUN 
Rough curve fitting function, can be one of 
wFUN 
weights updating function, can be one of 
iters 
How many times curve fitting is implemented. 
wmin 
Double, minimum weigth (i.e. weight of snow, ice and cloud). 
lambda 
The smoothing parameter of 
nf 
The parameter of 
frame 
The parameter of 
minpeakdistance 
Numberic, in the unit of points (default as

ypeak_min 

r_max 
Similar as 
r_min 
Threshold is defined as the difference of peak value with trough value. There are two threshold (left and right). The minimum threshold should be greater than r_min. 
rtrough_max 

MaxPeaksPerYear 
This parameter is used to adjust lambda in iterations. If PeaksPerYear > MaxPeaksPerYear, then lambda = lambda*2. 
MaxTroughsPerYear 
This parameter is used to adjust lambda in iterations. If TroughsPerYear > MaxTroughsPerYear, then lambda = lambda*2. 
calendarYear 
If true, only one static calendar growing season will be returned. 
IsPlot 
Boolean 
plotdat 
(optional) A list or data.table, with 
print 
Whether to print progress information 
adj.param 
Adjust rough curve fitting function parameters automatically, if too many or to less peak and trough values. 
rm.closed 
boolean. Whether check the two closest peaks (or troughs). 
is.continuous 
boolean. Whether the input is continuous? This parameter is for fluxsite siteyear data. 
.check_season 
not used (only for debug) 
... 
For 
IsOptim_lambda 
Whether to optimize Whittaker's parameter lambda by Vcurve theory? 
maxExtendMonth 
Previous and subsequent 
len_min, len_max 
the minimum and maximum length (in the unit of days) of growing season 
years.run 
Numeric vector. Which years to run? If not specified, it is all years. 
IsPlot.vc 
Whether to plot Vcurve optimized timeseries. 
IsPlot.OnlyBad 
If true, only plot partial figures whose NSE < 0.3. 
titlestr 
string for title 
brks 
A list object returned by 
Before dividing growing season, INPUT
should be added a year in head
and tail first by add_HeadTail
.
Finally, use findpeaks()
to get local maximum and local minimum values.
Two local minimum define a growing season.
If two local minimum(maximum) are too closed, then only the smaller(biger)
is left.
whit
: A data.table of Rough fitting result, with the columns of
(t
, y
, witer1
, ..., witerN
, ziter1
, ..., ziterN
).
dt
: A data.table of Growing season dividing information, with the columns
of (beg
, peak
, end
, y_beg
, y_peak
, y_end
, len
, year
,
season
, flag
).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36  library(phenofit)
data("MOD13A1")
df < tidy_MOD13.gee(MOD13A1$dt)
st < MOD13A1$st
date_start < as.Date('20130101')
date_end < as.Date('20161231')
sitename < 'CANS6' # df$site[1]
d < df[site == sitename & (date >= date_start & date <= date_end), ]
sp < st[site == sitename, ]
south < sp$lat < 0
nptperyear < 23
# global parameter
IsPlot = TRUE
print = FALSE
ypeak_min = 0.05
wFUN = wTSM
# add one year in head and tail
dnew < add_HeadTail(d, south = south, nptperyear = nptperyear)
INPUT < check_input(dnew$t, dnew$y, dnew$w, QC_flag = dnew$QC_flag,
nptperyear = nptperyear, south = south,
maxgap = nptperyear/4, alpha = 0.02, wmin = 0.2)
# all year as a whole
brks < season(INPUT,
rFUN = smooth_wWHIT, wFUN = wFUN,
lambda = 10,
plotdat = d, IsPlot = IsPlot, print = FALSE, IsPlot.OnlyBad = FALSE)
# curve fitting by year
brks2 < season_mov(INPUT,
rFUN = smooth_wWHIT, wFUN = wFUN,
lambda = 10,
plotdat = d, IsPlot = IsPlot, print = FALSE, IsPlot.OnlyBad = FALSE)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.