使用ArcGIS Desktop从多边形中仅删除圆环孔吗?


15

我正在使用ArcGIS Desktop 10.0。

我有一个技巧来删除甜甜圈孔,即将多边形转换为线,然后从线中创建多边形,最后将所有线合并。该策略的缺点在于,会去除实际上是空的并且应保持空的其他孔和空区域。见下图:

在此处输入图片说明


3
我投票让这个问题开放,因为我相信OP会尝试删除一些但不是全部的甜甜圈。他正在寻找保留其中一些人的方法。
Fezter

谢谢!我添加了图片,希望可以澄清所有内容。在合并所有内容之前,我无法删除较大的区域,因为我可能会偶然删除主要的多边形(绿色的多边形本身)。
阿鲁什

1
如何从图层中删除小的“盐和胡椒”多边形非常相似,但使用QGIS流程。您可能可以在ArcGIS中处理非常相似的过程。
RyanKDalton 2014年


只是阈值大小不应该超过该阈值大小,才能防止这与使用ArcGIS for Desktop填充圆环多边形
PolyGeo

Answers:


23

我会尝试使用NO_GAPS 的联盟工具:

NO_GAPS —将为输出中完全被多边形包围的区域创建一个要素。此功能将具有空白属性。

然后,您可以选择具有低于阈值大小的空白属性的要素,并计算其属性与原始多边形相同-或在“编辑器的属性”窗口中复制/粘贴它们。

具有大于阈值大小的空白属性的要素应删除。

从那里,“ 溶解”工具应完成工作。


1
您如何“计算[新的甜甜圈多边形]与原始的[包含]多边形相同”?它们没有任何共同的属性值,因此无法加入。Island poly C如何知道应该从(包含)Lake poly A获取其新的attrib值,而忽略(在其他地方)Lake poly B?
马特·威尔基

我没有做最近的测试,但是“新的甜甜圈多边形”是“原始的[包含]多边形”。如果要批量处理多个这样的甜甜圈多边形,则需要用甜甜圈多边形标记小孔,使其落入内部。
PolyGeo

8

PolyGeo的解决方案是我自己雇用的并且工作良好(+1)。另一种选择是先对多边形进行少量缓冲,然后再对结果进行相同数量的缓冲(例如+ 1m,然后是-1m)。这也可以很好地工作,但冒着意外连接与缓冲区相邻的多边形的风险很小。它还会增加您的顶点数(可能会或可能不会出现问题)。

您还可以通过遍历每个多边形,基于内圈创建临时多边形并对它们的面积进行测试来编写一个健壮解决方案的脚本。如果它们低于阈值,则可以从几何图形中删除该内环并更新行。该解决方案比PolyGeo的解决方案或我上面提到的缓冲区破解要耗费更多精力,但可能是一种“更纯粹”的方法。


5

您可以在ArcToolbox中使用“消除多边形零件”工具(数据管理工具->通用化)。您可以指定要移除的最小孔面积/百分比。


1
但是,此功能需要Advanced / ArcInfo许可级别。
马丁

我尝试了ArcGIS Pro 2.0中的消除多边形零件工具。但这对我正在测试的面要素没有任何作用。该功能部件具有多个内部环,我希望它们全部消失。仅当特征由多部分几何组成时,此工具才起作用吗?
Mike Finch

不仅”。它也可用于带有孔的单个多边形。
KadirŞahbaz18年

4

这是从多边形中删除湖泊的另一种方法(例如Navteq的邮政编码地图图层)。这对于清理通过地区代码溶解邮政编码地图图层而生成的地区地图图层也很有用。

  1. 在多边形地图图层上使用地理处理“联合”,并删除“允许间隙”复选框(默认情况下已选中)。这将为多边形中的所有“圆环”孔创建多边形。
  2. 在生成的Union map图层中,添加ID,X和Y的字段。该ID应与具有要删除的甜甜圈孔的多边形的名称/ ID分开。
  3. 在属性表中,使用字段计算器从ObjectID字段计算ID,并使用“计算几何”填写X和Y值。
  4. 通过选择(按属性选择)名称域为空的那些,将甜甜圈多边形与其他多边形分开。
  5. 将所选记录导出到新表。(表格选项下拉菜单->导出...)
  6. 使用“添加XY”选项创建事件层。(右键单击图层->显示XY数据...。
  7. 将事件图层导出到新的要素类。(右键单击图层->数据->导出数据)
  8. 在新的点图层和不包含甜甜圈多边形的原始多边形地图图层之间进行空间连接。使用“最接近”选项,以便将周围多边形的名称附加到甜甜圈多边形的属性表中。
  9. 在结合点图层和联合产生的地图图层之间使用标准表联接(基于ID字段)。(右键单击层->联接和关联->联接->根据空间位置从另一层联接数据)
  10. 使用属性表中的“字段计算器”从连接点图层计算空多边形名称。
  11. 根据多边形名称运行地理处理“溶解”,以将甜甜圈多边形与较大的命名多边形合并。

请注意,这不会解决河流被切入多边形轮廓的问题,但是通过删除内部的甜甜圈孔确实可以改善原始地图图层。


3

如果要素类中的多边形包含同一要素类中的其他多边形(例如,南非内部的莱索托),并且需要使用ModelBuilder等消除手动编辑,则使用“消除多边形零件”是最快的解决方案。工具设定:

-“条件(可选)” =面积-“面积(可选)” =很大的数字(例如1e + 100)-“仅消除包含的零件(可选)” = [选中]

这将产生一个填充了莱索托区域的南非,这对于工作流至关重要,例如输出顶点以供Tableau中的Polygon视觉效果使用。


1

由于到目前为止尚未提及它,因此它似乎恰恰是您要实现的目标的正确工具: 聚合多边形

minimum_hole_size设置为要保留的多边形孔的最小尺寸。较小的将被淘汰。

同一工具中的可选minimum_area值对非孔的多边形零件的作用相同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.