Learn R Programming

phenofit (version 0.2.5-2)

D: D

Description

Get derivative of phenofit object. D1 first order derivative, D2 second order derivative, n curvature curvature.

Usage

D1(fit, analytical = TRUE, smoothed.spline = FALSE, ...)

D2(fit, analytical = TRUE, smoothed.spline = FALSE, ...)

# S3 method for fFIT D1(fit, analytical = TRUE, smoothed.spline = FALSE, ...)

# S3 method for fFIT D2(fit, analytical = TRUE, smoothed.spline = FALSE, ...)

curvature(fit, analytical = TRUE, smoothed.spline = FALSE, ...)

# S3 method for fFIT curvature(fit, analytical = TRUE, smoothed.spline = FALSE, ...)

Arguments

fit

A curve fitting object returned by curvefit.

analytical

If true, numDeriv package grad and hess will be used; if false, D1 and D2 will be used.

smoothed.spline

Whether apply smooth.spline first?

...

Other parameters will be ignored.

Value

  • der1 First order derivative

  • der2 Second order derivative

  • k Curvature

Details

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.

Examples

Run this code
# NOT RUN {
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$fFIT$AG
d1 <- D1(fFIT)
d2 <- D2(fFIT)
d_k <- curvature(fFIT)
# }

Run the code above in your browser using DataLab