1

ArcPy を使用して、ユーザーがテーブルを送信して既存のフィーチャクラスにロードできるようにするスクリプト/GP ツールを構築しようとしています (基本的には、追加/挿入タイプの操作です。しかし、テーブルを「レビューしてもらいたい」 ' 重複の場合: この場合、一意の ID を作成するために複数のフィールドを連結することによって重複が定義されます。

ここで予備的な検索を行うと、これは非常に近いものでした: データベースに挿入する前に重複を削除する

ターゲットは SQL テーブルである可能性がありますが、提案されたソリューションはすべて SQL 内のクエリを参照しています。私のソリューションは Web ベースである必要があり、私は Python に最も慣れています。上記のリンクで提案されているように、基礎となる DB クエリ/制約/インデックスを ArcPy/Python 経由で公開する方法はありますか?

4

1 に答える 1

0

この質問は少しあいまいです。表形式のデータをフィーチャクラスに追加することが理にかなっていることを確認する必要がありますが、これにはいくつかの方法があります。10.x ArcGIS (つまり、gp ではなく arcpy) を使用していると思います。

使用できます

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 に答える