从带有R的shapefile中的美国地图中删除离岛

问题描述 投票:0回答:1

我从https://gadm.org/download_country_v3.html以R(sf)格式下载了0级美国地图(国家边界)。我绘制了美国边界(等级0),如下所示:

library(tidyverse) 

us0 <- readRDS("<file.path>\\gadm36_USA_0_sf.rds")

ggplot() +
    geom_sf(data = us0, size = 1, color = "steelblue", fill = NA)

如下所示的结果图像enter image description here

我想移走偏远的岛屿A和B,并将阿拉斯加从C移到C'。

我尝试但未从us0中提取经度和纬度数据。我在线搜索,但没有找到有关如何在R中执行此操作的充分答案。我想知道如何使用R可以从us0中提取经度和纬度数据,以便我可以自由删除A和B并删除C。谢谢您。

r ggplot2 ggmap sf
1个回答
0
投票

使用raster包和geom()函数,您可以从RDS对象中提取原始坐标,以及该坐标属于哪个岛/状态,以及它是实体还是孔。您的情况:

geom(us0)

然后,只需找出哪些顶点属于哪些岛。删除B的快速方法是删除所有带有正x坐标的东西。如果要移动和缩放它,则需要找出与Alaska对应的对象。夏威夷的顶部比佛罗里达群岛的底部低(i.i.r.c),因此您也可以摆脱所有纬度小于23的东西。

而且,我怀疑许多夏威夷人会反对将夏威夷称为离岛。...

© www.soinside.com 2019 - 2024. All rights reserved.