ルートのアペンド (Append Routes) (Location Referencing)

Location Referencing ライセンスで利用可能です。

サマリー

入力ポリラインから LRS ネットワークにルートを追加します。

注意:

ターゲット レイヤーがフィーチャ サービス レイヤーの場合は、このツールの検証結果が ArcGIS Server ディレクトリに書き込まれます。 このファイルはデフォルトで 10 分以内に自動的にクリーン アップされますが、この時間は、すべての検証を処理し、ArcGIS Pro を実行しているワークステーションにこれらの検証を書き込むには十分でない場合があります。 大きいデータ ロードについては、ファイルの最大保存期間を少なくとも 1 時間に調整することをお勧めします。

Manager でのこのサーバー ディレクトリ設定の調整に関する詳細

使用法

  • このツールの実行には、LRS データセットが必要です。

    詳細については、「ArcGIS Pipeline Referencing での LRS データセットの作成」か「ArcGIS Roads and Highways での LRS データセットの作成」をご参照ください。

  • このツールは、ターゲットの LRS データセットに中心線を作成したり、ターゲットの LRS ネットワークにルートを作成したりします。

  • 出力ルートには、入力ポリラインの頂点の x、y、z 値が含まれますが、m 値は追加されません。

  • ルートを追加する前に、基となる LRS ネットワーク フィーチャクラス内で、フィールドのマッピングに使用する新しいフィールドを作成します。

  • 入力ポリライン フィーチャクラスとターゲット LRS ネットワークの空間参照、x、y 座標精度、および x、y 許容値は一致している必要があります。

  • ツールが実行されたことを示すテキスト ログがローカルに書き込まれ、このログには検証に失敗したルートに関する情報が含まれます。 ツール メッセージには、テキスト ログの場所 (一時ディレクトリ) が記載されています。

  • このツールは、ルートが追加され、中心線フィーチャが作成された変更済み LRS ネットワークを出力します。

  • 競合の防止を有効にした場合は、次の処理が実行されます。

    • 新しいルートを追加する場合、そのルートのロックは取得されません。
    • [ルート ID による廃止][ルート ID による置換] などのその他の読み込みタイプの場合、ロックが取得できる場合は自動的に取得されます。
    • ロックが取得できない場合、ツールは実行されず、問題となっているロックのテキスト ファイルが提示されます。
    • デフォルト バージョンで作業している場合は、このツールの実行が正常に終了した時点で、取得されたロックが自動的に解除されます。
    • 子バージョンで作業している場合は、このツールの実行が完了した後も、取得されたロックは ON POST ステータスのまま維持されます。 ロックを解除するには、バージョンをポストまたは削除します。
    • 子バージョンで作業している場合に、中断によってこのツールの処理が取り消されると、ロックが取得され、解除可能なステータスが Yes のまま維持されます。 ロックの所有者はロックを解除できます。

      ArcGIS Pipeline Referencing でのロックの解除」または「ArcGIS Roads and Highways でのロックの解除」の詳細をご参照ください。

      ArcGIS Pipeline Referencing での競合の防止」または「ArcGIS Roads and Highways での競合の防止」の詳細をご参照ください。

  • 入力フィーチャクラスに曲線が含まれている場合、カーブは頂点が挿入されます。

    ArcGIS Pipeline Referencing での曲線」または「ArcGIS Roads and Highways での曲線」の詳細をご参照ください。

  • ターゲット LRS ネットワークがマルチフィールド ルート ID をサポートするライン ネットワークとして構成されている場合、ルートを追加する際に以下のパラメーターは必要ありません。

    • ルート名フィールド
    • ライン名フィールド

  • [読み込みタイプ] パラメーターの値として [追加] を使用して新しいルートを追加する際に、ターゲット LRS ネットワークでルート名が構成されている場合、そのルート名を使用してルートを追加できます。 ルート ID が NULL である場合、追加されたルートにルート ID が自動的に生成されます。

  • このツールは、ライン順序の値がゼロより大きく、ライン上のルートのフローと方向で 100 刻みになっていることをチェックします。 ライン順序の値が間違っている場合、ツールは失敗します。 出力テキスト ファイルで、間違ったライン順序の値がエラーとして報告されます。 これらのエラーを修正すると、ツールが正常に実行されます。

  • このツールは、ルートが読み込まれる LRS ネットワークに構成されているユーティリティ ネットワークがないか確認し、ユーティリティ ネットワークが見つかった場合、ルートに追加する際に既存の中心線を考慮します。 ルートに追加する中心線に CenterlineID 値が含まれていない場合、値が作成され、中心線シーケンス レコードが追加されます。 ルートを追加する場所に CenterlineID 値が存在する場合、追加されるルートの RouteID 値で既存の中心線シーケンス レコードが更新されます。

    次の前処理条件ではエラーが記録され、ツールの実行が完了するまでに解決する必要があります。

    • ルート フィーチャを読み込む際に、中心線を分割する必要があります。
    • 中心線とルートの x、y、z ジオメトリが一致しません。
    • 中心線が部分一致しています (たとえば、中心線の一部が x、y、z 許容値の範囲外である場合)。
    • 追加されたルートで、1 つ以上の中心線全体がジオメトリと一致しているものの、中心線が存在しない場所があります。
    • オーバーラップする中心線が検出されています (ユーティリティ ネットワークでは中心線のオーバーラップは許容されません)。
    • 追加されたルートに一致する中心線が存在しません。

    Pipeline Referencing とユーティリティ ネットワークを一緒に管理する方法の詳細

  • [読み込みタイプ] パラメーターが [ルート ID による置換] または [ルート ID による廃止] に設定され、ソース ルートにターゲット ルートと同じ RouteName および RouteID 値が含まれていない場合、このツールは失敗します。

  • [読み込みタイプ] パラメーターの値として [ルート ID による置換] が指定されている場合、置換されるすべてのルートのルート レコードと中心線シーケンス レコードが置換されます。 そのルート上のキャリブレーション ポイントが削除されるため、キャリブレーション ポイントを作成し直すか再読み込みする必要があります。

パラメーター

ラベル説明データ タイプ
ソース ルート

ルートを取得する入力。 入力には、ポリライン フィーチャクラス、シェープファイル、フィーチャ サービス、または LRS ネットワーク フィーチャクラスを指定できます。

Feature Layer
LRS ネットワーク

ルートを読み込むターゲット LRS ネットワーク。

Feature Layer
ルート ID フィールド

LRS ネットワークのルート ID にマッピングされる入力ポリライン フィーチャクラスのフィールド。 フィールド タイプはターゲット LRS ネットワークの RouteID フィールド タイプと一致し、かつ文字列か GUID フィールド タイプである必要があります。 テキスト フィールドの場合、フィールドの長さはターゲット RouteID フィールドの長さ以下である必要があります。

Field
ルート名フィールド

LRS ネットワークのルート名としてマッピングされる入力ポリライン フィーチャクラスのフィールド。 フィールドが文字列フィールドで、フィールドの長さはターゲット ルート名フィールドの長さ以下である必要があります。

Field
開始日フィールド
(オプション)

LRS ネットワークで [開始日フィールド] 値としてマッピングされる入力ポリライン フィーチャクラスの日付フィールド。 フィールドがマッピングされていない場合、追加されるすべてのルートに、時間の開始を表す NULL 値が指定されます。

Field
終了日フィールド
(オプション)

LRS ネットワークで [終了日フィールド] 値としてマッピングされる入力ポリライン フィーチャクラスの日付フィールド。 フィールドがマッピングされていない場合、追加されるすべてのルートに、時間の終了を表す NULL 値が指定されます。

Field
ライン ID フィールド
(オプション)

LRS ネットワークのライン ID としてマッピングされる入力ポリライン フィーチャクラスのフィールド。 このパラメーターは、ターゲット LRS ネットワークが LRS ライン ネットワークの場合のみ使用されます。 フィールドのタイプと長さは、中心線シーケンス テーブルの RouteID フィールドのタイプおよび長さと同じでなければなりません。

Field
ライン名フィールド
(オプション)

LRS ネットワークのライン名としてマッピングされる入力ポリライン フィーチャクラスの文字列フィールド。 このパラメーターは、ターゲット LRS ネットワークが LRS ライン ネットワークの場合のみ使用されます。

Field
ライン順序フィールド
(オプション)

LRS ネットワークのライン順序としてマッピングされる入力ポリライン フィーチャクラスの long integer フィールド。 このパラメーターは、ターゲット LRS ネットワークが LRS ライン ネットワークの場合のみ使用されます。

Pipeline Referencing でのライン ネットワークとライン順序」または「Roads and Highways でのライン ネットワークとライン順序」の詳細をご参照ください。

Field
フィールド マップ
(オプション)

ソース ルート フィールド内の属性情報を入力 LRS ネットワークに転送する方法を制御します。 定義済みのスキーマを含む既存の LRS ネットワークにソース ルートのデータが追加されるため、ターゲット LRS ネットワークにフィールドを追加したり、ターゲット LRS ネットワークからフィールドを削除したりすることはできません。 出力フィールドごとにマージ ルールを設定することもできますが、これらはこのツールで無視されます。

Field Mappings
読み込みタイプ
(オプション)

追加されたルートのうち、メジャーまたは一時性のオーバーラップがあり、同じルート ID を持つルートをネットワーク フィーチャクラスに読み込む方法を指定します。

  • 追加追加されたルートはターゲット LRS ネットワークに読み込まれます。 ソース ルート内のルート ID が、同じ一時性を持つターゲット LRS ネットワークにすでに存在する場合、重複ルートとして出力ログに書き込まれるため、読み込み処理を完了する前に修正またはフィルターを行う必要があります。 これがデフォルトです。
  • ルート ID による廃止追加されたルートはターゲット LRS ネットワークに読み込まれ、ターゲット LRS ネットワーク内で追加されたルートと同じルート ID および一時性のオーバーラップを持つルートは破棄されます。 追加されたルートが同じルート ID を持つターゲット ルートと重複する場合は、そのターゲット ルートが削除されます。
  • ルート ID による置換追加されたルートはターゲット LRS ネットワークに読み込まれ、ターゲット LRS ネットワーク内で追加されたルートと同じルート ID を持つルートは削除されます。
String
読み込みフィールド
(オプション)

ルートの読み込みに使用するフィールドを指定します。

  • ルート IDルートは RouteID フィールドを使用して読み込まれます。 これがデフォルトです。
  • ルート名ルートは RouteName フィールドを使用して読み込まれます。 このオプションは、読み込みタイプが [追加] (Python では load_type = "ADD") である場合に、LRS ネットワーク内のルート名が構成されているネットワークにのみ使用できます。
String

派生した出力

ラベル説明データ タイプ
LRS ネットワーク

更新された LRS ネットワーク フィーチャ レイヤー。

Feature Layer
出力結果ファイル

このツールで変更された内容が詳しく記述されたテキスト ファイル。

Text File

arcpy.locref.AppendRoutes(source_routes, in_lrs_network, route_id_field, route_name_field, {from_date_field}, {to_date_field}, {line_id_field}, {line_name_field}, {line_order_field}, {field_map}, {load_type}, {load_field})
名前説明データ タイプ
source_routes

ルートを取得する入力。 入力には、ポリライン フィーチャクラス、シェープファイル、フィーチャ サービス、または LRS ネットワーク フィーチャクラスを指定できます。

Feature Layer
in_lrs_network

ルートを読み込むターゲット LRS ネットワーク。

Feature Layer
route_id_field

LRS ネットワークのルート ID にマッピングされる入力ポリライン フィーチャクラスのフィールド。 フィールド タイプはターゲット LRS ネットワークの RouteID フィールド タイプと一致し、かつ文字列か GUID フィールド タイプである必要があります。 テキスト フィールドの場合、フィールドの長さはターゲット RouteID フィールドの長さ以下である必要があります。

Field
route_name_field

LRS ネットワークのルート名としてマッピングされる入力ポリライン フィーチャクラスのフィールド。 フィールドが文字列フィールドで、フィールドの長さはターゲット ルート名フィールドの長さ以下である必要があります。

Field
from_date_field
(オプション)

LRS ネットワークで [開始日フィールド] 値としてマッピングされる入力ポリライン フィーチャクラスの日付フィールド。 フィールドがマッピングされていない場合、追加されるすべてのルートに、時間の開始を表す NULL 値が指定されます。

Field
to_date_field
(オプション)

LRS ネットワークで [終了日フィールド] 値としてマッピングされる入力ポリライン フィーチャクラスの日付フィールド。 フィールドがマッピングされていない場合、追加されるすべてのルートに、時間の終了を表す NULL 値が指定されます。

Field
line_id_field
(オプション)

LRS ネットワークのライン ID としてマッピングされる入力ポリライン フィーチャクラスのフィールド。 このパラメーターは、ターゲット LRS ネットワークが LRS ライン ネットワークの場合のみ使用されます。 フィールドのタイプと長さは、中心線シーケンス テーブルの RouteID フィールドのタイプおよび長さと同じでなければなりません。

Field
line_name_field
(オプション)

LRS ネットワークのライン名としてマッピングされる入力ポリライン フィーチャクラスの文字列フィールド。 このパラメーターは、ターゲット LRS ネットワークが LRS ライン ネットワークの場合のみ使用されます。

Field
line_order_field
(オプション)

LRS ネットワークのライン順序としてマッピングされる入力ポリライン フィーチャクラスの long integer フィールド。 このパラメーターは、ターゲット LRS ネットワークが LRS ライン ネットワークの場合のみ使用されます。

Pipeline Referencing でのライン ネットワークとライン順序」または「Roads and Highways でのライン ネットワークとライン順序」の詳細をご参照ください。

Field
field_map
(オプション)

ソース ルート フィールド内の属性情報を入力 LRS ネットワークに転送する方法を制御します。 定義済みのスキーマ (フィールド定義) を含む既存の LRS ネットワークにソース ルートのデータが追加されるため、ターゲット LRS ネットワークにフィールドを追加したり、ターゲット LRS ネットワークからフィールドを削除したりすることはできません。 出力フィールドごとにマージ ルールを設定することもできますが、これらはこのツールで無視されます。 このパラメーターを定義するには、ArcPy FieldMappings クラスを使用します。

Field Mappings
load_type
(オプション)

追加されたルートのうち、メジャーまたは一時性のオーバーラップがあり、同じルート ID を持つルートをネットワーク フィーチャクラスに読み込む方法を指定します。

  • ADD追加されたルートはターゲット LRS ネットワークに読み込まれます。 ソース ルート内のルート ID が、同じ一時性を持つターゲット LRS ネットワークにすでに存在する場合、重複ルートとして出力ログに書き込まれるため、読み込み処理を完了する前に修正またはフィルターを行う必要があります。 これがデフォルトです。
  • RETIRE_BY_ROUTE_ID追加されたルートはターゲット LRS ネットワークに読み込まれ、ターゲット LRS ネットワーク内で追加されたルートと同じルート ID および一時性のオーバーラップを持つルートは破棄されます。 追加されたルートが同じルート ID を持つターゲット ルートと重複する場合は、そのターゲット ルートが削除されます。
  • REPLACE_BY_ROUTE_ID追加されたルートはターゲット LRS ネットワークに読み込まれ、ターゲット LRS ネットワーク内で追加されたルートと同じルート ID を持つルートは削除されます。
String
load_field
(オプション)

ルートの読み込みに使用するフィールドを指定します。

  • ROUTE_IDルートは RouteID フィールドを使用して読み込まれます。 これがデフォルトです。
  • ROUTE_NAMEルートは RouteName フィールドを使用して読み込まれます。 このオプションは、読み込みタイプが [追加] (Python では load_type = "ADD") である場合に、LRS ネットワーク内のルート名が構成されているネットワークにのみ使用できます。
String

派生した出力

名前説明データ タイプ
out_lrs_network

更新された LRS ネットワーク フィーチャ レイヤー。

Feature Layer
out_details_file

このツールで変更された内容が詳しく記述されたテキスト ファイル。

Text File

コードのサンプル

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

次に、Python ウィンドウの AppendRoutes 関数を使用して、既存の LRS ネットワークにルートを追加し、オーバーラップが発生したルートを置換する方法を示します。

# Name: AppendRoutes_ex1.py
# Description: Append routes into an existing LRS Network, replacing routes where an overlap occurs.
# Requires: ArcGIS Location Referencing

# Set current workspace
arcpy.env.workspace= r"C:\DOT.gdb"

# Set tool variables
source_routes = r"C:\Data\Input.gdb\RoutestoAppend"
in_lrs_network = r"C:\Data\DOT.gdb\LRS\StateRoutes"
route_id_field = "RouteId"
route_name_field = None
from_date_field = "FromDate"
to_date_field = "ToDate"
line_id_field = None
line_name_field = None
line_order_field = None
field_map = None
load_type = "REPLACE_BY_ROUTE_ID"
load_field = None

# Execute the tool
arcpy.locref.AppendRoutes(source_routes, in_lrs_network, route_id_field, route_name_field, from_date_field, to_date_field, line_id_field, line_name_field, line_order_field, field_map, load_type,load_field)
AppendRoutes の例 2 (スタンドアロン スクリプト)

次に、スタンドアロン Python スクリプトとして AppendRoutes 関数を使用する方法を示します。

# Name: AppendRoutes_ex2.py
# Description: Appending new routes into an existing LRS network using Route Name in python stand alone script.
# Requires: ArcGIS Location Referencing

# Import arcpy module
import arcpy

# Check out license
arcpy.CheckOutExtension("LocationReferencing")


# Set tool variables:
source_routes = r"C:\Data\Input.gdb\RoutestoAppend"
in_lrs_network = r"C:\Data\pipelinereferencing.gdb\LRS\EngineeringNetwork"
route_id_field = "RouteId"
route_name_field = "RouteName"
from_date_field = "FromDate"
to_date_field = "ToDate"
line_id_field = "LineId"
line_name_field = "LineName"
line_order_field = "LineOrder"
field_map = None
load_type = "ADD"
load_field = "RouteName"


# Process: Append Routes
arcpy.locref.AppendRoutes(source_routes, in_lrs_network, route_id_field, route_name_field, from_date_field, to_date_field, line_id_field, line_name_field, line_order_field, field_map, load_type,load_field)

# Check in license
arcpy.CheckInExtension('LocationReferencing')
AppendRoutes の例 3 (スタンドアロン スクリプト)

次に、ユーザーが生成したルート ID ネットワークに AppendRoutes 関数をスタンドアロン Python スクリプトとして使用する方法を示します。

# Name: AppendRoutes_ex3.py
# Description: Append records into an existing usergenerated routeId network feature class in a stand-alone script.
# Source fields: RS and RN, Target fields: RouteSystem and RouteNumber
# Requires: ArcGIS Location Referencing 

# Import arcpy module
import arcpy

# Check out license
arcpy.CheckOutExtension("LocationReferencing")

# Local variables:
source_routes = r"C:\Data\DOT.gdb\LRS\RoutestoAppend"
in_lrs_network = r"C:\Data\DOT.gdb\LRS\StateRoutes"
route_id_field = "RouteId"
route_name_field = None
from_date_field = "FromDate"
to_date_field = "ToDate"
line_id_field = None
line_name_field = None
line_order_field = None
load_type = "ADD"
load_field = None

# Define field mappings object
fieldMappings = arcpy.FieldMappings()  

# Add input fields
fldmap1 = arcpy.FieldMap()
fldmap1.addInputField(source_routes, "RS")

fldmap2 = arcpy.FieldMap()
fldmap2.addInputField(source_routes, "RN")

# Set output fields
fld1 = fldmap1.outputField  
fld1.name = "RouteSystem"
fld1.aliasName = "RouteSystem"
fldmap1.outputField = fld1

fld2 = fldmap2.outputField  
fld2.name = "RouteNumber"
fld2.aliasName = "RouteNumber"
fldmap2.outputField = fld2

# Add output fields to field mappings object
fieldMappings.addFieldMap(fldmap1)
fieldMappings.addFieldMap(fldmap2)

# Execute: Append Routes
arcpy.locref.AppendRoutes(source_routes, in_lrs_network, route_id_field, route_name_field, from_date_field, to_date_field, line_id_field, line_name_field, line_order_field, fieldMappings, load_type,load_field)


# Check in license
arcpy.CheckInExtension('LocationReferencing')
AppendRoutes の例 4 (スタンドアロン スクリプト)

次に、フィーチャ サービスで AppendRoutes 関数をスタンドアロン Python スクリプトとして使用する方法を示します。

# Name: AppendRoutes_Pro_Ex4.py
# Description: Append routes using a feature service in a stand-alone script. It is recommended to work in a version and post it into the default version.
# Requires: ArcGIS Location Referencing

# Import arcpy module.
import arcpy

# Check out any necessary licenses.
arcpy.CheckOutExtension("LocationReferencing")

# Set tool variables.
source_routes = r"C:\LocationReferencing\LR.gdb\LRS\routes"
route_id_field = "ROUTEID"
route_name_field = "ROUTENAME"
from_date_field = "FROMDATE"
to_date_field = "TODATE"
line_id_field = "LINEID"
line_name_field = "LINENAME"
line_order_field = "ORDERID"
field_mapping = r'CREATIONUSER "Creation User" true true false 50 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,CREATIONUSER,0,50;DATECREATED "Date Created" true true false 8 Date 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,DATECREATED,-1,-1;DATEMODIFIED "Date Modified" true true false 8 Date 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,DATEMODIFIED,-1,-1;LASTUSER "Last User" true true false 50 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,LASTUSER,0,50;EVENTSOURCE "Event Source" true true false 50 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,EVENTSOURCE,0,50;LEGACYID "Legacy ID" true true false 38 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,LEGACYID,0,38;ENGFROMM "ENGFROMM" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,ENGFROMM,-1,-1;ENGTOM "ENGTOM" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,ENGTOM,-1,-1;OBJECTSTATUS "Object Status" true true false 20 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,OBJECTSTATUS,0,20;CONTINFROMM "Continuous from Measure" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,CONTINFROMM,-1,-1;CONTINTOM "Continuous to Measure" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,CONTINTOM,-1,-1'
load_type = "REPLACE_BY_ROUTE_ID"
load_field = None

## Target Route is in feature service. Signing in portal is required to access the feature service.
arcpy.SignInToPortal('https://yourdomain.com/portal', 'username', 'password')

## Map the target route network from the feature service.Here, 18 corresponds to the target route network.
in_lrs_network = r"https://yourdomain.com/server/rest/services/FeatureServiceName/FeatureServer/18"

# Process: Append Routes.
arcpy.locref.AppendRoutes(source_routes, in_lrs_network, route_id_field, route_name_field, from_date_field, to_date_field, line_id_field, line_name_field, line_order_field, field_mapping, load_type,load_field)

# Check in licenses
arcpy.CheckInExtension('LocationReferencing')

ライセンス情報

  • Basic: 次のものが必要 ArcGIS Location Referencing (ArcGIS Pipeline Referencing または ArcGIS Roads and Highways)
  • Standard: 次のものが必要 ArcGIS Location Referencing (ArcGIS Pipeline Referencing または ArcGIS Roads and Highways)
  • Advanced: 次のものが必要 ArcGIS Location Referencing (ArcGIS Pipeline Referencing または ArcGIS Roads and Highways)

関連トピック