bam_ssim: Simulate dispersal dynamics using the set B of the BAM framework.
Source:R/bam_ssim.R
bam_ssim.Rd
bam_ssim: Simulate dispersal dynamics using the set B of the BAM framework.
Usage
bam_ssim(
sp1,
sp2,
set_M,
initial_points,
periods_toxic,
periods_suitable,
dispersal_prob = 0.85,
palatable_matrices = FALSE,
nsteps,
progress_bar = TRUE
)
Arguments
- sp1
Niche model of the focal species (the one that disperses).
- sp2
Niche model of the species with whom sp1 interacts (currently no dispersal dynamics for this species).
- set_M
A setM object containing the adjacency matrix for sp1. See
adj_mat
- initial_points
A sparse vector returned by the function
occs2sparse
- periods_toxic
Time periods that sps2 takes to develop defense mechanisms (i.e. toxic).
- periods_suitable
This is the time that sp2 takes to become non-toxic
- dispersal_prob
A numeric value indicating the probability to disperse to neighboring cells. This probability is assumed to be binomially distributed
- palatable_matrices
Logical. If TRUE palatable matrices for each time will be returned.
- nsteps
Number of steps to run the simulation
- progress_bar
Show progress bar
Value
An object of class bam. The object contains 12 slots of information (see details) from which simulation results are stored in sdm_sim object, a list of sparse matrices with results of each simulation step. Palatable matrices are returned as a list of sparse matrices with information about palatable pixels for each step of the simulation.
Details
The returned object inherits from setA
,
setM
classes. Details about the dynamic model
can be found in Soberon and Osorio-Olvera (2022).
References
Soberón J, Osorio-Olvera L (2023). “A dynamic theory of the area of distribution.” Journal of Biogeography6, 50, 1037-1048. doi:10.1111/jbi.14587 , https://onlinelibrary.wiley.com/doi/abs/10.1111/jbi.14587. .
Examples
urap <- system.file("extdata/urania_omph/urania_guanahacabibes.tif",
package = "bamm")
ura <- raster::raster(urap)
ompp <- system.file("extdata/urania_omph/omphalea_guanahacabibes.tif",
package = "bamm")
omp <- raster::raster(ompp)
msparse <- bamm::model2sparse(ura)
init_coordsdf <- data.frame(x=-84.38751, y= 22.02932)
initial_points <- bamm::occs2sparse(modelsparse = msparse,init_coordsdf)
set_M <- bamm::adj_mat(modelsparse = msparse,ngbs = 1)
ura_ssim <- bamm::bam_ssim(sp1=ura, sp2=omp, set_M=set_M,
dispersal_prob = 0.75,
initial_points=initial_points,
periods_toxic=5,
periods_suitable=1,
nsteps=40)
#>
|
| | 0%
|
|== | 2%
|
|==== | 5%
|
|===== | 8%
|
|======= | 10%
|
|========= | 12%
|
|========== | 15%
|
|============ | 18%
|
|============== | 20%
|
|================ | 22%
|
|================== | 25%
|
|=================== | 28%
|
|===================== | 30%
|
|======================= | 32%
|
|======================== | 35%
|
|========================== | 38%
|
|============================ | 40%
|
|============================== | 42%
|
|================================ | 45%
|
|================================= | 48%
|
|=================================== | 50%
|
|===================================== | 52%
|
|====================================== | 55%
|
|======================================== | 58%
|
|========================================== | 60%
|
|============================================ | 62%
|
|============================================== | 65%
|
|=============================================== | 68%
|
|================================================= | 70%
|
|=================================================== | 72%
|
|==================================================== | 75%
|
|====================================================== | 78%
|
|======================================================== | 80%
|
|========================================================== | 82%
|
|============================================================ | 85%
|
|============================================================= | 88%
|
|=============================================================== | 90%
|
|================================================================= | 92%
|
|================================================================== | 95%
|
|==================================================================== | 98%
|
|======================================================================| 100%
ura_omp <- bamm::sim2Raster(ura_ssim)
raster::plot(ura_omp[[c(1,2,5,10,15,20,30,35,40)]])
# \donttest{
if(requireNamespace("animation")){
# Animation example
anp <-tempfile(pattern = "simulation_results_",fileext = ".gif")
#new_sim <- bamm::sim2Animation(sdm_simul = ura_ssim,
# which_steps = seq_len(ura_ssim@sim_steps),
# fmt = "GIF",
# filename = anp)
}
# }