Reclassify values of a Raster* object. The function (re)classifies groups of values to other values. For example, all values between 1 and 10 become 1, and all values between 11 and 15 become 2 (see functions
cut for alternative approaches).
Reclassification is done with matrix
rcl, in the row order of the reclassify table. Thus, if there are overlapping ranges, the first time a number is within a range determines the reclassification value.
# S4 method for Raster reclassify(x, rcl, filename='', include.lowest=FALSE, right=TRUE, ...)
matrix for reclassification. This matrix can have 3 or 2 columns.
3-column matrix the first two columns are "from" - "to" for the input values, and the third column "becomes" has the new value for that range. (You can also supply a vector that can be coerced into a n*3 matrix (with
2-column matrix represents ("is", "becomes") which can be useful for integer values. In that case, the
right argument is automatically set to
character. Output filename (optional)
logical, indicating if a value equal to the lowest value in rcl (or highest value in the second column, for right = FALSE) should be included. The default is
logical, indicating if the intervals should be closed on the right (and open on the left) or vice versa. The default is
TRUE. A special case is to use right=NA. In this case both the left and right intervals are open
additional arguments as for
r <- raster(ncols=36, nrows=18) values(r) <- runif(ncell(r)) # reclassify the values into three groups # all values > 0 and <= 0.25 become 1, etc. m <- c(0, 0.25, 1, 0.25, 0.5, 2, 0.5, 1, 3) rclmat <- matrix(m, ncol=3, byrow=TRUE) rc <- reclassify(r, rclmat) # for values >= 0 (instead of > 0), do rc <- reclassify(r, rclmat, include.lowest=TRUE) # equivalent to rc <- reclassify(r, c(-Inf,0.25,1, 0.25,0.5,2, 0.5,Inf,3))