Get cell number(s) of a Raster* object from row and/or column numbers. Cell numbers start at 1 in the upper left corner, and increase from left to right, and then from top to bottom. The last cell number equals the number of cells of the Raster* object.

cellFromRowCol(object, row, col, ...)
cellFromRowColCombine(object, row, col, ...)
cellFromRow(object, rownr)
cellFromCol(object, colnr)
colFromX(object, x)
rowFromY(object, y)
cellFromXY(object, xy)
cellFromLine(object, lns)
cellFromPolygon(object, p, weights=FALSE)
fourCellsFromXY(object, xy, duplicates=TRUE)

Arguments

object

Raster* object (or a SpatialPixels* or SpatialGrid* object)

colnr

column number; or vector of column numbers

rownr

row number; or vector of row numbers

col

column number; or vector of column numbers

row

row number; or vector of row numbers

x

x coordinate(s)

y

y coordinate(s)

xy

matrix of x and y coordinates, or a SpatialPoints or SpatialPointsDataFrame object

lns

SpatialLines object

p

SpatialPolygons object

weights

Logical. If TRUE, the fraction of each cell that is covered is also returned

duplicates

Logical. If TRUE, the same cell number can be returned twice (if the point in the middle of a division between two cells) or four times (if a point is in the center of a cell)

...

additional arguments (none implemented)

Details

cellFromRowCol returns the cell numbers obtained for each row / col number pair. In contrast, cellFromRowColCombine returns the cell numbers obtained by the combination of all row and column numbers supplied as arguments.

fourCellsFromXY returns the four cells that are nearest to a point (if the point falls on the raster). Also see adjacent.

Value

vector of row, column or cell numbers. cellFromLine and cellFromPolygon return a list, fourCellsFromXY returns a matrix.

Examples

r <- raster(ncols=10, nrows=10)
cellFromRowCol(r, 5, 5)
#> [1] 45
cellFromRowCol(r, 1:2, 1:2)
#> [1]  1 12
cellFromRowColCombine(r, 1:3, 1:2)
#> [1]  1  2 11 12 21 22
cellFromCol(r, 1)
#>  [1]  1 11 21 31 41 51 61 71 81 91
cellFromRow(r, 1)
#>  [1]  1  2  3  4  5  6  7  8  9 10

colFromX(r, 0.5)
#> [1] 6
rowFromY(r, 0.5)
#> [1] 5
cellFromXY(r, cbind(c(0.5,5), c(15, 88)))
#> [1] 46  6
fourCellsFromXY(r, cbind(c(0.5,5), c(15, 88)))
#>      [,1] [,2] [,3] [,4]
#> [1,]   46   36   35   45
#> [2,]    6   16   15    5

cds1 <- rbind(c(-180,-20), c(-160,5), c(-60, 0), c(-160,-60), c(-180,-20))
cds2 <- rbind(c(80,0), c(100,60), c(120,0), c(120,-55), c(80,0))
pols <- SpatialPolygons(list(Polygons(list(Polygon(cds1)), 1), Polygons(list(Polygon(cds2)), 2)))
cellFromPolygon(r, pols)
#> [[1]]
#> [1] 51 52 53 61 62 71
#> 
#> [[2]]
#> [1] 38 48 58
#>