如何识别带有“标志”条错误的多边形


12

在ArcMap中工作时,我遇到了一个多边形图层中的错误,我将其称为“旗杆”(取自包裹中的类似语言,称为“旗杆”)。这些条形多边形(请参见下图)通常仅由用户意外添加的一个附加节点组成。

在下面的图像中,“标志”和“旗杆”是一个单部分特征,其中“旗杆”只是自身重叠。左侧图像共有5个节点。

简单标志 在此处输入图片说明

单独查看时,错误非常明显,但是当多个多边形相邻时,几乎看不到它们,因为它们似乎是2个多边形之间的边界。

这可能是因为他们使用的是基于shapefile的编辑器,因此我无法实现任何基于拓扑的编辑规则来防止将来发生这种情况。

是否有人可以识别和解决这些类型的错误?我宁愿使用一种自动识别和解决问题的方法,因为现场用户是造成错误的人,但我一直坚持清除错误。谢谢。


3
我想知道为什么Esri为线要素而不是多边形提供了一个必须不自我相交的规则。
Kirk Kuykendall

“检查几何”工具是否找到它们?
mkennedy 2011年

同时搜索悬垂和超调。两者都带来了一些脚本,但是没有什么是最新的,多段线而不是多边形。
mkennedy 2011年

瑞安(Ryan),您有可能提供数据的一部分吗?另外,您是否有机会调查mkennedy对“检查几何”工具的评论?
Allan Adair

什么版本的arcmap?
Kirk Kuykendall

Answers:


5

如果您可以使用Safe Fme工具,就会发现有用的称为SpireRemover的变压器,请看一下。您可以尝试下载SAFE FME的受限版本,或检查ArcGis许可以获取“ FME Extension for ArcGIS”

http://docs.safe.com/fme/html/FME_Transformers/Default.htm#Transformers/spikeremover.htm

http://cdn.safe.com/resources/fme/FME-Transformer-Reference-Guide.pdf


我能够成功使用ArcGIS Data Interop扩展中的SpikeRemover来清理峰值。它还具有允许您指定未更改,已更改和已标记(峰值)功能的输出。所有这些都非常有助于识别具有尖峰的特征,只需将未更改和已更改的输出都发布到同一层,并将“标记的”输出都发布到QC层,就很容易创建新的“无尖峰”层。进行进一步检查。 esri.com/software/arcgis/extensions/datainteroperability/...
RyanKDalton

2

我不确定您的问题发生在哪里,或者您有可能避免/解决它。但是,尽管SDE中的几何形状应该总是正确的,但我在SDE数据库中已经看到了很多东西。在我们的例子中,这是因为我们使用ArcObjects将shapefile导入了SDE。存储几何图形时,它们会吸附到SDE的网格上,从而在几何图形的尖峰很细时用您描述的条创建不正确的几何图形。这是因为shapefile具有完全双精度的坐标,而SDE具有较粗的网格。

我们的解决方案是修复通过以下方式导入的几何:
1.将几何形状从shapefile设置为对应的SDE要素类
的空间参考。2.将几何捕捉到空间参考(IGeometry.SnapToSpatialReference() )
3.设置ITopologicalOperator2.IsKnownSimple = false(重要,否则简化不会做任何事情)
4.执行一些简化操作。对于多边形,我们使用IPolygon.SimplifyPreserveFromTo()


2

使用arcmap 9.3.1,我将添加一个名为Flag(或FlagFlag?)的字段,并在字段计算器中使用VBA代码来计算该字段。

VBA代码会将变量ITopologicalOperator3变暗并将其设置为Shape字段。

然后,它将调用不太简单的IsSimpleEx方法。

将标志字段值设置为esriNonSimpleEnum。大概您担心的错误将返回esriNonSimpleSelfIntersections

对于10.0,可能有一种方法可以在计算器(?)中使用python进行此操作……我不确定。我会使用外接程序命令。IMO Esri应该在现场计算器中为c#提供支持。毕竟,C#编译器是作为.NET框架的一部分安装的。

更新资料

如果将“定义”表达式应用于结果折线要素图层,则我在此处发布的代码可能会找到旗杆"Left_OID" = "Right_OID"


1

这个Python脚本是一个方便的工具

从shapefile中消除条形多边形

“ EliminateSlivers.py在多边形shapefile中的所有要素之间循环,并从输出shapefile中删除落在给定面积阈值以下的要素。

地理处理操作和群集容差可能会导致额外的微小条形多边形的形成。这些可能毫无意义,并可能扭曲空间数据的可靠性。”

注意:您将不得不对数据进行不同的容差测试(首先获取数据副本)

http://arcscripts.esri.com/details.asp?dbid=14672


1
ArcInfo Coverage>清洁弧>构建多边形非常容易。–
Mapperz

我不确定该工具是否会消除我描述的错误。您会看到,条子(旗杆)和多边形的主体(旗标)实际上是一个要素。因此,此脚本将不会只删除多边形的“旗杆”部分而不同时删除整个“旗标”特征。
RyanKDalton 2011年

1

瑞安

我在土壤测量处工作,并定期检查他们的土壤多边形。我所做的检查是否有碎片。我会将要素类发送到coverage,然后构建它们以进行标记以标识错误。如果在一个多边形中看到2个标签,则错误。如果每个多边形一个标签,您就知道它是正确的。我将创建一个要素类作为标记错误的点。或者,您可以在一个新的要素类中选择一个或多个标签。这样,您可以返回并更正错误。它对土壤多边形非常适合我。我用它来通知土壤科学家解决该问题。

那只是识别问题的方式。与您分享。


1

如果识别不是重点,而只是自动修复,请尝试此操作。将数据添加到新的空白地图文档中,然后;

  • 创建地图拓扑
  • 选择所有功能
  • 使用构造特征拆分现有特征

我已经对此进行了测试,但似乎可以正常工作,但是我不确定是否确实复制了您的数据源

CDB玩得开心


1

在这里,我们有几种方法可以解决此问题,我认为最优雅的方法是使用称为GIS Data Reviewer扩展。GIS数据审阅者可让您创建除核心拓扑之外的关于空间和属性准确性的自定义和简化检查。在“拓扑”中,有一些不可用的内容是Data Reviewer的标准检查的一部分,例如

  • 3D关闭
  • 无效孔
  • SQL表达式
  • 面积小于空间参考
  • 功能上的功能
  • 还有很多

我会用它来询问您的数据。另一种方法是根据现有的面要素类创建新的要素类。然后创建一个新的Polygon要素类,并使用“拓扑工具栏”中的“构建要素”工具用线填充该类。然后,这意味着碎片应显示为原来的样子,并且其他拓扑工具也应显示该错误。然后,只需选择,删除和替换现有要素类中的要素即可。

希望这对我们有帮助

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.