距离分析对于大多数 GIS 应用程序至关重要。 在其最简单的形式中,距离是衡量一个事物与另一个事物之间的距离有多远的指标。 直线是连接两个位置之间最短的距离。 然而,还有其他要考虑的因素。 例如,如果路径上存在障碍物且必须绕道绕过它,则会增加从一个位置到另一个位置的总距离。 另一个考虑因素是表面纹理,如果从平坦地形变为崎岖地形,则实际行进距离可能会增加。 还有许多其他因素会影响从起点到终点所需的努力。 其中某些因素包括地形的陡峭程度、是否顺风或逆风行进、交通方式以及所经过的地表覆被类型。 根据使用平面还是测地线方法进行计算,距离测量也会有所不同。
Spatial Analyst 扩展模块提供了一些工具,可以用于计算各种场景下的距离。 这些工具具有多个参数,可以使用这些参数对操作进行各种修改。 这样,可以生成更准确的输出,用于指定更好的分析决策。
距离分析可以分为两个主要任务:
- 计算到最近或成本最低的源的距离;
- 在距离表面上连接一系列位置以获取最佳路径。
计算距离
计算距离时需要考虑两个方面:
- 确定事物之间的距离。
- 确定距离后,需确定旅行者遇到距离的方式。
确定事物之间的距离
确定一个事物与另一个事物之间的距离是计算距离的基本元素。 它是两点之间的直线距离或欧氏距离。 有关详细信息,请参阅计算直线距离。
但是,还有其他因素可能改变直线距离的计算结果,包括障碍物和表面距离。
障碍物(如河流、悬崖、高速公路或建筑物)是阻止您直接从一个位置到另一个位置旅行的物体。 由于绕过障碍物会增加旅行距离,您可能希望知道可能的最短距离。 有关使用案例和其他信息,请参阅在距离计算中考虑障碍。
表面距离是在考虑到地面的起伏情况下,在地面上实际需要行进的距离。 与直线距离相比,表面距离考虑了地面的上下起伏,因此距离更远。 有关使用案例和其他信息,请参阅在距离计算中考虑表面。
旅行者遇到的距离
旅行者遇到距离的方式通常是感兴趣的交互方式。 假设存在一位旅行者。 该旅行者可以是一个生物实体,例如人或动物。 在抽象的形式中,它可以是一个无生命的物体,如管道或道路。 也就是说,在建造管道或道路时,每个像元内会遇到各种地貌要素,如平坦和陡峭的斜坡、森林和湿地。 在计算基本的直线距离时,可以将旅行者视为鸟类或飞机在平静的空气中低飞在地面上,不受表面条件的影响。
有多个因素会影响旅行者遇到距离的方式。 每个因素都会影响距离被消耗的速率。 以下因素可用于控制遇到距离的速率:
- 成本表面
- 旅行者从源开始的特征
- 垂直系数
- 水平系数
成本表面
对于每个像元,成本表面标识了位置上的要素如何影响穿越该像元的移动。 这是旅行者穿过该位置的成本。 定义的像元成本越低,移动越容易。 例如,徒步旅行者可以快速而轻松地穿过开阔的田野,但在茂密森林中的泥泞地面会减慢他们的速度,消耗更多的能量,因此他们需要更长的时间才能行进相同的距离单位。 关于成本表面如何影响遇到距离的方式的使用案例和其他信息,请参阅使用成本表面调整遇到的距离。
距离以成本的速率进行测量。 与直线距离结果不同,成本表面的成本距离并不平等地从每个源点辐射出来。
旅行者从源开始的特征
旅行者的特征可以修改遇到距离的方式。 以下旅行者特征可以改变遇到距离的速率:
- 出行方式 - 这是一个乘数,可以定义交通方式。 例如,它可以表示旅行者是步行还是骑 ATV。 还可以考虑旅行者的数量。 在这两种情况下,出行方式会改变距离被覆盖的速度。
- 起始成本 - 例如,可以用来捕捉准备 ATV 所需的时间。
- 最大容量 - 例如,可以确定 ATV 在耗尽燃料之前能够行驶的距离或成本。
- 行进方向 - 例如,可以捕捉到鹿是朝着溪流移动还是远离溪流移动。
有关旅行者特征如何影响距离体验的使用案例和其他信息,请参阅使用源特征调整遇到的距离。
垂直系数
使用垂直系数参数来考虑旅行者为了克服遇到的斜坡必须付出的努力。 直接向上爬坡需要更多的努力并减慢旅行者的速度。 因此,覆盖特定距离需要更长的时间。 下坡时可能更容易覆盖相同的距离,而横穿斜坡则介于两者之间。 将前面部分中描述的行进方向特征与垂直系数相结合,将影响遇到斜坡的方式。 远离或靠近源点可能会产生不同的结果。
为了加强上述表面距离和垂直系数之间的区别,垂直系数将根据克服斜坡所需的努力来调整遇到距离的方式,而表面距离则根据地表的起伏调整实际行进的距离。 有关使用案例和其他信息,请参阅使用垂直系数调整遇到的距离。
水平系数
使用水平系数参数来考虑旅行者遭遇水平影响(如风或洋流)时对距离的影响。 例如,如果旅行者是一艘船,并且顺风或顺流行驶,它会以更快的速度行进。 然而,如果逆风或逆流行驶,行进相同的距离将需要更长的时间。 如果船只以一定角度遇到风或洋流,则可能没有太大影响。 例如,水平系数在乘坐飞机从洛杉矶到纽约的西行与东行之间是显而易见的。 由于盛行风的影响,从西向东飞行所需的时间更短 - 飞机可以以更快的速度覆盖更长的距离。 有关使用案例和其他信息,请参阅使用水平系数调整遇到的距离。
平面和测地线方法对距离计算的影响
根据您是在平面坐标系还是测地线坐标系中进行计算,距离可能会有所不同。 如果使用平面方法进行计算,则距离可能会根据测量距离计算的距离、进行计算的位置以及指定的投影而有所不同。 使用测地线方法计算距离,将始终得到真实的地面距离,与您在世界上的位置或者位置之间的距离无关。 有关详细信息,请参阅测地线距离与平面距离。
距离累积分析顺序
距离累积工具结合了对直线距离计算的调整,并通过一系列修改参数定义了距离的遭遇速率。 按照工具中的参数顺序进行逐步操作,并填入与分析相关的参数。 通过一系列修改参数,您可以捕捉到大多数计算距离和确定遭遇速率的方案。 下面描述了这些修改的可能性。
计算距离
对于输入栅格或要素源数据参数,需确定将从中确定距离的位置。
要调整直线距离以考虑障碍物或屏障,需在输入障碍栅格或要素数据参数中确定它们。
要调整直线距离以考虑实际行驶的表面距离,需提供一个输入表面栅格参数中的高程表面
定义遇到距离的速率
要模拟旅行者在景观中移动,需确定旅行者将会遇到哪些事物。 在输入成本栅格参数中提供一个成本表面。
要定义旅行者的独特特征,需展开源特征类别以查看可用选项。
- 要设置在移动之前产生的起始距离或成本,需在初始累积参数中进行指定。
- 要设置可承受的距离或成本的限制,需在最大累积参数中进行指定。
- 要设置改变距离克服速率的交通方式,需在要应用于成本的乘数参数中指定一个乘数。
- 要设置旅行者的移动方向(远离源点或靠近源点),需在出行方向参数中指定方向。
要考虑克服坡度所付出的努力,需展开相对于垂直移动的成本参数,为输入垂直系数提供一个高程表面,并指定一个垂直系数。
要考虑遇到的水平影响(如风或水流),需展开相对于水平移动的成本参数,为输入水平系数提供一个栅格,并指定一个水平系数。
定义表面模型
要考虑地球的实际形状(椭球体),需将距离方法参数设置为测地线。 对于默认平面平地方法,计算是在投影平面上使用 2D 笛卡尔坐标系进行的。 对于测地线设置,计算是在 3D 笛卡尔坐标系中进行的,可以生成更准确结果,但可能会增加处理时间。
距离分配工具
距离累积工具将输出一个距离累积栅格,并可选择输出返回方向、源方向和源位置栅格。 距离分配工具包括与距离累积工具相同的参数,并且可以创建与距离累积工具相同的输出栅格,但它还会输出一个距离分配栅格。
距离累积栅格可计算到最近或成本最低的源的距离累积。 返回方向栅格用于指示从每个像元返回到最近或成本最低的源的方向。 源方向栅格用于确定到最近或成本最低的源的方向。 源位置栅格用于标识最近或成本最低的源的行和列。 距离分配栅格可针对每个像元,确定其达到的最近或成本最低的源。
旧版成本距离工具
在 ArcGIS Pro 2.5 之前,基于距离计算的方式,需要一系列工具来捕获各种距离修饰因素。 欧氏距离或直线距离是直接计算从目标像元中心到源像元中心的距离。 成本距离分析需要单独的工具,因为成本距离需沿相邻像元之间构建的边序列测量网络距离。 距离累积和距离分配工具可以计算直线距离和成本距离及其所有变体。 有关底层算法的详细信息以及如何在单个工具中计算直线距离和成本距离,请参阅距离累积工作原理。
连接距离表面上的位置
了解某物的距离非常有用,但您可能还希望了解以最短路径或以最小成本的方式连接一系列位置的最佳方法。 连接位置有三种主要场景:
- 您有一系列要连接的位置; 您希望以最优(最短或最小成本)的方式连接路径的网络;
- 您希望将特定位置与其他特定位置连接,并使用最优路径;
- 您希望将特定位置与其他特定位置连接,并使用最优廊道。
使用最优连接的一系列位置
使用最优区域连接工具,可以使用最短路径或最小成本的路径网络连接一系列位置或区域。 使用此工具,将连接哪些区域并不重要。 您希望以最短或最小成本的方式连接它们。 为此,您需要指定要连接的位置或区域,以及可选的成本表面。 在生成的路径网络中,您可以从任何位置到达任何其他位置,尽管您可能需要经过某个位置才能到达远处的位置。
有关使用案例和详细信息,请参阅使用最佳网络连接区域。
通过路径连接特定位置
在此场景中,您希望将特定位置连接到其他特定位置。 此过程包含两个步骤。 首先,使用您要连接到其他特定位置的特定位置运行距离累积工具。 您需要从工具中生成两个输出:累积距离栅格和返回方向栅格。 第二步,运行最优路径为线或最优路径为栅格工具之一,使用刚创建的两个栅格以及您要连接的其他特定位置作为输入。 这些工具使用返回方向栅格从其他特定位置追踪路径回到初始位置。 两个工具的区别在于一个将生成的最优路径作为线要素返回,而另一个将其作为栅格返回。
有关使用案例和其他信息,请参阅使用最佳路径连接位置。
通过廊道连接特定位置
这个场景类似于路径场景,您想要将特定位置连接到其他特定位置。 但是,这些场景中,它们不是通过线性路径连接,而是通过廊道连接。 廊道在任何点的宽度基于成本。 它不是连接路径周围的简单欧氏缓冲区。 要创建廊道,首先需在特定的初始位置上运行距离累积工具。 然后在您要连接的其他特定位置上运行该工具。 接下来,运行最小成本廊道工具,使用生成的累积距离栅格和返回方向栅格作为输入。 要定义廊道的宽度,可以将阈值应用为累积成本距离栅格的最小值的百分比或指定的累积成本。
有关使用案例和其他信息,请参阅将位置与廊道连接。