GithubHelp home page GithubHelp logo

j-johanness / nlmr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ropensci/nlmr

0.0 1.0 0.0 138.11 MB

📦 R package to simulate neutral landscape models 🏔

Home Page: https://ropensci.github.io/NLMR/

R 79.20% C++ 20.80%

nlmr's Introduction

Build StatusBuild status codecov CRAN_Status_Badge lifecycle DOI:10.1111/2041-210X.13076

NLMR

NLMR is an R package for simulating neutral landscape models (NLM). Designed to be a generic framework like NLMpy, it leverages the ability to simulate the most common NLM that are described in the ecological literature. NLMR builds on the advantages of the raster package and returns all simulation as RasterLayer objects, thus ensuring a direct compatibility to common GIS tasks and a flexible and simple usage. Furthermore, it simulates NLMs within a self-contained, reproducible framework.

Installation

Install the release version from CRAN:

install.packages("NLMR")

To install the developmental version of NLMR, use the following R code:

# install.packages("devtools")
devtools::install_github("ropensci/NLMR")

Example

Each neutral landscape models is simulated with a single function (all starting with nlm_) in NLMR, e.g.:

random_cluster <- NLMR::nlm_randomcluster(nrow = 100,
                                      ncol = 100,
                                      p    = 0.5,
                                      ai   = c(0.3, 0.6, 0.1),
                                      rescale = FALSE)

random_curdling <- NLMR::nlm_curds(curds = c(0.5, 0.3, 0.6),
                              recursion_steps = c(32, 6, 2))


midpoint_displacememt <- NLMR::nlm_mpd(ncol = 100,
                                 nrow = 100,
                                 roughness = 0.61)

Overview

NLMR supplies 15 NLM algorithms, with several options to simulate derivatives of them. The algorithms differ from each other in spatial auto-correlation, from no auto-correlation (random NLM) to a constant gradient (planar gradients):

Function Description Crossreference Reference
nlm\_curds Simulates a randomly curdled or wheyed neutral landscape model. Random curdling recursively subdivides the landscape into blocks. At each level of the recursion, a fraction of these blocks is declared as habitat while the remaining stays matrix. When option q is set, it simulates a wheyed curdling model, where previously selected cells that were declared matrix during recursion, can now contain a proportion of habitat cells Figure 1a,p O’Neill, Gardner, and Turner (1992); Keitt (2000)
nlm\_distancegradient Simulates a distance gradient neutral landscape model. The gradient is always measured from a rectangle that one has to specify in the function (parameter origin) Figure 1b Etherington, Holland, and O’Sullivan (2015)
nlm\_edgegradient Simulates a linear gradient orientated neutral model. The gradient has a specified or random direction that has a central peak, which runs perpendicular to the gradient direction Figure 1c Travis and Dytham (2004); Schlather et al. (2015)
nlm\_fbm Simulates neutral landscapes using fractional Brownian motion (fBm). fBm is an extension of Brownian motion in which the amount of spatial autocorrelation between steps is controlled by the Hurst coefficient H Figure 1d Schlather et al. (2015)
nlm\_gaussianfield Simulates a spatially correlated random fields (Gaussian random fields) model, where one can control the distance and magnitude of spatial autocorrelation Figure 1e Schlather et al. (2015)
nlm\_mosaicfield Simulates a mosaic random field neutral landscape model. The algorithm imitates fault lines by repeatedly bisecting the landscape and lowering the values of cells in one half and increasing the values in the other half. If one sets the parameter infinite to TRUE, the algorithm approaches a fractal pattern Figure 1f Schlather et al. (2015)
nlm\_neigh Simulates a neutral landscape model with land cover classes and clustering based on neighbourhood characteristics. The cluster are based on the surrounding cells. If there is a neighbouring cell of the current value/type, the target cell will more likely turned into a cell of that type/value Figure 1g Scherer et al. (2016)
nlm\_percolation Simulates a binary neutral landscape model based on percolation theory. The probability for a cell to be assigned habitat is drawn from a uniform distribution Figure 1h Gardner et al. (1989)
nlm\_planargradient Simulates a planar gradient neutral landscape model. The gradient is sloping in a specified or (by default) random direction between 0 and 360 degree Figure 1i Palmer (1992)
nlm\_mosaictess Simulates a patchy mosaic neutral landscape model based on the tessellation of a random point process. The algorithm randomly places points (parameter germs) in the landscape, which are used as the centroid points for a voronoi tessellation. A higher number of points therefore leads to a more fragmented landscape Figure 1k Gaucherel (2008), Method 1
nlm\_mosaicgibbs Simulates a patchy mosaic neutral landscape model based on the tessellation of an inhibition point process. This inhibition point process starts with a given number of points and uses a minimisation approach to fit a point pattern with a given interaction parameter (0 - hardcore process; 1 - Poisson process) and interaction radius (distance of points/germs being apart) Figure 1l Gaucherel (2008), Method 2
nlm\_random Simulates a spatially random neutral landscape model with values drawn a uniform distribution Figure 1m With and Crist (1995)
nlm\_randomcluster Simulates a random cluster nearest-neighbour neutral landscape. The parameter ai controls for the number and abundance of land cover classes and p controls for proportion of elements randomly selected to form clusters Figure 1n Saura and Martínez-Millán (2000)
nlm\_mpd Simulates a midpoint displacement neutral landscape model where the parameter roughness controls the level of spatial autocorrelation Figure 1n Peitgen and Saupe (1988)
nlm\_randomrectangularcluster Simulates a random rectangular cluster neutral landscape model. The algorithm randomly distributes overlapping rectangles until the landscape is filled Figure 1o Gustafson and Parker (1992)

See also

NLMR was split during its development process - to have a minimal dependency version for simulating neutral landscape models and an utility toolbox to facilitate workflows with raster data. If you are interested in merging, visualizing or further handling neutral landscape models have a look at the landscapetools package.

Meta

ropensci_footer

nlmr's People

Contributors

bitbacchus avatar csim063 avatar marcosci avatar mattfrit avatar rekyt avatar z3tt avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.