optimi_stics | R Documentation |
Optimize STICS parameter values according to measurements
optimi_stics(
dir.orig,
dir.targ = getwd(),
stics,
obs_name,
Parameters,
Vars,
weight = NULL,
method = c("nmkb"),
Plant = 1,
max_run = 3,
...
)
dir.orig |
Vector or named list of paths to the directory from which to copy the USMs files. |
dir.targ |
Path to the target directory for evaluation. Created if missing. |
stics |
STICS executable path |
obs_name |
A |
Parameters |
A data.frame with parameter name, starting (optional), min, max values, and data type (optional). See details and example. |
Vars |
Output variables on which the optimization is performed |
weight |
The weight used for each variable (see details) |
method |
The optimization method to use, see dfoptim package. For the moment, only |
Plant |
A vector for the plant (i.e. Principal or associated) for which the parameters
will be set (only for plant or technical parameters in mixed crop simulations)
Set to |
max_run |
Maximum number of runs for the optimisation (restart automatically if singular matrix is returned) Default to 3, i.e. two potential restart. |
... |
Further parameters passed to the optimization function called (see dfoptim package) |
The function uses stats::optimize()
for univariate optimization, and the dfoptim package functions for multivariate.
Currently only the Nelder-Mead algorithm is implemented from dfoptim.
The Parameters
argument should be formated as a a data.frame (see example).
The start values should exclude the min and max values (they are exclusive bounds).
If the start is NULL
, then the mean value between the min and max values is taken. The data type is optional
and only takes double (numeric) or integer. If a parameter is an integer, then a rounding is applied (very crude but functional).
If weight is not provided by the user, the selection criteria is computed using the equation
5 from Wallach et al. (2011). If they are provided, the equation 6 is used instead.
A list of three :
gg_objects: A list of ggplot objects to plot the final STICS simulation with optimized parameter values compared to original parameter values.
opti_output: A named list of the optimized parameter(s) value(s).
last_sim_data: the STICS output from the last simulation with the optimized parameter
values. This data is given using eval_output()
.
Wallach, D., Buis, S., Lecharpentier, P., Bourges, J., Clastre, P., Launay, M., … Justes, E. (2011). A package of parameter estimation methods and implementation for the STICS crop-soil model. Environmental Modelling & Software, 26(4), 386–394. doi:10.1016/j.envsoft.2010.09.004
dfoptim::nmkb()
## Not run:
library(sticRs)
Parameters= data.frame(parameter= c('hautK1','hautK2'),
start= c(0.2,0.2),
min= c(0,0),
max= c(1,1))
# On a single USM:
optimi_stics(dir.orig = "0-DATA/dummy/Year_2005_2006/IC_Wheat_Pea",
dir.targ = "2-Simulations/param_optim",
stics = "0-DATA/stics_executable/19-new/Stics.exe",
obs_name = c("6_IC_Wheat_N0.obs","6_IC_Pea_N0.obs"),
Parameters= Parameters,
Vars = c('lai(n)','masec(n)','hauteur'),
method= "nmkb",Plant=1)
# On a series of USMs:
optimi_stics(dir.orig = list(Y2005= "0-DATA/dummy/Year_2005_2006/IC_Wheat_Pea",
Y2006= "0-DATA/dummy/Year_2006_2007/IC_Wheat_Pea"),
dir.targ = "2-Simulations/param_optim",
stics = "0-DATA/stics_executable/19-new/Stics.exe",
obs_name = data.frame(Principal= rep("6_IC_Wheat_N0.obs",2),
Associated= rep("6_IC_Pea_N0.obs",2)),
Parameters = Parameters, weight= 1, Vars = c('hauteur'),
method= "nmkb",Plant=c(1,1))
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.