使用 sf 包溶解多边形特征

2023-12-28

溶解是一种常见的地理处理技术,作为 SF 方法进行讨论here https://github.com/edzer/sfr/issues/290.

我正在尝试复制溶解,因为它在 ArcGIS 中起作用。在 ArcGIS 中按两个组考虑县。

尽管东部半岛由其他单独的多边形组成,但 ArcGIS 溶解命令会生成两个多边形。就像这样:

这是我想在 sf 中复制的功能,但是我不能,如下所示。

nc <- st_read(system.file("shape/nc.shp", package="sf"))

#create two homogenous spatial groups
nc$group <- ifelse(nc$CNTY_ <= 1980,1,2)

#plot
ggplot() + geom_sf(data=nc, aes(fill = factor(group)))  

#dissolve
library(dplyr)#the summarize function is based on the one from dplyr (which may interfere with summarize from other libraries that may be loaded)
nc_dissolve <- nc %>% group_by(group) %>% summarize() 

#plot dissolved
ggplot() + geom_sf(data=nc_dissolve, aes(fill = factor(group)))

#Cartographically, it looks like we have two polygons, but there are 
#actually several more wrapped up as MULTIPOLYGONS. We can plot these.
t <- nc_dissolve %>% st_cast() %>% st_cast("POLYGON")
ggplot() + geom_sf(data=t, aes(fill=factor(row.names(t))))

请注意,半岛有多个无关的多边形。

我怎样才能像 ArcGIS 那样只有两个呢?非常感谢。


我不太熟悉ArcGIS如何定义多边形,但多边形的简单要素访问(ISO标准)规范是一个带有零个或多个表示孔的内环的单环。这意味着,根据该规范,如果您拥有主陆地+几个岛屿,则您没有一个多边形。为了将这些表示为单个特征,相应的几何类型是多多边形。这意味着你的答案在nc_dissolve: 它有两个特点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 sf 包溶解多边形特征 的相关文章

  • 从具有多个嵌套几何图形的 geomoetrycollection 进行铸造 r sf

    这个问题与如何简化多曲面 多边形曲线或复合曲线几何图形 https stackoverflow com questions 68810009 how to simplify a multisurface curvepolygon or co
  • dplyr 中 select() 的 contains() 和 matches() 之间的区别

    我决定花一些时间彻底学习dplyr 我刚刚遇到select 函数以及它附带的一些辅助函数 通过只是玩弄 我没能发现两者之间的任何区别contains and matches辅助功能 有人可以提供一个例子来说明如何将它们用于不同的目的吗 谢谢
  • [R][传单]:点击超链接

    我想在世界地图上添加标记 当用户单击一个标记时 它会将用户引导到另一个网站 而不是弹出窗口 我是这个库的新手 实际上这是我为了解决这个问题而尝试的第一个库 带有超链接标记的交互式地图 供用户单击并转到另一个网站 所以我能做的就是 map l
  • 将 df 拆分为多列的 **tidyverse** 方法是什么?

    我想将数据框分成多列 以便我可以看到summary 数据每个子集的输出 这是一种使用方法来做到这一点split from base library tidyverse gt Loading tidyverse ggplot2 gt Load
  • R包导出ICS?

    有谁知道 R 函数可以将日期和标签导出为 ics 日历格式 我已经用谷歌搜索过 但没有什么是显而易见的 但不敢相信有人还没有这样做 iCalendar 规范是非常简单 https www rfc editor org rfc rfc2445
  • 如何用 df 中的字符替换 NA [重复]

    这个问题在这里已经有答案了 我希望在 df 中将所有 NA 替换为 Not Found 我有这个 df A B 1 NA 2 NA 3 NA 我怎样才能得到那个 A B 1 Not Found 2 Not Found 3 Not Found
  • flextable 中的有条件加粗值

    是否可以根据 tstat 将估计值加粗 着色 对于 ex t stat 的粗体估计值大于 1 96 这是继续我之前的问题 https stackoverflow com questions 69780809 pivot wider crea
  • 如何在 Windows 操作系统上安装 BigMemory 和 bigrf

    我一直在尝试在我的 R 安装上安装 bigmemory 我的操作系统是 windows 7 64 位 我已经在 R V2 15 1 2 15 2 和 3 0 1 64 位上尝试过 但我无法让它工作 我尝试了几种选择 下载当前源并在 R v3
  • 在 R heatmap.2 中移动颜色键(gplots 包的功能)

    我现在阅读了 heatmap 2 帮助手册几次 并且在各种在线教程中我也没有读到有关将颜色键移动到不同位置的方法 现在 我想知道这是否可能 如果您使用 gplots 包中的 heatmap 2 函数 则默认情况下颜色键位于左上角 中每个元素
  • 删除数据框值的后缀

    我有一个这样完成的数据框 a b c 1 2011 mal ID9 2 2012 yesterday ID10 3 2010 misch ID10 4 1995 ship ID9 5 2008 se ID9 6 1998 falling I
  • 从总和为所需总数的值列表中确定所有可能的组合

    一位朋友问我一个编程问题 关于如何确定一组值中所有可能的值组合可以相加以获得所需的总数 我有一个解决方案 但它不太优雅 它基本上只是一系列 for 循环和 if 语句 我确信 dplyr 有一个我想不到的解决方案 因为我知道它有多么有用 但
  • R 线图上的两个数据集,但使用相同的 X 和 Y 轴?

    我正在尝试在 R 中的图表上绘制两条线 数据与死囚区相关 CSV 有三列 第一列是年份 第二列是死囚区人口 第三列是当年的处决数量 我已经到了可以画两条 X 轴相同的线的地步 但由于值的范围相互重叠 Y 轴变得混乱 举个例子 每个给定的年份
  • 我可以从 R Tools for Visual Studio 中运行 Shiny 应用程序吗

    如果我使用的话 是否可以从 Visual Studio 中运行 Shiny 应用程序Visual Studio 的 R 工具 RTVS 如果是 怎么办 我以为没有 结果发现有isRTVS 中的 运行闪亮应用程序 按钮
  • 您使用 Attach() 或按名称或切片调用变量吗?

    许多介绍 R 的书籍和指南都是从附加一个 R 语言的实践开始的 data frame这样您就可以通过名称调用变量 我一直发现用以下方式调用变量是有利的 符号或方括号切片 2 这样我就可以使用多个data frames 而不混淆它们和 或使用
  • 展平 ggplot2 中的 alpha 通道

    ggplot2 的某些对象 函数 支持 alpha 通道 http docs ggplot2 org current geom point html http docs ggplot2 org current geom point html
  • ggplot2 的组合图(不在单个图中),使用 par() 或 layout() 函数? [复制]

    这个问题在这里已经有答案了 我一直在考虑使用 par 或 layout 函数来组合 ggplots 可以使用这些功能吗 假设我想绘制 ggplot 散点图和 ggplot 直方图 我想将这两个地块合并起来 而不是在一个地块中 是否适用 我在
  • R 中具有 NA 值的聚合栅格

    我在 R 中有一个分辨率为 1 公里的栅格 其 NA 值分布广泛 但位置不规则 即 包含数据的单元格不连续 并且 NA 值分散 我正在尝试使用用户定义的平均圆角函数 包括在下面 以 5 公里分辨率 因子 5 聚合此栅格 使用 raster
  • 评估 R 中字符串指向的函数

    假设我有以下内容 x lt 1 10 squared lt function x x 2 y lt squared 我希望能够使用 y 定义的字符串来评估该函数 像 eval y 这样的东西 我知道这是错误的 但会返回 1 1 4 9 16
  • 将线条剪裁到绘图区域并在绘图区域外显示文本

    我想限制绘图的可见 y 范围 为了保留超出此范围的值 我需要设置oob 出界 to rescale none这效果很好 不过 我还想在图外的页边空白处添加一些文本 为了做到这一点 我需要关闭剪辑 这会导致超出范围的值被绘制在绘图区域之外的边
  • 为 PDF 输出添加 natbib 选项

    有没有办法指定natibib输出 PDF 时的选项bookdown 我希望 tex 输出具有命令 usepackage sort compress natbib 但似乎没有任何方法可以在 YAML 中指定它 我无法将命令添加到我的序言中 因

随机推荐