最小コスト パス (Least Cost Path) (インテリジェンス)

概要

コスト サーフェスの始点と終点間で最短パスを検索します。

使用法

  • [入力始点][入力終点] パラメーターの値は、[入力コスト サーフェス] パラメーターの範囲内に存在する必要があります。サーフェスの範囲外にあるポイントを使用すると、空の出力が返されます。

  • [入力始点] の値として複数のポイントを使用すると、処理時間が大幅に長くなります。

  • [入力終点] の値として複数のポイントを使用すると、3 つ以上の出力ライン フィーチャが生成される場合があります。

  • [入力コスト サーフェス] パラメーター内の NoData 値はバリアと見なされ、生成されるパスはこれらのエリアを迂回します。コスト サーフェス内にある NoData のセルの周辺にパスが見つからない場合、解が見つからないことがあります。その場合は、追加の手順を実行して、コスト サーフェスを変更する必要があります。

  • ツールは、UTM (ユニバーサル横メルカトル図法) など、投影座標系の [入力コスト サーフェス] パラメーターの値を使用して実行します。

  • 新しい StartID および DestID フィールドが、[出力パス フィーチャクラス] パラメーターに追加されます。これらのフィールドは、ラインが移動する始点と終点を表します。

  • 始点と終点は出力場所にコピーされ、[出力パス フィーチャクラス] の値に _start_end が付いた名前になります。

構文

arcpy.intelligence.LeastCostPath(in_cost_surface, in_start_point, in_end_point, out_path_feature_class, {handle_zeros})
パラメーター説明データ タイプ
in_cost_surface

始点から終点までの移動コストの判定に使用する入力ラスター。NoData 値は、通過できません。

Raster Layer
in_start_point

入力始点フィーチャ。複数の始点を使用すると、処理時間が大幅に長くなります。

Feature Set
in_end_point

入力終点フィーチャ。複数の終点を使用すると、出力ラインの数が増え、生成されるパスが別々のパスに分岐します。

Feature Set
out_path_feature_class

出力パス フィーチャクラス。

Feature Class
handle_zeros
(オプション)

[入力コスト サーフェス] パラメーター (Python では in_cost_surface パラメーター) のゼロ値の処理方法を指定します。

  • SMALL_POSITIVEすべてのゼロは、小さい正の値に変更されます。これにより、セルが通過可能になります。これがデフォルトです。
  • NO_DATAすべてのゼロは、NULL 値に変更されます。セルは通過できず、迂回されます。
String

派生した出力

名前説明データ タイプ
out_start_point

シンボル表示された始点。

フィーチャクラス
out_end_point

シンボル表示された終点。

フィーチャクラス

コードのサンプル

LeastCostPath (最小コスト パス) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで LeastCostPath 関数を使用する方法を示しています。

import arcpy
import os
arcpy.LeastCostPath_intelligence(r"c:\workspace\terrain.gdb\mob_cost_surf", 
                                 r"c:\workspace\startinglocation.shp",
                                 r"c:\workspace\endinglocation.shp",
                                 os.path.join(arcpy.env.scratchWorkspace, "bestpath"),
                                 "SMALL_POSITIVE")
LeastCostPath (最小コスト パス) の例 2 (スタンドアロン スクリプト)

次の Python スクリプトは、スタンドアロン スクリプトで LeastCostPath 関数を使用する方法を示しています。

# Name: LeastCostPath_Example2.py
# Description: Generate the least cost path between an input and output point 
#              based on a cost surface.
# Import system modules
import arcpy
import os
# Set local variables
in_cost_surface = r"c:\workspace\terrain.gdb\mob_cost_surf" 
in_start_point = r"c:\workspace\startinglocation.shp" 
in_end_point = r"c:\workspace\endinglocation.shp"
out_path_feature_class = os.path.join(arcpy.env.scratchWorkspace, "bestpath")
handle_zeros = "SMALL_POSITIVE"
# Execute LeastCostPath
arcpy.LeastCostPath_intelligence(in_cost_surface, in_start_point, 
                                 in_end_point, out_path_feature_class,
                                 handle_zeros)
# Report status
if arcpy.Exists(out_path_feature_class): 
    print("Path segments {}".format(arcpy.GetCount_management(out_path_feature_class)[0]))
else: 
    print("Empty output")

環境

このツールは、ジオプロセシング環境を使用しません。

ライセンス情報

  • Basic: 次のものが必要 Spatial Analyst
  • Standard: 次のものが必要 Spatial Analyst
  • Advanced: 次のものが必要 Spatial Analyst

関連トピック