概要
指定したネットワーク ロケーションとプロパティに基づいて、ネットワーク解析レイヤーを実行します。
使用法
解析が失敗すると、警告およびエラー メッセージにより失敗の原因に関する有用な情報が表示されます。
このツールを実行する前に、解析の実行に必要なネットワーク解析レイヤーのすべてのパラメーターを必ず指定してください。
このツールは、ネットワーク解析レイヤーが ArcGIS Online をネットワーク データ ソースとして参照する場合にクレジットを消費します。詳細については、「サービス クレジットの概要」をご参照ください。
構文
Solve(in_network_analysis_layer, {ignore_invalids}, {terminate_on_solve_error}, {simplification_tolerance}, {overrides})
パラメーター | 説明 | データ タイプ |
in_network_analysis_layer | 解析が実行されるネットワーク解析レイヤー。 | Network Analyst Layer |
ignore_invalids (オプション) | 無効な入力ロケーションを無視するかどうかを指定します。
| Boolean |
terminate_on_solve_error (オプション) | 解析中にエラーが発生した場合、ツールの実行を終了するかどうかを指定します。
| Boolean |
simplification_tolerance (オプション) | 出力ジオメトリの単純化の度合いを決定する許容値。許容値を指定する場合、0 (ゼロ) より大きい値を指定する必要があります。単位は自由に選択できます。デフォルトの単位は 10 進度です。 単純化許容値を指定すると、ルートまたは到達圏のレンダリングが高速化する傾向があります。ただし、その欠点は、ジオメトリの単純化によって頂点が削除され、大きいスケールで出力の空間的な正確性が低下する可能性があることです。 頂点が 2 つしかないラインはそれ以上単純化できないため、このパラメーターは、直線ルート、OD コスト マトリックス ライン、ロケーション-アロケーション ラインなどの単一セグメント出力の描画時間には影響を与えません。 | Linear Unit |
overrides (オプション) | ネットワーク解析問題の解決法を見つける場合に、解析の動作に影響を与えることができる追加設定を指定します。 JSON (JavaScript Object Notation) で、このパラメーターの値を指定する必要があります。たとえば、有効な値は {"overrideSetting1" : "value1", "overrideSetting2" : "value2"} という形式です。オーバーライド設定名は、必ず二重引用符で囲みます。値は、数値、ブール型、または文字列のいずれかにすることができます。 このパラメーターのデフォルト値は、値なしであり、解析の設定を上書きしません。 オーバーライドは、設定を適用する前後で得られた結果を慎重に分析した後にのみ使用する必要のある高度な設定です。解析ごとにサポートされているオーバーライド設定の一覧およびそれらの許容される値については、Esri テクニカル サポートにお問い合わせください。 | String |
派生した出力
名前 | 説明 | データ タイプ |
output_layer | 解析されたネットワーク解析レイヤー。 | Network Analyst レイヤー |
solve_succeeded | 解析が成功したかどうかを示すブール値。 | ブール型 |
コードのサンプル
すべてのパラメーターを使用してツールを実行します。
arcpy.na.Solve("Route", "HALT", "TERMINATE", "10 Meters")
次のスタンドアロン Python スクリプトは、Solve ツールを使用して最寄り施設解析を実行し、結果をレイヤー ファイルに保存する方法を示しています。
# Name: Solve_Workflow.py
# Description: Solve a closest facility analysis to 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: 制限付き