2017-04-14 16 views
-3

私は解決策を探しましたが、完全なものは見つかりませんでした。私は、数千の行の特徴がそれぞれ含まれている数十のテーブルを持っています。ラインフィーチャーが分割されるたびに別のレコードが作成されますが、新しいライン(レコード)にはまだ古いASSETIDがあります。これは、複製されたASSETIDが生まれたことを意味します。すべての重複したASSETIDを見つけることができ、それらをヌルにするメンテナンスのpythonスクリプトですか?これは元のASSETIDだけを残し、後で実行されるスクリプトを持っていて、ASSETIDフィールドに新しいランダムに生成されたASSETIDを設定します。私はすべての重複値、値が何回出現するかのリスト、値が繰り返されると 'Y'を持つテーブル上の新しい列を作成することができましたが、重複を削除することはできましたその行の他のすべてを保持しながらフィールド値を返します。重複したフィールド値を削除する(nullにする)

+0

私はあなたの代わりに[gis.se]スタック所でこれを頼む/研究しなければならないと思います。 – PolyGeo

答えて

0

ASSETIDの重複のリストがあるので、ArcPy UpdateCursorを使用してその属性のみを変更できます。

with arcpy.da.UpdateCursor(feature_class, ["ASSETID"]) as cursor: 
    for row in cursor: 
     if row[0] in unique_id_list: # if the ASSETID is in the list 
      row[0] = None 
      cursor.updateRow(row) 

これはASSETID値は、しかし、および「オリジナル」そのままに放置しないことを持っているすべての行を変更します。あなたは、例えば、(別の一意の識別子、例えばOBJECTIDによって)元の追加リストを必要とし、それらを除外したい:

if row[0] in unique_id_list and row[1] not in original_id_list: 
関連する問題