概要
コスト サーフェスの始点と終点間で最短パスを検索します。
使用法
[入力始点] と [入力終点] パラメーターの値は、[入力コスト サーフェス] パラメーターの範囲内に存在する必要があります。サーフェスの範囲外にあるポイントを使用すると、空の出力が返されます。
[入力始点] の値として複数のポイントを使用すると、処理時間が大幅に長くなります。
[入力終点] の値として複数のポイントを使用すると、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 パラメーター) のゼロ値の処理方法を指定します。
| String |
派生した出力
名前 | 説明 | データ タイプ |
out_start_point | シンボル表示された始点。 | フィーチャクラス |
out_end_point | シンボル表示された終点。 | フィーチャクラス |
コードのサンプル
次の 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")
次の 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