首页 > 解决方案 > 从状态组创建区域经纬度数据框

问题描述

我一直在使用urbnmapr我所有的地图制作,它包含用于绘制美国各州的漂亮边界。我现在需要几个州的外边界来制作区域地图,并且正在寻找一种方法来过滤数据框以仅包含外边界。

我将使用这个外边框来遮盖光栅图像。我正在工作的地区是

filter(urbnmapr::states, state_name %in% c("South Dakota", "Nebraska", "Iowa", "Minnesota",
                                              "Missouri", "Michigan", "Indiana", "Illinois",
                                              "Wisconsin", "Kansas", "Ohio", "North Dakota"))

接受任何能给我一个对象的想法,我可以用它来掩盖这个区域的光栅。

标签: rsf

解决方案


使用urbnmaprsf

st_union()仅在您想要的状态的 sf 对象上使用将为您提供外部边界。

我认为sf对象可以用来掩盖/裁剪光栅对象。

library(urbnmapr)
library(tidyverse)
library(sf)
#> Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1

states_all <- get_urbn_map(map = 'states', sf = TRUE)
my_states_vec <-  c("South Dakota", "Nebraska", "Iowa", "Minnesota",
                                           "Missouri", "Michigan", "Indiana", "Illinois",
                                           "Wisconsin", "Kansas", "Ohio", "North Dakota")
my_states <- states_all %>% 
  filter(state_name %in% my_states_vec) %>%
  st_union()

head(my_states)
#> Geometry set for 1 feature 
#> geometry type:  MULTIPOLYGON
#> dimension:      XY
#> bbox:           xmin: -340177.8 ymin: -950695.4 xmax: 1627432 ymax: 498098.3
#> projected CRS:  US National Atlas Equal Area
#> MULTIPOLYGON (((1422979 -227154.2, 1423979 -225...

ggplot(my_states) + 
  geom_sf(fill = NA)

reprex 包于 2020-12-10 创建(v0.3.0)


推荐阅读