ルート レイヤの作成(Make Route Layer) (Network Analyst)

サマリ

ルート ネットワーク解析レイヤを作成し、解析プロパティを設定します。ルート解析レイヤは、指定したネットワーク コストに基づいて、ネットワーク ロケーション間の最適ルートを決定する際に役立ちます。

使用法

構文

MakeRouteLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {find_best_order}, {ordering_type}, {time_windows}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {hierarchy_settings}, {output_path_shape}, {start_date_time})
パラメータ説明データ タイプ
in_network_dataset

ルート解析が実行されるネットワーク データセット。

Network Dataset Layer
out_network_analysis_layer

作成するルート ネットワーク解析レイヤの名前。

String
impedance_attribute

解析でインピーダンスとして使用されるコスト属性。

String
find_best_order
(オプション)
  • FIND_BEST_ORDER(最適な順序を検索)最適ルートを検索するためにストップの順番を並べ替えます。このオプションにより、ルート解析は最短パス問題から巡回セールスマン問題に変わります。
  • USE_INPUT_ORDER(入力の順序を使用)入力の順序に従って、ストップを巡回します。これがデフォルトです。
Boolean
ordering_type
(オプション)

FIND_BEST_ORDER(最適な順序を検索)を使用するときに、ストップの順番を指定します。

  • PRESERVE_BOTHPreserves the first and last stops by input order as the first and last stops in the route.
  • PRESERVE_FIRSTPreserves the first stop by input order as the first stop in the route, but the last stop is free to be reordered.
  • PRESERVE_LASTPreserves the last stop by input order as the last stop in the route, but the first stop is free to be reordered.
  • PRESERVE_NONEFrees both the first and last stop to be reordered.
String
time_windows
(オプション)

Specifies if time windows will be used at the stops.

  • USE_TIMEWINDOWS(タイム ウィンドウを使用)ルートはストップのタイム ウィンドウを考慮します。ストップにタイム ウィンドウ以前に到着した場合、タイム ウィンドウが開始するまで待ち時間が発生します。ストップにタイム ウィンドウ以後に到着した場合、タイム ウィンドウ違反になります。ルート計算時には、タイム ウィンドウ超過時間の合計は最小のインピーダンスになるよう分散されます。これはインピーダンスが時間単位のときのみ有効なオプションです。
  • NO_TIMEWINDOWS(タイム ウィンドウを使用しない)ルートはストップのタイム ウィンドウを無視します。これがデフォルトです。
Boolean
accumulate_attribute_name
[accumulate_attribute_name,...]
(オプション)

解析中に累積されるコスト属性のリスト。これらの累積属性は、参考情報としてのみ使用されます。ソルバは、[インピーダンス] 属性パラメータで指定されているコスト属性のみを使用してルートを計算します。

For each cost attribute that is accumulated, a Total_[Impedance] property is added to the routes that are output by the solver.

String
UTurn_policy
(オプション)

ストップ間でのネットワーク移動中に発生する可能性があるジャンクションでの U ターンを規制または許可します。

  • ALLOW_UTURNS(U ターンを許可)任意の数の隣接エッジを持つジャンクションでの U ターンを許可します。
  • NO_UTURNS(U ターンを規制)すべてのジャンクションでの U ターンが禁止されます。ただし、この設定が選択されている場合でも、ネットワーク ロケーションでは U ターンが許可されます。個々のネットワーク ロケーションの CurbApproach プロパティで U ターンを禁止するように設定できます。
  • ALLOW_DEAD_ENDS_ONLY(行き止まりのみ許可)1 つの隣接エッジを持つジャンクション(行き止まり)を除くすべてのジャンクションでの U ターンを禁止します。
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY(行き止まりと交差点のみ許可)2 つの隣接するエッジが接するジャンクションでの U ターンを禁止します。ただし、交差点(3 つ以上の隣接エッジを持つジャンクション)または行き止まり(1 つの隣接エッジを持つジャンクション)では U ターンを許可します。
String
restriction_attribute_name
[restriction_attribute_name,...]
(オプション)

解析中に適用される規制属性のリスト。

String
hierarchy
(オプション)
  • USE_HIERARCHY(階層を使用) 階層属性を解析に使用します。階層を使用すると、解析は下位ランクのエッジよりも上位ランクのエッジを優先します。階層解析は、より高速で、運転者が遠回りであっても一般道路の代わりに高速道路を利用する状況をシミュレートするのに使用できます。このオプションは入力ネットワーク データセットが階層属性を持つ場合のみ有効です。
  • NO_HIERARCHY(階層を使用しない)階層属性を解析に使用しません。階層を使用しないことで、ネットワーク データセットの正確なルートが検索されます。

解析を実行するネットワーク データセットに使用する階層属性が定義されていない場合、パラメータは使用されません。この場合、「#」をパラメータ値として使用します。

Boolean
hierarchy_settings
(オプション)

レガシレガシ:

10 より前のバージョンでは、このパラメータによって、解析のためにネットワーク データセット構築時のデフォルトの階層範囲から階層範囲の変更を行うことを許可していました。バージョン 10 では、このパラメータはサポートされていないため、空の文字列を指定する必要があります。解析のために階層範囲を変更したい場合、ネットワーク データセットのデフォルトの階層範囲を更新します。

Network Analyst Hierarchy Settings
output_path_shape
(オプション)

解析で出力されるルート フィーチャの形状タイプを指定します。

  • TRUE_LINES_WITH_MEASURES(メジャー値を含む正確なライン)出力ルートはネットワーク ソースの正確な形状を保持します。リニア リファレンスのためのルートのメジャー値が出力に含まれます。メジャー値は、最初のストップから増加し、指定された位置に到着するまでの累積インピーダンスを記録します。
  • TRUE_LINES_WITHOUT_MEASURES(メジャー値を含まない正確なライン)出力ルートはネットワーク ソースの正確な形状を保持します。
  • STRAIGHT_LINES(直線)出力ルート形状はストップ間を結ぶ 1 本の直線になります。
  • NO_LINES(線なし)出力ルートにシェープは生成されません。

どの出力形状のタイプを選択するかに関係なく、常に最適なルートはユークリッド距離ではなくネットワーク インピーダンスによって決定されます。ネットワーク解析の結果は同じですが、ルート形状のみが異なります。

String
start_date_time
(オプション)

ルートの開始日時を指定します。ルートの開始時間は多くの場合、1 日の時刻に応じて変化するインピーダンス属性に基づいたルートの検索に使用されます。たとえば、ラッシュアワーの交通量を考慮したルートの検索には午前 9 時が開始時間として使用されることがあります。このパラメータのデフォルト値は 8:00 AM です。日付と時刻を 10/21/05 10:30 AM のように指定することができます。ルートが複数日にわたり、開始時間のみが指定されている場合、現在の日付が使用されます。

特定の日付を使用する代わりに、次の日付を使用して曜日を指定することができます。

  • 今日 - 12/30/1899
  • 日 - 12/31/1899
  • 月 - 1/1/1900
  • 火 - 1/2/1900
  • 水 - 1/3/1900
  • 木 - 1/4/1900
  • 金 - 1/5/1900
  • 土 - 1/6/1900
たとえば、ルートを火曜日の 5:00 PM に開始するよう指定するには、パラメータ値を 1/2/1900 5:00 PM に指定します。

解析後、出力ルートにはルートの開始時刻と終了時刻が挿入されます。このような開始時刻と終了時刻は、ルート案内の生成時にも使用されます。

このオプションは、時間ベースの属性がインピーダンス属性として指定されている場合にのみ有効です。

Date

コードのサンプル

MakeRouteLayer(ルート レイヤの作成)の例 1(Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.MakeRouteLayer_na("Transportation/Streets_ND","WorkRoute","Minutes")
MakeRouteLayer(ルート レイヤの作成)の例 2(Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.MakeRouteLayer_na("Transportation/Streets_ND","InspectionRoute","Minutes",
                        "FIND_BEST_ORDER","PRESERVE_BOTH","USE_TIMEWINDOWS",
                        ["Meters","Minutes"],
                        "ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY",["Oneway"],
                        "USE_HIERARCHY","","TRUE_LINES_WITH_MEASURES",
                        "1/1/1900 9:00 AM")
MakeRouteLayer(ルート レイヤの作成)の例 3(ワークフロー)

次のスタンドアロン Python スクリプトは、MakeRouteLayer(ルート レイヤの作成)ツールを使用して、ジオコーディングされたストップ ロケーションを巡回する最適ルートを検索する方法を示しています。

# Name: MakeRouteLayer_Workflow.py
# Description: Find a best route to visit the stop locations and save the 
#              route to a layer file. The stop locations are geocoded from a 
#              text file containing the addresses.
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env

try:
    #Check out the Network Analyst extension license
    arcpy.CheckOutExtension("Network")

    #Set environment settings
    env.workspace = "C:/data/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayer = "BestRoute"
    impedanceAttribute = "TravelTime"
    inAddressLocator = "SanFranciscoLocator"
    inAddressTable = "C:/data/StopAddresses.csv"
    inAddressFields = "Street Address VISIBLE NONE"
    fieldMappings = "Name Address #"
    outStops = "GeocodedStops"
    outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr"
    
    #Create a new Route layer. Once the route layer is created, it can be 
    #referenced using its name.  
    arcpy.MakeRouteLayer_na(inNetworkDataset, outNALayer, impedanceAttribute)
    
    #Geocode the stop locations from a csv file containing the addresses.
    #The Geocode Addresses tool can use a text or csv file as input table
    #as long as the first line in the file contains the field names.
    arcpy.GeocodeAddresses_geocoding(inAddressTable, inAddressLocator, 
                                     inAddressFields, outStops)
    
    #Load the geocoded address locations as stop smapping the address field from
    #geocoded stop features as Name property.
    arcpy.AddLocations_na(outNALayer,"Stops", outStops, fieldMappings, "")
    
    #Solve the route layer, ignore any invalid locations such as those that
    #can not be geocoded
    arcpy.Solve_na(outNALayer,"SKIP")
    
    #Save the solved route layer as a layer file on disk with relative paths
    arcpy.SaveToLayerFile_management(outNALayer,outLayerFile,"RELATIVE")
    
    print "Script completed successfully"

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occured on line %i" % tb.tb_lineno
    print str(e)

環境

関連項目


7/10/2012