Spatial Analyst のライセンスで利用可能。
サマリー
水平コスト係数と垂直コスト係数とともにサーフェス距離を考慮に入れて、コスト サーフェスの最小累積コストに基づき、各セルの最小コスト ソースを計算します。
使用法
[パスの距離 (Path Distance)] ツールは、ラスターの各セル位置とソースとの最小累積移動コストを求めるという点では [コスト距離 (Cost Distance)] ツールと同等です。ただし、[パスの距離 (Path Distance)] ツールでは、他の水平方向ファクターと垂直方向ファクターに加えて実際のサーフェス距離を考慮できるため、解析が複雑になります。
入力ソース データは、フィーチャクラスまたはラスターです。
入力ソース データがラスターの場合、一連のソース セルは、ソース ラスター内にある有効な値を持つすべてのセルから構成されます。値が NoData のセルは、ソース セットには含まれません。値 0 (ゼロ) は、正当なソースと見なされます。ソース ラスターは、[抽出] ツールを使用して簡単に作成できます。
入力ソース データがフィーチャクラスの場合、解析を実行する前に内部でソースの位置がラスターに変換されます。ラスターの解像度は [セル サイズ] 環境で制御できます。デフォルトでは、コスト、サーフェス、水平方向ファクター、および垂直方向ファクターの入力ラスター間の最大セル サイズによって解像度が決まります。これらのオプション入力ラスターがいずれも指定されていない場合は、セル サイズ環境に特定の値を設定する必要があります。
入力のソース データにポリゴンフィーチャ データを使用する場合は、出力セル サイズが入力の詳細よりも粗いときの処理方法に注意する必要があります。内部的なラスター化処理では、[ポリゴン → ラスター (Polygon to Raster)] ツールと同じデフォルトの [集約タイプ] (セルの中心メソッド) が使用されます。つまり、セルの中心に配置されていないデータはラスター化されたソースの中間出力に含まれず、距離の計算では表されません。たとえば、ソースが出力のセル サイズに比べて小さい一連のポリゴン (建物のフットプリントなど) である場合は、一部のポリゴンだけが出力ラスター セルの中心に分類され、ほとんどのポリゴンが解析で失われたように見える可能性があります。
この状況を回避するには、中間的な手順として、[ポリゴン → ラスター (Polygon to Raster)] ツールを使用して入力フィーチャを直接ラスター化し、[優先フィールド] を設定します。次に、結果の出力を [距離 (Distance)] ツールの入力として使用します。または、入力フィーチャから適切な量の情報を捕捉できる、小さいセル サイズを選択することもできます。
アロケーションを計算するために、ソース位置に値を関連付けることができます。これは [ソース フィールド] パラメーターで指定できます。入力ソースが整数ラスターである場合、デフォルト フィールドは VALUE です。入力ソースがフィーチャである場合、デフォルト フィールドは属性テーブルの最初の整数フィールドになります。入力ソース データが浮動小数点ラスターである場合、整数値ラスターのパラメーターを指定する必要があります。
NoData 値のセルは、[パスの距離 (Path Distance)] ツールではバリアとして働きます。NoData 値の背後にあるセルのコスト距離は、NoData バリアを回避するのに必要な累積コストによって計算されます。いずれかの入力ラスターで NoData が割り当てられたセル位置は、すべての出力ラスターで NoData になります。
入力ソース データとコスト ラスターの範囲が異なる場合、デフォルトの出力範囲は両者の交差部分です。範囲全体のコスト距離サーフェスを取得するには、出力の [範囲] 環境設定で [入力データのすべての領域] オプションを選択します。
[傾斜方向 (Aspect)] ツールの出力は、[入力水平方向ラスター] の入力として使用できます。
[最大距離] はコスト ラスターと同じコストの単位で指定します。
出力距離ラスターの場合、セルと一部ソース位置との最小コスト距離 (または最小累積コスト距離) は、セルから全ソース位置までの最小コスト距離の下限です。
水平方向ファクターの修飾子のデフォルト値は次のとおりです。
Keywords Zero factor Cut angle Slope Side value -------------- ----------- ----------- ----- --------- Binary 1.0 45 ~ ~ Forward 0.5 45 (fixed) ~ 1.0 Linear 0.5 181 1/90 ~ Inverse linear 2.0 180 -1/90 ~
垂直方向ファクターの修飾子のデフォルト値は次のとおりです。
Keyword Zero factor Low cut Height cut Slope Power Cos Sec angle angle power power ------------------------ ----------- ------- ---------- ----- ----- ----- ----- Binary 1.0 -30 30 ~ ~ ~ ~ Linear 1.0 -90 90 1/90 ~ ~ ~ Symmetric linear 1.0 -90 90 1/90 ~ ~ ~ Inverse linear 1.0 -45 45 -1/45 ~ ~ ~ Symmetric inverse linear 1.0 -45 45 -1/45 ~ ~ ~ Cos ~ -90 90 ~ 1.0 ~ ~ Sec ~ -90 90 ~ 1.0 ~ ~ Cos_sec ~ -90 90 ~ ~ 1.0 1.0 Sec_cos ~ -90 90 ~ ~ 1.0 1.0
ソースの特性、またはソースに対する移動者は、特定のパラメーターで制御できます。[ソースのコスト乗数] パラメーターは、移動のモードまたはソースの強度を決定します。[ソースの開始コスト] は、移動開始前の開始コストを設定します。[ソースの耐性率] は、ハイカーの疲労度のシミュレーションなど、累積コストの影響を考慮した動的な調整を表します。[ソースのキャパシティ] は、制限に達するまでソースが許容できるコストの量を設定します。[移動方向] は、移動者がソースを起点としてソース以外の場所に移動するか、ソース以外の場所を起点としてソースへ戻るかを識別します。
フィールドを使用してソース特性パラメーターを指定した場合、そのソース特性は、指定されたソース データのフィールド内の情報に従い、ソースごとに適用されます。キーワードまたは定数値が指定された場合は、すべてのソースに適用されます。
[ソースの開始コスト] が指定され、[移動方向] が [ソースから移動] の場合、出力コスト距離サーフェス上のソース位置が [ソースの開始コスト] の値に設定されます。そうでない場合は、出力コスト距離サーフェス上のソース位置はゼロに設定されます。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
PathAllocation (in_source_data, {in_cost_raster}, {in_surface_raster}, {in_horizontal_raster}, {horizontal_factor}, {in_vertical_raster}, {vertical_factor}, {maximum_distance}, {in_value_raster}, {source_field}, {out_distance_raster}, {out_backlink_raster}, {source_cost_multiplier}, {source_start_cost}, {source_resistance_rate}, {source_capacity}, {source_direction})
パラメーター | 説明 | データ タイプ |
in_source_data | 入力ソース位置。 これは、あらゆる出力セル位置について最小累積コスト距離の計算対象となるセルまたは位置を特定するラスター データセットまたはフィーチャ データセットです。 ラスターの場合、入力タイプは整数または浮動小数点数です。 入力ソース ラスターが浮動小数点数の場合、{in_value_raster} で整数タイプのラスターを指定する必要があります。値ラスターは {source_field} の設定より優先されます。 | Raster Layer; Feature Layer |
in_cost_raster (オプション) | 各セル内を平面的に通過するときにかかるインピーダンスまたはコストを定義するラスター。 各セル位置の値は、そのセル上を通過するための単位距離あたりのコストを表します。セル内を通過する総コストを取得するために、各セル位置の値にセル解像度を乗算して、対角移動についても補正します。 コスト ラスターとして、整数値または浮動小数点値を使用できますが、負の値や 0 は使用できません (負またはゼロのコストは指定できません)。 | Raster Layer |
in_surface_raster (オプション) | 各セル位置の標高値を定義するラスター。 この値は、セル間を通過するときにたどる実際のサーフェス距離を計算するときに使用されます。 | Raster Layer |
in_horizontal_raster (オプション) | 各セルの水平方向を定義するラスター。 ラスター上の値は 0 〜 360 の範囲の整数でなくてはいけません。0 度は北または画面の上方向を示し、値は時計回りに増加します。平らなエリアには -1 という値を指定します。各位置の値は {horizontal_factor} と組み合わせて、あるセルから隣接セルに移動するときに発生する水平コストを決定するときに使用されます。 | Raster Layer |
horizontal_factor (オプション) | Horizontal Factor オブジェクトは、水平コスト ファクターと水平相対移動角度 (HRMA) の間の関係を定義します。 定義された水平方向ファクター グラフを特定する修飾子付きのファクターがいくつかあって選択できます。さらに、テーブルを使用してカスタム グラフを作成することもできます。グラフは、隣接セルに移動する総コストを計算するときに使用する水平方向ファクターを特定するために使用されます。 以下の説明では、2 つ略語を使用しています。HF は水平方向ファクターを表し、あるセルから次のセルに移動するときに生じる水平移動の難易度を定義します。HRMA は水平相対移動角度を表し、セルからの水平方向と移動方向がなす角度を示します。 オブジェクトには以下の種類があります。 これらの定義とパラメーターは次のとおりです。
水平方向ファクター キーワードの修飾子は次のとおりです。
| Horizontal factor |
in_vertical_raster (オプション) | 各セル位置の Z 値を定義するラスター。 この値は、あるセルから別のセルに移動するときに生じる垂直方向ファクターを特定する傾斜角を計算するために使用されます。 | Raster Layer |
vertical_factor (オプション) | Vertical factor オブジェクトは、垂直コスト ファクターと垂直相対移動角度 (VRMA) の間の関係を定義します。 定義された垂直方向ファクター グラフを特定する修飾子付きのファクターがいくつかあって選択できます。さらに、テーブルを使用してカスタム グラフを作成することもできます。グラフは、隣接セルに移動する総コストを計算するときに使用する垂直方向ファクターを特定するために使用されます。 以下の説明では、2 つ略語を使用しています。VF は垂直方向ファクターを表し、あるセルから次のセルに移動するときに生じる垂直移動の困難度を定義します。VRMA は垂直相対移動角度を表し、FROM セル (処理中のセル) と TO セルの間の傾斜角度を示します。 オブジェクトには以下の種類があります。
これらの定義とパラメーターは次のとおりです。
垂直方向ファクター パラメーターの修飾子は次のとおりです。
| Vertical factor |
maximum_distance (オプション) | 累積コスト値が超えることのできない閾値を定義します。 累積コスト距離がこの値を超える場合、セル位置の出力値は NoData になります。最大距離は、累積コスト距離を計算する範囲を定義します。 デフォルトは出力ラスターのエッジまでです。 | Double |
in_value_raster (オプション) | 各入力ソース位置で使用するゾーン値を特定する入力整数ラスター。 各ソース位置 (セルまたはフィーチャ) について、{in_value_raster} によって定義された値が、計算のためにソース位置に配分されたすべてのセルに割り当てられます。値ラスターは {source_field} の設定より優先されます。 | Raster Layer |
source_field (オプション) | ソース位置に値を割り当てるために使用するフィールド。整数タイプでなければいけません。 {in_value_raster} が設定されている場合、その入力値は {source_field} の設定より優先されます。 | Field |
out_distance_raster (オプション) | 出力パス距離ラスター。 出力パス距離ラスターは、サーフェス距離、水平サーフェス係数、垂直サーフェス係数を考慮に入れて、コスト サーフェス上の特定されたソース位置までの最小累積コスト距離をセルごとに特定します。 ソースは、セル、セル セット、または 1 つ以上のフィーチャ位置です。 出力ラスターのタイプは浮動小数点数です。 | Raster Dataset |
out_backlink_raster (オプション) | 出力コスト バックリンク ラスター。 バックリンク ラスターは 0 ~ 8 の値を含みます。この値は方向を定義します。つまり、サーフェス距離、水平サーフェス係数、垂直サーフェス係数を考慮に入れて、セルから最小コスト ソースまでの最小累積コスト パスに沿った次の隣接セルを特定します。 パスが右の隣接セルに進む場合、その隣接セルには値 1 が、右下のセルには値 2 が割り当てられ、これが時計回りに続きます。値 0 はソース セル用とされています。 | Raster Dataset |
source_cost_multiplier (オプション) | コスト値に適用する乗数です。 移動のモードまたはソースの強度を制御できます。乗数が大きいほど、各セルの移動コストが大きくなります。 0 より大きい値を指定する必要があります。デフォルトは 1 です。 | Double; Field |
source_start_cost (オプション) | コスト計算の最初の開始コストです。 ソースに関連付けられた固定コストを指定できます。コスト アルゴリズムは、コスト 0 から開始する代わりに、source_start_cost で設定された値から開始します。 値は 0 以上である必要があります。デフォルトは 0 です。 | Double; Field |
source_resistance_rate (オプション) | このパラメーターは、累積コストの増加に伴う、コストに対処する労力の増加をシミュレートします。これは、移動者の疲労をモデル化するのに使用されます。セルに到達するまでに増加した累積コストが耐性率で乗算され、次のセルに移動するコストに追加されます。 これは、複利率の計算式の変更バージョンで、セルの移動による見かけコストの計算に使用されます。耐性率の値が増えると、後に移動するセルのコストが増加します。耐性率が大きいほど、次のセルに到達するための追加コストが大きくなります。これは、移動するごとに大きくなります。耐性率は複利と似ており、累積コストの値は一般に非常に大きいため、耐性率は累積コストの値に応じて 0.02 や 0.005、またはこれより小さいレートをお勧めします。 値は 0 以上である必要があります。デフォルトは 0 です。 | Double; Field |
source_capacity (オプション) | ソースに対する移動者のコスト キャパシティを定義します。 指定したキャパシティに達するまで、各ソースのコスト計算が続行されます。 0 より大きい値を指定する必要があります。デフォルトのキャパシティは出力ラスターのエッジまでです。 | Double; Field |
source_direction (オプション) | 水平方向ファクターと垂直方向ファクター、ソース耐性率、およびソース開始コストを適用する際の、移動者の方向を定義します。
FROM_SOURCE または TO_SOURCE キーワードを選択します。これは、すべてのソースに適用されます。または、ソース データから、各ソースの移動方向を識別するキーワードを含むフィールドを指定します。フィールドには、文字列 FROM_SOURCE または TO_SOURCE が含まれている必要があります。 | String; Field |
戻り値
名前 | 説明 | データ タイプ |
out_allocation_raster | 出力パスの距離アロケーション ラスター。 このラスターは、サーフェス距離、水平コスト係数、垂直コスト係数を考慮に入れて、最小累積コストで到着できる各ソース位置 (セルまたはフィーチャ) のゾーンを特定します。 出力ラスターのタイプは整数です。 | Raster |
コードのサンプル
PathAllocation (パスの距離アロケーション) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトで、PathDistanceAllocation (パスの距離アロケーション) ツールの使用方法を示します。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
pathAlloc = PathAllocation("observers.shp", "costraster", "elevation", "hfraster",
HfForward(0.5, 1.0), "elevation", VfBinary(1.0, -30, 30),
"", "valueraster", "FID", "c:/sapyexamples/output/optpathdist",
"c:/sapyexamples/output/optpathbl", "Multiplier", "StartCost", "Resistance", 500000)
pathAlloc.save("c:/sapyexamples/output/allocpath")
PathAllocation (パスの距離アロケーション) スクリプトの例
サーフェス距離、水平コスト係数、垂直コスト係数を考慮に入れて、コスト サーフェスの最小累積コストに基づき、各セルの最も近いソースを計算します。
# Name: PathAllocation_Ex_02.py
# Description: Calculates, for each cell, its nearest source based
# on the least accumulative cost over a cost surface,
# while accounting for surface distance and horizontal
# and vertical cost factors.
# 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
inSource = "observers.shp"
costRast = "costraster"
surfaceRast = "elevation"
# The horizontal factor
inHoriz = "hfraster"
# Create the HfForward Object
zeroFactor = 0.5
sideValue = 1.0
myHorizFactor = HfForward(zeroFactor, sideValue)
#The vertical factor
inVertical = "elevation"
# Create the VfBinary Object
zeroFactor = 1.0
lowCutAngle = -30
highCutAngle = 30
myVerticalFactor = VfBinary(zeroFactor, lowCutAngle, highCutAngle)
maxDist = ""
valRaster = "valueraster"
sourceField = "FID"
optPathDistOut = "c:/sapyexamples/output/optdistpath"
optPathBLOut = "c:/sapyexamples/output/pathblinkout"
multiplier = "Multiplier"
startCost = "StartCost"
resistance = "Resistance"
capacity = 500000
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute PathAllocation
pathAlloc = PathAllocation(inSource, costRast, surfaceRast,
inHoriz, myHorizFactor, inVertical, myVerticalFactor,
maxDist, valRaster, sourceField,
optPathDistOut, optPathBLOut, multiplier, startCost,
resistance, capacity)
# Save the output
pathAlloc.save("c:/sapyexamples/output/allocpath02")
環境
ライセンス情報
- ArcGIS Desktop Basic: 次のものが必要 Spatial Analyst
- ArcGIS Desktop Standard: 次のものが必要 Spatial Analyst
- ArcGIS Desktop Advanced: 次のものが必要 Spatial Analyst