Get the cell numbers covered by a SpatVector or SpatExtent. Or that match values in a vector; or all non NA values.
methods
## S4 method for signature 'SpatRaster,missing'cells(x, y)## S4 method for signature 'SpatRaster,numeric'cells(x, y, pairs=FALSE)## S4 method for signature 'SpatRaster,SpatVector'cells(x, y, method="simple", weights=FALSE, exact=FALSE, touches=is.lines(y), small=TRUE)## S4 method for signature 'SpatRaster,SpatExtent'cells(x, y)
Arguments
x: SpatRaster
y: SpatVector, SpatExtent, 2-column matrix representing points, numeric representing values to match, or missing
method: character. Method for getting cell numbers for points. The default is "simple", the alternative is "bilinear". If it is "bilinear", the four nearest cells and their weights are returned
weights: logical. If TRUE and y has polygons, the approximate fraction of each cell that is covered is returned as well
pairs: logical. If TRUE the cell values matched area also returned
exact: logical. If TRUE and y has polygons, the exact fraction of each cell that is covered is returned as well
touches: logical. If TRUE, values for all cells touched by lines or polygons are extracted, not just those on the line render path, or whose center point is within the polygon. Not relevant for points
small: logical. If TRUE, values for all cells in touched polygons are extracted if none of the cells center points is within the polygon; even if touches=FALSE
Returns
numeric vector or matrix
Examples
r <- rast(ncols=10, nrows=10)values(r)<-1:ncell(r)r[c(1:25,31:100)]<-NAr <- ifel(r >28, r +10, r)# all cell numbers of cells that are not NAcells(r)# cell numbers that match valuesx <- cells(r, c(28,38))x$lyr.1# cells for pointsm <- cbind(x=c(0,10,-30), y=c(40,-10,20))cellFromXY(r, m)v <- vect(m)cells(r, v)cells(r, v, method="bilinear")# cells for polygonsf <- system.file("ex/lux.shp", package="terra")v <- vect(f)r <- rast(v)cv <- cells(r, v)