日本語

操作手順: ArcGIS Pro の属性テーブルで、順番に並べられた ID フィールドの並べ替えおよび作成を行う

概要

ArcGIS Pro の属性テーブルで、順番に並べられた IDフィールドの並べ替えおよび作成を行うことで、データを効率的に整理できます。 最大値と最小値や、レイヤー内の重要度の最も高いフィーチャと最も低いフィーチャを簡単に認識できます。

手順

次の手順は、ArcGIS Pro の属性テーブルで、[昇順で並べ替え] または [降順で並べ替え] 関数、[フィールド演算] 関数、および Python スクリプトの 3 つの異なるオプションを使用して、順番に並べられた ID フィールドの並べ替えおよび作成を行う方法を示しています。

[昇順で並べ替え] または [降順で並べ替え] 関数の使用
  1. 目的のフィーチャを右クリックして [属性テーブル] を開きます。

    The image of opening attribute table.
     
  2. 属性テーブルで目的のフィールドを右クリックします。
  3. [昇順で並べ替え][降順で並べ替え]、または [ユーザー設定の並べ替え] を選択します。 並べ替えられたフィールドが作成されます。

    The image of the Sort functionality.
     
フィールド演算関数の使用
注意:
このオプションは、OBJECTID の順序に基づいて、並べ替えられていないデータに対して連番のみを生成します。 データが並べ替えられた場合、生成される数値は連続しなくなります。
  1. 目的のフィーチャの [属性テーブル] を開きます。
  2. 属性テーブルで目的のフィールドを右クリックします。
  3. [フィールド演算] を選択して [フィールド演算] コンソールを開きます。

    The image of Calculate Field option.
     
  4. [フィールド演算] コンソールで、[ヘルパー] フィルター アイコンをクリックして [関数] を選択します。

    The image of the Helpers filter for Function.
     
  5. [連番] 関数をダブルクリックします。 これにより、[条件式][コード ブロック] セクションが生成され、連番が作成されます。

    The image of Calculate Field console with the populated Expression and Code Block section.
     
  6. [実行] をクリックします。OBJECTID フィールドに基づく連番は、[ジオメトリ演算] 関数で指定されたフィールドに作成されます。
Python コンソールによる Python スクリプトの使用

次の手順では、ArcPy の autoIncrement() 関数を使用して、並べ替えられた連番を作成する方法を示します。

  1. Python コンソールを起動します。 [解析] タブをクリックし、[Python] を選択します。

    The image of ArcGIS Pro Analysis tab.
     
  2. ArcPy ライブラリをインポートします。
    import arcpy
  3. 目的のフィーチャ、順序の基になるフィールド、および連番を入力するフィールドを設定します。
    sortFeat  = r'[ジオデータベース]\[フィーチャ]'
    sortField = '[並べ替えの基になるフィールド]'
    idField   = '[連番を入力するフィールド]'
    注意:
    新しいフィールドに連番を作成するには、新しいフィールドを作成し、idField セグメントに新しいフィールド名を指定します。 新しいフィールドの作成の詳細については、Web ヘルプ ドキュメント「ArcGIS Pro: フィールドの追加」をご参照ください。
  4. カウンター パラメーターを定義します。
    rec = 0
  5. autoIncrement() 関数を起動します。
    def autoIncrement():
     global rec
     pStart = 1
     pInterval = 1
     if (rec == 0):
     rec = pStart
     else:
     rec += pInterval
     return rec
  6. フィールドに連番を入力し、余分な行を削除します。
    rows = arcpy.UpdateCursor(sortFeat, "", "", "", sortField + " A")
    
    for row in rows:
        row.setValue(idField, autoIncrement())
        rows.updateRow(row)
    
    del row, rows

次のサンプル コードは、完全に機能するスクリプトを示しています。

import arcpy

sortFeat  = r'C:\Users\\Northridge.gdb\Stations' 
sortField = 'OBJECTID' 
idField   = 'Station' 
rec=0

def autoIncrement():
 global rec
 pStart = 1 
 pInterval = 1 
 if (rec == 0): 
 rec = pStart 
 else: 
 rec += pInterval 
 return rec

rows = arcpy.UpdateCursor(sortFeat, "", "", "", sortField + " A")

for row in rows:
    row.setValue(idField, autoIncrement())
    rows.updateRow(row)

del row, rows

関連情報