Unlimited learning, half price | 50% off

Last chance! 50% off unlimited learning

Sale ends in


spatialEco (version 2.0-1)

raster.entropy: Raster Entropy

Description

Calculates entropy on integer raster (i.e., 8 bit 0-255)

Entropy calculated as: H = -sum(Pi*ln(Pi)) where; Pi, Proportion of one value to total values Pi=n(p)/m and m, Number of unique values. Expected range: 0 to log(m) H=0 if window contains the same value in all cells. H increases with the number of different values in the window. The ellipsis arguments can be used to write to disk using the filename argument.

Maximum entropy is reached when all values are different, same as log(m) max.ent <- function(x) log( length( unique(x) ) )

Usage

raster.entropy(x, d = 5, categorical = FALSE, global = FALSE, ...)

Value

terra SpatRaster class object

Arguments

x

A terra SpatRaster object (requires integer raster)

d

Size of matrix (window)

categorical

Is the data categorical or continuous (FALSE/TRUE)

global

Should the model use a global or local n to calculate entropy (FALSE/TRUE)

...

Optional arguments passed terra focal function

References

Fuchs M., R. Hoffmann, F. Schwonke (2008) Change Detection with GRASS GIS - Comparison of images taken by different sensor.

Examples

Run this code
library(terra)
  r <- rast(ncols=100, nrows=100)
    r[] <- round(runif(ncell(r), 1,8), digits=0)

rEnt <- raster.entropy(r, d=5, categorical = TRUE, global = TRUE)
  opar <- par(no.readonly=TRUE)
    par(mfcol=c(2,1))
      plot(r)
        plot(rEnt)
  par(opar)

Run the code above in your browser using DataLab