Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/r-spatialecology/belg
Boltzmann entropy of a landscape gradient
https://github.com/r-spatialecology/belg
entropy landscape r raster spatial
Last synced: about 1 month ago
JSON representation
Boltzmann entropy of a landscape gradient
- Host: GitHub
- URL: https://github.com/r-spatialecology/belg
- Owner: r-spatialecology
- License: other
- Created: 2018-02-20T19:50:56.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-15T15:22:43.000Z (about 2 years ago)
- Last Synced: 2024-06-11T16:07:34.949Z (6 months ago)
- Topics: entropy, landscape, r, raster, spatial
- Language: R
- Homepage: https://r-spatialecology.github.io/belg/
- Size: 4.22 MB
- Stars: 16
- Watchers: 3
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE
Awesome Lists containing this project
README
---
output: github_document
---```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# belg[![CRAN status](http://www.r-pkg.org/badges/version/belg)](https://cran.r-project.org/package=belg)
[![R build status](https://github.com/r-spatialecology/belg/workflows/pkgdown-and-test-coverage/badge.svg)](https://github.com/r-spatialecology/belg/actions)
[![codecov](https://app.codecov.io/gh/r-spatialecology/belg/branch/master/graph/badge.svg)](https://app.codecov.io/gh/r-spatialecology/belg)
[![CRAN RStudio mirror downloads](http://cranlogs.r-pkg.org/badges/belg)](https://cran.r-project.org/package=belg)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1209419.svg)](https://doi.org/10.5281/zenodo.1209419)
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](https://CRAN.R-project.org) with:
``` r
install.packages("belg")
```And the development version from [GitHub](https://github.com/) with:
``` r
# 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:
```{r, message=FALSE, fig.height=3}
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:
```{r}
get_boltzmann(land_gradient1)
get_boltzmann(land_gradient2)
```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.```{r}
get_boltzmann(land_gradient1, base = "log")
get_boltzmann(land_gradient1, relative = TRUE)
get_boltzmann(land_gradient1, base = "log2", relative = TRUE)
```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.```{r}
get_boltzmann(land_gradient1, method = "aggregation")
get_boltzmann(land_gradient1, relative = TRUE, method = "aggregation")
```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