R 溶解hexmap多边形形状文件

R 溶解hexmap多边形形状文件,r,polygon,shapefile,maptools,cartogram,R,Polygon,Shapefile,Maptools,Cartogram,我试图通过unionSpatialPolygons或aggregate函数分解内部多边形,从而生成六边形卡通图的轮廓。我得到的是无法溶解的碎片。。。演示问题的虚拟示例: # grab a dummy example shape file library(raster) g <- getData(name = "GADM", country = "GBR", level = 2) # par(mar = rep(0,4)) # plot(g) # create a hexagonal ca

我试图通过
unionSpatialPolygons
aggregate
函数分解内部多边形,从而生成六边形卡通图的轮廓。我得到的是无法溶解的碎片。。。演示问题的虚拟示例:

# grab a dummy example shape file
library(raster)
g <- getData(name = "GADM", country = "GBR", level = 2)
# par(mar = rep(0,4))
# plot(g)

# create a hexagonal cartogram
# library(devtools)
# install_github("sassalley/hexmapr")    
library(hexmapr)
h <- calculate_cell_size(shape = g, seed = 1,
                         shape_details = get_shape_details(g), 
                         learning_rate = 0.03, grid_type = 'hexagonal')
i <- assign_polygons(shape = g, new_polygons = h)
par(mar = rep(0,4))
plot(i)
#获取一个虚拟示例形状文件
图书馆(光栅)

gRoger Bivand建议的解决方案(通过电子邮件交流):


g1两个散乱的多边形与两个海洋入口的内陆末端重合,北部为爱尔兰海,南部为布里斯托尔海峡。所以这可能是一些与这些海岸线相关的小故障。我不熟悉hexmapr
-是否可以缩小六边形的大小并比较结果?@StuartAllen我认为你是对的。这两个都是
j
中的孔。
# dissolve the polygons to get coastline
library(maptools)
j <- unionSpatialPolygons(SpP = i, IDs = rep(1, length(i)))
par(mar = rep(0,4))
plot(j)

# same result with aggregate in the raster package
k <- aggregate(x = i)
par(mar = rep(0,4))
plot(k)
 g1 <- spTransform(x = g, CRSobj = CRS("+init=epsg:27700"))
 # cellsize from calculate_cell_size() above
 h1 <- spsample(x = g1, type="hexagonal", cellsize=38309) 
 i2 <- HexPoints2SpatialPolygons(hex = h1) 
 j2 <- unionSpatialPolygons(SpP = i2, IDs = rep(1, length(i2)))
 plot(j2)