路径距离工具的工作原理

所有的路径距离工具都使用相同的算法计算输出值。主要差别在于各工具的主要输出。

路径距离工具既考虑水平和垂直成本要素,又考虑真实表面距离,是成本距离分析的主要工具。路径距离分配工具使用相同的算法,但主要返回一个指明各像元的最近源的栅格。路径距离回溯链接工具可识别到最近源的最小累积成本路径上的下一个近邻像元的方向。

路径距离的计算

路径距离工具可创建一个输出栅格,其中的每个像元都基于成本最低的源像元分配累计成本。此算法利用结点/连接线像元进行制图表达。像元中心作为结点,并通过连接线连接到相邻结点。

每条连接线都带有关联的阻抗信息。阻抗根据与连接线各端点上的像元相关联的成本(从成本表面),和移动方向确定。

为简化讨论,以下部分的公式仅确定行程成本如何在成本表面的像元之间进行累积;如何修改成本以解释表面距离以及水平和垂直系数将在后续章节中予以介绍。

结点行程成本

相邻结点间的行程成本取决于这两个结点的空间方向。像元的连接方式也会影响行程成本。

相邻结点成本

从一个像元移动到四个与其直接邻接的像元之一时,跨越连接线移动到相邻结点的成本为用 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

累积成本像元列表

使用图论创建累积成本距离栅格可视作识别最低成本像元的尝试,并将其添加到输出列表。这是起始于源像元的迭代过程。目标是为每个像元快速分配成本距离栅格。

比较路径距离和成本距离

路径距离的处理过程与成本距离相似(请参阅成本距离工具的工作原理)。首先确定源像元。然后确定到达源像元的相邻像元的行程成本。再将各近邻像元按照从最低成本到最高成本的顺序列入列表。成本最低的像元位置将从列表中移除。最后,确定到达列表中被移除像元到近邻像元的最低累积成本。

处理累积成本值列表 (3)

处理过程不断重复,直到栅格中的所有像元都分配到一个累积成本。成本距离和路径距离工具的区别在于如何计算从一个像元移动到下一个像元的成本。

路径距离公式

从像元的角度考虑,路径距离工具主要用于为分析范围中的每一像元确定从成本最低的源到达此像元的最低成本路径。每个像元都需要确定从某个源到达自身的最低累积成本路径,包括源位置和路径。

路径距离

在成本表面上移动所需的成本通过上述公式确定。在路径距离中,这些成本(在以下等式中标识为 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。

如果未指定成本表面,将使用单位距离的成本值(与成本栅格应用均为 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 的整个行程成本。

水平和垂直参数

有多种不同参数类型可以控制水平和垂直摩擦系数。对于每种系数,可以通过多种修饰属性对分析执行进一步的控制。

关于这些参数的更多细节,请参阅以下部分:

相关主题

9/15/2013