Curve fit vegetation index (VI) time-series of every growing season using fine curve fitting methods.

curvefit(
  y,
  t = index(y),
  tout = t,
  methods = c("AG", "Beck", "Elmore", "Gu", "Klos", "Zhang"),
  w = NULL,
  ...,
  type = 1L,
  use.cpp = FALSE
)

Arguments

y

Vegetation time-series index, numeric vector

t

The corresponding doy of x

tout

The output interpolated time.

methods

Fine curve fitting methods, can be one or more of c('AG', 'Beck', 'Elmore', 'Gu', 'Klos', 'Zhang').

w

(optional) Numeric vector, weights of y. If not specified, weights of all NA values will be wmin, the others will be 1.0.

...

other parameters passed to curve fitting function.

type

integer, 1 or -1

  • 1: trough-to-trough curve fitting

  • -1: peak-to-peak curve fitting

use.cpp

(unstable, not used) boolean, whether to use c++ defined fine fitting function? If FALSE, R version will be used.

Value

fFITs S3 object, see fFITs() for details.

Note

'Klos' have too many parameters. It will be slow and not stable.

See also

Examples

library(phenofit)
# simulate vegetation time-series
FUN = 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 <- FUN(par, t)

methods <- c("AG", "Beck", "Elmore", "Gu", "Zhang") # "Klos" too slow
fit <- curvefit(y, t, tout = tout, methods)