Create a regular tesselation over the bounding box of an sf or sfc object
Create a square or hexagonal grid covering the bounding box of the geometry of an sf or sfc object
st_make_grid( x, cellsize = c(diff(st_bbox(x)[c(1, 3)]), diff(st_bbox(x)[c(2, 4)]))/n, offset = st_bbox(x)[c("xmin", "ymin")], n = c(10, 10), crs = if (missing(x)) NA_crs_ else st_crs(x), what = "polygons", square = TRUE, flat_topped = FALSE )
x |
|
cellsize |
target cellsize |
offset |
numeric of length 2; lower left corner coordinates (x, y) of the grid |
n |
integer of length 1 or 2, number of grid cells in x and y direction (columns, rows) |
crs |
object of class |
what |
character; one of: |
square |
logical; if |
flat_topped |
logical; if |
Object of class sfc
(simple feature geometry list column) with, depending on what
and square
,
square or hexagonal polygons, corner points of these polygons, or center points of these polygons.
plot(st_make_grid(what = "centers"), axes = TRUE) plot(st_make_grid(what = "corners"), add = TRUE, col = 'green', pch=3) sfc = st_sfc(st_polygon(list(rbind(c(0,0), c(1,0), c(1,1), c(0,0))))) plot(st_make_grid(sfc, cellsize = .1, square = FALSE)) plot(sfc, add = TRUE) # non-default offset: plot(st_make_grid(sfc, cellsize = .1, square = FALSE, offset = c(0, .05 / (sqrt(3)/2)))) plot(sfc, add = TRUE) nc = read_sf(system.file("shape/nc.shp", package="sf")) g = st_make_grid(nc) plot(g) plot(st_geometry(nc), add = TRUE) # g[nc] selects cells that intersect with nc: plot(g[nc], col = '#ff000088', add = TRUE)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.