我希望能够创建一个覆盖另一个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)
一如既往的任何帮助都将不胜感激...
最佳答案
将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)
关于r - 如何在R中生成六角形网格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29374004/