解析の実行(Solve) (Network Analyst)

サマリ

指定したネットワーク ロケーションとプロパティに基づいて、ネットワーク解析レイヤを実行します。

使用法

構文

Solve_na (in_network_analysis_layer, {ignore_invalids}, {terminate_on_solve_error})
パラメータ説明データ タイプ
in_network_analysis_layer

解析が実行されるネットワーク解析レイヤ。

Network Analyst Layer
ignore_invalids
(オプション)
  • SKIP(スキップ)ソルバは未配置のネットワーク ロケーションをスキップし、有効なネットワーク ロケーションのみで解析レイヤを解決します。ロケーションが通過不可能なエレメント上にある場合、またはその他のエラーが検出された場合でも解析が続行されます。このオプションを使用すれば、不適切なネットワーク ロケーションが混在していても、現在有効なネットワーク ロケーションのみを解析できます。
  • HALT(中止)無効なロケーションがある場合、解析を実行しません。無効なロケーションを修正した後、解析を再実行します。

配車ルート ネットワーク解析レイヤの場合、すべてのネットワーク ロケーションが有効である必要があるため、HALT(中止)をパラメータ値に使用します。

Boolean
terminate_on_solve_error
(オプション)
  • TERMINATE(中止)エラーが発生した場合、ツールの実行を中止します。これがデフォルトです。このオプションを使用すると、ツールがソルバのエラーによって実行できなかった場合に結果オブジェクトは作成されません。ArcPy オブジェクトからジオプロセシング メッセージを取得する必要があります。
  • CONTINUE(継続)エラーが発生してもツールは停止せず、継続して実行されます。すべてのエラー メッセージが警告メッセージとして表示されます。このオプションを使用すると、結果オブジェクトが常に作成され、エラーが発生しても結果オブジェクトの maxSeverity プロパティは 1 に設定されます。結果オブジェクトの getOutput メソッドをインデックス値を 1 にして使用することで、解析が成功したかどうかを判断します。
Boolean

コードのサンプル

Solve(解析の実行)の例 1(Python ウィンドウ)

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

import arcpy
arcpy.Solve_na("Route","HALT","TERMINATE")
Solve(解析の実行)の例 2(ワークフロー)

次のスタンドアロン 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

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"
    outNALayer = "ClosestWarehouse"
    impedanceAttribute = "Drivetime"
    accumulateAttributeName = ["Meters"]
    inFacilities = "Analysis/Warehouses"
    inIncidents = "Analysis/Stores"
    fieldMappings = "Name NOM #"
    outLayerFile = "C:/data/output" + "/" + outNALayer + ".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.
    arcpy.MakeClosestFacilityLayer_na(inNetworkDataset,outNALayer,
                                      impedanceAttribute,"TRAVEL_TO","",1,
                                      accumulateAttributeName,"NO_UTURNS")
    
    #Load the warehouses as Facilities using the default field mappings and 
    #search tolerance
    arcpy.AddLocations_na(outNALayer,"Facilities",inFacilities,"","")
    
    #Load the Stores as Incidents. Map the Name property from the NOM field
    arcpy.AddLocations_na(outNALayer,"Incidents",inIncidents,fieldMappings,"")
    
    #Solve the closest facility layer
    arcpy.Solve_na(outNALayer)
    
    #Save the solved closest facility layer as a layer file on disk using
    #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