是否可以唯一标识要素图层中的每个几何?
本质上,我有一个多边形要素图层,其中许多行由相同的几何图形表示。我希望每个独特的几何图形有1行。因此,我正在寻找一些开箱即用的方法来根据几何形状组合属性。
我来自Postgres世界,可以在那里解决此问题,但我不知道如何(或是否有可能)使用ESRI工具以非编程方式完成此任务。
是否可以唯一标识要素图层中的每个几何?
本质上,我有一个多边形要素图层,其中许多行由相同的几何图形表示。我希望每个独特的几何图形有1行。因此,我正在寻找一些开箱即用的方法来根据几何形状组合属性。
我来自Postgres世界,可以在那里解决此问题,但我不知道如何(或是否有可能)使用ESRI工具以非编程方式完成此任务。
Answers:
如果您拥有高级许可证,则可以使用“ 查找相同”或“ 删除相同”。
两者都可以用于查找/删除具有相同属性的要素,或者,如果指定了“形状”字段,则可以使用相同的几何形状。
如果您没有高级许可证,则此帖子将非常有用。
简而言之,您在属性表中为X,Y添加了两个字段,并对所述字段运行Dissolve。
如果具有共享相同质心但几何形状不相同的多边形,则可以添加其他两个字段(周长和面积)。对于几乎所有正常情况,这足以识别相同的几何形状。请参阅下面的@whuber评论。
我有一个基于调查数据的数据集。我的问题是,导入新的测量快照之前,旧功能不一定总是被删除。因此,我们有不同几何形状的“重复项”:即,测量镜头之间可能相距1/4英尺。在12000个要素数据集上,很难放大每个要素数据集并进行识别。使用ArcMap Basic 10.2:这是我想到的一个hacky模型。
我重新发明了轮子。另外,我对模型构建器感到沮丧,并且基本上对整个过程都dog之以鼻。必须有一个更优雅的解决方案。我会很乐意接受批评和建议。
另外,这似乎只能在Model Builder中正常运行,而我是从工具箱中运行,并且它不保存缓冲层。
我一直在寻找相同问题的答案,以克服扁平化的重叠缓冲区多边形问题,并认为找到了一个可靠的解决方案。实际上@Whuber的评论,
原则上,质心,周长和区域可能仍不能唯一地标识多边形,但是反例有些许人为。
@Paul的回答是我继续努力的主要动力。它使用空间连接工具的ARE_IDENTICAL_TO运算符,因为这是其他相同检测器中效率最高的。步骤如下:
以下步骤可以通过两种方式来完成,WITH Python或WITHOUT:
与PYTHON
print tuple(set([row.getValue("EX_OID_1") for row in arcpy.SearchCursor("Output_of_the_Spatial_Join_Operation")]))
。
请注意,我正在使用虚拟OID字段的第二个副本,在我的情况下为EX_OID_1。
OBJECTID IN (<PASTE_COPIED_VALUES_HERE>)
。结果将向您显示重叠部分的统一特征。但是这里有大小限制,不能超过30,000个字符。要解决此问题,您需要执行“不使用python”步骤。没有PYTHON
使用频率工具在虚拟OID字段的第二个副本中列出唯一值,在我的情况下为EX_OID_1;
最后,通过选择“仅保留匹配的记录”选项,将原始要素类的OBJECTID字段与频率工具的EX_OID_1的输出连接起来。