Simulate population dynamics following the steps approach
Source:R/simulate_population_steps.R
simulate_population_steps.Rd
This function adds a flag to a BiodiversityScenario
object
to indicate that species abundances are to be simulated based on the expected
habitat suitability, as well as demography, density-dependence and dispersal
information. The simulation is done using the steps package (Visintin et
al. 2020) and conducted after a habitat suitability projection has been
created. steps is a spatially explicit population models coded mostly in R.
For a detailed description of steps parameters, please see the respective reference and help files. Default assumptions underlying this wrapper are presented in the details
Usage
simulate_population_steps(
mod,
vital_rates,
replicates = 1,
carrying_capacity = NULL,
initial = NULL,
dispersal = NULL,
density_dependence = NULL,
include_suitability = TRUE
)
# S4 method for class 'BiodiversityScenario,matrix'
simulate_population_steps(
mod,
vital_rates,
replicates = 1,
carrying_capacity = NULL,
initial = NULL,
dispersal = NULL,
density_dependence = NULL,
include_suitability = TRUE
)
Arguments
- mod
A
BiodiversityScenario
object with specified predictors.- vital_rates
A symmetrical demographic matrix. Should have column and row names equivalent to the vital stages that are to be estimated.
- replicates
A
numeric
vector of the number of replicates (Default:1
).- carrying_capacity
Either
SpatRaster
or anumeric
estimate of the maximum carrying capacity, e.g. how many adult individual are likely to occur per grid cell. If set tonumeric
, then carrying capacity is estimated up to a maximum set (Note: a more clever way would be to use a species-area relationship for scaling. This is not yet implemented).- initial
A
SpatRaster
giving the initial population size. If not provided, then initial populations are guessed (see details) from the projected suitability rasters (Default:NULL
).- dispersal
A dispersal object defined by the
steps
package (Default:NULL
).- density_dependence
Specification of density dependence defined by the
steps
package (Default:NULL
).- include_suitability
A
logical
flag on whether the projected suitability estimates should be used (Default:TRUE
) or only the initial conditions set to the first time step.
Value
Adds flag to a BiodiversityScenario
object to indicate that
further simulations are added during projection.
Details
In order for this function to work the steps package has to be installed separately. Instructions to do so can be found on github.
If initial population lifestages are not provided, then they are estimated
assuming a linear scaling with suitability, a 50:50
split between
sexes and a 1:3
ratio of adults to juveniles. The provision of
different parameters is highly encouraged!
Note
The steps package has multiple options for simulating species population and not all possible options are represented in this wrapper.
Furthermore, the package still makes use of the raster
package for much
of its internal data processing. Since ibis.iSDM switched to terra a while
ago, there can be efficiency problems as layers need to be translated between
packages.
References
Visintin, C., Briscoe, N. J., Woolley, S. N., Lentini, P. E., Tingley, R., Wintle, B. A., & Golding, N. (2020). steps: Software for spatially and temporally explicit population simulations. Methods in Ecology and Evolution, 11(4), 596-603. https://doi.org/10.1111/2041-210X.13354
See also
Other constraint:
add_constraint()
,
add_constraint_MigClim()
,
add_constraint_adaptability()
,
add_constraint_boundary()
,
add_constraint_connectivity()
,
add_constraint_dispersal()
,
add_constraint_minsize()
,
add_constraint_threshold()
Examples
if (FALSE) { # \dontrun{
# Define vital rates
vt <- matrix(c(0.0,0.5,0.75,
0.5,0.2,0.0,
0.0,0.5,0.9),
nrow = 3, ncol = 3, byrow = TRUE)
colnames(vt) <- rownames(vt) <- c('juvenile','subadult','adult')
# Assumes that a trained 'model' object exists
mod <- scenario(model) |>
add_predictors(env = predictors, transform = 'scale',
derivates = "none") |>
# Use Vital rates here, but note the other parameters!
simulate_population_steps(vital_rates = vt) |>
project()
} # }