cells: vector of cell numbers for which adjacent cells should be found. Cell numbers start with 1 in the upper-left corner and increase from left to right and from top to bottom
directions: the number of directions in which cells should be connected: 4 (rook's case), 8 (queen's case), 16 (knight and one-cell queen moves), or 'bishop' to connect cells with one-cell diagonal moves. Or a neighborhood matrix (see Details)
pairs: logical. If TRUE, a matrix of pairs of adjacent cells is returned. If FALSE, a vector of cells adjacent to cells is returned
target: optional vector of target cell numbers that should be considered. All other adjacent cells are ignored
sorted: logical. Should the results be sorted?
include: logical. Should the focal cells be included in the result?
id: logical. Should the id of the cells be included in the result? (numbered from 1 to length(cells)
...: additional arguments. None implemented
Details
A neighborhood matrix identifies the cells around each cell that are considered adjacent. The matrix should have one, and only one, cell with value 0 (the focal cell); at least one cell with value 1 (the adjacent cell(s)); All other cells are not considered adjacent and ignored.
Returns
matrix or vector with adjacent cells.
Author(s)
Robert J. Hijmans and Jacob van Etten
Examples
r <- raster(nrows=10, ncols=10)adjacent(r, cells=c(1,55), directions=8, pairs=TRUE)a <- adjacent(r, cell = c(1,55,90), directions=4, sorted=TRUE)a
r[c(1,55,90)]<-1r[a]<-2plot(r)# same result as aboverook <- matrix(c(NA,1,NA,1,0,1,NA,1,NA), ncol=3, byrow=TRUE)adjacent(r, cells = c(1,55,90), directions=rook, sorted=TRUE)# Count the number of times that a cell with a certain value# occurs next to a cell with a certain valueset.seed(0)r <- raster(ncol=10, nrow=10)values(r)<- round(runif(ncell(r))*5)a <- adjacent(r,1:ncell(r),4, pairs=TRUE)tb <- table(r[a[,1]], r[a[,2]])tb
# make a matrix out of the 'table' objecttb <- unclass(tb)plot(raster(tb, xmn=-0.5, xmx=5.5, ymn=-0.5, ymx=5.5))