SpaDES.addins which is
archived on CRAN.spelling.SpaDES.tools, which
is back on CRAN.SpaDES.addins to Suggests (#359).SpaDES.core package and remove
unused dependencies archivist, devtools,
hunspell, igraphRandomFields to Suggests (needed for vignettes etc.
in SpaDES.core and SpaDES.tools)SpaDES-ecosystem packagesSpaDES package split into several (#198):
SpaDES and into new package reproducible.
reproducible added to Imports.SpaDES and into new package quickPlot.
quickPlot added to Imports.SpaDES and into new
package SpaDES.addins.SpaDES and into new
package SpaDES.core.
SpaDES.core added to Imports.SpaDES and into new package SpaDES.tools.
SpaDES.tools added to Imports.shiny-related components moved out of
SpaDES and into new package SpaDES.shiny.minimum R version increased from 3.2.2 to
3.3.3 as required by several dependencies.
added bit, fastmatch,
fastdigest and Rcpp packages to
Imports.
removed stringr package from Imports.
getFileName. Wasn’t used.p. Use params or P
instead.shine moved out of SpaDES into the SpaDES.shiny
package.versionWarning. Wasn’t used.iii-cache which shows many of the ways to use
Cache and build it into a larger reproducible
workflow.simList@.envir slot. This means that
module functions can be called by their name only, without a
sim$ prefix. Also, there should not be any name clashes
between modules, so each module can have its own init
function, say. This has been implemented in a backwards compatible way,
but the old way may be deprecated down the road.saveSimList which saves all environments
recursively and file-backed objects, such as Raster objects
(currently only one implemented).Copy, moved it to
reproducible, and here added a method for
simList objects that deep copies all environments
recursively.speedup in
gaussMap; now 1.getPaths() to return the list of working
dirs from the optionssetPaths() as wrapper for setting the
options for working dirs; uses ~/SpaDES as default base
pathdownloadModule checks for and uses environment variable
GITHUB_PAT if it exists (alleviates 403 download errors
caused by GitHub download limits)spread2: new function that is more robust than spread,
slightly slower under some situations, but faster in many others. The
function is designed to be used as a building block for more complex
spreading, where the user can wrap spread2 inside a custom
function that iteratively calls spread2, while optionally
changing any of the input arguments.returnDT, which slightly
improves speed in cases where the user wants the output to become a
data.table. This simply prevents a call to
as.matrix in the return(), which was occurring
if the return value was a data.table.copyModule for creating a copy of an
existing modulerblindlist( ). This
improved DES speed by > 40%. Benchmarking of 1400 events in 1.6
seconds now; previously 3.0 seconds.Copy (capital C) as replacement for
copy which conflicts with data.table::copy,
and add queues argument to do a deep copy of the event
queues.spread: minor speedups, plus 3 new parameters
relativeSpreadProb, numNeighs &
exactSizesdistanceFromEachPoint: uses faster Rcpp code for some
use cases & can now take arbitrary columns in either
from or to arguments%fin% as faster replacement for
%in%dev.noRSGD() to bypass the RStudio graphics device for your
current session (sets the device option for your
platform).checksums(..., write = TRUE) ignores the contents of
CHECKSUMS.txt, overwriting that file with the checksums of
all files in the module’s data/ directory. This makes it
easier to update the checksum file, e.g., when adding new data
(#332).improved documentation
modules are now run with their required packages
(reqdPkgs in metadata) temporarily bumped to the top of the
search path (i.e., search()) during each event.
search path is restored on.exit from
spades or simInit call
change order of parsing of modules: defineModule is
last, so can use objects defined within module for parameters
improved simInit debug mechanism – passing character
string of module name will enter into a browser call inside
doEvent
improvements to caching –> these are moved to
reproducible package:
Raster* objects & S4 methods -
now it normally persists across sessions;Cache (upper case) which derives
cacheRepo arg automatically from either the
cachePath(sim), if used within a module, or
getPath()$cachePath if not within a module. Also, the upper
case removes the name conflict with archivist::cache;fastdigest::fastdigest for RAM objects and
digest::digest for disk-backed objects;.useCache parameter, which can be logical indicating whole
module or character indicating individual events);.inputObjects function in
simInit, via .useCache parameter in
module?Cache for
details.keepCacheimplemented checkModuleLocal() to check for presence
of module files in the module dir before attempting download from remote
module repository
improve module template to auto fill module author info using
devtools.desc.author option if set.
zipModule now has data argument,
allowing data to be omitted from zipped module.
improved moduleDiagram to show _INPUT_
node in different colour from the other modules
spades.modulePath option)
is now set to a temporary location to avoid unintentionally writing to
the user’s home directory.spades.modulesPath and
spades.modulesRepo options to
spades.modulePath and spades.moduleReposhowCache,
clearCachestricter package version dependencies in Imports and Suggests
debug argument in spades() can now take
any expression, character strings. TRUE/FALSE
changed behavior to show only current event.
timeunits: when there are parent and grandparent modules, if timeunit is defined, it overrides the “smallest unit” rule. Thus, a parent module can force a timeunit.
Plot - enhancements and fixes:
col arg to Plot (mimicks
cols). Was lost from version 1.1.2;Plot (e.g., barplot, plot, etc.);arr argument to Plot(), allowing
passing of arrangement;title arg in Plot() to accept
character for plot title;Plot can use character passed to title as
a title;clickValues, legends correct for wide variety of
types;new arg in Plot(). Now it does one
plot at a time, not whole device. Use clearPlot() to wipe
whole device.Add modulesGraph, showing parent and child module
relationships.
Add filesOnly arg to shine(). This can
be in preparation for publishing to www.shinyapps.io or other pages.
Currently still alpha.
Add POM: Pattern Oriented Modeling (#269). A simple interface to
a simList object, allowing fitting parameters to
data.
add .inputObjects functionality – function that runs
during simInit() to create default
inputObjects
add P as a namespaced shortcut for
params: P(sim) would replace
params(sim)$moduleName when called from within that
module
allow params(sim) & start(sim)
& others in defineModule() by changing parse order in
module metadata
add explicit cl arg to parallel aware functions, for
more control
newModule gains new arguments
type = c("child", "parent") and
children = c(). See ?newModule
(#300).
module structure now includes an R subfolder for R scripts. These
will be parsed during simInit.
checksums updated to use faster hashing algorithm
(xxhash64) and now only requires a single hash value per
file (#295)
fixed bugs in module template
fixed bug in cir (#288, #311)
improved use of package options; added new option
spades.modulesPath.
improved downloadModule to use option
spades.modulesPath (#309)
improved specification of module inputs and outputs (#189, #214, PR #310)
remove module version warning (#312)
other tweaks and fixes
dplyr updategtools and secr from Importsspread enhancements: circular spreading,
landscape-based functions, allow overlapping eventscir and bug fix (#290)rings whose argument names closer match to
cirspread, rings,
cirPlot now clips symbols (generally points) to plotting
area. This will allow future “wiping” of plot area.dev() returns dev.cur invisibly, allowing
for finer control of plotting devicesdistanceFromEachPoint, a multipoint version of
raster::distanceFromPointssplitRaster (#276, #284)mergeRaster (#282, #283)randomPolygons (uses
spread internally now)normalizePathgtools to Importsexperiment that did not allow parallel
spawning on some systems and crashed with empty outputs
argument* fix minor bugs in sampleModules?inputs and
?outputs.plotInitialTime and .saveInitialTime
arguments to spades() to easily allow turning off plotting
and savinginputs and outputs, including
extension-based automated outputs, using data.frame instead
of data.table allowing lists to be passed for
“arguments”n in setColors (#70), and
partial n if nameddplyr updatesPlot accepts colour column in
SpatialPointDataFrame objectscol arg to Plot (mimicks
cols)experiment function, a wrapper around
spades for running multiple simulations (#265)shine function, with simList signature
(#261)copy function, which does a deep copy of a
simList objectRColorBrewer to ImportsPlot colours to be set in the Plot
call using cols argumentPlot colours to be set in the Plot
call using RColorBrewer palettesPlot legendseventPrioritysimList object: current, to
store the current eventcurrent and current<- to
get and set the current eventdefineParameter now coerces the default
value to match the type classobjectNames() for external useoutputPath updates output(sim)$file file
paths, in addition to just paths(sim)$outputPatharchivist version 2.0 or greatermoduleCoverage testing and template (PR
#257)is.factor(raster)
is TRUEsimList show method (#260)downloader from Imports (#203)covr to Suggests and lazyeval to
ImportsDiagrammeR version 0.8.2 or higher which fixes
mermaid/knitr/pandoc error
(https://github.com/rich-iannone/DiagrammeR/issues/139)downloadData to download module data (with
#205)checksums to verify MD5 hashes of data
files (with #205)newModule with RStudio on Windows (#209)cachePath to
paths slot (#227)checksum
(#230)NA to arbitrary class for
which no suitable NA type exists (#231)spread() (#237)newModule (PR #242, PR
#245)simInit can be named differently from
their objects (#247)downloadModule and downloadData now also
download children modules/datadivergentColors to generate divergent
colour palettes for legendsloadPackages.spatialObjects class to
spatialObjects and exportSpaDES package version doesn’t match
module versionsimInit (modules can be
character)inputs data.frame construction in
simInit (#225).parseModule (#215)simList accessors now work with .simList
superclass (#217)%>% bug in demo (#218)rmarkdown::render for vignettes (with #219)documentation to module metadata (see
?defineModule) (#224)inputs data.frame construction in
simInit (#225)attach the simulation environment (#212)no longer rely on side effects to update objects in global environment; instead uses simulation environments (#185) (not backwards compatible!)
sample modules rewritten to use simulation environments (#185) (not backwards compatible!).
redefined simList class:
.simList contains all previous
simList slots except .envirsimList extends .simList by adding
slot .envirsimList_ extends .simList by
adding slot .listsimList_ can be used internally to save a
simList object, because saving lists of objects to file is
more reliable that saving environments.fastshp can be installed from Rforge as a CRAN-like
repository (instead of relying on
devtools::install_github)
software requirements changed: depends R (>=3.2.0)
moved data.table, grid,
raster, and sp from Depends to Imports
(#207).
add archivist, ff, ffbase
to Imports; add lubridate to Imports (with #151)
removed magrittr from Imports (%>%
is now exported by igraph)
most external methods/classes imported using
importFrom; except methods,
graphics, igraph, and utils
(because of methods/classes which are not exported) (#201)
simulations now use timeunit (instead of
timestep) specified in metadata (#151)
defineModule requires timeunit to be a
character string instead of numeric (with #151)
simulation checkpointing fixed (#191, #130)
ls and ls.str can now be used with
simList objects to list objects in the simulation
environment
objs returns a list containing all the objects in
the simulation environment
new function splitRaster to divide
RasterLayer into several tiles
new function normPath (extracted from
checkPath) to more strictly normalize filepaths without
checking that they exist.
new function classFilter to filter list of objects
by their type
new function packages to get all packages required
by a simulation
new function rndstr to generate random
strings
new function append_attr to append list items and
keep their attributes
improved loadPackages
improved .objectNames
defineParameter now accepts min,
max, and description values (#172; #175)
defineModule better handles NA values
(#138)
various Plot improvements.
new plotting functions to produce overview diagrams of simulations (#181; #184):
eventDiagram shows Gantt chart of event sequencesmoduleDiagram shows igraph network diagram of
dependenciesobjectDiagram shows sequence diagram of object
dependencies between modulesimproved simList show and debug methods (#57;
#73)
improvements to loadFiles:
data.tablepackage::function notation in load (#174)added “metamodules” which specify module groups (#176)
improved test coverage (see #139)
all functions imported explicitly
(@importFrom).
three entire packages imported: methods,
graphics, igraph (because of classes which are
not exported from igraph) (#201)
removed package dependencies on raster, sp, data.table, grid. Use importFrom instead (#207).
improved documentation and vignettes
added cache mechanism to hash function calls to spades (#206)
fixed progress bar bug (#147)
prepend copyright info to LICENSE and
README (with #140)
various other bug fixes
This is a minor release update to satisfy CRAN submission requirements.
added the Queen as copyright holder (#140)
explicitly use GPL-3 (previously used GPL) (#140)
modules now require metadata; module code without it will break!
reloadModuleLaternew module directory structure (#125):
moduleName/
|_ moduleName.R # the actual module code file, incl. module metadata
|_ moduleName.Rmd # longform documentation and usage info, etc.
|_ citation.bib # properly formatted bibtex citation for the module
|_ LICENSE # license file describing the allowed usage etc. of the module
|_ README # incl. module metadata in addition to version change info, etc.updated package dependencies:
downloader, dplyr,
fpCompare, httr, magrittr,
stringr to Importsupdated vignettes and documentation improvements
transferred project to PredictiveEcology/SpaDES from
achubaty/SpaDES.
overhaul to Plot function:
*Named objects.SpatialPolygons objects much faster than
default plot:
fastshp.
The suggested package fastshp can be installed
with:
install_github("s-u/fastshp")Plot improvementsdeprecated all *Named functionality
*Named objectsnew function, clearPlot can be used to clean all
hidden metadata about a plot
new function, randomPolygons, will create random
raster maps (not vector maps) of polygons
numerous bugfixes
Plot function, including
dramatically faster for files on diskSpaDES