Learn R Programming

spatialEco (version 1.3-7)

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.

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,
  filename = FALSE,
  ...
)

Value

raster class object or specified format raster written to disk

Arguments

x

Object of class raster (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)

filename

Raster file written to disk

...

Optional arguments passed to writeRaster or dataType

References

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

Examples

Run this code
require(raster)
  r <- raster(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