
Get derivative of phenofit
object.
D1
first order derivative, D2
second order derivative, n
curvature
curvature.
D1(fit, t = NULL, analytical = TRUE, smoothed.spline = FALSE, ...)D2(fit, t = NULL, analytical = TRUE, smoothed.spline = FALSE, ...)
# S3 method for fFIT
D1(fit, t = NULL, analytical = TRUE, smoothed.spline = FALSE, ...)
# S3 method for fFIT
D2(fit, t = NULL, analytical = TRUE, smoothed.spline = FALSE, ...)
curvature(fit, t = NULL, analytical = TRUE, smoothed.spline = FALSE, ...)
# S3 method for fFIT
curvature(fit, t = NULL, analytical = TRUE, smoothed.spline = FALSE, ...)
der1 First order derivative
der2 Second order derivative
k Curvature
A curve fitting object returned by curvefit
, with the object of:
par
: parameters of curve fitting function
fun
: curve fitting function name, e.g., "doubleLog_AG"
zs
: predicted values, vector or data.frame
If true, numDeriv
package grad
and hess
will be used; if false, D1
and D2
will be used.
Whether apply smooth.spline
first?
Other parameters will be ignored.
If fit$fun
has no gradient function or smoothed.spline = TRUE
,
time-series smoothed by spline first, and get derivatives at last.
If fit$fun
exists and analytical = TRUE
, smoothed.spline
will be ignored.
library(phenofit)
# simulate vegetation time-series
fFUN = doubleLog.Beck
par = c(
mn = 0.1,
mx = 0.7,
sos = 50,
rsp = 0.1,
eos = 250,
rau = 0.1)
t <- seq(1, 365, 8)
tout <- seq(1, 365, 1)
y <- fFUN(par, t)
methods <- c("AG", "Beck", "Elmore", "Gu", "Zhang") # "Klos" too slow
fFITs <- curvefit(y, t, tout, methods)
fFIT <- fFITs$model$AG
d1 <- D1(fFIT)
d2 <- D2(fFIT)
d_k <- curvature(fFIT)
Run the code above in your browser using DataLab