FitDoubleLogBeck {greenbrown}R Documentation

Fit a double logisitic function to a vector according to Beck et al. (2006)

Description

This function fits a double logistic curve to observed values using the function as described in Beck et al. (2006) (equation 3).

Usage

FitDoubleLogBeck(x, t = 1:length(x), tout = t, weighting = TRUE, 
    hessian = FALSE, plot = FALSE, ninit = 30, ...)

Arguments

x

vector or time series to fit

t

time steps

tout

time steps of output (can be used for interpolation)

weighting

apply the weighting scheme to the observed values as described in Beck et al. 2006? This is useful for NDVI observations because higher values will get an higher weight in the estimation of the double logisitic function than lower values.

hessian

compute standard errors of parameters based on the Hessian?

plot

plot iterations for logistic fit?

ninit

number of inital parameter sets from which to start optimization

...

further arguments (currently not used)

Value

The function returns a list with fitted values, parameters, fitting formula and standard errors if hessian is TRUE

Author(s)

Matthias Forkel <matthias.forkel@geo.tuwien.ac.at> [aut, cre]

References

Beck, P.S.A., C. Atzberger, K.A. Hodga, B. Johansen, A. Skidmore (2006): Improved monitoring of vegetation dynamics at very high latitudes: A new method using MODIS NDVI. - Remote Sensing of Environment 100:321-334.

See Also

TSGFdoublelog, Phenology

Examples


# select one year of data
data(ndvi)
x <- as.vector(window(ndvi, start=c(1994,1), end=c(1994, 12)))
plot(x)

# fit double-logistic function to one year of data
fit <- FitDoubleLogBeck(x)
lines(fit$predicted, col="blue")

# do more inital trials, plot iterations and compute parameter uncertainties
FitDoubleLogBeck(x, hessian=TRUE, plot=TRUE, ninit=100)	

# fit double-logistic function to one year of data, 
# interpolate to daily time steps and calculate phenology metrics
tout <- seq(1, 12, length=365)	# time steps for output (daily)
fit <- FitDoubleLogBeck(x, tout=tout)
PhenoDeriv(fit$predicted, plot=TRUE)


[Package greenbrown version 2.4.3 Index]