【问题标题】:R sf aggregate (unite) polygons at various geographic levels (columns) within a dataframeR sf 聚合(联合)数据框中不同地理级别(列)的多边形
【发布时间】:2020-07-10 08:33:35
【问题描述】:

我正在尝试聚合不同地理级别的多边形。作为一个假设且可重复的示例,假设我想在州级聚合美国县级数据集(当然,如果这是我的“实际”问题,我可以直接检索州级多边形)。

我尝试通过为每个组应用 st_union 来做到这一点,其中组是每个州。该代码似乎工作正常,但是当我尝试将其用于绘图或其他数据操作时,R 会抛出如下错误消息。

一般来说,如果我们在数据中包含多个地理级别(例如,州、县、城市、邮政编码等),并且如果我们想要在不同级别上聚合它,那么最好的方法是什么?

counties <- USAboundaries::us_counties() 

state_union <- counties %>% 
  group_by(state_abbr) %>%
  summarise(geometry = sf::st_union(geometry)) %>%
  ungroup() %>% st_as_sf()

plot(st_geometry(state_union))
Error in CPL_geos_is_empty(st_geometry(x)) : Not a matrix.

任何 cmets 将不胜感激!

【问题讨论】:

    标签: r sf


    【解决方案1】:

    如果您查看讨论 here,您会发现在 summarize() 调用中使用 st_union 存在问题。但是,{sf} 有自己的 summarize.sf() 方法,可以自动按组聚合几何:

    library(tidyverse)
    library(sf)
    #> Linking to GEOS 3.7.2, GDAL 2.4.2, PROJ 5.2.0
    
    counties <- USAboundaries::us_counties() 
    
    counties %>% 
      group_by(state_abbr) %>% 
      summarize() %>% 
      ungroup() %>% 
      plot()
    

    reprex package (v0.3.0) 于 2020 年 3 月 29 日创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多