optim_pheno: optim_pheno

Description Usage Arguments Value See Also Examples

View source: R/optim_pheno.R

Description

Interface of optimization functions for double logistics and other parametric curve fitting functions.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
optim_pheno(
  prior,
  sFUN,
  y,
  t,
  tout,
  method,
  w,
  nptperyear,
  ylu,
  iters = 2,
  wFUN = wTSM,
  verbose = FALSE,
  ...
)

Arguments

prior

A vector of initial values for the parameters for which optimal values are to be found. prior is suggested giving a column name.

sFUN

The name of fine curve fitting functions, can be one of 'FitAG', 'FitDL.Beck', 'FitDL.Elmore', 'FitDL.Gu' and 'FitDL.Klos', 'FitDL.Zhang'.

y

Numeric vector, vegetation index time-series

t

Numeric vector, Date variable

tout

Corresponding doy of prediction.

method

The name of optimization method to solve fine fitting, one of 'BFGS','CG','Nelder-Mead', 'L-BFGS-B', 'nlm', 'nlminb', 'ucminf' and 'spg','Rcgmin','Rvmmin', 'newuoa','bobyqa','nmkb','hjkb'.

w

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

nptperyear

Integer, number of images per year, passed to wFUN. Only wTSM() needs nptperyear. If not specified, nptperyear will be calculated based on t.

ylu

ymin, ymax, which is used to force ypred in the range of ylu.

iters

How many times curve fitting is implemented.

wFUN

weights updating function, can be one of 'wTSM', 'wChen' and 'wBisquare'.

verbose

Whether to display intermediate variables?

...

other parameters passed to I_optim() or I_optimx().

Value

fFIT object, see fFIT() for details.

See Also

FitDL()

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# library(magrittr)
# library(purrr)

# 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)
par0 = c( mn  = 0.15, mx  = 0.65, sos = 100, rsp = 0.12, eos = 200, rau = 0.12)

t    <- seq(1, 365, 8)
tout <- seq(1, 365, 1)
y <- FUN(par, t)

methods = c("BFGS", "ucminf", "nlm", "nlminb")
opt1 <- I_optim(par0, doubleLog_Beck, y, t, methods) # "BFGS", "ucminf", "nlm",
# opt2 <- I_optimx(prior, fFUN, y, t, tout, )

sFUN   = "doubleLog.Beck" # doubleLog.Beck
r <- optim_pheno(par0, sFUN, y, t, tout, method = methods[4],
                 nptperyear = 46, iters = 2, wFUN = wTSM, verbose = FALSE, use.julia = FALSE)

phenofit documentation built on April 2, 2020, 5:07 p.m.