パスの距離ツールの仕組み
すべてのパス距離ツールが、本質的に同じアルゴリズムを使用して出力を計算します。本質的な違いは、各ツールのプライマリ出力が異なることです。
[パスの距離(Path Distance)] ツールは、サーフェス距離、水平コスト係数、および垂直コスト係数を考慮に入れたコスト距離解析のための主要なツールです。[パスの距離アロケーション(Path Distance Allocation)] ツールは、同じアルゴリズムを使用しますが、そのプライマリ出力として、場所ごとに各セルに最も近いソースを示すラスタを返します。[パスの距離バック リンク(Path Distance Back Link)] ツールは、最も近いソースへの最小累積コスト パスにおいて次のセルである近傍の方向性を特定します。
パス距離の計算
パス距離ツールは、最もコストの小さいソース セルからの累積コストが各セルに割り当てられた出力ラスタを作成します。このアルゴリズムは、ノード/リンクのセル表現を活用します。このノード/リンク表現では、各セルの中心がノードと見なされ、各ノードがリンクにより隣接ノードと接続されます。
各リンクには、インピーダンスが関連付けられます。インピーダンスは、リンクの各端点でセルに関連付けられた(コスト サーフェスから)コスト、および移動方向から得られます。
説明を簡単にするために、以下の式はコスト サーフェス上のセル間で累積される移動コストを識別します。以下のセクションでは、サーフェス距離と水平および垂直係数を考慮に入れたコストの変更方法を示します。
ノード移動コスト
1 つのノードから別のノードへの移動コストは、ノードの空間的な向きによって決まります。セルがどのように連続しているかも移動コストに影響します。
隣接ノード コスト
あるセルから隣接する 4 つのセルの 1 つに移動する場合、隣接ノードへのリンクの移動コストは、セル 1 のコストにセル 2 のコストを加算し、2 で除算した値です。
a1 = (cost1 + cost2) / 2
- 以下に、式の各項目を示します。
cost1: セル 1 の移動コスト
cost2: セル 2 の移動コスト
a1: セル 1 とセル 2 を結ぶリンクに割り当てられたコスト
累積垂直コスト
累積コストは、次の式で得られます。
accum_cost = a1 + (cost2 + cost3) / 2
- 以下に、式の各項目を示します。
cost2: セル 2 の移動コスト
cost3: セル 3 の移動コスト
accum_cost: セル 1 からセル 3 への累積移動コスト
注意: 下の図では、a2 はセル 2 からセル 3 への移動コストです。
対角ノード コスト
移動が対角方向の場合は、リンクの移動コストは、セル 1 の移動コストとセル 2 の移動コストの合計を 1.414214(√2)で乗算し、2 で除算した値になります。
a1 = 1.414214(cost1 + cost2) / 2
対角移動の累積コストを求めるときには、次の式を使用します。
accum_cost = a1 +1.414214(cost2 + cost3) / 2
累積コスト セルのリスト
グラフ理論を使用して累積コスト距離ラスタを作成することは、最小のコスト セルを特定して出力リストに追加する試行と見なすことができます。これは、ソース セルから開始される反復プロセスです。その目的は、各セルを出力コスト距離ラスタに即座に割り当てることです。
パス距離とコスト距離の比較
パス距離で行われる処理は、コスト距離で行われる処理と似ています(「コスト距離ツールの仕組み」をご参照ください)。はじめに、ソース セルが指定されます。次に、ソース セルに隣接する各近傍への移動コストが計算されます。次に、各近傍セルが、最小コストから最大コストの順でリストされます。最小コストのセル位置が、リストから除外されます。最後に、リストから除外されたセルの各近傍への最小累積コストが求められます。
ラスタのすべてのセルに累積コストが割り当てられるまで、このプロセスが繰り返されます。コスト距離ツールとパス距離ツールの違いは、あるセルから隣のセルへの移動コストの計算方法です。
パス距離の式
セルの観点からのパス距離ツールの目的は、解析範囲内のそれぞれのセルの場所について、最小コストのソースからセルに到達する最小コストのパスを特定することです。各セルは、ソースからの累積コストが最小のパス、最小コストのパスが得られるソース、および最小コストのパスそのものを特定する必要があります。
パスの距離
コスト サーフェス上のセル間を移動するコストは、上で説明した式で決定されます。パスの距離では、これらのコスト(以下の式の Cost_Surface)は、サーフェス距離(Surface_distance)と垂直および垂直係数で変更できます。セル a からセル b への移動総コストを計算するために使用される式は、移動が垂直方向か対角方向かによって異なります。
- 垂直:
Cost_distance = (((Cost_Surface(a) * Horizontal_factor(a)) + (Cost_surface(b) * Horizontal_factor(b)))/2) * Surface_distance(ab) * Vertical_factor(ab)
- 対角:
Cost_distance = (((Cost_Surface(a) * Horizontal_factor(a)) + (Cost_surface(b) * Horizontal_factor(b)))/2) * 1.414214 * Surface_distance(ab) * Vertical_factor(ab)
水平方向ファクタを乗算してから、線分長の摩擦を 2 で除算します。
コスト サーフェスが指定されていない場合、1 単位距離のコストが使用されます(値がすべて 1 のコスト ラスタを適用した場合と同じです)。水平および垂直係数は、単位距離に適用されます。負の水平および垂直係数は使用できません。ただし、両方の係数は各セルの累積コストの乗数であるため、係数が 0 より大きく 1 未満の場合、そのセルの総コストは減少します。垂直係数が 0 か、水平係数の両方の線分が 0 の場合、セルのコストは 0 になります。
累積コスト距離
セル a からセル b を通過してセル c まで移動する累積コストは、次の式で表されます。
Accum_cost_distance = a1 + (((Cost_Surface(b) * Horizontal_factor(b)) + (Cost_surface(c) * Horizontal_factor(c)))/2) * Surface_distance(bc) * Vertical_factor(bc)
- ここで:
a1: セル a からセル b への移動総コスト
水平方向と垂直方向のパラメータ
水平方向および垂直方向の摩擦係数を制御するためには、いくつかの異なるタイプのパラメータを使用できます。それぞれの係数について、さまざまな修飾子を使用して、解析をさらに詳細に制御できます。
これらのパラメータの詳細については、次のセクションをご参照ください。