Which cells have the minumum / maximum value (for a RasterLayer), or which layer has the minimum/maximum value (for a RasterStack or RasterBrick)?

which.min and which.max return the index of the first layer that has the min or max value for a cell. This can be problematic if there are ties.

In you want the index of all the layers that have the min or max value, use whiches.min or whiches.max (only for objects with less than 10 layers).

which.min(x)
which.max(x)
whiches.min(x, ...)
whiches.max(x, ...)

Arguments

x

Raster* object

...

additional arguments (none implemented)

Value

(which.*): vector of cell numbers (if x is a RasterLayer). If x is a RasterStack or RasterBrick, a RasterLayer giving the number of the first layer with the minimum or maximum value for a cell.

(whiches.*). An integer in which each digit represents a layer. For example, 35 means "layers 3 and 5"

Note

There is a limit to accurate integer number representation. Therefore, do not use whiches.* with more than 15 layers.

See also

Examples

b <- brick(system.file("external/rlogo.grd", package="raster")) 

r <- which.min(b)

i <- which.min(b[[3]])
xy <- xyFromCell(b, i)
plot(b[[3]])
points(xy)


x <- whiches.min(b)
freq(x)
#>      value count
#> [1,]     1  2771
#> [2,]     2   245
#> [3,]     3  3041
#> [4,]    12    93
#> [5,]    13     1
#> [6,]    23    11
#> [7,]   123  1615