Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----echo = FALSE, out.width="100%", fig.cap = "Figure 1: Example of some of the different environmental factors, species traits and processes that could be included in a simulation."----
knitr::include_graphics("../man/figures/example_simulation.svg")
## ----echo = FALSE, out.width="100%", fig.cap = "Figure 2: Overview of the different components of a simulation and how they interact with each other. Note that the number of species as well as the number of traits and processes per species is not limited, but only a selection is shown for simplicity."----
knitr::include_graphics("../man/figures/simulation_high_level_overview.svg")
## ----setup--------------------------------------------------------------------
library(metaRange) # does the simulation
library(terra) # handles the raster data processing
## ----create_landscape, fig.cap = "Figure 3: The habitat quality of the example landscape. Note: higher value = better habitat quality"----
# find the file
raster_file <- system.file("ex/elev.tif", package = "terra")
# load it
r <- rast(raster_file)
# scale it
r <- scale(r, center = FALSE, scale = TRUE)
plot(r, main = "Habitat quality")
## -----------------------------------------------------------------------------
r <- rep(r, 10)
landscape <- sds(r)
names(landscape) <- c("habitat_quality")
landscape
## ----enable_reporting---------------------------------------------------------
# 0 = no reporting
# 1 = a bit of info
# 2 = very verbose
set_verbosity(2)
## ----create_simulation--------------------------------------------------------
sim <- create_simulation(
source_environment = landscape,
ID = "example_simulation",
seed = 1
)
## ----simulation_summary-------------------------------------------------------
sim
summary(sim)
## ----add_species--------------------------------------------------------------
sim$add_species("species_1")
## ----access_species-----------------------------------------------------------
sim$species_1
## ----add_trait----------------------------------------------------------------
sim$add_traits(
species = "species_1",
population_level = TRUE,
abundance = 100,
reproduction_rate = 0.5,
carrying_capacity = 1000
# ...
# Note that here could be more traits, there is no limit
)
## -----------------------------------------------------------------------------
sim$species_1$traits
## ----fig.cap = "Figure 4: The initial abundance of the species."--------------
plot(sim$species_1, "abundance")
## ----Reproduction-------------------------------------------------------------
sim$add_process(
species = "species_1",
process_name = "reproduction",
process_fun = function() {
# use a ricker reproduction model
# to calculate the new abundance
# and let the carrying capacity
# depend on the habitat quality
ricker_reproduction_model(
self$traits$abundance,
self$traits$reproduction_rate,
self$traits$carrying_capacity * self$sim$environment$current$habitat_quality
)
# print out the current mean abundance
print(
paste0("mean abundance: ", mean(self$traits$abundance))
)
},
execution_priority = 1
)
## ----run_simulation-----------------------------------------------------------
sim$begin()
## ----resA, fig.cap = "Figure 5: The resulting abundance distribution of species 1 after 10 simulation time steps."----
# define a nice color palette
plot_cols <- hcl.colors(100, "BluYl", rev = TRUE)
plot(
sim,
obj = "species_1", # name of the species
name = "abundance", # name of the trait to plot
main = "Species 1: abundance", # optional title
col = plot_cols # color palette
)
## ----save_results, eval = FALSE-----------------------------------------------
# save_species(
# sim$species_1,
# traits = c("name", "of", "one_or_more", "traits"),
# path = "path/to/a/folder/"
# )
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.