Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(metaRange)
library(terra)
## ----setup_sim----------------------------------------------------------------
raster_file <- system.file("ex/elev.tif", package = "terra")
r <- rast(raster_file)
habitat <- scale(r, center = FALSE, scale = TRUE)
habitat <- rep(habitat, 10)
landscape <- sds(habitat)
names(landscape) <- c("habitat")
sim <- create_simulation(landscape)
sim$add_species("species_1")
## ----some-traits--------------------------------------------------------------
sim$add_traits(
species = "species_1",
n_juveniles = 100,
n_adults = 100,
mortality_juveniles = 0.1,
mortality_adults = 0.7,
reproduction_rate = 2
)
sim$add_traits(
species = "species_1",
population_level = FALSE,
dispersal_kernel = calculate_dispersal_kernel(
max_dispersal_dist = 8,
kfun = negative_exponential_function,
mean_dispersal_dist = 4
)
)
## ----repro1-------------------------------------------------------------------
sim$add_process(
species = "species_1",
process_name = "reproduction",
process_fun = function() {
self$traits[["n_juveniles"]] <-
self$traits[["n_adults"]] + (
self$traits[["n_adults"]] * self$traits[["reproduction_rate"]]
) * self$sim$environment$current$habitat
},
execution_priority = 1
)
sim$add_process(
species = "species_1",
process_name = "maturation",
process_fun = function() {
self$traits[["n_adults"]] <-
self$traits[["n_adults"]] +
self$traits[["n_juveniles"]] * (1 - self$traits[["mortality_juveniles"]])
},
execution_priority = 3
)
## ----dispersal1---------------------------------------------------------------
sim$add_process(
species = "species_1",
process_name = "dispersal_of_juveniles",
process_fun = function() {
self$traits[["n_juveniles"]] <- dispersal(
abundance = self$traits[["n_juveniles"]],
dispersal_kernel = self$traits[["dispersal_kernel"]]
)
},
execution_priority = 2
)
sim$add_process(
species = "species_1",
process_name = "mortality_of_adults",
process_fun = function() {
self$traits[["n_adults"]] <-
self$traits[["n_adults"]] * (1 - self$traits[["mortality_adults"]])
},
execution_priority = 4
)
## ----run_sim------------------------------------------------------------------
sim$add_globals(n_juveniles = c(), n_adults = c())
sim$add_process(
process_name = "logger",
process_fun = function() {
self$globals$n_juveniles <-
c(self$globals$n_juveniles, sum(self$species_1$traits[["n_juveniles"]]))
self$globals$n_adults <-
c(self$globals$n_adults, sum(self$species_1$traits[["n_adults"]]))
},
execution_priority = 5
)
sim$begin()
plot(
1:10,
sim$globals$n_juveniles,
col = "darkred",
type = "l",
lwd = 2,
ylim = c(0, max(sim$globals$n_juveniles, sim$globals$n_adults)),
xlab = "Time",
ylab = "Number of individuals",
cex.lab = 0.7,
cex.axis = 0.7
)
lines(1:10, sim$globals$n_adults, col = "darkblue", lwd = 2)
legend(
"topleft",
legend = c("juveniles", "adults"),
col = c("darkred", "darkblue"),
lty = 1,
lwd = 2,
cex = 0.7
)
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.