ロケーション-アロケーション レイヤの作成(Make Location-Allocation Layer) (Network Analyst)

サマリ

ロケーション アロケーション ネットワーク解析レイヤを作成し、解析プロパティを設定します。ロケーション アロケーション解析レイヤは、複数の候補地から指定した数の施設を選択し、需要を施設に最適で効率的な方法で割り当てられるようにします。

使用法

構文

MakeLocationAllocationLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {loc_alloc_from_to}, {loc_alloc_problem_type}, {number_facilities_to_find}, {impedance_cutoff}, {impedance_transformation}, {impedance_parameter}, {target_market_share}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {output_path_shape})
パラメータ説明データ タイプ
in_network_dataset

ロケーション アロケーション解析が実行されるネットワーク データセット。

Network Dataset Layer
out_network_analysis_layer

作成するロケーション アロケーション ネットワーク解析レイヤの名前。

String
impedance_attribute

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

String
loc_alloc_from_to
(オプション)

ネットワーク コストを計算するときに施設と需要地点間で移動する方向を指定します。

  • FACILITY_TO_DEMAND(施設から需要地点へ)移動する方向は施設から需要地点の方向になります。
  • DEMAND_TO_FACILITY(需要地点から施設へ)移動する方向は需要地点から施設の方向になります。

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

消防署の場合、消防署から緊急事態のロケーションまで移動する時間が重視されるため、通常は [施設から需要地点へ] 設定が使用されます。小売店の場合、買物客が小売店に到達するまでの時間が重視されるため、通常は [需要地点から施設へ] オプションが使用されます。

String
loc_alloc_problem_type
(オプション)

実行する解析タイプ。解析タイプは配置されている施設の種類に応じて選択します。それは施設の種類によって、優先事項と制約が異なるからです。

  • MINIMIZE_IMPEDANCE(インピーダンスの最小化)このオプションでは倉庫のロケーション解析を実行します。加重インピーダンス(そのロケーションにおける需要と最寄り施設へのインピーダンスの掛け算)の合計値を最小になるように、複数の施設を選択します。この解析タイプは P 中央値解析としてよく知られています。
  • MAXIMIZE_COVERAGE(カバーエリアの最大化)このオプションでは消防署のロケーション解析を実行します。すべての需要、あるいは需要の最大量が指定したインピーダンスの閾値に収まるように施設を選択します。
  • MINIMIZE_FACILITIES(施設数の最小化)このオプションでは消防署のロケーション解析を実行します。すべての需要、あるいは需要の最大量を指定したインピーダンスの閾値に収めるのに必要な最小数の施設を選択します。
  • MAXIMIZE_ATTENDANCE(アテンダンスの最大化)このオプションでは、近傍店舗のロケーション解析を実行します。各店舗には近傍の需要が割り当てられますが、割り当てられる需要値の比率は距離の増加に伴い低下します。割り当てられた需要の合計が最大になるように複数の施設が選択されます。選択された施設は、指定されたインピーダンスの閾値より遠い位置にある需要には影響を受けません。
  • MAXIMIZE_MARKET_SHARE(市場シェアの最大化)このオプションでは競合施設のロケーション解析を実行します。競合施設に対して市場シェアを最大化する施設を選択します。各施設に割り当てられた需要比率の決定には、重力モデルの概念が使用されます。割り当てられた需要の合計が最大になるように複数の施設が選択されます。
  • TARGET_MARKET_SHARE(目標市場シェア)このオプションでは競合施設のロケーション解析を実行します。競合施設に対して指定された目標市場シェアを満たすように施設を選択します。各施設に割り当てられた需要比率の決定には、重力モデルの概念が使用されます。指定された目標市場シェアを満たすために必要な最小数の施設が選択されます。
String
number_facilities_to_find
(オプション)

解析時に検出する施設の数を指定します。

検出する必要のある施設の数が必須施設よりも多い場合、FacilityType 値が [必須] に設定されている施設は常にソリューションに含められ、残りの検出する必要のある施設は候補施設から選択されます。

解析前に FacilityType 値が [選択済み] に設定されている施設は、解析時には候補施設として処理されます。

MINIMIZE_FACILITIES(施設数の最小化)解析タイプではソルバはカバーエリアが最大になるような最小数の施設の配置を決定するため、パラメータ値は考慮されません。

TARGET_MARKET_SHARE(目標市場シェア)解析タイプではソルバは指定された市場シェアの確保に必要な最小数の施設を検索するため、パラメータ値はオーバーライドされます。

Long
impedance_cutoff
(オプション)

[インピーダンス カットオフ] は、需要地点を施設に割り当てる最大インピーダンスを指定します。最大インピーダンスは、ネットワークに沿った最小コスト パスによって計測されます。需要地点がカットオフの範囲外にある場合、それはアロケートされません。このプロパティは、店舗に訪れるために顧客が移動することをいとわない最大距離や、消防署がコミュニティのすべての人に到達するのにかかっても許容される最長時間などをモデリングするのに使用することもできます。

需要地点には Cutoff_[Impedance] プロパティがあり、これが設定されていると、解析レイヤの [インピーダンス カットオフ] プロパティが上書きされます。たとえば、施設に到達するために移動してもいとわない距離が農村部の住民の場合は最大 10 マイルであるのに対し、都市部の住民の場合は最大 2 マイルであるとします。この振舞いは、解析レイヤのインピーダンス カットオフ値を 10 に設定し、都市部の需要地点の Cutoff_Miles 値を 2 に設定することでモデリングできます。

Double
impedance_transformation
(オプション)

これは、施設と需要地点の間のネットワーク コストを変換するための式を設定します。[インピーダンス パラメータ] とともに使用されるこのプロパティは、施設と需要地点の間のネットワーク インピーダンスが、解析でどの施設が選択されるかに影響する度合いを指定します。

  • LINEAR(リニア)施設および需要地点間の変換されたネットワーク インピーダンスは 2 点間の最短パスのネットワーク インピーダンスと同じです。このオプションにより、インピーダンス パラメータは常に 1 に設定されます。これがデフォルトです。
  • POWER(乗数)施設および需要地点間の変換されたネットワーク インピーダンスは、最短パスのネットワーク インピーダンスをインピーダンス パラメータに指定された値で乗数した値に相当します。正の値のインピーダンス パラメータとともに POWER(乗数)オプションを使用して、近傍の施設の加重を大きくします。
  • EXPONENTIAL(指数関数)施設および需要地点間の変換されたネットワーク インピーダンスは、数学定数 e を最短パスのネットワーク インピーダンスにインピーダンス パラメータに掛けた値で乗数した値に相当します。正の値のインピーダンス パラメータとともに EXPONENTIAL(指数関数)オプションを使用して、近傍の施設の加重を非常に大きくします。指数関数変換は、一般的に、インピーダンス カットオフとともに使用されます。

需要地点には ImpedanceTransformation プロパティがあり、これが設定されていると、解析レイヤの [インピーダンス変換] プロパティがオーバーライドされます。都市部の住民と農村部の住民で異なるインピーダンス変換を指定する必要がある場合があります。これは、解析レイヤのインピーダンス変換を農村部の住民に適合するように設定し、都市部の需要地点のインピーダンス変換を都市部の住民に適合するように設定することでモデリングできます。

String
impedance_parameter
(オプション)

[インピーダンス変換] パラメータで指定された計算式へのパラメータ値を提供します。パラメータ値はインピーダンス変換がリニアのタイプである場合、無視されます。乗数または指数関数のインピーダンス変換の場合、値は 0 以外である必要があります。

需要地点には ImpedanceParameter プロパティがあり、これが設定されていると、解析レイヤの [インピーダンス パラメータ] プロパティが上書きされます。都市部の住民と農村部の住民で異なるインピーダンス パラメータを指定する必要がある場合があります。これは、解析レイヤのインピーダンス変換を農村部の住民に適合するように設定し、都市部の需要地点のインピーダンス変換を都市部の住民に適合するように設定することでモデリングできます。

Double
target_market_share
(オプション)

ロケーション アロケーション解析タイプのパラメータが TARGET_MARKET_SHARE(目標市場シェア)に設定されているときに、解析に使用する目標市場シェアをパーセントで指定します。これは、解析対象の施設で獲得したい総需要ウェイトに占める割合です。ソルバは、この数値で指定される目標市場シェアを獲得するのに必要な最小数の施設を選択します。

Double
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
output_path_shape
(オプション)
  • NO_LINES(ラインなし)解析の出力として、シェープは生成されません。
  • STRAIGHT_LINES(直線)出力ライン形状は解析対象の施設と割り当てられた需要地点とを結ぶ直線になります。
String

コードのサンプル

MakeLocationAllocationLayer(ロケーション アロケーション レイヤの作成)の例 1(Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.MakeLocationAllocationLayer_na("Transportation/Streets_ND",
                                     "StoreLocations","Minutes")
MakeLocationAllocationLayer(ロケーション アロケーション レイヤの作成)の例 2(Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.MakeLocationAllocationLayer_na("Transportation/Streets_ND","NewStores",
                                     "Minutes","DEMAND_TO_FACILITY",
                                     "MAXIMIZE_ATTENDANCE",3,5,"POWER",2,"",
                                     ["Minutes","Meters"],"ALLOW_UTURNS",
                                     ["Oneway"],"NO_HIERARCHY","STRAIGHT_LINES")
MakeLocationAllocationLayer(ロケーション アロケーション レイヤの作成)の例 3(ワークフロー)

次のスタンドアロン Python スクリプトは、MakeLocationAllocationLayer(ロケーション アロケーション レイヤの作成)ツールを使用して小売店チェーンの売り上げを最大化するための店舗の場所を選択する方法を示しています。

# Name: MakeLocationAllocationLayer_Workflow.py
# Description: Choose the store locations that would generate the most business 
#              for a retail chain. For this scenario we will perform the 
#              location-allocation analysis using maximize attendance problem 
#              type. 
# 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 = "NewStoreLocations"
    impedanceAttribute = "TravelTime"
    inFacilities = "Analysis/CandidateStores"
    inDemandPoints = "Analysis/TractCentroids"
    outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr"
    
    #Create a new location-allocation layer. In this case the demand travels to
    #the facility. We wish to find 3 potential store locations out of all the
    #candidate store locations using the maximize attendance model.
    arcpy.MakeLocationAllocationLayer_na(inNetworkDataset, outNALayer,
                                         impedanceAttribute,"DEMAND_TO_FACILITY",
                                         "MAXIMIZE_ATTENDANCE",3,5, "LINEAR")
    
    #Load the candidate store locations as facilities
    arcpy.AddLocations_na(outNALayer,"Facilities",inFacilities,"","")
    
    #Load the tract centroids as demand points
    arcpy.AddLocations_na(outNALayer,"Demand Points",inDemandPoints,"","")
    
    #Solve the location-allocation layer
    arcpy.Solve_na(outNALayer)
    
    #Save the solved location-allocation 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