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

使用圖論創建累積成本距離柵格可被視作嘗試識別最低成本像元,並將其添加到輸出列表。這是起始於源像元的疊代過程。每個像元的目標是快速分配到輸出成本距離柵格中。

方法/步驟

累積成本像元列表

使用圖論創建累積成本距離柵格可被視作嘗試識別最低成本像元,並將其添加到輸出列表。這是起始於源像元的疊代過程。每個像元的目標是快速分配到輸出成本距離柵格中。

在初次疊代中,識別出源像元並分配 0 值,因為它們返回自身不消耗累積成本。接下來,啟用全部源像元的近鄰,使用上述累積成本公式將成本分配到源像元結點與鄰近像元結點之間的連接線。各鄰域像元都可以達到某個源;因此,可以選擇它們或將它們分配給輸出累積成本柵格。要分配到輸出柵格,像元必須具有到達某個源的次最低成本路徑。

累積成本值按由最低累積成本到最高累積成本的順序排列於列表中。

從活動累積成本像元列表中選擇最低成本像元,然後將該像元位置的值分配給輸出成本距離柵格。活動像元的列表會變大,以包括所選像元的近鄰,因為此時這些像元已具有到達某個源的方式。列表中只有可能到達某個源的像元是活動的。使用累積成本公式計算移動到這些像元的成本。

再次選擇列表中具有最低成本的活動像元,擴大鄰域,計算新的成本,並將新的成本像元添加到活動列表。

不必連接源像元。所有未連接的源對活動列表的影響相同。無論要分配到的源為何,僅選擇和擴充具有最低累積成本的像元。

此分配過程繼續執行。而且,如果通過將新像元位置添加到輸出柵格創建新的成本較低的路徑,則將更新活動列表上的像元。

當活動列表上出現新的像元路徑時會進行此更新,因為更多的像元被分配到輸出柵格。當活動累積成本列表上具有最低值的像元被分配到輸出柵格時,計算所有累積成本。也會計算新分配的輸出像元的相鄰像元的成本,即使相鄰像元位於其他像元的活動列表上。如果活動列表上的位置的新累積成本大於這些像元當前的累積成本,則忽略該值。如果活動列表上的位置新累積成本小於這些像元當前的累積成本,則使用新值替換掉活動列表上該位置的原有累積成本。此時已具有到達某個源的更廉價和更理想路徑的像元在活動選擇列表中上移。

在以下示例中,將第 3 行、第 1 列(用框高亮顯示)的像元位置放在活動列表上時,它達到柵格頂部的源的累積成本為 11.0。然而,因為較低的源擴展到此位置,該像元獲得了到達其他源的更廉價的累積成本路徑。由於存在這一較低的累積成本,因此應早些在活動列表上更新該位置的值,並分配到輸出。

如果在輸入源柵格上存在多個區域或多組互不相連的源像元,則增長過程繼續,並且無論來自哪個源,都將從活動列表中分配最低成本像元。

當增長面相遇時,返回源的最低成本路徑的確定過程會繼續,直到所有具備條件的像元獲得成本值為止。

可能出現這種情況:當增長模式的鋒面相遇時,一個增長模式的像元將能夠以更低成本到達其他組或增長模式中的某個源像元;如果的確如此,它們將被重新分配到新的源。這種行為先前以第 3 行、第 1 列的像元進行過表示,下面則以第 3行、第 6 列處的像元再次說明。

選擇活動列表中的所有像元時,其結果是累積成本或加權距離柵格。應用的流程可確保各像元具有最低累積成本。為所有像元執行此過程,直到遇到柵格的邊、窗口的邊界或達到最大距離為止。

不允許穿越包含 NoData 值的像元。一組 NoData 像元的後側像元的最低累積成本由繞過這些位置所需的成本確定。如果輸入成本柵格上的某像元位置分配了 NoData,則 NoData 將被分配到成本距離輸出柵格上對應的像元位置。

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場