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

ライセンス レベル:BasicStandardAdvanced

サマリ

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

使用法

構文

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

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

Network Analyst Layer
ignore_invalids
(オプション)
  • SKIP(スキップ)ソルバは未配置のネットワーク ロケーションをスキップし、有効なネットワーク ロケーションのみで解析レイヤを解決します。ロケーションが通過不可能なエレメント上にある場合、またはその他のエラーが検出された場合でも解析が続行されます。このオプションを使用すれば、不適切なネットワーク ロケーションが混在していても、現在有効なネットワーク ロケーションのみを解析できます。
  • HALT(中止)無効なロケーションがある場合、解析を実行しません。無効なロケーションを修正した後、解析を再実行します。
Boolean
terminate_on_solve_error
(オプション)
  • TERMINATE(中止)エラーが発生した場合、ツールの実行を中止します。これはデフォルト設定です。このオプションを使用すると、ツールがソルバのエラーによって実行できなかった場合に結果オブジェクトは作成されません。ArcPy オブジェクトからジオプロセシング メッセージを取得する必要があります。
  • CONTINUE(継続)エラーが発生してもツールは停止せず、継続して実行されます。すべてのエラー メッセージが警告メッセージとして表示されます。このオプションを使用すると、結果オブジェクトが常に作成され、エラーが発生しても結果オブジェクトの maxSeverity プロパティは 1 に設定されます。結果オブジェクトの getOutput メソッドをインデックス値を 1 にして使用することで、解析が成功したかどうかを判断します。
Boolean
simplification_tolerance
(オプション)

出力ジオメトリの単純化の度合いを決定する許容値。許容値を指定する場合、0(ゼロ)より大きい値を指定する必要があります。単位は自由に選択できます。デフォルトの単位は 10 進度です。

単純化許容値を指定すると、ルートまたは到達圏のレンダリングが高速化する傾向があります。ただし、その欠点は、ジオメトリの単純化によって頂点が削除され、大きいスケールで出力の空間的な正確性が低下する可能性があることです。

頂点が 2 つしかないラインはそれ以上単純化できないため、このパラメータは、直線ルート、OD コスト マトリックス ライン、ロケーション-アロケーション ラインなどの単一セグメント出力の描画時間には影響を与えません。

Linear unit

コードのサンプル

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

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

import arcpy
arcpy.na.Solve("Route","HALT","TERMINATE", "10 Meters")
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"
    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)

環境

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: 次のものが必要 Network Analyst
ArcGIS for Desktop Standard: 次のものが必要 Network Analyst
ArcGIS for Desktop Advanced: 次のものが必要 Network Analyst
5/10/2014