Interface of optimization functions for double logistics and other parametric curve fitting functions.
optim_pheno( prior, sFUN, y, t, tout, method, w, nptperyear, ylu, iters = 2, wFUN = wTSM, lower = -Inf, upper = Inf, constrain = TRUE, verbose = FALSE, ... )
prior | A vector of initial values for the parameters for which optimal
values are to be found. |
---|---|
sFUN | The name of fine curve fitting functions, can be one of |
y | Numeric vector, vegetation index time-series |
t | Numeric vector, |
tout | Corresponding doy of prediction. |
method | The name of optimization method to solve fine fitting, one of
|
w | (optional) Numeric vector, weights of |
nptperyear | Integer, number of images per year, passed to |
ylu |
|
iters | How many times curve fitting is implemented. |
wFUN | weights updating function, can be one of 'wTSM', 'wChen' and 'wBisquare'. |
lower | vectors of lower and upper bounds, replicated to be as long as
|
upper | vectors of lower and upper bounds, replicated to be as long as
|
constrain | boolean, whether to use parameter constrain |
verbose | Whether to display intermediate variables? |
... | other parameters passed to |
fFIT object, see fFIT()
for details.
# 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)#> Error in doubleLogMain(`_phenofit_cdoubleLog_Beck`, par, t, pred): object '_phenofit_cdoubleLog_Beck' not foundmethods = c("BFGS", "ucminf", "nlm", "nlminb") opt1 <- I_optim(par0, doubleLog_Beck, y, t, methods) # "BFGS", "ucminf", "nlm",#> Error in I_optim(par0, doubleLog_Beck, y, t, methods): object 'y' not found# 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)#> Error in optim_pheno(par0, sFUN, y, t, tout, method = methods[4], nptperyear = 46, iters = 2, wFUN = wTSM, verbose = FALSE, use.julia = FALSE): object 'y' not found