Boltzmann Entropy of a Landscape Gradient

Calculates the Boltzmann entropy of a landscape gradient. This package uses the analytical method created by Gao, P., Zhang, H. and Li, Z., 2018 () and by Gao, P. and Li, Z., 2019 (). It also extend the original ideas by allowing calculations on data with missing values.

CRANstatus BuildStatus codecov CRAN RStudio mirrordownloads DOI

Boltzmann entropy (also called configurational entropy) has been recently adopted to analyze entropy of landscape gradients (Gao et al. (2017), Gao et al. (2018)). 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.


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


And the development version from GitHub with:

# install.packages("devtools")


As an example, we use two small rasters - complex_land representing a complex landscape and simple_land representing a simple landscape:

plot(stack(complex_land, simple_land))

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

#> [1] 48.43241
#> [1] 18.3818

This function accepts a RasterLayer, RasterStack, RasterBrick, matrix, or array object as an input. It also 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(complex_land, base = "log")
#> [1] 111.5198
get_boltzmann(complex_land, relative = TRUE)
#> [1] 35.50168
get_boltzmann(complex_land, base = "log2", relative = TRUE)
#> [1] 117.934


  • 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, Hong Zhang, and Zhilin Li. “A hierarchy-based solution to calculate the configurational entropy of landscape gradients.” Landscape Ecology 32(6) (2017): 1133-1146.


belg 0.2.1

  • The first vignette added

belg 0.2.0

  • Support for data with missing values added

belg 0.1.1

  • Solaris compilation fixed

belg 0.1.0

  • NA error check added
  • Negative values are shifted
  • Documentation details updated

belg 0.0.4

  • Working rcpp code added


  • Added a file to track changes to the package

Reference manual

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


1.5.0 by Jakub Nowosad, a day ago

Report a bug at

Browse source code at

Authors: Jakub Nowosad [aut, cre] , Space Informatics Lab [cph]

Documentation:   PDF Manual  

MIT + file LICENSE license

Imports Rcpp

Suggests testthat, sp, raster, rgdal, covr, knitr, rmarkdown, ggplot2, rasterVis, stars, terra

Linking to Rcpp, RcppArmadillo

See at CRAN