コスト パス (Cost Path) (Spatial Analyst)

Spatial Analyst のライセンスで利用可能。

サマリー

ソースから目的地までの最小コスト パスを計算します。

レガシー:

このツールは非推奨となり、将来のリリースで削除される予定です。

[最適パス (ラスター) (Optimal Path As Raster)] ツールにより、機能またはパフォーマンスが向上します。

最小コスト パスの作成の詳細

使用法

  • [コスト パス (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)] ツールを使用する内部的なラスター化処理では、[集約タイプ] のデフォルト設定が [セルの中心] になります。 つまり、セルの中心に配置されていないデータは、ラスター化された目的地の出力に含まれず、距離の計算では表されません。 たとえば、目的地が出力のセル サイズに比べて小さい一連のポリゴン (建物のフットプリントなど) である場合は、一部のポリゴンだけが出力ラスター セルの中心に分類され、ほとんどのポリゴンが解析で失われたように見える可能性があります。

    この状況を回避するには、中間的な手順として、[フィーチャ → ラスター (Feature to Raster)] ツールを使用して入力フィーチャを直接ラスター化し、[フィールド] パラメーターを設定します。 次に、結果の出力を距離ツールの入力として使用します。 また、入力フィーチャから適切な量の情報を捕捉できる小さいセル サイズを選択することもできます。

  • 複数のパスがマージされ、ソースに戻る残りの距離が同じルートの場合、2 つのパスが移動するセグメントには値 2 が割り当てられます。 マージされた部分は両方のルートに属するため、マージされたパスの部分には、パスの値を割り当てることはできません。

    マージされたパスのマップ
    マージされたパスでの [各ゾーン] オプションの例

  • [コスト パス (Cost Path)] は、[セル サイズ] 環境設定を無視し、出力ラスターの [入力コスト バック リンク ラスター] のセル サイズを使用します。 バック リンク ラスターのパターンは、別の解像度にリサンプリングされた場合は、大幅に変化します。 混乱を避けるために、このツールを使用するときは、セル サイズを設定しないでください。

  • [コスト パス (Cost Path)] を使用して、D8 流向ラスターに基づいた流路を決定できます。 [コスト パス (Cost Path)] をこの目的で使用するには、[入力コスト バック リンク ラスター] の入力として D8 流向ラスターを使用します。 [入力コスト距離ラスター] も指定する必要があります。[入力コスト距離ラスター] はパスの決定に使用されません。 定数ラスターまたはデジタル標高モデル (DEM) のどちらを使用しても、パスは同じになります。パス上の属性値のみが変化します。 D8 流向ラスターの詳細については、[流向ラスターの作成 (Flow Direction)] ツールをご参照ください。

  • 入力目的地データがフィーチャの場合、少なくとも 1 つの有効なフィールドがある必要があります。

  • 出力ラスターの形式が .crf の場合、このツールはピラミッド ラスター格納環境をサポートします。 デフォルトでは、ピラミッドは出力で作成されます。 その他の出力形式ではこの環境はサポートされず、ピラミッドは作成されません。

  • このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。

パラメーター

ラベル説明データ タイプ
入力ラスター、または目的地フィーチャ データ

最小コストのソースまでの最小コスト パスが求められるセルを識別するラスターまたはフィーチャ データセット。

入力がラスターの場合、入力は有効な値 (ゼロは有効値) を持つセルから構成され、残りのセルには NoData を割り当てる必要があります。

Raster Layer; Feature Layer
入力コスト距離ラスター

目的地の位置からソースまでの最小コスト パスを決定するために使用されるコスト距離ラスターの名前

コスト距離ラスターは通常、[コスト距離 (Cost Distance)][コスト アロケーション (Cost Allocation)] または [コスト バック リンク (Cost Back Link)] ツールを使用して作成します。 コスト距離ラスターは、各セルから一連のソース セルまでのコスト サーフェス上での最小累積コスト距離を、セルごとに格納しています。

Raster Layer
入力コスト バックリンク ラスター

最小コスト パスでソースに戻るパスを決定するために使用するバック リンク ラスターの名前。

バック リンク ラスターの各セルについて、値は、セルから 1 つのソース セルまたは一連のソース セルまでの最小累積コスト パス上にある次のセルである近傍を識別します。

Raster Layer
パスの種類
(オプション)

入力目的地データの値とゾーンを、コスト パスの計算の中でどのように解釈するかを定義するキーワード

  • 各セル入力目的地データの有効な値を持つ各セルについて、最小コスト パスが求められ出力ラスターに保存されます。 このオプションを使用すると、入力目的地データの各セルは別々に扱われ、それぞれの最小コスト パスがセルから決定されます。
  • 各ゾーン入力目的地データの有効な値を持つ各ゾーンについて、最小コスト パスが求められ出力ラスターに保存されます。 このオプションを使用すると、各ゾーンの最小コスト パスは、ゾーン内で最低のコスト距離加重を持つセルから開始します。
  • 最適な単一パス入力目的地データのすべてのセルについて、最小コスト パスは、ソース セルへの最小コスト パスの最小値を使用してセルから求められます。
String
目的地フィールド
(オプション)

目的地の位置の値を取得するために使用するフィールド。

入力フィーチャ データには、少なくとも 1 つの有効なフィールドがある必要があります。

Field
強制的にバックリンク ラスターを流向に変換
(オプション)

入力バックリンク ラスターを流向ラスターとして処理するかどうかを指定します。 流向ラスターには、0 ~ 255 の範囲に含まれる整数値を指定できます。

  • オフ - [入力コスト バックリンク ラスター] 値の解釈が、値の範囲と整数または浮動小数点のどちらであるかによって異なります。 値の範囲が 0 ~ 8 の場合、[入力コスト バックリンク ラスター] 値はバックリンク ラスターとして処理されます。 値の範囲が 0 ~ 255 で整数の場合、[入力コスト バックリンク ラスター] 値は流向ラスターとして処理されます。 値の範囲が 0 ~ 360 で浮動小数点の場合、[入力コスト バックリンク ラスター] 値はバック方向ラスターとして処理されます。
  • オン - [入力コスト バックリンク ラスター] パラメーターに指定されたラスターが流向ラスターとして処理されます。 これは、流向ラスターの最大値が 8 以下である場合に必要です。
Boolean

戻り値

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

出力コスト パス ラスター。

出力ラスターのタイプは整数です。

Raster

CostPath(in_destination_data, in_cost_distance_raster, in_cost_backlink_raster, {path_type}, {destination_field}, {force_flow_direction_convention})
名前説明データ タイプ
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
(オプション)

入力目的地データの値とゾーンを、コスト パスの計算の中でどのように解釈するかを定義するキーワード

  • EACH_CELL入力目的地データの有効な値を持つ各セルについて、最小コスト パスが求められ出力ラスターに保存されます。 このオプションを使用すると、入力目的地データの各セルは別々に扱われ、それぞれの最小コスト パスがセルから決定されます。
  • EACH_ZONE入力目的地データの有効な値を持つ各ゾーンについて、最小コスト パスが求められ出力ラスターに保存されます。 このオプションを使用すると、各ゾーンの最小コスト パスは、ゾーン内で最低のコスト距離加重を持つセルから開始します。
  • BEST_SINGLE入力目的地データのすべてのセルについて、最小コスト パスは、ソース セルへの最小コスト パスの最小値を使用してセルから求められます。
String
destination_field
(オプション)

目的地の位置の値を取得するために使用するフィールド。

入力フィーチャ データには、少なくとも 1 つの有効なフィールドがある必要があります。

Field
force_flow_direction_convention
(オプション)

入力バックリンク ラスターを流向ラスターとして処理するかどうかを指定します。 流向ラスターには、0 ~ 255 の範囲に含まれる整数値を指定できます。

  • INPUT_RANGEin_cost_backlink_raster 値の解釈が、値の範囲と整数または浮動小数点のどちらであるかによって異なります。 値の範囲が 0 ~ 8 の場合、in_cost_backlink_raster 値はバックリンク ラスターとして処理されます。 値の範囲が 0 ~ 255 で整数の場合、in_cost_backlink_raster 値は流向ラスターとして処理されます。 値の範囲が 0 ~ 360 で浮動小数点の場合、in_cost_backlink_raster 値はバック方向ラスターとして処理されます。
  • FLOW_DIRECTIONin_cost_backlink_raster パラメーターに指定されたラスターが流向ラスターとして処理されます。 これは、流向ラスターの最大値が 8 以下である場合に必要です。
Boolean

戻り値

名前説明データ タイプ
out_raster

出力コスト パス ラスター。

出力ラスターのタイプは整数です。

Raster

コードのサンプル

CostPath の例 1 (Python ウィンドウ)

次の 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")
CostPath (コスト パス) の例 2 (スタンドアロン スクリプト)

ソースから目的地までの最小コスト パスを計算します。

# 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"
costDistanceRaster = "costdistraster"
backLink = "backlink2"
method = "EACH_CELL"
destField = "FID"

# Execute CostPath
outCostPath = CostPath(inDestination, costDistanceRaster, backLink, method,
                       destField)

# Save the output 
outCostPath.save("c:/sapyexamples/output/costpath02")

関連トピック