パスの距離ツールの仕組み

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

ユークリッド距離が直線距離 (位置間の距離) として直線であるのに対して、パスの距離ツールは地表上の移動者の移動を探索します。一般的に、パスの距離ツールは、サーフェス距離と水平方向ファクターおよび垂直方向ファクターを考慮に入れながら、移動元と移動先の最小コスト パスを作成するために使用されます。

パスの距離解析によって解析される問題の例

  • 遠方の位置に到達するために最適なハイキング コースを決定します。
  • 地表の上り坂と下り坂の変化を調整して、建設予定の道路の実際のコストと距離を計算します。
  • 海流と風を考慮して、船が取るべきルートを決定します。

パスの距離解析の一般的な公式

セル間を移動するコストは、以下の影響を受けます。

  1. サーフェスの特性 (コスト サーフェス)。
  2. 移動者の特性。これには、徒歩での移動や四輪バギーの使用などの移動モードが含まれる場合があります。
  3. 上り坂や下り坂の移動など、セル間を移動するときの移動特性。

一般的なコスト距離の公式は次のとおりです。

Cost = Cost of travel  *  Characteristics  *  Movement characteristics       over surface       of the mover        on the surface

パスの距離ツールは、この後で説明するように、コスト サーフェスを使用してサーフェスの特性を組み込みます。パスの距離ツールで移動者の特性を制御する方法の詳細については、「ソースの特性がコスト距離解析に与える影響」をご参照ください。パスの距離ツール内でサーフェス ラスターと水平方向ファクターおよび垂直方向ファクターを使用すると、セル間の移動特性を定義できます。

パス距離の計算

[パスの距離 (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

累積コスト セルのリスト

グラフ理論を使用して累積コスト距離ラスターを作成することは、最小のコスト セルを特定して出力リストに追加する試行と見なすことができます。これは、ソース セルから開始される反復プロセスです。その目的は、各セルを出力コスト距離ラスターに即座に割り当てることです。

パス距離とコスト距離の比較

パス距離で行われる処理は、コスト距離で行われる処理と似ています (「コスト距離ツールの仕組み」をご参照ください)。はじめに、ソース セルが指定されます。次に、ソース セルに隣接する各近傍への移動コストが計算されます。次に、各近傍セルが、最小コストから最大コストの順でリストされます。最小コストのセル位置が、このアクティブなリストから除外されます。削除されたセルの近傍ごとの最小累積コストが決定され、それらの位置がアクティブなリストに追加されます。次に、アクティブなリストで最小コストの次のセル位置が削除されます。

累積コスト値のリストの処理 (3)

ラスターのすべてのセルに累積コストが割り当てられるまで、このプロセスが繰り返されます。コスト距離ツールとパス距離ツールの違いは、あるセルから隣のセルへの移動コストの計算方法です。

パス距離の式

セルの観点からのパス距離ツールの目的は、解析範囲内のそれぞれのセルの場所について、最小コストのソースからセルに到達する最小コストのパスを特定することです。各セルは、ソースからの累積コストが最小のパス、最小コストのパスが得られるソース、および最小コストのパスそのものを特定する必要があります。

パスの距離

コスト サーフェス上のセル間を移動するコストは、上で説明した式で決定されます。パスの距離では、これらのコスト (以下の式の Cost_Surface) は、サーフェス距離 (Surface_distance) と水平方向ファクターおよび垂直方向ファクターで変更できます。セル a からセル b への移動総コストを計算するために使用される式は、移動が垂直方向か対角方向かによって異なります。

  • 垂直
    Cost_distance = (((Cost_surface(a) * HF(a)) + (Cost_surface(b) * HF(b)))/2)                * Surface_distance(ab) * VF(ab)
  • 対角線
    Cost_distance = (((Cost_surface(a) * HF(a)) + (Cost_surface(b) * HF(b)))/2)                * 1.414214 * Surface_distance(ab) * VF(ab)

  • 各要素は次のとおりです。

    Cost_surface(a) - セル a の移動コスト

    Cost_surface(b) - セル b の移動コスト

    HF(a) - セル a の水平方向ファクター

    HF(b) - セル b の水平方向ファクター

    Surface_distance(ab) - a から b までのサーフェス距離

    VF(ab) - a から b までの垂直方向ファクター

水平方向ファクターを乗算してから、線分長の摩擦を 2 で除算します。

コスト サーフェスが指定されていない場合、1 単位距離のコストが使用されます (値がすべて 1 のコスト ラスターを適用した場合と同じです)。水平および垂直係数は、単位距離に適用されます。負の水平および垂直係数は使用できません。ただし、両方の係数は各セルの累積コストの乗数であるため、係数が 0 より大きく 1 未満の場合、そのセルの総コストは減少します。垂直係数が 0 か、水平係数の両方の線分が 0 の場合、セルのコストは 0 になります。

累積コスト距離

セル a からセル b を通過してセル c まで移動する累積コストは、次の式で表されます。

Accum_cost_distance = a1 + (((Cost_surface(b) * HF(b)) + (Cost_surface(c) * HF(c)))/2)                      * Surface_distance(bc) * VF(bc)
  • 各要素は次のとおりです。

    a1 - セル a からセル b への移動総コスト

    Cost_surface(b) - セル b の移動コスト

    Cost_surface(c) - セル c の移動コスト

    HF(b) - セル b の水平方向ファクター

    HF(c) - セル c の水平方向ファクター

    Surface_distance(bc) - b から c までのサーフェス距離

    VF(bc) - b から c までの垂直方向ファクター

水平方向と垂直方向のパラメーター

水平方向および垂直方向の摩擦係数を制御するためには、いくつかの異なるタイプのパラメーターを使用できます。それぞれの係数について、さまざまな修飾子を使用して、解析をさらに詳細に制御できます。

これらのパラメーターの詳細については、次のセクションをご参照ください。

関連トピック