1. 程式人生 > >arcgis如何求兩個柵格數據集的差集

arcgis如何求兩個柵格數據集的差集

clas ont 圖層 idt isn script 語句 scrip enter

柵格數據集沒有擦除功能,現在有柵格A和柵格B,怎麽求兩個柵格的差集C

技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片

具體步驟如下:

1、首先利用柵格計算器,把柵格B中的value全部賦值為0

輸入語句:"柵格B" * 0

技術分享圖片

2 建立一個面圖層:在ArcCataLog中選擇存放面圖層的文件夾,點擊右鍵,選擇Shapefile,選擇要素類型為面,點擊確定,即可建立新的面狀圖層。

  技術分享圖片

技術分享圖片 技術分享圖片

3 單擊編輯器,選擇‘開始編輯’,選中 ‘處理範圍D’ 圖層後確定

技術分享圖片

技術分享圖片

4 單擊創建要素圖標,然後在處理範圍中單擊‘處理範圍0’圖層(註意,如果不點的話,下面的構造工具就不會顯示出來),選擇矩形,繪制一個矩形(矩形能夠覆蓋住柵格A的範圍)

技術分享圖片

5 繪制的面如下圖所示,繪制完成之後單擊‘停止編輯‘,保存編輯內容

技術分享圖片

6 修改‘處理範圍D’圖層的填充顏色和邊框顏色,結果如下:

技術分享圖片

7 對‘柵格B歸零’圖層進行柵格計算,單擊‘環境’按鈕,對‘處理範圍’進行設置,選擇‘與圖層 處理範圍D 相同’,單擊確定開始進行柵格計算。

輸入內容:   Con(IsNull("柵格B歸零"),1,"柵格B歸零")

  技術分享圖片

技術分享圖片

8 計算結果如下:‘柵格B擴展數據集中,柵格B的部分value為0,其他部分value為1,這是因為我們在步驟7的計算中將空值部分全部設為1的原因。

技術分享圖片

9 將柵格B擴展與柵格A進行柵格乘法運算,這樣‘柵格B’的部分全部都為0值,而柵格A的其它部分還為柵格A的值,如下圖所示

輸入內容:  "柵格B擴展" * "柵格A"

技術分享圖片

技術分享圖片

10 使用柵格計算器,篩選柵格值大於0的區域,就得到最終的結果,即柵格C。

輸入內容:   Con("柵格乘集">0,"柵格乘集")

技術分享圖片

11 完事了,最終結果如下所示:

技術分享圖片

arcgis如何求兩個柵格數據集的差集