概要
最寄り施設の検出ネットワーク解析レイヤーを作成し、解析プロパティを設定します。最寄り施設の検出解析レイヤーは、指定した移動モードに基づいて、インシデントまでの最寄り施設を検出する際に役立ちます。レイヤーは、ローカル ネットワーク データセットや、オンラインでホストされたサービスまたはポータル内のサービスを使用して作成できます。
使用法
このツールで解析レイヤーを作成した後は、[ロケーションの追加 (Add Locations)] ツールを使用して解析レイヤーにネットワーク解析オブジェクトを追加し、[解析の実行 (Solve)] ツールを使用して解析を実行し、[レイヤー ファイルの保存 (Save To Layer File)] ツールを使用して結果をディスクに保存することができます。
このツールをジオプロセシング モデルに使用するときは、モデルをツールとして動作させる場合、出力ネットワーク解析レイヤーにモデル パラメーターを作成する必要があります。そうしないと、出力レイヤーはマップのコンテンツに追加されません。
ArcGIS Pro では、ネットワーク解析レイヤーのデータは、ディスク上のファイル ジオデータベースのフィーチャクラスに格納されます。プロジェクトでネットワーク解析レイヤーを作成する場合、レイヤーのデータは、現在のワークスペース環境の新しいフィーチャ データセット内に作成されます。Python スクリプトでネットワーク解析レイヤーを作成する場合、まず arcpy.env.workspace = "<path to file gdb>" を使用して、ワークスペース環境をレイヤーのデータを格納するファイル ジオデータベースに明示的に設定する必要があります。レイヤーが作成されるとき、適切なサブレイヤーのフィーチャクラスを含む新しいフィーチャ データセットがこのファイル ジオデータベースに追加されます。
構文
arcpy.na.MakeClosestFacilityAnalysisLayer(network_data_source, {layer_name}, {travel_mode}, {travel_direction}, {cutoff}, {number_of_facilities_to_find}, {time_of_day}, {time_zone}, {time_of_day_usage}, {line_shape}, {accumulate_attributes}, {generate_directions_on_solve})
パラメーター | 説明 | データ タイプ |
network_data_source | ネットワーク解析が実行されるネットワーク データセットまたはサービス。サービスのポータル URL を使用します。 | Network Dataset Layer;String |
layer_name (オプション) | 作成するネットワーク解析レイヤーの名前。 | String |
travel_mode (オプション) | 解析で使用する移動モードの名前。移動モードは、移動規制や U ターン ポリシーなど、歩行者、車、トラック、その他の交通手段がネットワークをどのように移動するかを決定するネットワーク設定のコレクションを表します。移動モードは、ネットワーク データ ソースに対して定義されます。 arcpy.na.TravelMode オブジェクトおよび移動モードの有効な JSON 表現を含む文字列もパラメーターの入力として使用できます。 | String |
travel_direction (オプション) | 施設とインシデントの間で移動する方向を指定します。
移動方向は、ネットワークに一方通行の道路や移動方向に基づくインピーダンスが含まれる場合、検出される施設に影響する可能性があります。たとえば、特定のインシデントから施設まで 10 分で移動できても、一方通行の道路や交通量の条件の違いから、施設からインシデントの方向では 15 分かかる場合があります。 | String |
cutoff (オプション) | 指定されたインシデントに対して施設の検索を停止するインピーダンス値。単位は、選択した travel_mode で使用されるインピーダンス属性の単位です。このカットオフは、travel_direction='TO_FACILITIES' の場合、インシデント サブレイヤーのカットオフ値を個別に指定することで、インシデントごとにオーバーライドできます。また、travel_direction='FROM_FACILITIES' の場合は、施設サブレイヤーのカットオフ値を個別に指定することで、施設ごとにオーバーライドできます。デフォルトでは、解析にカットオフは使用されません。 | Double |
number_of_facilities_to_find (オプション) | インシデントごとに検出する最寄り施設の数。インシデント サブレイヤーの TargetFacilityCount プロパティの値を個別に指定することで、このデフォルトをオーバーライドすることができます。検出する施設のデフォルト数は 1 です。 | Long |
time_of_day (オプション) | ルートの開始または終了の日時を指定します。この値の解釈は、time_of_day_usage をルートの開始時間に設定するか、終了時間に設定するかによって変わります。 交通量ベースのインピーダンス属性を選択した場合、ここで指定した時刻での動的な交通状況に対する解決策が生成されます。日時は、2012/05/14 10:30 のように指定できます。 特定の日付を使用する代わりに、次の日付を使用して曜日を指定することができます。
| Date |
time_zone (オプション) | time_of_day パラメーターのタイム ゾーンを指定します。
| String |
time_of_day_usage (オプション) | time_of_day パラメーターの値がルートの到着時間と出発時間のどちらを表すかを示します。
| String |
line_shape (オプション) | 解析で出力されるルート フィーチャの形状タイプを指定します。 どの出力形状のタイプを選択するかに関係なく、常に最適なルートはユークリッド距離ではなくネットワーク インピーダンスによって決定されます。これは、ルート形状のみが異なり、ネットワークの基となっているトラバースは同じであることを意味します。
| String |
accumulate_attributes [accumulate_attributes,...] (オプション) | 解析中に累積されるコスト属性のリスト。これらの累積属性は、参考情報としてのみ使用されます。解析では、指定されている移動モードで使用されるコスト属性のみが使用されます。 累積されるコスト属性ごとに、ネットワーク解析の出力フィーチャに Total_[Impedance] プロパティが入力されます。 このパラメーターは、ネットワーク データ ソースが ArcGIS Online サービスである場合、あるいはネットワーク データ ソースが累積をサポートしないバージョンの Portal for ArcGIS のサービスである場合には使用できません。 | String |
generate_directions_on_solve (オプション) | 解析を実行するときに、ルート案内を生成するかどうかを指定します。
ルート案内を生成する必要がない解析の場合は、デフォルトのオプション NO_DIRECTIONS を使用すると、解析の実行にかかる時間が大幅に短縮されます。 | Boolean |
派生した出力
名前 | 説明 | データ タイプ |
out_network_analysis_layer | 新しく作成されたネットワーク解析レイヤー。 | Network Analyst レイヤー |
コードのサンプル
必須パラメーターのみを使用してツールを実行します。
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeClosestFacilityAnalysisLayer(network, "ClosestFireStations")
すべてのパラメーターを使用してツールを実行します。
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeClosestFacilityAnalysisLayer(network, "ClosestHospitals",
"Driving Time", "TO_FACILITIES", 5, 3,
"1/1/1900 9:00 AM", "UTC", "START_TIME",
"ALONG_NETWORK", ["Meters", "TravelTime"])
次のスタンドアロン Python スクリプトは、MakeClosestFacilityAnalysisLayer ツールを使用して店舗の場所から最寄りの倉庫を検索する方法を示しています。
# Name: MakeClosestFacilityAnalysisLayer_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
import os
try:
#Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
if arcpy.CheckExtension("network") == "Available":
arcpy.CheckOutExtension("network")
else:
raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
#Set environment settings
output_dir = "C:/Data"
#The NA layer's data will be saved to the workspace specified here
env.workspace = os.path.join(output_dir, "Output.gdb")
env.overwriteOutput = True
#Set local variables
input_gdb = "C:/Data/Paris.gdb"
network = os.path.join(input_gdb, "Transportation", "ParisMultimodal_ND")
layer_name = "ClosestWarehouse"
travel_mode = "Driving Time"
facilities = os.path.join(input_gdb, "Analysis", "Warehouses")
incidents = os.path.join(input_gdb, "Analysis", "Stores")
output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")
#Create a new closest facility analysis layer.
result_object = arcpy.na.MakeClosestFacilityAnalysisLayer(network,
layer_name, travel_mode, "TO_FACILITIES",
number_of_facilities_to_find=1)
#Get the layer object from the result object. The closest facility layer can
#now be referenced using the layer object.
layer_object = result_object.getOutput(0)
#Get the names of all the sublayers within the closest facility layer.
sublayer_names = arcpy.na.GetNAClassNames(layer_object)
#Stores the layer names that we will use later
facilities_layer_name = sublayer_names["Facilities"]
incidents_layer_name = sublayer_names["Incidents"]
#Load the warehouses as Facilities using the default field mappings and
#search tolerance
arcpy.na.AddLocations(layer_object, facilities_layer_name,
facilities, "", "")
#Load the stores as Incidents. Map the Name property from the NOM field
#using field mappings
field_mappings = arcpy.na.NAClassFieldMappings(layer_object,
incidents_layer_name)
field_mappings["Name"].mappedFieldName = "NOM"
arcpy.na.AddLocations(layer_object, incidents_layer_name, incidents,
field_mappings, "")
#Solve the closest facility layer
arcpy.na.Solve(layer_object)
#Save the solved closest facility layer as a layer file on disk
layer_object.saveACopy(output_layer_file)
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 occurred on line %i" % tb.tb_lineno)
print(str(e))
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい