ルートのアペンド (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 ネットワークの空間参照、XY 座標精度、および XY 許容値は一致している必要があります。

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

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

  • このツールは競合の防止をサポートしており、ロックの取得と転送を試行します。

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

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

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

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

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

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

  • ツールは、ルートが読み込まれる 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

派生した出力

ラベル説明データ タイプ
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})
名前説明データ タイプ
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

派生した出力

名前説明データ タイプ
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 those routes where an overlap occurs.
# Requires: ArcGIS Location Referencing

# Set tool variables
source_routes = r"C:\Data\UPDM.gdb\LRS\EngineeringNetwork"
in_lrs_network = r"C:\Data\NY_Data.gdb\LRS\P_Integrity\P_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 = "REPLACE_BY_ROUTE_ID"

# 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)
AppendRoutes の例 2 (スタンドアロン スクリプト)

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

# Name: AppendRoutes_ex2.py
# Description: Append records into an existing network feature class without performing any attribute field mapping.
# Requires: ArcGIS Location Referencing

# Import arcpy module
import arcpy

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

# Local variables:
SourceRoutes = r"C:\Data\UPDM.gdb\LRS\EngineeringNetwork"
TargetNetwork = r"C:\Data\NY_Data.gdb\LRS\P_Integrity\P_EngineeringNetwork"
Route_ID = "RouteId"
Route_Name = "RouteName"
From_Date = "FromDate"
To_Date = "ToDate"
Line_ID = "LineId"
Line_Name = "LineName"
Line_Order = "LineOrder"

# Process: Append Routes
arcpy.locref.AppendRoutes(SourceRoutes, TargetNetwork, Route_ID, Route_Name, From_Date, To_Date, Line_ID, Line_Name, Line_Order, None, "ADD")

# 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:
SourceRoutes = r"C:\Data\DOT.gdb\LRS\RoutestoAppend"
TargetNetwork = r"C:\Data\DOT.gdb\LRS\StateRoutes"
RouteId = "RouteId"
RouteName = ""
FromDate = "FromDate"
ToDate = "ToDate"
LineId = ""
LineName = ""
LineOrder = ""
loadtype = "ADD"

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

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

fldmap2 = arcpy.FieldMap()
fldmap2.addInputField(SourceRoutes, "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(SourceRoutes, TargetNetwork, RouteId, RouteName, FromDate, ToDate, LineId, LineName, LineOrder, fieldMappings, loadtype)

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

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

# Name: AppendRoutes_Pro_Ex4.py
# Description: Append routes using a feature service in a standa-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.
sourceroute = r"C:\LocationReferencing\LR.gdb\LRS\routes"
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"

## 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.
targetroute_network = r"https://yourdomain.com/server/rest/services/FeatureServiceName/FeatureServer/18"

# Process: Append Routes.
arcpy.locref.AppendRoutes(sourceroute, targetroute_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)

# 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)

関連トピック