options(repos =c("https://predictiveecology.r-universe.dev/", CRAN ="https://cloud.r-project.org"))## decide where you're workingmainPath <-"~/SpaDES4Dummies_Part1"pkgPath <-file.path(mainPath, "packages", version$platform,paste0(version$major, ".", strsplit(version$minor, "[.]")[[1]][1]))dir.create(pkgPath, recursive =TRUE).libPaths(pkgPath, include.site =FALSE) ## install packages in project library (proj-lib)if (!"remotes"%in%installed.packages(lib.loc = pkgPath))install.packages("remotes")if (!"Require"%in%installed.packages(lib.loc = pkgPath) ||packageVersion("Require", lib.loc = pkgPath) <"0.3.1") { remotes::install_github("PredictiveEcology/Require@2788b023ad191c29346ef8c64df71b937be307e2",upgrade =FALSE)}Require::Require(c("SpaDES", "DiagrammeR"), require =FALSE, upgrade =FALSE, dependencies =TRUE, standAlone =TRUE) ## automatically downloads all packages in the SpaDES family and their dependencieslibrary(SpaDES)setPaths(cachePath =file.path(mainPath, "cache"),inputPath =file.path(mainPath, "inputs"),modulePath =file.path(mainPath, "modules"),outputPath =file.path(mainPath, "outputs"))## make a list of directory paths and check paths are oksimPaths <-getPaths()## Let's create a self-contained module that will simulate the species' abundance for any given period of time and frequency.if (!dir.exists(file.path(simPaths$modulePath, "speciesAbundance"))) {newModule(name ="speciesAbundance", path = simPaths$modulePath)}if (!dir.exists(file.path(simPaths$modulePath, "temperature"))) {newModule(name ="temperature", path = simPaths$modulePath)}if (!dir.exists(file.path(simPaths$modulePath, "speciesTempLM"))) {newModule(name ="speciesTempLM", path = simPaths$modulePath)}## list the modules to usesimModules <-list("speciesAbundance", "temperature", "speciesTempLM")## Set simulation and module parameterssimTimes <-list(start =1, end =10, timeunit ="year")simParams <-list(speciesAbundance =list(simulationTimeStep =1, .plotInitialTime =1),temperature =list(simulationTimeStep =1, .plotInitialTime =1),speciesTempLM =list(statsTimestep =5))## Simulation setupmySim <-simInit(times = simTimes, params = simParams, modules = simModules, paths = simPaths)moduleDiagram(mySim)objectDiagram(mySim)## run simulationdev() # on Windows and Mac, this opens external device if using Rstudio, it is fasterclearPlot()mySim2 <-spades(mySim, debug =TRUE)