需要 Spatial Analyst 许可。
当欧氏距离是直线(位置之间的直线距离)时,路径距离工具可以探索旅行者在地表上方的移动。路径距离工具通常用于创建源和目标之间的最小成本路径,同时考虑表面距离以及水平和垂直因素。
路径距离分析所解决的一些示例问题
- 确定到达较远位置的最佳徒步路径。
- 计算拟建道路的实际成本和距离,需调整地表中的上坡和下坡变化。
- 确定船只应采取的路线,需考虑洋流和风力。
路径距离分析的通用公式
从一个像元移动到另一像元的成本受到下列因素的影响:
- 表面特征(成本表面)。
- 移动者的特征。这会包括出行模式,例如步行或骑 ATV。
- 从一个像元移动到另一像元时的移动特征,例如上坡或下坡。
通用成本距离公式如下:
Cost = Cost of travel * Characteristics * Movement characteristics over surface of the mover on the surface
路径距离工具可通过成本表面整合表面特征,这将在下文中进行讨论。要了解如何在路径距离工具内控制移动者的特征,请参阅源特征如何影响成本距离分析。路径距离工具内的表面栅格以及水平和垂直因素可用于定义像元之间的移动特征。
路径距离的计算
路径距离工具既考虑水平和垂直成本要素,又考虑真实表面距离,是成本距离分析的主要工具。路径距离分配工具使用相同的算法,但主要返回一个指明各像元的最近源的栅格。路径距离回溯链接工具可识别到最近源的最小累积成本路径上的下一个近邻像元的方向。
所有的路径距离工具都使用相同的算法计算输出值。主要差别在于各工具的主要输出。
路径距离工具可创建一个输出栅格,其中的每个像元都基于成本最低的源像元分配累计成本。此算法利用结点/连接线像元进行制图表达。像元中心作为结点,并通过连接线连接到相邻结点。
每条连接线都带有关联的阻抗信息。阻抗根据与连接线各端点上的像元相关联的成本(从成本表面),和移动方向确定。
为简化讨论,以下部分的公式仅确定行程成本如何在成本表面的像元之间进行累积;如何修改成本以解释表面距离以及水平和垂直系数将在后续章节中予以介绍。
结点行程成本
相邻结点间的行程成本取决于这两个结点的空间方向。像元的连接方式也会影响行程成本。
相邻结点成本
从一个像元移动到四个与其直接邻接的像元之一时,跨越连接线移动到相邻结点的成本为用 1 乘以像元 1 与像元 2 的和,再除以 2:
a1 = (cost1 + cost2) / 2
- Where
cost1 - 穿过像元 1 的行程成本。
cost2 - 穿过像元 2 的行程成本。
a1 - 从像元 1 到像元 2 的连接线的分配成本。
垂直累积成本
累积成本由以下公式确定:
accum_cost = a1 + (cost2 + cost3) / 2
- Where
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 的整个行程成本的计算公式取决于行程是垂直的还是呈对角线的:
- 垂直
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)
- Where
Cost_surface(a) - 像元 a 的行程成本
Cost_surface(b) - 像元 b 的行程成本
HF(a) - 像元 a 的水平因素
HF(b) - 像元 b 的水平因素
Surface_distance(ab) - 从 a 到 b 的表面距离
VF(ab) - 从 a 到 b 的垂直因素
请注意,只有在将水平系数求和后,才能将线段的摩擦值除以 2。
如果未指定成本表面,将使用单位距离的成本值(与成本栅格应用均为 1s 的值相同)。水平和垂直系数都将应用到单位距离。不得采用负的水平和垂直系数。由于两个系数均为各像元的累积成本的乘数,所以大于 0 且小于 1 的系数将减少该像元的总成本。垂直系数为零或水平系数的两条线段均为零会导致像元成本为零。
累积成本距离
从像元 a 穿过像元 b 到像元 c 的累积行程成本如下:
Accum_cost_distance = a1 + (((Cost_surface(b) * HF(b)) + (Cost_surface(c) * HF(c)))/2) * Surface_distance(bc) * VF(bc)
- Where
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 的垂直因素
水平和垂直参数
有多种不同参数类型可以控制水平和垂直摩擦系数。对于每种系数,可以通过多种修饰属性对分析执行进一步的控制。
有关这些参数的详细信息,请参阅以下部分: