All Projects β†’ r-spatialecology β†’ belg

r-spatialecology / belg

Licence: Unknown, MIT licenses found Licenses found Unknown LICENSE MIT LICENSE.md
Boltzmann entropy of a landscape gradient

Programming Languages

r
7636 projects
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to belg

spDataLarge
R package with large datasets for spatial analysis
Stars: ✭ 19 (+35.71%)
Mutual labels:  raster, spatial
Landscapemetrics
Landscape Metrics for Categorical Map Patterns πŸ—ΊοΈ in R
Stars: ✭ 151 (+978.57%)
Mutual labels:  raster, spatial
Stars
Spatiotemporal Arrays, Raster and Vector Data Cubes
Stars: ✭ 363 (+2492.86%)
Mutual labels:  raster, spatial
sabre
sabre: Spatial Association Between REgionalizations
Stars: ✭ 34 (+142.86%)
Mutual labels:  entropy, spatial
Fasterize
High performance raster conversion for modern spatial data πŸš€πŸŒβ–¦
Stars: ✭ 146 (+942.86%)
Mutual labels:  raster, spatial
GeoArrays.jl
Simple geographical raster interaction built on top of ArchGDAL, GDAL and CoordinateTransformations
Stars: ✭ 42 (+200%)
Mutual labels:  raster, spatial
FastGWR
Fast Geographically Weighted Regression (FastGWR)
Stars: ✭ 26 (+85.71%)
Mutual labels:  spatial
Start maja
To process a Sentinel-2 time series with MAJA cloud detection and atmospheric correction processor
Stars: ✭ 47 (+235.71%)
Mutual labels:  raster
landscape
Procedural landscape
Stars: ✭ 17 (+21.43%)
Mutual labels:  landscape
spatial-microsim-book
Code, data and prose of the book: Spatial Microsimulation with R
Stars: ✭ 98 (+600%)
Mutual labels:  spatial
awesome-spectral-indices
A ready-to-use curated list of Spectral Indices for Remote Sensing applications.
Stars: ✭ 357 (+2450%)
Mutual labels:  raster
cyan
Cyan Color Converter
Stars: ✭ 68 (+385.71%)
Mutual labels:  raster
profiletool
Home to the QGis Profiletool plugin. Initial work on this fork was partially funded by the C.A. La Rioja
Stars: ✭ 23 (+64.29%)
Mutual labels:  raster
moac
Generate passwords and analyze their strength given physical limits to computation
Stars: ✭ 16 (+14.29%)
Mutual labels:  entropy
CorBinian
CorBinian: A toolbox for modelling and simulating high-dimensional binary and count-data with correlations
Stars: ✭ 15 (+7.14%)
Mutual labels:  entropy
geosapi
R interface to GeoServer REST API
Stars: ✭ 26 (+85.71%)
Mutual labels:  spatial
sqlike
Golang Sequel ORM that supports Enum, JSON, Spatial, and many more
Stars: ✭ 18 (+28.57%)
Mutual labels:  spatial
basemaps
A lightweight package for accessing basemaps from open sources in R πŸ—ΊοΈ
Stars: ✭ 39 (+178.57%)
Mutual labels:  spatial
webpassgen
Simple web-based password generator
Stars: ✭ 111 (+692.86%)
Mutual labels:  entropy
georaster-layer-for-leaflet
Display GeoTIFFs and soon other types of raster on your Leaflet Map
Stars: ✭ 168 (+1100%)
Mutual labels:  raster

belg

CRAN status R build status codecov CRAN RStudio mirror downloads DOI

Boltzmann entropy (also called configurational entropy) has been recently adopted to analyze entropy of landscape gradients (Gao et al. (2017, 2018, 2019)). The goal of belg is to provide an efficient C++ implementation of this method in R. It also extend the original idea by allowing calculations on data with missing values (Nowosad and Gao (2020)).

Installation

You can install the released version of belg from CRAN with:

install.packages("belg")

And the development version from GitHub with:

# install.packages("remotes")
remotes::install_github("r-spatialecology/belg")

Examples

As an example, we use two rasters - land_gradient1 representing a complex landscape and land_gradient2 representing a simple landscape:

library(raster)
library(belg)
land_gradient1 = raster(system.file("raster/land_gradient1.tif", package = "belg"))
land_gradient2 = raster(system.file("raster/land_gradient2.tif", package = "belg"))
plot(stack(land_gradient1, land_gradient2))

The main function in this package, get_boltzmann(), calculates the Boltzmann entropy of a landscape gradient:

get_boltzmann(land_gradient1)
#> [1] 188772.5
get_boltzmann(land_gradient2)
#> [1] 121875.2

This function accepts a SpatRaster, stars, RasterLayer, RasterStack, RasterBrick, matrix, or array object as an input. It allows for calculation of the relative (the relative argument equal to TRUE) and absolute Boltzmann entropy of a landscape gradient. As a default, it uses a logarithm of base 10 (log10), however log and log2 are also available options for the base argument.

get_boltzmann(land_gradient1, base = "log")
#> [1] 434664.7
get_boltzmann(land_gradient1, relative = TRUE)
#> [1] 137645.4
get_boltzmann(land_gradient1, base = "log2", relative = TRUE)
#> [1] 457248.1

Two methods of calculating the Boltzmann entropy of a landscape gradient are available: "hierarchy" (default) for the hierarchy-based method (Gao et al., 2017) or "aggregation" for the aggregation-based method (Gao et al., 2019). The aggregation-based method requires that the number of rows and columns in the input data must be a multiple of 2.

get_boltzmann(land_gradient1, method = "aggregation")
#> [1] 188772.5
get_boltzmann(land_gradient1, relative = TRUE, method = "aggregation")
#> [1] 137645.4

More examples can be find at https://github.com/Nowosad/belg-examples.

References

  • Gao, Peichao, Hong Zhang, and Zhilin Li. β€œA hierarchy-based solution to calculate the configurational entropy of landscape gradients.” Landscape Ecology 32(6) (2017): 1133-1146.
  • Gao, Peichao, Hong Zhang, and Zhilin Li. β€œAn efficient analytical method for computing the Boltzmann entropy of a landscape gradient.” Transactions in GIS (2018).
  • Gao, Peichao and Zhilin Li. β€œAggregation-based method for computing absolute Boltzmann entropy of landscape gradient with full thermodynamic consistency.” Landscape Ecology (2019).
  • Nowosad, J.; Gao, P. belg: A Tool for Calculating Boltzmann Entropy of Landscape Gradients. Entropy 2020, 22, 937. https://doi.org/10.3390/e22090937
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].