多语言展示
当前在线:1585今日阅读:57今日分享:41

ArcGIS教程:成本距离工具工作原理(二)

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

累积成本像元列表    使用图论创建累积成本距离栅格可被视作尝试识别最低成本像元,并将其添加到输出列表。这是起始于源像元的迭代过程。每个像元的目标是快速分配到输出成本距离栅格中。    在初次迭代中,识别出源像元并分配 0 值,因为它们返回自身不消耗累积成本。接下来,启用全部源像元的近邻,使用上述累积成本公式将成本分配到源像元结点与邻近像元结点之间的连接线。各邻域像元都可以达到某个源;因此,可以选择它们或将它们分配给输出累积成本栅格。要分配到输出栅格,像元必须具有到达某个源的次最低成本路径。    累积成本值按由最低累积成本到最高累积成本的顺序排列于列表中。    从活动累积成本像元列表中选择最低成本像元,然后将该像元位置的值分配给输出成本距离栅格。活动像元的列表会变大,以包括所选像元的近邻,因为此时这些像元已具有到达某个源的方式。列表中只有可能到达某个源的像元是活动的。使用累积成本公式计算移动到这些像元的成本。

2

再次选择列表中具有最低成本的活动像元,扩大邻域,计算新的成本,并将新的成本像元添加到活动列表。    不必连接源像元。所有未连接的源对活动列表的影响相同。无论要分配到的源为何,仅选择和扩充具有最低累积成本的像元。    此分配过程继续执行。而且,如果通过将新像元位置添加到输出栅格创建新的成本较低的路径,则将更新活动列表上的像元。    当活动列表上出现新的像元路径时会进行此更新,因为更多的像元被分配到输出栅格。当活动累积成本列表上具有最低值的像元被分配到输出栅格时,计算所有累积成本。也会计算新分配的输出像元的相邻像元的成本,即使相邻像元位于其他像元的活动列表上。如果活动列表上的位置的新累积成本大于这些像元当前的累积成本,则忽略该值。如果活动列表上的位置新累积成本小于这些像元当前的累积成本,则使用新值替换掉活动列表上该位置的原有累积成本。此时已具有到达某个源的更廉价和更理想路径的像元在活动选择列表中上移。

3

在以下示例中,将第 3 行、第 1 列(用框高亮显示)的像元位置放在活动列表上时,它达到栅格顶部的源的累积成本为 11.0。然而,因为较低的源扩展到此位置,该像元获得了到达其他源的更廉价的累积成本路径。由于存在这一较低的累积成本,因此应早些在活动列表上更新该位置的值,并分配到输出。    如果在输入源栅格上存在多个区域或多组互不相连的源像元,则增长过程继续,并且无论来自哪个源,都将从活动列表中分配最低成本像元。    当增长面相遇时,返回源的最低成本路径的确定过程会继续,直到所有具备条件的像元获得成本值为止。    可能出现这种情况:当增长模式的锋面相遇时,一个增长模式的像元将能够以更低成本到达其他组或增长模式中的某个源像元;如果的确如此,它们将被重新分配到新的源。这种行为先前以第 3 行、第 1 列的像元进行过表示,下面则以第 3行、第 6 列处的像元再次说明。    选择活动列表中的所有像元时,其结果是累积成本或加权距离栅格。应用的流程可确保各像元具有最低累积成本。为所有像元执行此过程,直到遇到栅格的边、窗口的边界或达到最大距离为止。    不允许穿越包含 NoData 值的像元。一组 NoData 像元的后侧像元的最低累积成本由绕过这些位置所需的成本确定。如果输入成本栅格上的某像元位置分配了 NoData,则 NoData 将被分配到成本距离输出栅格上对应的像元位置。

推荐信息