需要 Spatial Analyst 许可。
从像元的角度来讲,成本工具的目标是确定分析窗口中各像元位置到某个源的最小成本路径。您必须确定每个像元通向源的最低累积成本、考虑最小成本路径的源,以及最小成本路径本身。
成本距离工具与欧氏工具相类似,不同点在于欧氏工具计算的是位置间的实际距离,而成本距离工具确定的是各像元距最近源位置的最短加权距离(或者说是累积行程成本)。这些工具应用的是以成本单位表示的距离,而不是以地理单位表示的距离。
成本距离工具如下:
- 成本距离将根据成本面上的最小累积成本提供栅格中每个像元到最近源的距离。
- 成本回溯链接将提供最近源的最小累积成本路径上的下一相邻像元。
- 成本分配将根据成本面上的最小累积成本提供每个像元的最近源。
- 成本路径将提供从源到目标的最小成本路径。
- 成本连通性将提供两个或多个输入区域之间成本最低的连通性网络。
所有成本距离工具都需要源数据集和成本栅格数据集作为输入。
成本距离输出
以下部分介绍了成本距离工具的各种类型的输出。
距离输出
成本距离工具的输出记录了从各个像元到达最近源所耗费的累积成本。
例如,请考虑下图中像元值标识为 1 和 2 的源位置:
从源像元 1(暗橙色)到达目的地(学校图标)的最小累积成本路线为 10.5。
回溯链接方向输出
输出成本距离栅格对返回至最近源位置的各像元的累积成本进行标识时,它并不会显示要返回哪一个源像元以及如何返回。成本回溯链接工具返回一个方向栅格作为输出,以提供标识一幅从任一像元沿最小成本路径返回最近源的基础道路地图。
用于计算回溯链接栅格的算法会为每个像元分配一个代码值。该码为一系列介于 0 到 8 之间的整数。值 0 用于表示源位置,因为从本质上讲,它们已经达到了目的地(即源本身)。值 1 到值 8 按顺时针方向从右侧开始依次对方向进行编码。以下是方向输出中所使用的默认符号,以及结合了方向箭头和颜色符号的箭头图:
例如,如果为某一输出像元赋予 5,以作为通往源的最小成本路径的一部分,则路径应向左侧的相邻像元移动。如果像元的值是 7,则说明路径应向正北方移动,依此类推。
在上面的示例中,从值为 10.5 的像元前往源(校址)的成本最低的路径为沿对角线移动,通过值为 5.7 的像元。回溯链接栅格显示了从各像元前往最近的源时的行进方向。
方向算法为值为 10.5 的像元赋予值 4,而为值为 5.7 的像元也赋予值 4,因为(根据上述方向编码)这便是从各像元返回源时的最小成本路径方向。
对输出回溯链接栅格中的所有像元执行这一过程,以便生成一个输出,指明从成本距离栅格中的每个像元返回源时的行进方向。
注:
要计算源位置和目的地位置间成本最低(最短)的路径,需要使用成本距离和成本回溯链接栅格。
分配输出
成本分配工具的输出可标识出各像元被分配到哪个最近源。该输出在概念上与欧氏分配工具的输出相似,不同之处在于这里所谓的“最近”是就累积行程成本而论的。
可选输出
除各工具的特定输出栅格外,成本工具还可用于创建其他类型的成本输出。成本距离工具可创建成本回溯链接栅格,成本回溯链接工具可创建成本距离栅格。成本分配工具既可创建距离栅格,也可创建回溯链接栅格。如果您想通过单个工具创建其他类型的输出,这将非常有用。
“成本路径”工具
创建累积成本栅格和回溯链接栅格后,便可从任一指定目的地像元或区域生成最小成本路径。成本路径工具会沿回溯链接栅格从目的地像元回溯到源。
成本连通性
成本连通性工具可在输入区域之间创建成本最低的网络。尽管此工具适用于上述相同理念,但它可通过一个步骤在输入区域和成本面上创建网络。
成本距离输入
源输入
如果源数据集是一个栅格数据,它可能包含单个或多个区域。这些区域可以相连,也可以不相连。所有具有值(包括 0)的像元都将作为源像元进行处理。源栅格中的所有非源像元都必须赋予值 NoData。而分配给源位置(栅格或要素)的原始值则得以保留。
如果源数据集是一个要素数据集,则会在内部将其转换为栅格,而该栅格的分辨率将由环境决定;如果并未明确设置分辨率,则将采用与输入成本栅格相同的分辨率。如果源数据是一个栅格数据,则会使用源栅格的像元大小。从此处开始,本文档将假设已将要素源数据转换为栅格数据。
不存在任何对于输入栅格或要素源数据中源的数量的固有限制。
成本输入
成本栅格可以是单个栅格,且通常都是多个栅格组合的结果。为成本栅格指定的单位可以是任何所需成本类型:金钱成本、时间、能量消耗,或相对于分配给其他像元的成本而得出其含义的无单位系统。输入成本栅格上的值可以是整型或浮点型,但不可以是负值或 0(成本不能为负或为零)。成本栅格不可以包含值 0,因为该算法是一个乘法过程。
提示:
如果成本栅格中的确包含表示成本最低区域的值 0,那么请在运行成本距离前将这些值更改为某个较小的正值(如 0.01)。可使用条件函数工具执行此操作。如果值 0 表示的是应从分析中排除的区域,那么应在运行成本距离前通过运行设为空函数将这些值更改为 NoData。
如何计算成本距离
有关如何计算成本距离的详细信息,请参阅以下部分。