2013-04-16 50 views
1

我正在尋找使用ArcPy構建腳本/ GP工具,該工具允許用戶提交要加載到現有要素類中的表格(本質上是一個附加/插入類型的操作。但是,我希望首先對錶格進行重複檢查:在這種情況下,重複由多個字段的串聯來定義,以創建唯一的ID。 ,這是非常接近的: Removing duplicates before inserting into databaseArcPY插入帶有數據驗證或'刪除重複項'類型的光標

目標可能是一個SQL表,但提出的解決方案都是指SQL內的查詢。我的解決方案需要b e基於網絡,我最喜歡Python。有沒有一種方法可以通過ArcPy/Python在上述鏈接中建議的底層數據庫查詢/約束/索引?

回答

0

這個問題有點含糊。您需要確保將表格數據添加到您的要素類是有道理的,但有很多方法可以解決這個問題。我假設你使用10.x ArcGIS(即arcpy,而不是gp)。

您可以使用

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

,然後看看是否存在一些頻率超過任何記錄,可能使用類似:

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