Spatial Simulation and Scale-Dependent Analysis of Biodiversity Changes

Tools for the simulation, analysis and sampling of spatial biodiversity data (May et al. 2017) . In the simulation tools user define the numbers of species and individuals, the species abundance distribution and species aggregation. Functions for analysis include species rarefaction and accumulation curves, species-area relationships and the distance decay of similarity.

The goal of the package is to facilitate understanding of scale-dependent biodiversity changes.

The package includes functions to simulate species distributions in space with controlled abundance distributions as well as controlled intraspecific aggregation. For analysis there are functions for species rarefaction and accumulation curves, species-area relationships, endemics-area relationships and th distance-decay of community similarity.


Sometimes the function devtools::install_github() does not install dependencies correctly. To be save it is better to install the dependencies of mobsim first.


You can install mobsim from github with:

devtools::install_github("MoBiodiv/mobsim", build_vignettes = TRUE)

Getting help

You can get an overview of the available functions in mobsim:


Or have a look at tutorials in the vignette:



Here is an example of how to simulate two communities, which just differ in their spatial aggregation of species, but have the same species abundance distribution and the same total number of individuals.

Simulation of communities

comm_rand <- sim_poisson_community(s_pool = 30, n_sim = 300)
comm_agg <- sim_thomas_community(s_pool = 30, n_sim = 300, sigma = 0.05, mother_points = 1)
par(mfrow = c(1,2))

Analysis of spatially-explicit community data

mobsim mobsim offer functions to analyse spatially-explicit community data. For example the species-area relationship of a community can be easily evaluated.

sar_rand <- divar(comm_rand)
sar_agg <- divar(comm_agg)
plot(m_species ~ prop_area, data = sar_rand, type = "b", log = "xy",
     xlab = "Proportion of area sampled",ylab = "No. of species",
     ylim = c(3,30))
lines(m_species ~ prop_area, data = sar_agg, type = "b", col = 2)
legend("bottomright", c("Random","Aggregated"), col = 1:2, lwd = 2)

Sampling of communities

Simulated or observed communities can be also sampled inorder to test whether biodiversity changes are correctly detected and revealed by any sampling design.

par(mfrow = c(1,2))
samples_rand <- sample_quadrats(comm_rand, avoid_overlap = TRUE)
samples_agg <- sample_quadrats(comm_agg, avoid_overlap = TRUE)


Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.2.0 by Felix May, 10 months ago

Report a bug at

Browse source code at

Authors: Felix May [aut, cre]

Documentation:   PDF Manual  

GPL (>= 3) license

Imports Rcpp, vegan, sads, grDevices, utils, graphics, stats

Suggests rmarkdown, spatstat.geom, spatstat.core, spatstat, testthat, knitr

Linking to Rcpp

See at CRAN