代替 ID フィールドの使用 (Populate Alternate ID Fields) (Network Analyst)

サマリー

代替 ID によってネットワーク内のエッジを参照するターン フィーチャクラスに追加フィールドを作成し、値を設定します。 代替 ID は、エッジ ソースを編集してその ObjectID 値を変更した場合にターン フィーチャの整合性を維持するのに役立ちます。

ネットワーク データセットのターンの詳細

使用法

  • ターン フィーチャクラスの Edge#FID フィールドは、ネットワーク内のエッジ ソースのライン フィーチャの ObjectID を参照します。 ただし、ObjectID はシステムによって管理されているため、一部の編集操作中に変化する可能性があります。 この種の編集ワークフローの後もターン フィーチャが正しいエッジ フィーチャを参照できるようにするには、次のワークフローに従います。

    1. ネットワークの各エッジ ソース フィーチャクラスに一意の ID フィールドを作成して設定します。 あるいは、データ プロバイダーによってデータに含められている一意の ID フィールド (存在する場合) を使用します。
    2. [代替 ID フィールドの使用 (Populate Alternate ID Fields)] ツールを実行して、ネットワーク データセットのターン フィーチャクラスに一連の代替 ID フィールド (AltID#) を作成して設定します。 このツールは、エッジ ソースの指定された一意の ID フィールドの値を代替 ID フィールドに設定し、Edge#FID フィールドに加えて代替 ID フィールドを介して、各ターン フィーチャを適切なエッジ ソース フィーチャにリンクします。
    3. エッジ ソースの ObjectID を変更する可能性がある編集操作を実行します。
    4. [代替 ID フィールドによる更新 (Update by Alternate ID Fields)] ツールを実行して、代替 ID フィールドの値を使用してターン フィーチャクラスの Edge#FID フィールドを更新し、対応するエッジ ソース フィーチャの ObjectID 値を調べます。

  • このツールは、新しい AltID# フィールド (# はターンごとのエッジの最大数) を作成し、設定します。 たとえば、最大 3 つのエッジから成るターンをサポートするターン フィーチャクラスの場合、このツールは AltID1AltID2AltID3 フィールドを作成し、設定します。

パラメーター

ラベル説明データ タイプ
入力ネットワーク データセット

ターン フィーチャクラスに代替 ID フィールドが割り当てられるネットワーク データセット。 代替 ID フィールドは、ネットワーク データセットにターン ソースとして追加されたすべてのターン フィーチャクラスで作成されます。

Network Dataset Layer
代替 ID フィールド名

ネットワーク データセットのエッジ フィーチャ ソースの代替 ID フィールドの名前。 ターンによって参照されているすべてのエッジ フィーチャ ソースに代替 ID フィールドと同じ名前が付けられている必要があります。

String

派生した出力

ラベル説明データ タイプ
更新された入力ネットワーク データセット

更新されたネットワーク データセット。

Network Dataset Layer

arcpy.na.PopulateAlternateIDFields(in_network_dataset, alternate_ID_field_name)
名前説明データ タイプ
in_network_dataset

ターン フィーチャクラスに代替 ID フィールドが割り当てられるネットワーク データセット。 代替 ID フィールドは、ネットワーク データセットにターン ソースとして追加されたすべてのターン フィーチャクラスで作成されます。

Network Dataset Layer
alternate_ID_field_name

ネットワーク データセットのエッジ フィーチャ ソースの代替 ID フィールドの名前。 ターンによって参照されているすべてのエッジ フィーチャ ソースに代替 ID フィールドと同じ名前が付けられている必要があります。

String

派生した出力

名前説明データ タイプ
out_network_dataset

更新されたネットワーク データセット。

Network Dataset Layer

コードのサンプル

PopulateAlternateIDFields の例 1 (Python ウィンドウ)

すべてのパラメーターを使用してツールを実行します。

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.PopulateAlternateIDFields(network, "ID")
PopulateAlternateIDFields (代替 ID フィールドの使用) の例 2 (スタンドアロン スクリプト)

次の Python スクリプトは、スタンドアロン スクリプトで PopulateAlternateIDFields 関数を使用する方法を示しています。

# Name: PopulateAlternateIDFields_ex02.py
# Description: Create and populate the alternate ID fields for all turn sources
#              in the network dataset.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
from arcpy import env

#Set environment settings
env.workspace = "C:/data/SanFrancisco.gdb/Transportation"

#Set local variables
inNetworkDataset = "Streets_ND"
altIDFieldName = "ID"

#Populate alternate IDs on all turn sources in the network dataset
arcpy.PopulateAlternateIDFields_na(inNetworkDataset,altIDFieldName)

print("Script completed successfully.")

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック