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")
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 |
---|---|
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? |
If evaluate is TRUE, a list of lists of matrices holding the PEC data.
As a side effect, an R data file (period_pfm.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.
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
# 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 = "pfm"), 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.383 0.129 30.547if(!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 = "pfm"), 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 #> #>