コスト パス(Cost Path) (Spatial Analyst)
使用法
- 
[コスト パス(Cost Path)] ツールは、選択した位置から累積コスト サーフェス上でコスト距離が最も近いソース セルまでの最小コスト パスを記録する出力ラスタを作成します。 
- 
[コスト パス(Cost Path)] を実行する前に、通常は、1 つ以上の加重コスト ツール([コスト距離(Cost Distance)]、[コスト バック リンク(Cost Back Link)]、または [コスト アロケーション(Cost Allocation)])を実行して、入力のコスト距離とバック リンク ラスタを作成する必要があります。これらは、[コスト パス(Cost Path)] の必須入力ラスタです。 
- 
それぞれの最小コスト パスは、処理時に値が割り当てられます。コスト パスの元のソース ラスタ(コスト距離とバック リンクの出力元)の最終セルには 1 が割り当てられ、最初のパスには 3、2 番目のパスには 4 が割り当てられます。値 2 は、共通のコスト パスを含むパスの部分をマージするために予約されています。 
- 
入力目的地データがラスタの場合、一連の目的地セルは、有効な値を持つ入力ラスタまたはフィーチャ目的地データ内にあるすべてのセルから構成されます。値が NoData のセルは、ソース セットには含まれません。値ゼロは、正当な目的地と見なされます。目的地ラスタは、[抽出] ツールを使用して簡単に作成できます。 
- ソース入力がフィーチャの場合、デフォルトで、最初の有効な利用可能フィールドが使用されます。有効なフィールドが存在しない場合は、ObjectID フィールド(たとえば、フィーチャ入力のタイプによって、OID または FID など)が使用されます。 
- 入力の目的地フィーチャにポリゴンフィーチャ データを使用する場合は、出力セル サイズが入力の詳細度よりも粗いときの処理方法に注意する必要があります。[ポリゴン → ラスタ(Polygon to Raster)] ツールを使用する内部的なラスタ化処理では、[集約タイプ] のデフォルト設定が [CELL_CENTER] になります。つまり、セルの中心に配置されていないデータはラスタ化された目的地の中間出力に含まれず、距離の計算では表されません。たとえば、目的地が出力のセル サイズに比べて小さい一連のポリゴン(建物のフットプリントなど)である場合は、一部のポリゴンだけが出力ラスタ セルの中心に分類され、ほとんどのポリゴンが解析で失われたように見える可能性があります。 - この状況を回避するには、中間的な手順として、[ポリゴン → ラスタ(Polygon to Raster)] ツールを使用して入力フィーチャを直接ラスタ化し、[優先フィールド] を設定して、結果の出力を [距離(Distance)] ツールの入力として使用します。または、入力フィーチャから適切な量の情報を捕捉できる、十分に小さいセル サイズを選択することもできます。 
- 
複数のパスがマージされ、ソースに戻る残りの距離が同じルートの場合、2 つのパスが移動するセグメントには値 2 が割り当てられます。マージされた部分は両方のルートに属するため、マージされたパスの部分には、パスの値を割り当てることはできません。 ![マージされたパスでの [BYZONE] オプションの例 マージされたパスでの [BYZONE] オプションの例](009z/GUID-10915411-293A-4E3F-B7ED-8A3223771982-web.png) マージされたパスでの [BYZONE] オプションの例 マージされたパスでの [BYZONE] オプションの例
- 
[コスト パス(Cost Path)] には、[マスク] 環境設定が適用されません。解析範囲は、コスト距離とコスト バック リンク ラスタと違う範囲にはしないでください。 
- 
[コスト パス(Cost Path)] は、[セル サイズ] 環境設定を無視し、出力ラスタの [入力コスト バック リンク ラスタ] のセル サイズを使用します。バック リンク ラスタのパターンは、別の解像度にリサンプリングされた場合は、大幅に変化します。混乱を避けるために、このツールを使用するときは、セル サイズを設定しないでください。 
- 
[コスト パス(Cost Path)] を使用して、デジタル標高モデル(DEM)で負荷が最小のパスを算出することもできます。この場合、[入力コスト距離ラスタ] に DEM、[入力コスト バック リンク ラスタ] に [流向ラスタの作成(Flow Direction)] ツールからの出力を使用します。有効な流向ラスタ値は、1、2、4、8、16、32、64、128 です。バック リンク ラスタの有効値は、1、2、3、4、5、6、7、8 です。これらはどちらも使用できます。 
- 
入力目的地データがフィーチャの場合、少なくとも 1 つの有効なフィールドがある必要があります。 
構文
| パラメータ | 説明 | データ タイプ | 
| in_destination_data | 最小コストのソースまでの最小コスト パスが求められるセルを識別するラスタまたはフィーチャ データセット 入力がラスタの場合、入力は有効な値(ゼロは有効値)を持つセルから構成され、残りのセルには NoData を割り当てる必要があります。 | Raster Layer | Feature Layer | 
| in_cost_distance_raster | 目的地の位置からソースまでの最小コスト パスを決定するために使用されるコスト距離ラスタの名前 コスト距離ラスタは通常、[コスト距離(Cost Distance)]、[コスト アロケーション(Cost Allocation)] または [コスト バック リンク(Cost Back Link)] ツールを使用して作成します。コスト距離ラスタは、各セルから一連のソース セルまでのコスト サーフェス上での最小累積コスト距離を、セルごとに格納しています。 | Raster Layer | 
| in_cost_backlink_raster | 最小コスト パスでソースに戻るパスを決定するために使用するバック リンク ラスタの名前。 バック リンク ラスタの各セルについて、値は、セルから 1 つのソース セルまたは一連のソース セルまでの最小累積コスト パス上にある次のセルである近傍を識別します。 | Raster Layer | 
| path_type (オプション) | 入力目的地データの値とゾーンを、コスト パスの計算の中でどのように解釈するかを定義するキーワード 
 | String | 
| destination_field (オプション) | 目的地の位置の値を取得するために使用するフィールド。 入力フィーチャ データには、少なくとも 1 つの有効なフィールドがある必要があります。 | Field | 
戻り値
| 名前 | 説明 | データ タイプ | 
| out_raster | 出力コスト パス ラスタ。 出力ラスタのタイプは整数です。 | Raster | 
コードのサンプル
次の Python ウィンドウ スクリプトで、[CostPath(コスト パス)] ツールの使用方法を示します。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCostPath = CostPath("observers", "costraster", "backlink2", "EACH_CELL")
outCostPath.save("c:/sapyexamples/output/costpath")
ソースから目的地までの最小コスト パスを計算します。
# Name: CostPath_Ex_02.py
# Description: Calculates the least-cost path from a source to 
#              a destination.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inDestination = "observers.shp"
costRaster = "costraster"
backLink = "backlink2"
method = "EACH_CELL"
destField = "FID"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute CostPath
outCostPath = CostPath(inDestination, costRaster, backLink, method,
                       destField)
# Save the output 
outCostPath.save("c:/sapyexamples/output/costpath02")