最小コスト パス (Least Cost Path) (AllSource)

サマリー

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

使用法

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

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

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

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

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

  • [ゼロ コストの処理方法] パラメーターの [小さい正の値] オプションは、入力コスト ラスターのサイズと、パス計算アルゴリズムの精度の制限と比較した最大コスト値によって推定されます。 これは、出力パスの作成中に行き止まりが発生する機会を減らすために行われます。 小さい正の値は次のように推定されます。

    max(height_of_cost_raster, width_of_cost_raster) * max_cost_value / 100000

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

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

パラメーター

ラベル説明データ タイプ
入力コスト サーフェス

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

Raster Layer
入力始点

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

Feature Set
入力終点

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

Feature Set
出力パス フィーチャクラス

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

Feature Class
ゼロ コストの処理方法
(オプション)

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

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

派生した出力

ラベル説明データ タイプ
出力始点

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

Feature Class
出力終点

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

Feature Class

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
(オプション)

in_cost_surface パラメーター値のゼロ値の処理方法を指定します。

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

派生した出力

名前説明データ タイプ
out_start_point

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

Feature Class
out_end_point

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

Feature Class

コードのサンプル

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"

# Run LeastCostPath
arcpy.intelligence.LeastCostPath(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.management.GetCount(out_path_feature_class)[0]))
else: 
    print("Empty output")

環境

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

ライセンス情報

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

関連トピック