到達圏レイヤの作成(Make Service Area Layer) (Network Analyst)
サマリ
到達圏ネットワーク解析レイヤを作成し、解析プロパティを設定します。到達圏解析レイヤは、施設の場所から指定したコストの閾値内で到達できるエリアを決定する際に役立ちます。
使用法
このツールで解析レイヤを作成した後は、[ロケーションの追加(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 (オプション) |
施設に向かう移動方向か、施設から離れる移動方向かを指定します。
このオプションを使用することで、移動する方向に基づいた一方通行規制およびさまざまなインピーダンスを考慮して、ネットワーク上にさまざまな到達圏を作成することが可能になります。たとえば宅配ピザの到達圏であれば、施設から離れる方向に作成され、病院の到達圏であれば、施設に向かう方向に作成されます。 | String |
default_break_values (オプション) |
計算される到達圏の範囲を示すデフォルトのインピーダンス値。施設に閾値を指定することでデフォルト値をオーバーライドすることができます。 複数のポリゴンの閾値を設定することで、同心状の到達圏を生成できます。たとえば、同一施設の 2 分間、3 分間、5 分間の到達圏を検索する場合は、[デフォルト] の閾値パラメータの値として「2 3 5」を入力します(2、3、5 の間は空白文字で区切ります)。 | String |
polygon_type (オプション) |
生成されるポリゴンのタイプを指定します。
格子状の道路網を持つ市街地のデータであれば、単純化されたポリゴンと詳細なポリゴンの違いはあまりありません。山間部や地方の道路では、一般的に、単純化されたポリゴンよりも詳細なポリゴンのほうがはるかに高い精度を提供します。 | String |
merge (オプション) |
同様の閾値を共有するポリゴンをマージするオプションを指定します。このオプションは複数の施設に対してポリゴンを生成するときにのみ適用できます。
| String |
nesting_type (オプション) |
同心状の到達圏ポリゴンをディスク状に作成するか、またはリング状に作成するかを指定します。このオプションは複数の閾値が施設に対して指定されているときにのみ適用できます。
| String |
line_type (オプション) |
到達圏解析に基づいて生成されるラインのタイプを指定します。大きな到達圏に TRUE_LINES(正確なライン)オプションまたは TRUE_LINES_WITH_MEASURES(計測値を含む正確なライン)オプションを選択すると、解析に使用されるメモリ量が増加します。
| String |
overlap (オプション) |
Determines if overlapping lines are generated when the service area lines are computed.
| Boolean |
split (オプション) |
| Boolean |
excluded_source_name [excluded_source_name,...] (オプション) |
ポリゴン生成時に除外するネットワーク ソースの一覧を指定します。除外されるソースのトレースされたエレメントのジオメトリは、すべてのポリゴンから除外されます。 ポリゴンの精度が損なわれるため、または到達圏解析にそれほど重要ではないため、ポリゴン生成に含めたくないネットワーク ソースがある場合に役立ちます。たとえば、道路および線路の複合ネットワークで走行時間の到達圏を作成する場合、ポリゴン生成から線路を除外するように選択すると、車両が通行できるモデルが正確に生成されます。 到達圏ポリゴンからネットワーク ソースを除外しても、そのソースの通行が防止されるわけではありません。到達圏ポリゴンからソースを除外した場合、到達圏のポリゴンの形状のみに影響が生じます。特定のネットワーク ソースの通行を防止するには、ネットワーク データセットの定義時に適切な規制を設定する必要があります。 | String |
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 ターンを規制または許可します。
| String |
restriction_attribute_name [restriction_attribute_name,...] (オプション) |
解析中に適用される規制属性のリスト。 | String |
polygon_trim (オプション) |
| Boolean |
poly_trim_value (オプション) |
到達圏ポリゴンが切詰められる距離の範囲を指定します。パラメータには距離の値と単位が含まれます。デフォルト値は 100 メートルです。 | Linear unit |
lines_source_fields (オプション) |
| Boolean |
コードのサンプル
必須パラメータのみを使用してツールを実行します。
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.MakeServiceAreaLayer_na("Transportation/Streets_ND","FireStationCoverage",
"Minutes")
すべてのパラメータを使用してツールを実行します。
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.MakeServiceAreaLayer_na("Transportation/ParisNet","WarehouseCoverage",
"Drivetime","TRAVEL_FROM","5 10 15",
"SIMPLE_POLYS", "NO_OVERLAP","RINGS","TRUE_LINES",
"NON_OVERLAP","NO_SPLIT",
["Metro_Lines","Transfer_Stations",
"Transfer_Street_Station"],
["Meters","Drivetime"],"ALLOW_DEAD_ENDS_ONLY",
["Oneway"],"NO_TRIM_POLYS","",
"LINES_SOURCE_FIELDS")
次のスタンドアロン Python スクリプトは、MakeServiceAreaLayer(到達圏レイヤの作成)ツールを使用して消防署から 1 分、2 分、3 分以内の到達圏を生成する方法を示しています。
# Name: MakeServiceAreaLayer_Workflow.py
# Description: Generate 1-,2-,3- minute service area around fire stations and
# save the results to a layer file on disk. The service area
# polygons can be used to visualize the areas that do not have
# adequate coverage from the fire stations
# 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 = "FireStationCoverage"
impedanceAttribute = "TravelTime"
inFacilities = "Analysis/FireStations"
outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr"
#Create a new service area layer. We wish to generate the service area
#polygons as rings, so that we can easily visualize the coverage for any
#given location. We also want overlapping polygons as we can determine the
#number of fire stations that cover a given location. We will specify these
#options while creating the new service area layer.
arcpy.MakeServiceAreaLayer_na(inNetworkDataset, outNALayer,
impedanceAttribute, "TRAVEL_FROM", "1 2 3",
"SIMPLE_POLYS", "NO_MERGE", "RINGS")
#Load the fire stations as facilities using deafult field mappings and
#default search tolerance
arcpy.AddLocations_na(outNALayer, "Facilities", inFacilities, "","")
#Solve the service area layer
arcpy.Solve_na(outNALayer)
#Save the solved service area 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)