ArcPY插入光标,带有数据验证或“删除重复”类型的功能

时间:2013-04-16 20:29:08

标签: python arcpy

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

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

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

1 个答案:

答案 0 :(得分: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