一、con函數簡介
con函數是ArcGIS柵格計算器中的一種邏輯函數,主要功能是根據指定的條件,從兩個柵格中選擇相應的像元值來創建一個新的柵格。
Con (condition, true_raster, false_raster, {where_clause})
其中,condition為條件表達式,true_raster和false_raster為兩個輸入的柵格,如果condition中的像元值為True,則輸出結果對應true_raster中的像元值,如果為False,則輸出結果對應false_raster中的像元值。
在計算過程中,condition最終應該有的結果是一個布爾類型的柵格,即像元值只有兩種情況True或False,但實際上,它也可以是除Null外的任何值。condition的表達式可以採用針對單個柵格的表達式,也可以採用針對兩個柵格的表達式。
二、con函數的應用場景
con函數可以廣泛應用於GIS數據處理中,以下是三個應用場景的具體介紹。
1、提取需要的像元值
con函數可以從兩個柵格中選擇需要的像元值,常用於提取柵格數據中值滿足某一條件的像元值。
Con("DEM" > 100, "DEM", 0)
上述代碼含義是在DEM柵格中,選擇高於100米以上的地形高度值,並將結果輸出為輸出柵格的像元值,其餘部分輸出為0。
2、多條件選擇
con函數可以同時根據多個條件判斷選擇像元值。
Con(("DEM" > 100) & ("Slope" < 15), "DEM", 0)
上述代碼中,條件表達式同時判斷了DEM值高於100米且坡度小於15度的像元,選擇其對應值輸出為輸出柵格的像元值,其餘部分輸出為0。
3、批量處理
con函數可以實現批量處理,根據相同的條件表達式和不同的輸入柵格,按一定的處理規則輸出計算結果。
Con((IsNull("Land_coverA")) & ("Land_coverB" == 3), 10, 0)
上述代碼含義是選擇不為Null的LandCoverB值為3的像元,輸出結果對應值為10,其餘部分輸出為0。
三、con函數應用的注意事項
在使用con函數時,需要注意以下幾點。
1、條件表達式使用引號
在條件表達式中,字元串需要使用引號將其包括起來。
Con("Land_cover" == "forest", "DEM", 0)
2、條件表達式中使用不等於符號”<>”
在條件表達式中,不等於符號需要使用”<>”來代替”
Con("Land_cover" <> "water", "DEM", 0)
3、柵格數據類型一致
在使用con函數時,需要保證輸入的兩個柵格數據類型一致。
4、柵格數據範圍相同
在使用con函數時,需要保證輸入的兩個柵格數據範圍相同,否則將會出現像元偏移的問題。
四、總結
con函數是ArcGIS柵格計算器中的一種邏輯函數,可以應用於很多GIS數據處理中,特別是像元值選擇方面。在使用時需要注意條件表達式的正確性、數據類型的一致性,以及數據範圍的相同性,以免產生不必要的錯誤。
原創文章,作者:VTJIQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/368398.html