1

我正在寻找使用 ArcPy 构建脚本/GP 工具,该工具允许用户提交要加载到现有要素类中的表(本质上是追加/插入类型的操作。但是,我希望对表进行“审查” ' 首先针对重复项:在这种情况下,重复项由多个字段的串联定义以创建唯一 ID。

在这里进行初步搜索时,这非常接近: Removing duplicates before inserting into database

目标可能是一个 SQL 表,但建议的解决方案都指的是 SQL 中的查询。我的解决方案需要基于 Web 并且我最熟悉 Python。有没有办法通过 ArcPy/Python 公开上述链接中建议的底层数据库查询/约束/索引?

4

1 回答 1

0

这个问题有点模糊。您需要确保将表格数据添加到要素类是有意义的,但有多种方法可以解决此问题。我假设您使用的是 10.x ArcGIS(即 arcpy,而不是 gp)。

您可以使用

arcpy.Frequency_analysis(in_table, out_table, frequency_fields;frequency_fields..., {summary_fields;summary_fields...})

然后查看是否有任何频率超过 1 的记录,可能使用类似:

arcpy.MakeTableView_management(out_table, 'out_tableTV', '"FREQUENCY" > 1')
numEvents=int(arcpy.GetCount_management('out_tableTV'))
if numEvents > 0:
    print 'duplicates'

或者,您可以将值提取到 python 列表对象,从中创建一个集合(消除重复项),然后比较列表和集合对象。

>>> x=[1,2,1]
>>> type(x)
<type 'list'>
>>> y=set(x)
>>> type(y)
<type 'set'>
>>> y
set([1, 2])
>>> if x!=y:
...     print 'duplicates exist'
...     
duplicates exist
于 2013-04-23T18:02:07.740 回答