【发布时间】:2020-12-19 11:53:42
【问题描述】:
我正在尝试创建一个欧盟 shapefile。我想删除所有海外领土,然后绘制国家边界。我使用“NUTS_RG_01M_2021_3035_LEVL_1.shp”从 Eurostat (http://gisco-services.ec.europa.eu/distribution/v2/countries/download/ref-countries-2020-01m.shp.zip) 下载了 NUTS1 级别形状文件,并删除了海外领土(西班牙、法国、葡萄牙等)。现在我基本上想聚合回 NUTS0 级别,只绘制外部国家边界。这可能吗?我试过 st_union 但这会聚合到欧盟外部边界,移除所有边界。
到目前为止,我的代码如下:
#read shapefile
EU.sf <- st_read("/ref-nuts-2021-01m.shp/NUTS_RG_01M_2021_3035_LEVL_1.shp/NUTS_RG_01M_2021_3035_LEVL_1.shp")
#plot without oversea territories
EUmap <- tm_shape(st_union(subset(EU.sf,
NUTS_ID != "FRY" &
NUTS_ID != "PT2" &
NUTS_ID != "PT3" &
NUTS_ID != "ES7" &
CNTR_CODE != "TR"
))) +
tm_borders()
谢谢!
【问题讨论】:
-
看起来
aggregate()来自sf应该这样做,但您需要为每个单元定义 NUTS0 和 NUTS1 代码。否则,如果您有两个不同的形状文件,一个用于 NUTS0,一个用于 NUTS1,您可以使用st_overlaps()查找与 NUTS0 多边形重叠的 NUTS1 多边形。