Per default, the runs are not only set up but also executed with FOCUS PELMO, the results are processed and returned. Currently, only FOCUS PELMO as installed on Linux (or other Unix systems) using the install_PELMO from the PELMO.installeR package maintained on github is supported. In such installations, FOCUS PELMO is installed into the package installation directory of PELMO.installeR and run using wine.

PELMO_runs(runs, psm_dir = ".", version = "5.5.3",
  PELMO_base = "auto", execute = TRUE, cores = getOption("mc.cores",
  2L), evaluate = TRUE, overwrite = FALSE)

run_PELMO(runs, version = "5.5.3", PELMO_base = "auto",
  cores = getOption("mc.cores", 2L))

evaluate_PELMO(runs, version = "5.5.3", PELMO_base = "auto")

Arguments

runs

A list of lists. Each inner lists has an element named 'psm' that holds the psm string, and elements named using three letter crop acronyms, as used in FOCUS_PELMO_crops, that hold character vectors of three letter scenario acronyms as used in FOCUS_GW_scenarios_2012.

psm_dir

The directory where the psm files are located

version

The FOCUS PELMO version

PELMO_base

Where the FOCUS PELMO installation is located

execute

Should PELMO be executed directly?

cores

The number of cores to execute PELMO runs in parallel

evaluate

Should the results be returned?

overwrite

Should existing run directories be overwritten?

Value

If evaluate is TRUE, a list of lists of matrices holding the PEC data.

Details

As a side effect, an R data file (period_rPELMO.rda) is generated in each run directory, holding the results for all FOCUS periods, equivalent to the period.plm file generated by the FOCUS PELMO GUI.

References

PELMO.installeR https://pkgdown.jrwb.de/PELMO.installeR

Wine https://winehq.org

PELMO test results http://esdac.jrc.ec.europa.eu/public_path/projects_data/focus/gw/models/pelmo/test-results/test_results_FOCUS_PELMO_5_5_3.doc

Examples

# Reproduce the official test results for annual application of Pesticide D # to winter cereals at the day before emergence runs_1 <- list( list(psm = 'Pesticide_D', win = c("Cha", "Ham", "Jok", "Kre", "Oke", "Pia", "Por", "Sev", "Thi")), list(psm = 'Pesticide_D_1_day_pre_em_every_third_year', pot = c("Cha", "Ham", "Jok", "Kre", "Oke", "Pia", "Por", "Sev", "Thi"))) time_1 <- system.time( PECgw_1 <- PELMO_runs(runs_1, psm_dir = system.file("testdata", package = "rPELMO"), cores = 15, overwrite = TRUE) ) print(PECgw_1)
#> $Pesticide_D #> $Pesticide_D$win #> FOCUS DUMMY D #> Cha 0.025 #> Ham 1.621 #> Jok 0.388 #> Kre 0.467 #> Oke 1.608 #> Pia 0.848 #> Por 2.386 #> Sev 0.009 #> Thi 0.030 #> #> #> $Pesticide_D_1_day_pre_em_every_third_year #> $Pesticide_D_1_day_pre_em_every_third_year$pot #> FOCUS DUMMY D #> Cha 0.010 #> Ham 0.014 #> Jok 0.009 #> Kre 0.027 #> Oke 0.085 #> Pia 0.051 #> Por 0.021 #> Sev 0.000 #> Thi 0.001 #> #>
# We get exactly the same PECgw values (on Linux, calling PELMO using Wine). print(time_1)
#> User System verstrichen #> 0.439 0.112 30.326
if(!inherits(try(cpuinfo <- readLines("/proc/cpuinfo")), "try-error")) { cat(gsub("model name\t: ", "CPU model: ", cpuinfo[grep("model name", cpuinfo)[1]])) }
#> CPU model: AMD Ryzen 7 1700 Eight-Core Processor
# Demonstrate some results with metabolites. runs_2 <- list(list(psm = 'Pesticide_D_1_May_every_other_year_mets', win = c("Cha", "Ham", "Kre"))) PECgw_2 <- PELMO_runs(runs_2, psm_dir = system.file("testdata", package = "rPELMO"), cores = 3, overwrite = TRUE) print(PECgw_2)
#> $Pesticide_D_1_May_every_other_year_mets #> $Pesticide_D_1_May_every_other_year_mets$win #> FOCUS DUMMY D M1 M2 #> Cha 0.001 126.195 0.000 #> Ham 0.054 82.196 0.001 #> Kre 0.103 75.494 0.001 #> #>