将重叠的多边形合并为单个多边形

2024-01-03

我有一个数据集,其中包含多个多边形的 x 和 y 坐标,例如

df <- data.frame(
  xpol = c(0.304147897, 0.272762377, 0.239435395, 0.204166952, 0.166957048, 0.127805683, 0.086712856, 0.043678568, -0.001297181, -0.048214391, -0.097073063, -0.147873196, -0.20061479, -0.255297845, -0.311922362, -0.37048834, -0.430995779, -0.493444679, -0.557835041, -0.624166864, -0.692440148, -0.698421984, -0.629639016, -0.562974508, -0.49842846, -0.436000872, -0.375691745, -0.317501078, -0.261428871, -0.207475125, -0.155639838, -0.105923012, -0.058324646, -0.012844741, 0.030516705, 0.07175969, 0.110884215, 0.147890279, 0.182777884, 0.215547028, 0.246197712, 0.274729935, 0.460208646, 0.414820816, 0.370699056, 0.327843365, 0.286253743, 0.245930191, 0.206872708, 0.169081295, 0.132555951, 0.097296676, 0.063303471, 0.030576335, -0.000884731, -0.031079728, -0.060008655, -0.087671513, -0.114068302, -0.139199021, -0.163063671, -0.185662251, -0.206994762, -0.236134298, -0.212015307, -0.186885196, -0.160743963, -0.133591608, -0.105428133, -0.076253536, -0.046067818, -0.014870978, 0.017336983, 0.050556065, 0.084786268, 0.120027593, 0.156280039, 0.193543606, 0.231818295, 0.271104105, 0.311401036, 0.352709088, 0.395028262, 0.438358557, 0.209348542, 0.187353371, 0.163237565, 0.137001125, 0.108644051, 0.078166342, 0.045567999, 0.010849022, -0.02599059, -0.064950835, -0.106031716, -0.14923323, -0.194555379, -0.241998162, -0.29156158, -0.343245631, -0.397050318, -0.452975638, -0.511021593, -0.571188182, -0.633475405, -0.640474396, -0.577641289, -0.517236848, -0.459261072, -0.403713963, -0.350595518, -0.29990574, -0.251644627, -0.20581218, -0.162408398, -0.121433282, -0.082886832, -0.046769047, -0.013079928, 0.018180525, 0.047012313, 0.073415435, 0.097389891, 0.118935682, 0.138052807, 0.154741267, 0.553882586, 0.49867869, 0.443843518, 0.38937707, 0.335279346, 0.281550347, 0.228190072, 0.175198522, 0.122575695, 0.070321594, 0.018436216, -0.033080437, -0.084228366, -0.135007571, -0.185418051, -0.235459807, -0.285132839, -0.334437146, -0.383372729, -0.431939588, -0.480137722, -0.492000258, -0.442687027, -0.393147385, -0.343381332, -0.293388868, -0.243169994, -0.192724709, -0.142053012, -0.091154906, -0.040030388, 0.011320541, 0.06289788, 0.11470163, 0.166731791, 0.218988363, 0.271471345, 0.324180739, 0.377116543, 0.430278758, 0.483667384, 0.53728242, 0.242356084, 0.217556549, 0.191629161, 0.164573921, 0.136390827, 0.10707988, 0.076641081, 0.045074429, 0.012379923, -0.021442435, -0.056392646, -0.09247071, -0.129676627, -0.168010397, -0.207472019, -0.248061495, -0.289778824, -0.332624005, -0.37659704, -0.421697927, -0.467926667, -0.480137722, -0.432800923, -0.386818069, -0.342189162, -0.2989142, -0.256993185, -0.216426115, -0.177212991, -0.139353813, -0.102848581, -0.067697295, -0.033899955, -0.00145656, 0.029632888, 0.059368391, 0.087749947, 0.114777558, 0.140451223, 0.164770942, 0.187736715, 0.209348542),
  ypol = c(-0.96024812, -0.864762269, -0.770354343, -0.677024339, -0.584772259, -0.493598102, -0.403501868, -0.314483558, -0.226543172, -0.139680708, -0.053896168, 0.030810448, 0.114439142, 0.196989911, 0.278462758, 0.358857681, 0.438174681, 0.516413757, 0.593574911, 0.66965814, 0.744663447, 0.739258298, 0.664759825, 0.589116066, 0.512327021, 0.43439269, 0.355313072, 0.275088169, 0.193717979, 0.111202503, 0.027541741, -0.057264307, -0.143215641, -0.230312262, -0.318554169, -0.407941361, -0.49847384, -0.590151605, -0.682974656, -0.776942994, -0.872056617, -0.968315527, -0.900329625, -0.810089238, -0.719434002, -0.628363916, -0.53687898, -0.444979196, -0.352664561, -0.259935078, -0.166790745, -0.073231563, 0.020742469, 0.11513135, 0.20993508, 0.30515366, 0.400787089, 0.496835367, 0.593298495, 0.690176472, 0.787469299, 0.885176975, 0.9832995, 0.977457062, 0.879878578, 0.782634537, 0.68572494, 0.589149786, 0.492909076, 0.39700281, 0.301430987, 0.206193608, 0.111290672, 0.01672218, -0.077511868, -0.171411473, -0.264976634, -0.358207351, -0.451103625, -0.543665456, -0.635892842, -0.727785785, -0.819344285, -0.910568341, -0.982860934, -0.885048061, -0.788181629, -0.692261638, -0.597288088, -0.503260979, -0.410180312, -0.318046085, -0.226858299, -0.136616954, -0.04732205, 0.041026412, 0.128428434, 0.214884015, 0.300393155, 0.384955854, 0.468572111, 0.551241928, 0.632965304, 0.713742239, 0.793572732, 0.788156881, 0.708832715, 0.628491594, 0.547133519, 0.464758488, 0.381366503, 0.296957562, 0.211531666, 0.125088816, 0.03762901, -0.050847751, -0.140341466, -0.230852137, -0.322379763, -0.414924343, -0.508485879, -0.60306437, -0.698659815, -0.795272216, -0.892901572, -0.991547883, -0.848695004, -0.763721189, -0.678538743, -0.593147667, -0.50754796, -0.421739624, -0.335722657, -0.24949706, -0.163062833, -0.076419975, 0.010431513, 0.097491631, 0.184760379, 0.272237757, 0.359923766, 0.447818405, 0.535921675, 0.624233574, 0.712754104, 0.801483264, 0.890421054, 0.884257179, 0.795895062, 0.707660145, 0.619552428, 0.531571913, 0.443718598, 0.355992484, 0.26839357, 0.180921857, 0.093577345, 0.006360033, -0.080730078, -0.167692989, -0.254528698, -0.341237207, -0.427818516, -0.514272624, -0.600599531, -0.686799237, -0.772871743, -0.858817048, -0.976092379, -0.878681978, -0.781669249, -0.685054193, -0.588836809, -0.493017098, -0.39759506, -0.302570694, -0.207944002, -0.113714981, -0.019883634, 0.073550041, 0.166586043, 0.259224373, 0.351465029, 0.443308014, 0.534753325, 0.625800964, 0.71645093, 0.806703223, 0.896557844, 0.890421054, 0.801147849, 0.711412445, 0.621214841, 0.530555037, 0.439433035, 0.347848833, 0.255802431, 0.16329383, 0.07032303, -0.02310997, -0.117005169, -0.211362567, -0.306182165, -0.401463963, -0.497207959, -0.593414155, -0.690082551, -0.787213146, -0.88480594, -0.982860934),
  ID = c(rep(849, 42), rep(6249, 42), rep(7809, 42), rep(17045, 42), rep(18495, 42))
)

哪一个可以用它来绘图

ggplot() +
  geom_polygon(aes(x = xpol, y = ypol, group = factor(ID)), 
               data = df, 
               fill = "grey", color = "black", alpha = 0.6) +
  theme_bw() +
  xlim(-1,1) +
  ylim(-1,1)

正如我们所看到的,一些多边形重叠......

我想合并数据,例如重叠的多边形转换为单个多边形,因此生成的图将是(手动编辑的图形)

为了完整起见,多边形可能不与任何多边形重叠、与 1 个多边形重叠或与许多(许多)其他多边形重叠。


也许是这样的?

library(dplyr)
library(sf)

sf.object <- df %>%
  # convert data frame to sf object
  st_as_sf(coords = c("xpol", "ypol")) %>%

  # cast points associated with each ID as a polygon
  group_by(ID) %>%
  summarise(geometry = st_combine(geometry)) %>%
  st_cast("POLYGON") %>%
  ungroup() %>%

  # union polygons
  st_union()

# plot result using geom_sf()
ggplot() +
  geom_sf(data = sf.object,
          fill = "grey", color = "black", alpha = 0.6) +
  theme_bw() +
  coord_sf(xlim = c(-1, 1),
           ylim = c(-1, 1))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将重叠的多边形合并为单个多边形 的相关文章

  • R,使用具有两种以上可能性的二项式分布

    我知道这可能是基本的 但我似乎有一个心理障碍 假设您想要计算在一个骰子上掷出 4 5 或 6 的概率 在 R 中 这很简单 sum 1 6 1 6 1 6 这给出了 1 2 这是正确答案 然而 我内心深处 可能应该保留的地方 认为我应该能够
  • 如何按定义的顺序将图像合并到一个文件中

    我有大约 100 张图像 png 我不想手动执行此操作 而是希望将它们按照定义的顺序 基于文件名 并排放置在一个 pdf 中 每行 12 个图像 有人有什么建议吗 我按照下面托马斯告诉我的方法尝试了 它把它们贴在旁边有一个黑边 我怎样才能去
  • R Shinydashboard 自定义 CSS 到 valueBox

    我一直在尝试将 valueBox 的颜色更改为自定义颜色 超出 validColors 中可用的颜色 但一直无法这样做 我知道有一种方法可以使用标签来包含自定义 CSS 但是我无法将它们放在正确的位置 ui lt dashboardPage
  • 在 RMarkdown 输出到 PDF 时缩进而不添加项目符号点或编号

    之前有人问过如何在没有项目符号的情况下缩进文本 RMarkdown 中的点 但这是针对 HTML 输出的 在 RMarkdown 中缩进而不添加项目符号点或数字 https stackoverflow com questions 47087
  • 在包加载之前如何知道 R 中特定函数属于哪个包?

    例如 我知道许多流行的功能 例如tbl df 我通常不记得它属于哪个包 即data table or dplyr 所以我必须始终记住并加载一个包 但我做不到 tbl df除非我加载了正确的包 在 R 控制台本身加载或安装包之前 有没有办法知
  • 在ggplot中设置y轴中断

    我在代码中设置中断时遇到困难 我尝试添加breaks seq 0 100 by 20 但似乎无法让它正常工作 本质上我希望 Y 轴从 0 到 100 每 20 个刻度一次 YearlyCI lt read table header T te
  • 从数据框中绘制多条平滑线

    我对 R 比较陌生 我正在尝试绘制从 csv 文件加载的数据框 数据由 6 列组成 如下所示 xval col1 col2 col3 col4 col5 第一列 xval 由一系列单调递增的正整数 例如 10 40 60 等 组成 其他列
  • 增加雷达图中长轴标签的空间

    我想创建一个雷达图ggirahExtra ggRadar 问题是我的标签很长并且被剪掉了 我想我可以通过添加在标签和绘图之间创建更多空间margin margin 0 0 2 0 cm to element text in axis tex
  • 如何根据 ggplot2 中的汇总数据创建堆积条形图

    我正在尝试使用 ggplot 2 创建堆积条形图 我的宽格式数据如下所示 每个单元格中的数字是响应的频率 activity yes no dontknow Social events 27 3 3 Academic skills works
  • 如何为自定义 S3 类实现提取/取子集 ([ [<-, [[ [[<-)] 函数?

    我有一个自定义的 S3 类foo 它在正常的基础上添加了一些自定义行为data frame foo object lt data frame class foo object lt c foo data frame 对于这个类 还应该有一个
  • 当将遗传算法与 lme4 一起使用时,glmulti 无限期运行

    我在 R 中使用 glmulti 进行模型平均 我的模型中有大约 10 个变量 使得详尽的筛选不切实际 因此我需要使用遗传算法 GA 调用 method g 我需要包含随机效应 因此我使用 glmulti 作为 lme4 的包装器 此处提供
  • 使用数据帧的 R 中的 EWMA 波动性

    我正在尝试从一系列股票每日收益中获取 EWMA 波动性 这些收益来自一个名为base retorno diario Data IBOV ABEV3 AEDU3 ALLL3 BBAS3 BBDC3 BBDC4 1 2000 01 04 0 0
  • 将维基百科中的表格加载到 R 中

    我正在尝试从以下 URL 将最高法院法官表加载到 R 中 https en wikipedia org wiki List of Justices of the Supreme Court of the United States http
  • 如何在Rstudio中快速给几个单词加上引号?

    如何将 MI ID FL 转换为 MI ID FL 而无需键入每个双引号 Hmisc 包有一个函数 Cs 它将评估逗号分隔的文本是否带有引号 Cs MI ID FL becomes MI ID FL
  • 如何动态地将 sliderInput 添加到闪亮的应用程序中?

    使用闪亮 我上传一个 csv 文件 并根据列名称 我需要向 ui 添加滑块 sidebarPanel fileInput file1 Upload CSV File to Create a Model accept c text csv t
  • 计算 R 行中的非零条目数

    我有以下类型的数据 mode1 mode2 mode3 1 8 1 0 2 0 0 0 3 6 5 4 4 1 2 3 5 1 1 1 数据使用dput structure list mode1 c 8L 0L 6L 1L 1L mode2
  • R 数据结构的运算效率

    我想知道是否有任何关于操作效率的文档R 特别是那些与数据操作相关的 例如 我认为向数据框添加列是有效的 因为我猜您只是向链接列表添加一个元素 我想添加行会更慢 因为向量保存在数组中C level你必须分配一个新的长度数组n 1并将所有元素复
  • 安装 2.15 后 ggplot2 中的 alpha 通道不起作用

    更新到 R 2 15 后 ggplot 中的 alpha 通道似乎不再起作用 plot rnorm 100 rnorm 100 bg cc000055 pch 21 工作得很好但是 qplot rnorm 100 rnorm 100 col
  • 如何在R中分离两个图?

    每当我运行这段代码时 第一个图就会简单地覆盖前一个图 R中有没有办法分开得到两个图 plot pc title main abc xlab xx ylab yy plot pcs title main sdf xlab sdf ylab x
  • 更改绘图区域背景颜色

    我想使用我们公司的颜色在 R 中制作一个图表 这意味着所有图表的背景应为浅蓝色 但绘图区域应为白色 我正在寻找答案 发现绘制一个矩形就可以完成这项工作 几乎 然而 绘图区域现在是白色的 并且图形不再可见 这可能吗 getSymbols SP

随机推荐

  • 使用逻辑运算符索引 numpy 数组

    我有一个 2d numpy 数组 例如 import numpy as np a1 np zeros 500 2 a1 0 np arange 0 500 a1 1 np arange 0 5 1000 2 could be also re
  • 将我的网站与 Google 日历集成

    我正在用 PHP 开发一个网站 该网站的用户可以从我提供的日历中进行预约 当用户进行预订时 应将其添加到我的谷歌日历中 对于这种情况 我需要什么样的身份验证机制 以下哪一项 1 网络应用程序 2 服务账户 3 安装的应用程序 注意 我不想访
  • Swift 3:获取 UIImage 中像素的颜色(更好:UIImageView)

    我尝试了不同的解决方案 例如this one https stackoverflow com questions 25146557 how do i get the color of a pixel in a uiimage with sw
  • React Native Lottie - 动画结束时反转

    Context 我是lottie react native的新手 并且已经成功实现了我的第一个动画 constructor props super props this state progress new Animated Value 0
  • 无限墙算法中的门

    问题 门在墙上你面对的是一堵向两个方向无限延伸的墙 墙上有一扇门 但你不知道有多远 也不知道在哪个方向 只有当你靠近门时你才能看到门 设计一种算法 使您能够通过最多步行 O n 步到达门 其中 n 是您的初始位置和门之间的 您未知的 步数
  • 在哪里获取 csv 样本数据? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 作为开发的一部分 我需要处理一些 csv 文件 重要的是我正在用 java 编写一个超快速的 CSV 解
  • pdf图像色彩空间麻烦ios

    EDIT我一直在使用的pdf文件显然是 indesign 格式 无论这意味着什么 因此没有颜色配置文件 有谁知道如果可能的话我如何自己添加配置文件 编辑结束 预先感谢任何人可以为解决此问题提供帮助 首先让我告诉你 我在 IOS 开发方面是个
  • 客户端:访问 Windows Azure 驱动器?

    我正在开发一个 Azure 应用程序 其中一部分涉及用户浏览在线文件系统 为此 我尝试使用 Windows Azure 驱动器 但我不知道如何从客户端访问它 或者如何使其在服务器端可访问 目前 我只知道如何制作驱动器 CloudStorag
  • Docker推送错误“413请求实体太大”

    我设置了registry v2并使用nginx作为反向代理 当我将图像推送到注册表时 出现错误413 Request Entity Too Large 我已在 nginx conf 中将 client max body size 修改为 2
  • 使用起始 X/Y 和起始+扫描角度获取 ArcSegment 中的终点

    有没有人有一个好的算法来计算终点ArcSegment 这不是圆弧 而是椭圆弧 例如 我有这些初始值 起点 X 0 251 起点 Y 0 928 宽度半径 0 436 高度半径 0 593 起始角度 169 51 扫掠角 123 78 我知道
  • nginx 重定向循环,从 url 中删除 index.php

    我想要任何请求 例如http example com whatever index php 执行 301 重定向到http example com whatever 我尝试添加 rewrite index php 1 permanent l
  • 在 Java Web 应用程序中运行常规后台事件

    在播客 15 中 Jeff 提到他在 Twitter 上谈到了如何在后台运行常规事件 就好像它是一个正常功能一样 不幸的是我似乎无法通过 Twitter 找到它 现在我需要做类似的事情 并将这个问题抛给大众 我当前的计划是 当第一个用户 可
  • android.os.SystemProperties 在 Junit 测试期间不保存值

    android os SystemProperties 不能从外部使用 因此反射用于设置和获取操作 看android os SystemProperties 在哪里 https stackoverflow com questions 264
  • 如何使用 Boost Filesystem 忽略隐藏文件(以及隐藏目录中的文件)?

    我使用以下命令递归地迭代目录中的所有文件 try for bf recursive directory iterator end dir dir end dir const bf path p dir gt path if bf is re
  • 我的 Sublime 首选项文件在哪里?

    我正在使用优秀的Sublime Text 3 编辑器 http www sublimetext com 3在我的 Mac 上 我想关闭自动换行功能 所以我去了Preferences gt Settings Default 这将打开一个设置文
  • 错误C2995:函数模板已被定义

    此代码产生 17 错误 C2995 函数模板已被定义 在添加 include set h 标头之前存在一组单独的错误 有一个与此相关的私有 cpp 和 h 文件 File private set cpp Last modified on T
  • 如何告诉castor将空字段编组到空标签?

    我正在编组一个可以将某些字段设置为空的对象 我使用带有 xml 映射文件的 Castor 进行配置 我正在编组的课程是这样的 class Entity private int id private String name private S
  • 为什么我的 eclipse 控制台不以 StatE 启动

    我刚刚安装了带有 StatET 的 Eclipse 一切都是标准的 现在当我打开 StatET 透视图时 我的控制台似乎没有加载 有什么想法吗 我也使用 StatEt 它在这里有相同的行为 要启动 R 控制台 我必须从 运行按钮菜单 中选择
  • android.view.InflateException:错误膨胀类 android.widget.EditText 华硕 Android 5

    I m getting constant reports of this crash happening but it only happens on asus devices with android 5 as the image bel
  • 将重叠的多边形合并为单个多边形

    我有一个数据集 其中包含多个多边形的 x 和 y 坐标 例如 df lt data frame xpol c 0 304147897 0 272762377 0 239435395 0 204166952 0 166957048 0 127