MyNixOS website logo
Description

Species Distribution Models as a Function of Biotic, Abiotic and Movement Factors (BAM).

Species Distribution Modeling (SDM) is a practical methodology that aims to estimate the area of distribution of a species. However, most of the work has focused on estimating static expressions of the correlation between environmental variables. The outputs of correlative species distribution models can be interpreted as maps of the suitable environment for a species but not generally as maps of its actual distribution. Soberón and Peterson (2005) <doi:10.17161/bi.v2i0.4> presented the BAM scheme, a heuristic framework that states that the occupied area of a species occurs on sites that have been accessible through dispersal (M) and have both favorable biotic (B) and abiotic conditions (A). The 'bamm' package implements classes and functions to operate on each element of the BAM and by using a cellular automata model where the occupied area of a species at time t is estimated by the multiplication of three binary matrices: one matrix represents movements (M), another abiotic -niche- tolerances (A), and a third, biotic interactions (B). The theoretical background of the package can be found in Soberón and Osorio-Olvera (2022) <arXiv:2212.06308>.

R-CMD-check test-coverage

bamm

Authors: Luis Osorio-Olvera & Jorge Soberon

Overview

The bamm package is an R package designed to estimate dynamic models of species distributions using the concepts of the BAM scheme. It allows to operate on large matrices (tens of millions of cells) regarding to each element of the BAM, for example, the adjacency matrix (connectivity matrix), and the niche suitability matrices.

The dynamic model behind the package is the cellular automata

\begin{equation} \mathbf{G}_j(t+1) =\mathbf{B}_j(t)\mathbf{A}_j(t) \mathbf{C}_j  \mathbf{G}_j(t) \label{eq:automata} \end{equation}

The main functions of the package are:

  • model2sparse: it is the basic function of the package, it converts a binary niche model (in raster format) to sparse matrix model (object of class setA).

  • adj_mat: the function returns the sparse representation of the adjacency matrix of a given raster (generally is the M area but can be any area) given a movement hypothesis. The user can ask the function to return the eigen-analysis of the matrix.

  • bam_clusters: function to estimate the connectivity of suitable areas given an adjacency matrix. It returns three objects: a) an dynamic map (open-street map) of connected areas or clusters; b) the data.frame with coordinates the geographic cluster membership; c) a raster object of with cluster IDs.

  • csd_estimate:This function is used to estimate the CSD-plot. It gives you an idea about the dispersal distance that a species needs to travel to fill its potential area of distribution.

  • occs2sparse: Converts occurrence data into a sparse matrix object. This object is used to declare the initial conditions for modeling the invasion dynamics of a species.

  • sdm_sim: Simulate single species dispersal dynamics using the cellular automaton of the area of distribution.

Installation

if (!require('devtools')) install.packages('devtools')
devtools::install_github('luismurao/bamm')
# If you want to build vignette, install pandoc before and then
devtools::install_github('luismurao/bamm',build_vignettes=TRUE)

Acknowledgements

We are grateful to our many colleagues in the University of Kansas Niche Modeling Group for many vivacious and useful discussions on the topics of the paper. LOO acknowledges partially supported by Consejo Nacional de Ciencia y Tecnología (CONACyT; postdoctoral fellowship number 740751; CVU: 368747). LOO and JS acknowledges Blitzi Soberon for moral support.

Metadata

Version

0.4.3

License

Unknown

Platforms (75)

    Darwin
    FreeBSD 13
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd13
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd13
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows