如何在R中生成六边形网格

h.l*_*l.m 10 r r-sp

我希望能够创建一个覆盖另一个SpatialPolygon的SpatialPolygons对象(这是一个六边形网格).

我希望所有六边形的直径都是1km(理想情况下我可以改变它),并且所有的六边形一起覆盖整个物体.以下方法似乎只涵盖了少量......

以下是我尝试使用该sp软件包:

require(sp)
data(meuse.riv)
meuse.sr = SpatialPolygons(list(Polygons(list(Polygon(meuse.riv)), "x")))
plot(meuse.sr)

HexPts <-spsample(meuse.sr,type="hexagonal",cellsize=1000)
HexPols <- HexPoints2SpatialPolygons(HexPts)
plot(HexPols, add=TRUE)
Run Code Online (Sandbox Code Playgroud)

我们非常感谢任何帮助...

Edz*_*sma 14

替换meuse.sr为一些缓冲版本,就像rgeos::gBuffer(meuse.sr, width = 2000)在调用spsample.以下是仅选择交叉六边形的完整示例:

require(sp)
data(meuse.riv)
meuse.sr = SpatialPolygons(list(Polygons(list(Polygon(meuse.riv)), "x")))
plot(meuse.sr)

library(rgeos)
meuse.large = gBuffer(meuse.sr, width = 2000)
HexPts <-spsample(meuse.large, type="hexagonal", cellsize=1000)
HexPols <- HexPoints2SpatialPolygons(HexPts)
plot(HexPols[meuse.sr,], add=TRUE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 有没有办法用`sf`做这个而不转换为'sp`? (2认同)
  • 顺便提一句,这里的主题[这里](http://strimas.com/spatial/hexagonal-grids/)也有一篇不错的帖子. (2认同)
  • 对于“sf”,您可以将“st_make_grid(x, square=FALSE)[x]”与“x = st_as_sf(meuse.sr)”一起使用 (2认同)