Skip To Content

コスト パス (ポリライン) (Cost Path as Polyline)

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

概要

ソースから目的地までの最小コストパスをライン フィーチャとして算出します。

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

使用法

  • コスト パス (ポリライン) (Cost Path as Polyline) ツールは、ソースから累積コスト サーフェス上でコスト距離が最も近い目的地までの最小コスト パスを記録する出力ポリライン フィーチャを作成します。

  • コスト パス (ポリライン) (Cost Path as Polyline) を実行する前に、通常は、1 つ以上の加重コスト ツール ([コスト距離 (Cost Distance)][コスト バック リンク (Cost Back Link)]、または [コスト アロケーション (Cost Allocation)]) を実行して、入力のコスト距離とバック リンク ラスターを作成しておく必要があります。これらは、[コストパス (ポリライン) (Cost Path as Polyline)] の必須入力ラスターです。

  • 入力目的地データがラスターの場合、一連の目的地セルは、有効な値を持つ [入力ラスター、または目的地フィーチャ データ] 内にあるすべてのセルから構成されます。値が NoData のセルは、ソース セットには含まれません。値ゼロは、正式な目的地と見なされます。目的地ラスターは、[抽出] ツールを使用して作成できます。

  • ソース入力がフィーチャの場合、デフォルトで、最初の有効な利用可能フィールドが使用されます。有効なフィールドが存在しない場合は、ObjectID フィールド (たとえば、フィーチャ入力のタイプによって、OID または FID など) が使用されます。

  • 特に、入力目的地フィーチャにポリゴン フィーチャを使用する際、出力セル サイズが入力フィーチャよりも粗い場合の処理方法に注意する必要があります。[セルの中心][集約タイプ] のデフォルト設定で、[ポリゴン ラスター (Polygon to Raster)] ツールを使用する内部的なラスター化処理が適用されます。つまり、セルの中心に配置されていないデータは、ラスター化された目的地の出力に含まれず、距離の計算では表されません。たとえば、目的地が出力のセル サイズに比べて小さい一連のポリゴン (建物のフットプリントなど) である場合は、一部のポリゴンだけが出力ラスター セルの中心に分類され、多くのポリゴンが解析で失われたように見える可能性があります。

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

  • 出力ポリライン フィーチャには、各ラインの目的地を識別する DestID というフィールドがあります。出力がファイル ジオデータベースに書き込まれる場合は、最小コスト パスの全長が格納される shape_length というフィールドがあります。

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

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

  • コスト パス (ポリライン) (Cost Path as Polyline) を使用して、ユークリッド ツールから生成された [出力バック方向ラスター] に基づいたバリア周りのパスを決定できます。コスト パス (ポリライン) (Cost Path as Polyline) をこの目的で使用するには、まず [出力コスト距離ラスター][出力バック方向ラスター] を生成するために定義された [入力ラスター、またはフィーチャ バリア データ] を使ってユークリッド ツールを実行します。コスト パス (ポリライン) (Cost Path as Polyline) への入力としてユークリッド ツールから生成された出力を使用します。

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

構文

CostPathAsPolyline(in_destination_data, in_cost_distance_raster, in_cost_backlink_raster, out_polyline_features, {path_type}, {destination_field})
パラメーター説明データ タイプ
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

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

バックリンク、バック方向、またはフロー方向ラスターの各セルについて、値は、そのセルからソース セルまでのパス上にある次のセルである近傍を識別します。

Raster Layer
out_polyline_features

最小コスト パスを保持する出力フィーチャクラス。

Feature Class
path_type
(オプション)

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

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

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

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

Field

コードのサンプル

CostPathAsPolyline (コスト パス (ポリライン)) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、このツールの使用方法を示しています。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
CostPathAsPolyline("observers", "costraster", "backlink2", "c:/sapyexamples/output/outcostpth01.shp")
CostPathAsPolyline (コスト パス (ポリライン)) の例 2 (スタンドアロン スクリプト)

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

# Name: CostPathAsPolyline_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"
inCostRaster = "costraster"
inBacklink = "backlink2"
outCostPathFeat = "c:/sapyexamples/output.gdb/outcostpathfeat02"
method = "EACH_CELL"
destField = "FID"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute
CostPathAsPolyline(inDestination, inCostRaster, inBacklink, 
                   outCostPathFeat, method, destField)

ライセンス情報

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

関連トピック