最寄り施設の検出レイヤの作成(Make Closest Facility Layer) (Network Analyst)

ライセンス レベル:BasicStandardAdvanced

サマリ

最寄り施設の検出ネットワーク解析レイヤを作成し、解析プロパティを設定します。最寄り施設の検出解析レイヤは、指定したネットワーク コストに基づいて、インシデントまでの最寄り施設の検出を検出する際に役立ちます。

使用法

構文

MakeClosestFacilityLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {travel_from_to}, {default_cutoff}, {default_number_facilities_to_find}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {hierarchy_settings}, {output_path_shape}, {time_of_day}, {time_of_day_usage})
パラメータ説明データ タイプ
in_network_dataset

最寄り施設の検出の解析が実行されるネットワーク データセット。

Network Dataset Layer
out_network_analysis_layer

作成する最寄り施設の検出ネットワーク解析レイヤの名前。

String
impedance_attribute

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

String
travel_from_to
(オプション)

施設とインシデントの間で移動する方向を指定します。

  • TRAVEL_FROM移動する方向は施設からインシデントの方向になります。
  • TRAVEL_TO移動する方向はインシデントから施設の方向になります。

このオプションを使用することで、移動する方向に基づいた一方通行規制およびさまざまなインピーダンスを考慮した、ネットワーク上のさまざまな施設の検索が可能になります。たとえば、インシデントから施設に向かった場合に要する時間が 10 分間であったとしても、施設からインシデントに向かった場合は方向が異なるために、15 分間を要する場合があります。

消防署の場合、消防署(施設)から緊急事態の場所(インシデント)まで移動する時間が重視されるため、通常は TRAVEL_FROM 設定が使用されます。小売店(施設)の場合、買物客(インシデント)が小売店に到達するまでの時間が重視されるため、通常は TRAVEL_TO オプションが使用されます。

String
default_cutoff
(オプション)

指定されたインシデントに対する施設の検索を中止するデフォルトのインピーダンス値。TRAVEL_TO オプションが使用されているときはインシデントにカットオフ値を指定し、TRAVEL_FROM オプションが使用されているときは施設にカットオフ値を指定することで、デフォルトをオーバーライドすることができます。

Double
default_number_facilities_to_find
(オプション)

インシデントごとに検索する最寄り施設の検出のデフォルトの数。インシデントの TargetFacilityCount プロパティの値を指定することでデフォルトをオーバーライドすることができます。

Long
accumulate_attribute_name
[accumulate_attribute_name,...]
(オプション)

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

累積されるコスト属性ごとに、解析で出力されたルートに [Total_[Impedance]] プロパティが追加されます。

String
UTurn_policy
(オプション)

ジャンクションでの U ターン ポリシーU ターンを許可するということは、解析においてジャンクションで方向転換し、同じ道路を引き返すことができるということを意味します。 ジャンクションが道路の交差と行き止まりを表すことを前提に、さまざまな車両が、一部のジャンクションでは方向転換でき、他のジャンクションでは方向転換できない、というように設定できます。これは、ジャンクションが交差と行き止まりのどちらを表すかによって変わります。これに対応するには、ジャンクションに接続するエッジの数(ジャンクションでのノードへの接続数)によって、暗黙的に U ターン ポリシーを指定します。以下では、このパラメータで選択できる値と、ジャンクションので接続におけるそれぞれの意味について示します。

  • ALLOW_UTURNS(U ターンを許可)任意の数の接続されたエッジを持つジャンクションで U ターンを許可します。これがデフォルト値です。
  • NO_UTURNS(U ターンを規制)ジャンクションの接続にかかわらず、すべてのジャンクションで U ターンを禁止します。ただし、この設定が選択されている場合でも、ネットワーク ロケーションでは U ターンが許可されます。同様に、個々のネットワーク ロケーションの CurbApproach プロパティで U ターンを禁止するように設定できます。
  • ALLOW_DEAD_ENDS_ONLY(行き止まりのみ許可)1 つの隣接エッジを持つジャンクション(行き止まり)を除くすべてのジャンクションでの U ターンを禁止します。
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY2 つの隣接するエッジが接するジャンクションでの U ターンを禁止します。ただし、交差点(3 つ以上の隣接エッジを持つジャンクション)および行き止まり(1 つの隣接エッジを持つジャンクション)では U ターンを許可します。ネットワークには、道路セグメントの中間に無関係のジャンクションが存在する場合があります。このオプションは、これらの場所で車両が U ターンすることを防ぎます。
ヒントヒント:

U ターン ポリシーをさらに正確に定義する必要がある場合、グローバル ターン遅延エバリュエータをネットワーク コスト属性に追加するか、すでに存在する場合はそれを調整することを検討してください。その際、逆ターンの設定には特に注意が必要です。また、ネットワーク ロケーションの CurbApproach プロパティの設定についても調べてください。

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
time_of_day
(オプション)

ルートの開始または終了の日時を指定します。この値の解釈は、[時刻の使用法] に START_TIME と END_TIME のどちらが設定されているかによって変わります。

交通量ベースのインピーダンス属性を選択した場合、ここで指定した時刻での動的な交通状況に対する解決策が生成されます。日時は、2012/05/14 10:30 のように指定できます。

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

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

Date
time_of_day_usage
(オプション)

[時刻] パラメータの値がルートの到着日時と出発日時のどちらを表すかを示します。

  • START_TIME[時刻] は、施設またはインシデントからの出発日時として解釈されます。START_TIME が選択されている場合、[時刻] は、解析が指定された出発日時における最善のルートを検出できることを示しています。[時刻] パラメータに値を指定していない場合は、NOT_USED を選択できます。
  • END_TIME[時刻] は、施設またはインシデントからの到着日時として解釈されます。このオプションは、[時刻] で指定した日時に目的地に到着するために、ある場所から出発すべき日時を知りたい場合に便利です。
  • NOT_USED[時刻] に値がない場合、必ず NOT_USED を選択します。[時刻] に値がある場合、NOT_USED は使用できません。
String

コードのサンプル

MakeClosestFacilityLayer(最寄り施設の検出レイヤの作成)の例 1(Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeClosestFacilityLayer("Transportation/Streets_ND",
                                  "ClosestFireStations","Minutes")
MakeClosestFacilityLayer(最寄り施設の検出レイヤの作成)の例 2(Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeClosestFacilityLayer("Transportation/Streets_ND",
                                  "ClosestHospitals","Minutes","TRAVEL_TO",5,3,
                                  ["Meters","Minutes"],"ALLOW_UTURNS",
                                  ["Oneway"],"USE_HIERARCHY","",
                                  "TRUE_LINES_WITH_MEASURES")
MakeClosestFacilityLayer(最寄り施設の検出レイヤの作成)の例 3(ワークフロー)

次のスタンドアロン Python スクリプトは、[最寄り施設の検出レイヤの作成(MakeClosestFacilityLayer)] ツールを使用して店舗の場所から最寄りの倉庫を検索する方法を示しています。

# Name: MakeClosestFacilityLayer_Workflow.py
# Description: Find the closest warehouse from the store locations and save the 
#              results to a layer file on disk.
# 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/Paris.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/ParisMultimodal_ND"
    outNALayerName = "ClosestWarehouse"
    impedanceAttribute = "Drivetime"
    accumulateAttributeName = ["Meters"]
    inFacilities = "Analysis/Warehouses"
    inIncidents = "Analysis/Stores"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    
    #Create a new closest facility analysis layer. Apart from finding the drive 
    #time to the closest warehouse, we also want to find the total distance. So
    #we will accumulate the "Meters" impedance attribute.
    outNALayer = arcpy.na.MakeClosestFacilityLayer(inNetworkDataset,outNALayerName,
                                                   impedanceAttribute,"TRAVEL_TO",
                                                   "",1, accumulateAttributeName,
                                                   "NO_UTURNS")
    
    #Get the layer object from the result object. The closest facility layer can 
    #now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the closest facility layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    facilitiesLayerName = subLayerNames["Facilities"]
    incidentsLayerName = subLayerNames["Incidents"]
    
    #Load the warehouses as Facilities using the default field mappings and 
    #search tolerance
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "")
    
    #Load the Stores as Incidents. Map the Name property from the NOM field
    #using field mappings
    fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, incidentsLayerName)
    fieldMappings["Name"].mappedFieldName = "NOM"
    arcpy.na.AddLocations(outNALayer, incidentsLayerName, inIncidents,
                          fieldMappings,"")
    
    #Solve the closest facility layer
    arcpy.na.Solve(outNALayer)
    
    #Save the solved closest facility layer as a layer file on disk with 
    #relative paths
    arcpy.management.SaveToLayerFile(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)

環境

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: ○
ArcGIS for Desktop Standard: ○
ArcGIS for Desktop Advanced: ○
9/14/2013