Learn R Programming

SpaDES.core (version 3.0.4)

spadesOptions: SpaDES.core options

Description

These provide top-level, powerful settings for a comprehensive SpaDES workflow. To see defaults, run spadesOptions(). See Details below.

Usage

spadesOptions()

Arguments

Value

named list of the default package options.

Details

Below are options that can be set with options("spades.xxx" = newValue), where xxx is one of the values below, and newValue is a new value to give the option. Sometimes these options can be placed in the user's .Rprofile file so they persist between sessions.

The following options are likely of interest to most users

OPTIONDEFAULT VALUEDESCRIPTION
spades.allowInitDuringSimInitFALSENew feature as of SpaDES.core > 1.1.1.9001; If set to TRUE, simInit will evaluate the dependencies in the metadata objects and determine whether there are modules whose init events can be run safely prior to the .inputObjects of other modules, i.e., if a module's expectsInput is not being supplied by any other module's createsOutput.
spades.browserOnErrorFALSEIf TRUE, the default, then any error rerun the same event with debugonce called on it to allow editing to be done. When that browser is continued (e.g., with 'c'), then it will save it re-parse it into the simList and rerun the edited version. This may allow a spades() call to be recovered on error, though in many cases that may not be the correct behaviour. For example, if the simList gets updated inside that event in an iterative manner, then each run through the event will cause that iteration to occur. When this option is TRUE, then the event will be run at least 3 times: the first time makes the error, the second time has debugonce and the third time is after the error is addressed. TRUE is likely somewhat slower.
reproducible.cachePathgetOption('reproducible.cachePath')The default local directory in which to cache simulation outputs. Default is a temporary directory (typically /tmp/RtmpXXX/SpaDES/cache).
spades.cacheChainingFALSEIf set to TRUE, then sequential events that are cached can re-use their digest step. The second event will only digest the functions and parameters, but not objects. Every event will add a tag or remove that tag if it is cached or not cached, so this will not mistakenly cacheChain when it isn't appropriate.
spades.debugTRUEThe default debugging value debug argument in spades().
spades.dotInputObjectsTRUEThis is used in simInit; if set to TRUE then the .inputObjects function will be run; if FALSE, then it will be skipped.
spades.DTthreads1LThe default number of data.table threads to use. See also ?data.table::setDTthreads.
spades.evalPostEventNULLUser can put any quoted code to evaluate after each event (.inputObjects included), e.g., quote(print(.robustDigest(sim$rstLCC))) will print the digest value of the sim$rstLCC after each event so a user can monitor its changes.
spades.futureEventsFALSEIf set to TRUE, the event simulator will attempt to spawn events whose outputs are not needed (by other events in the simList) into a future. In some cases, this will speed up simulations, by running some events in parallel. Still VERY experimental. Use cautiously.
spades.logPathDefaults to a subdirectory (logs/) of the simulation output directory.The default local directory to write simulation log files.
spades.inputPathDefault is a temporary directory (typically /tmp/RtmpXXX/SpaDES/inputs)The default local directory in which to look for simulation inputs.
spades.loadReqdPkgsDefault is TRUEIf TRUE, any reqdPkgs will be loaded via Require or require. If FALSE, no package loading will occur. This will mean that modules must prefix every function call from a package with that package name with double colon (::).
spades.lowMemoryFALSEIf true, some functions will use more memory efficient (but slower) algorithms.
spades.memoryUseIntervalFALSEA numeric in seconds indicating how often sample the memory use. This will be run in a separate future process so it can monitor the main process. To access the resulting memory use table, use memoryUse(sim) after the simulation has terminated.
spades.messagingNumCharsModule21The number of characters to use for the messaging preamble on each line of the messaging during spades calls.
spades.moduleCodeCheckslist(suppressParamUnused = FALSE, suppressUndefined = TRUE, suppressPartialMatchArgs = FALSE, suppressNoLocalFun = TRUE, skipWith = TRUE)Should the various code checks be run during simInit. These are passed to codetools::checkUsage(). Default is given by the function, plus these:
spades.moduleDocumentTRUEWhen a module is an R package e.g., via convertToPackage, it will, by default, rebuild documentation and reparse during simInit. Since rebuilding documentation (from the roxygen2 tags) can be time consuming, a user may wish to prevent this from happening each simInit call. If so, set this option to FALSE.
spades.modulePathfile.path(tempdir(), "SpaDES", "modules"))The default local directory where modules and data will be downloaded and stored. Default is a temporary directory.
spades.moduleRepo"PredictiveEcology/SpaDES-modules"The default GitHub repository to use when downloading modules via downloadModule.
spades.nCompleted1000LThe maximum number of completed events to retain in the completed event queue.
spades.outputPathfile.path(tempdir(), "SpaDES", "outputs")The default local directory in which to save simulation outputs.
spades.plotsThe value of this will passed to .plots within every module; it will thus override all module parameter values for .plots. This can, e.g., be used to turn off all plotting.The default is NULL, meaning accept the module-level parameter.
spades.recoveryMode1LIf this is a numeric greater than 0 or TRUE, then the discrete event simulator will take a snapshot of the objects in the simList that might change (based on metadata outputObjects for that module), prior to initiating every event. This will allow the user to be able to recover in case of an error or manual interruption (e.g., Esc). If this is numeric, a copy of that number of "most recent events" will be maintained so that the user can recover and restart more than one event in the past, i.e., redo some of the "completed" events. Default is TRUE, i.e., it will keep the state of the simList at the start of the current event. This can be recovered with restartSpades and the differences can be seen in a hidden object in the stashed simList. There is a message which describes how to find that.
spades.reqdPkgsDontLoad"box"Specify any packages that should not be loaded i.e., no library or require, but they should be installed if listed. The default ("box") is a package that returns a warning if it is loaded, and so it is excluded from loading.
spades.saveFileExtensionsNULLa data.frame with 3 columns, exts, fun, and package indicating which file extension, and which function from which package will be used when using the outputs mechanism for saving files during a spades call. e.g., options(spades.saveFileExtensions = data.frame(exts = "shp", fun = "st_write", package = "sf"). Then specify e.g., simInit(outputs = data.frame(objectName = "caribou", fun = "st_write", package = "sf"))
spades.scratchPathfile.path(tempdir(), "SpaDES", "scratch"))The default local directory where transient files from modules and data will written. This includes temporary raster and terra files, as well as SpaDES recovery mode files. Default is a temporary directory.
spades.sessionInfoTRUE)Assigns the utils::sessionInfo() to the simList during simInit with the name sim$._sessionInfo. This takes about 75 milliseconds, which may be undesirable for some situations where speed is critical. If FALSE, then this is not assigned to the simList.
spades.switchPkgNamespacesDefunct.Do not use.
spades.testMemoryLeaksTRUE.There is a very easy way to create a memory leak with R and SpaDES, by adding formulas or functions to sim$ when the enclosing environment of the formula or function contained a large object, most relevant here is the sim object. SpaDES.core now tests for likely culprits for this and suggests alternatives with a warning.
spades.tolerance.Machine$double.eps^0.5.The default tolerance value used for floating point number comparisons.
spades.useragent"https://github.com/PredictiveEcology/SpaDES".The default user agent to use for downloading modules from GitHub.
spades.useBoxFALSEUnimplemented while memory problems with box are resolved. When it is turned on, this option determines whether to manage which packages are loaded using the package box. This will have as an effect that reqdPkgs will be strict; if a given module is missing a reqdPkgs, then the module will fail to run, with an error saying the package/function doesn't exist. Without box, modules may run, even though reqdPkgs is incorrect, because other modules may have specified their own packages, which cover the needs of another package. useBox = TRUE will force modules to be accurate with their reqdPkgs.
spades.useRequire!tolower(Sys.getenv("SPADES_USE_REQUIRE")) %in% "false"The default for that environment variable is unset, so this returns TRUE. If this is TRUE, then during the simInit call, when packages are identified as being required, these will be installed if missing, only if spades.useRequire option is TRUE, otherwise, simInit will fail because packages are not available.