gpt4 book ai didi

r - 合并形状文件中具有通用标签ID的多边形: unionSpatialPolygons

转载 作者:行者123 更新时间:2023-12-04 03:56:10 27 4
gpt4 key购买 nike

我正在尝试从形状文件中读取并合并具有共同标签ID的多边形。

library(rgdal)
library(maptools)
if (!require(gpclib)) install.packages("gpclib", type="source")
gpclibPermit()

usa <- readOGR(dsn = "./path_to_data/", layer="the_name_of_shape_file")
usaIDs <- usa$segment_ID
isTRUE(gpclibPermitStatus())
usaUnion <- unionSpatialPolygons(usa, usaIDs)

当我尝试绘制合并的多边形时:
for(i in c(1:length(names(usaUnion)))){
print(i)
myPol <- usaUnion@polygons[[i]]@Polygons[[1]]@coords
polygon(myPol, pch = 2, cex = 0.3, col = i)
}

enter image description here

除了在密歇根州周围发生的非常怪异的合并以外,所有合并的路段看起来都很好,因此该特定路段的结果区域仅给出了一个较小的多边形,如下所示。
i = 10
usaUnion@polygons[[i]]@Polygons[[1]]@coords

输出:
          [,1]     [,2] 
[1,] -88.62533 48.03317
[2,] -88.90155 47.96025
[3,] -89.02862 47.85066
[4,] -89.13988 47.82408
[5,] -89.19292 47.84461
[6,] -89.20179 47.88386
[7,] -89.15610 47.93923
[8,] -88.49753 48.17380
[9,] -88.62533 48.03317

原来是一个北部小岛:

enter image description here

我怀疑问题是由于某种原因 unionSpatialPolygons函数不喜欢地理上分离的多边形(密歇根州的左侧和右侧),但是我还没有找到解决方案。

这是您可以复制的 link to input data

最佳答案

我认为问题不在于unionSpatialPolygons,而与您的情节有关。具体来说,您仅绘制每个ID的第一个“子多边形”。运行以下命令来验证出了什么问题:

for(i in 1:length(names(usaUnion))){
print(length(usaUnion@polygons[[i]]@Polygons))
}

对于每一个,您只参加了第一个。

我使用以下代码获得了正确的多边形连接/绘图:
library(rgdal)
library(maptools)
library(plyr)

usa <- readOGR(dsn = "INSERT_YOUR_PATH", layer="light_shape")
# remove NAs
usa <- usa[!is.na(usa$segment_ID), ]
usaIDs <- usa$segment_ID

#get unique colors
set.seed(666)
unique_colors <- sample(grDevices::colors()[grep('gr(a|e)y|white', grDevices::colors(), invert = T)], 15)

colors <- plyr::mapvalues(
usaIDs,
from = as.numeric(sort(as.character(unique(usaIDs)))), #workaround to get correct color order
to = unique_colors
)
plot(usa, col = colors, main = "Original Map")


usaUnion <- unionSpatialPolygons(usa, usaIDs)
plot(usaUnion, col = unique_colors, main = "Joined Polygons")

enter image description here

enter image description here

关于r - 合并形状文件中具有通用标签ID的多边形: unionSpatialPolygons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51331688/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com