教程:路徑距離工具的工作原理介紹

所有的路徑距離工具都使用相同的算法計算輸出值。主要差別在於各工具的主要輸出。

路徑距離工具既考慮水平和垂直成本要素,又考慮真實表面距離,是成本距離分析的主要工具。路徑距離分配工具使用相同的算法,但主要返回一個指明各像元的最近源的柵格。路徑距離回溯連結工具可識別到最近源的最小累積成本路徑上的下一個近鄰像元的方向。

方法/步驟

路徑距離的計算

路徑距離工具可創建一個輸出柵格,其中的每個像元都基於成本最低的源像元分配累計成本。此算法利用結點/連接線像元進行製圖表達。像元中心作為結點,並通過連接線連接到相鄰結點。

每條連接線都帶有關聯的阻抗信息。阻抗根據與連接線各端點上的像元相關聯的成本(從成本表面),和移動方向確定。

為簡化討論,以下部分的公式僅確定行程成本如何在成本表面的像元之間進行累積;如何修改成本以解釋表面距離以及水平和垂直係數將在後續章節中予以介紹。

結點行程成本

相鄰結點間的行程成本取決於這兩個結點的空間方向。像元的連接方式也會影響行程成本。

相鄰結點成本

從一個像元移動到四個與其直接鄰接的像元之一時,跨越連接線移動到相鄰結點的成本為用 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.414214(2 的平方根)乘以穿過像元 1 的行程成本與穿過像元 2 的行程成本之和,再除以 2:

a1 = 1.414214(cost1 + cost2) / 2

確定對角線移動的累積成本時,使用以下公式:

accum_cost = a1 +1.414214(cost2 + cost3) / 2

累積成本像元列表

使用圖論創建累積成本距離柵格可視作識別最低成本像元的嘗試,並將其添加到輸出列表。這是起始於源像元的疊代過程。目標是為每個像元快速分配成本距離柵格。

比較路徑距離和成本距離

路徑距離的處理過程與成本距離相似(請參閱成本距離工具的工作原理)。首先確定源像元。然後確定到達源像元的相鄰像元的行程成本。再將各近鄰像元按照從最低成本到最高成本的順序列入列表。成本最低的像元位置將從列表中移除。最後,確定到達列表中被移除像元到近鄰像元的最低累積成本。

處理過程不斷重複,直到柵格中的所有像元都分配到一個累積成本。成本距離和路徑距離工具的區別在於如何計算從一個像元移動到下一個像元的成本。

路徑距離公式

從像元的角度考慮,路徑距離工具主要用於為分析範圍中的每一像元確定從成本最低的源到達此像元的最低成本路徑。每個像元都需要確定從某個源到達自身的最低累積成本路徑,包括源位置和路徑。

路徑距離

在成本表面上移動所需的成本通過上述公式確定。在路徑距離中,這些成本(在以下等式中標識為 Cost_Surface)可以通過表面距離 (Surface_distance) 以及水平和垂直係數來修改。從像元 a 到像元 b 的整個行程成本的計算公式取決於行程是垂直的還是呈對角線的:

請注意,只有在將水平係數求和後,才能將線段的摩擦值除以 2。

如果未指定成本表面,將使用單位距離的成本值(與成本柵格應用均為 1s 的值相同)。水平和垂直係數都將應用到單位距離。不得採用負的水平和垂直係數。由於兩個係數均為各像元的累積成本的乘數,所以大於 0 且小於 1 的係數將減少該像元的總成本。垂直係數為零或水平係數的兩條線段均為零會導致像元成本為零。

累積成本距離

從像元 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 的整個行程成本。

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場