Use one of three methods to calibrate specified models.
Usage
cali_ensemble(
config_file,
num = NULL,
param_file = NULL,
cmethod = "LHC",
qualfun = qual_fun,
parallel = FALSE,
job_name,
model = c("FLake", "GLM", "GOTM", "Simstrat", "MyLake"),
folder = ".",
spin_up = NULL,
out_f = "cali",
ncores = NULL,
tmp_dir = NULL,
...
)
Arguments
- config_file
file path; to LakeEnsemblr yaml master config file
- num
integer; the number of random parameter sets to generate. If param file is provided num = number of parameters in that file.
- param_file
file path; to previously created parameter file set. If NULL creates a new parameter set. Defaults to NULL
- cmethod
character; Method for calibration. Can be "LHC", "LHC_old, "MCMC" or "modFit". Defaults to "LHC". LHC and LHC_old only differ in the way the parallelization is set up, whereas the new and default LHC version is more efficient and LHC_old is only kept for possible backwards compatibility.
- qualfun
function; function that calculates measure of fit from observed and simulated variables, takes the two arguments Observed and Simulated
- parallel
Boolean; should the model calibration be parallelized
- job_name
character; optional name to use as an RStudio job and as output variable name. It has to be a syntactically valid name. Check out this webpage for more info on jobs: https://blog.rstudio.com/2019/03/14/rstudio-1-2-jobs/
- model
vector; model to export driving data. Options include c("GOTM", "GLM", "Simstrat", "FLake", "MyLake")
- folder
file path; to folder which contains the model folders generated by export_config()
- spin_up
numeric; Number of days to disregard as spin-up for analysis.
- out_f
character; name of the folder to store results into
- ncores
numeric; number of cores to be used. If NULL, will default to `parallel::detectCores() - 1`.
- tmp_dir
location where the temporary files for LHC calibration in parallel are stored
- ...
additional arguments passed to FME::modFit or FME::modMCMC. Only used when method is modFit or MCMC
Details
Parallelisation is done using the `parallel` package and `parLapply()`. The number of cores used is set to the value specified in `ncores`.
Examples
if (FALSE) { # \dontrun{
config_file <- 'LakeEnsemblR.yaml'
# LHC method
cali_ensemble(config_file = config_file, num = 200, cmethod = "LHC",
model = c("FLake", "GLM", "GOTM", "Simstrat", "MyLake"))
# MCMC method
resMCMC <- cali_ensemble(config_file = config_file, num = 200, cmethod = "MCMC",
model = c("FLake", "GLM", "GOTM", "Simstrat", "MyLake"))
# modFit method using the Nelder-Mead algorithm
resMmodFit <- cali_ensemble(config_file = config_file, num = 200, cmethod = "modFit",
model = c("FLake", "GLM", "GOTM", "Simstrat", "MyLake"),
method = "Nelder-Mead")
# LHC method using multiple cores
cali_ensemble(config_file = config_file, num = 200, cmethod = "LHC",
model = c("FLake", "GLM", "GOTM", "Simstrat", "MyLake"),
parallel = TRUE)
# LHC method deployed as a job
cali_ensemble(config_file = config_file, num = 200, cmethod = "LHC",
model = c("FLake", "GLM", "GOTM", "Simstrat", "MyLake"),
job_name = "test")
test # View output from job
} # }