最寄り施設の検出レイヤの作成(Make Closest Facility Layer) (Network Analyst)
サマリ
最寄り施設の検出ネットワーク解析レイヤを作成し、解析プロパティを設定します。最寄り施設の検出解析レイヤは、指定したネットワーク コストに基づいて、インシデントまでの最寄り施設の検出を検出する際に役立ちます。
[最寄り施設の検出(Find Closest Facilities)] ツールと [最寄り施設の検出レイヤの作成(Make Closest Facility Layer)] ツールは類似していますが、それぞれ異なる目的で設計されています。ジオプロセシング サービスをセットアップする場合、[最寄り施設の検出(Find Closest Facilities)] ツールを使用すると、セットアップ プロセスが簡単になります。それ以外の場合は、[最寄り施設の検出レイヤの作成(Make Closest Facility Layer)] ツールを使用します。
[最寄り施設の検出(Find Closest Facilities)] を使用して最寄り施設ジオプロセシング サービスを作成する場合、1 つのツールをセットアップするだけで済みます。このツールをサービスとして直接公開することができます。これに対して、[最寄り施設の検出レイヤの作成(Make Closest Facility Layer)] ツールを使用して最寄り施設ジオプロセシング サービスを作成するには、モデルを作成し、それをさまざまな他のツールに正しく接続して公開する必要があります。チュートリアル データを使用して最寄り施設サービスを設定する方法については、「Network Analyst ジオプロセシング サービスの例の概要」をご参照ください。検討すべきもう 1 つのオプションは、ArcGIS Online の最寄り施設サービスです。これは ArcMap 内でジオプロセシング ツールのように動作するサービスですが、その他のアプリケーションからアクセスでき、世界の高品質な道路データが多数含まれています。
使用法
-
このツールで解析レイヤを作成した後は、[ロケーションの追加(Add Locations)] ツールを使用して解析レイヤにネットワーク解析オブジェクトを追加し、[解析の実行(Solve)] ツールを使用して解析を実行し、[レイヤ ファイルの保存(Save To Layer File)] ツールを使用して結果をディスクに保存することができます。
-
このツールをジオプロセシング モデルに使用するときは、モデルをツールとして動作させる場合、出力ネットワーク解析レイヤにモデル パラメータを作成する必要があります。そうしないと、出力レイヤは ArcMap のコンテンツ ウィンドウに追加されません。
構文
パラメータ | 説明 | データ タイプ |
in_network_dataset |
最寄り施設の検出の解析が実行されるネットワーク データセット。 | Network Dataset Layer |
out_network_analysis_layer |
作成する最寄り施設の検出ネットワーク解析レイヤの名前。 | String |
impedance_attribute |
解析でインピーダンスとして使用されるコスト属性。 | String |
travel_from_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 ターン ポリシーを指定します。以下では、このパラメータで選択できる値と、ジャンクションので接続におけるそれぞれの意味について示します。
ヒント: U ターン ポリシーをさらに正確に定義する必要がある場合、グローバル ターン遅延エバリュエータをネットワーク コスト属性に追加するか、すでに存在する場合はそれを調整することを検討してください。その際、逆ターンの設定には特に注意が必要です。また、ネットワーク ロケーションの CurbApproach プロパティの設定についても調べてください。 | String |
restriction_attribute_name [restriction_attribute_name,...] (オプション) |
解析中に適用される規制属性のリスト。 | String |
hierarchy (オプション) |
解析を実行するネットワーク データセットに使用する階層属性が定義されていない場合、パラメータは使用されません。この場合、「#」をパラメータ値として使用します。 | Boolean |
hierarchy_settings (オプション) |
レガシー: 10 より前のバージョンでは、このパラメータによって、解析のためにネットワーク データセット構築時のデフォルトの階層範囲から階層範囲の変更を行うことを許可していました。バージョン 10 では、このパラメータはサポートされていないため、空の文字列を指定する必要があります。解析のために階層範囲を変更したい場合、ネットワーク データセットのデフォルトの階層範囲を更新します。 | Network Analyst Hierarchy Settings |
output_path_shape (オプション) |
解析で出力されるルート フィーチャの形状タイプを指定します。
どの出力形状のタイプを選択するかに関係なく、常に最適なルートはユークリッド距離ではなくネットワーク インピーダンスによって決定されます。ネットワーク解析の結果は同じですが、ルート形状のみが異なります。 | String |
time_of_day (オプション) |
ルートの開始または終了の日時を指定します。この値の解釈は、[時刻の使用法] に START_TIME と END_TIME のどちらが設定されているかによって変わります。 交通量ベースのインピーダンス属性を選択した場合、ここで指定した時刻での動的な交通状況に対する解決策が生成されます。日時は、2012/05/14 10:30 のように指定できます。 特定の日付を使用する代わりに、次の日付を使用して曜日を指定することができます。
| Date |
time_of_day_usage (オプション) |
[時刻] パラメータの値がルートの到着時間と出発時間のどちらを表すかを示します。
| String |
コードのサンプル
必須パラメータのみを使用してツールを実行します。
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeClosestFacilityLayer("Transportation/Streets_ND",
"ClosestFireStations","Minutes")
すべてのパラメータを使用してツールを実行します。
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")
次のスタンドアロン 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)