arcgis的計算器在哪裡?“栅格計算器(RasterCalculator)”工具是栅格數據計算的利器,是栅格數據空間分析中對栅格進行數據處理和分析操作中最為常用的方法,應用非常廣泛,能夠解決各種類型的問題,尤其重要的是建立複雜的應用數學模型的基本模塊使用的栅格數據必須是單個波段,多個波段隻對第一個波段運算輸入數據可以是一個栅格、也可以多個栅格;用到多個栅格數據時,要求它們的坐标系相同,像元的CELLSIZE大小(分辨率)相同,且栅格數據的範圍一緻,當多個栅格數據的範圍不同時取它們的交集栅格計算器是在ArcGIS的空間分析模塊,使用前一定要選中空間分析擴展模塊,我來為大家講解一下關于arcgis的計算器在哪裡?跟着小編一起來看一看吧!
arcgis的計算器在哪裡
15.4 栅格計算器“栅格計算器(RasterCalculator)”工具是栅格數據計算的利器,是栅格數據空間分析中對栅格進行數據處理和分析操作中最為常用的方法,應用非常廣泛,能夠解決各種類型的問題,尤其重要的是建立複雜的應用數學模型的基本模塊。使用的栅格數據必須是單個波段,多個波段隻對第一個波段運算。輸入數據可以是一個栅格、也可以多個栅格;用到多個栅格數據時,要求它們的坐标系相同,像元的CELLSIZE大小(分辨率)相同,且栅格數據的範圍一緻,當多個栅格數據的範圍不同時取它們的交集。栅格計算器是在ArcGIS的空間分析模塊,使用前一定要選中空間分析擴展模塊。
ArcGIS 提供了非常友好的圖形化栅格計算器界面,計算的基本原理就是對每個像元數值進行計算。不僅可以方便的完成基于數學運算符(加、減、乘、除等)的栅格運算和邏輯運算符(大于、小于,等于)的運算,以及基于數學函數的栅格運算。而且它還支持直接調用ArcGIS 自帶的栅格數據空間分析函數和工具,并且可以方便的實現多條語句的同時輸入和運行,如計算坡度,可以直接使用“Slope”函數,工具箱中輸出栅格有關的工具都可以使用,函數名就是工具名稱,而不是看到的标簽(平時看到工具,漢字就是标簽)。
栅格計算器使用Python語法,使用函數嚴格區分大小寫,大小寫有規律,每一個單詞首字母大寫,其他小寫,如Con工具,務必輸入為 Con,而不是 con 或 CON。栅格數據的圖層名稱必須包含在半角雙引号内。對于引号總結:在寫SQL查詢語句時是使用單引号,其他所有情況(含标注、字段計算器、栅格計算器,無論VBScript,或是Python)都是雙引号。
使用測試數據:“chp15\dem.tif”,先把數據加入到ArcMap中.
例1:運行“栅格計算器”工具,在算數運算編輯框中輸入: "dem.tif"/3 500,如圖15-16所示。
圖15-16 栅格計算器算數運算
該操作相當于對原栅格數據進行了加密處理,具體加密公式可以自己寫,别人不知道具體的公式,就不能還原的最原始的栅格數據,當然也可以其他應用,多個栅格,根據權重計算。
例2:輸入算數運算公式:9000 - "dem.tif",可以發現原來高的地方變低,低的地方變高,就是平時講的反地形,海洋中山脈和陸地的山脈正好相反,在陸地上的山谷線就是海洋的山脊線。
例3:輸入邏輯計算公式:"dem.tif" < 1000,計算後,看到滿足條件返回1,不滿足條件(大于等于1000),返回0,即将栅格數據以1000數值進行了分類,原始數據小于1000的變為1,大于等于1000的數值變為0。
15.4.1 空間分析函數調用測試數據:“chp15\dem.tif、dem1.tif、clip.SHP和dgx.SHP”。
例1:計算坡度:
在栅格計算機中輸入表達式:Slope("dem.tif"),如圖15-17所示。
圖15-17栅格計算器函數調用界面
例2:重分類:
将栅格數據分成兩類:像元值在2000以下的設置成1,像元值大于2000的設置成2。在栅格計算器中輸入表達式:Reclassify("dem.tif", "VALUE", "0 2000 1;2000 9000 2"),其中輸入語法中使用的都是雙引号,分類中間使用“;”隔開,輸出結果就是分類後輸出栅格。
例3:裁剪影像:
使用面clip.SHP裁剪栅格dem.tif。将該數據一定添加到ArcMap中,在栅格計算器中輸入表達式:ExtractByMask("dem.tif","clip")。
例4:生成DEM:
使用dgx.SHP的高程字段“gc”,調用工具“地形轉栅格(TopoToRaster) ”工具,輸出分辨率10,栅格表達式:TopoToRaster ("dgx gc Contour", "10")
例子5:計算填挖方:
在栅格計算器中輸入表達式:CutFill("dem.tif","dem1.tif")。
注意:栅格計算器使用數據最好先加載到ArcMap中,如果沒有加載到ArcMap中,則需要把數據的絕對路徑注明,如: "d:\chp15\dem.tif"。
15.4.2 Con函數使用測試數據:“chp15\dem.tif、chp15\dem1.tif”。
針對輸入栅格的每個輸入像元執行 if/else 條件評估。具體的語法如下:
Con (in__raster, in_true_raster_or_constant, {in_false_raster_or_constant}, {where_clause})
Con函數的參數說明如表15-1所列。
表15-1 Con函數的參數說明表
參數
說明
數據類型
in__raster
表示所需條件結果為真或假的輸入栅格。可以是整型或浮點型。
栅格
in_true_raster_or_constant
條件為真時,其值作為輸出像元值的輸入。可為整型或浮點型栅格,或為常數值。
栅格或數值常量
in_false_raster_or_constant
(可選)
條件為假時,其值作為輸出像元值的輸入。可為整型或浮點型栅格,或為常數值。
栅格或數值常量
where_clause
(可選)
決定輸入像元為真或假的邏輯表達式。表達式遵循 SQL 表達式的一般格式。where_clause 的一個示例為 "VALUE > 100"。
SQL 表達式
例如:對于DEM值小于1000,返回1,大于1000的返回0,則輸入的表達式為:Con("dem.tif" < 1000,1,0),也可以是Con("dem.tif",1,0,"VALUE <1000");如果隻返回小于1000的範圍,輸入的表達式:Con("dem.tif" < 1000,1)。使用栅格計算器加入條件函數的使用,再使用工具箱中“栅格轉面(RasterToPolygon)”工具就可以得到類似洪水淹沒的範圍數據(指定高程值以下的區域)。
15.4.3 空和0轉換在栅格數據,有一種數據值為空:NoData,該值是表示在該位置處數據缺失,NoData 與 0 不同,0 是有效數值。在栅格數據中NoData值不能做任何數學運算。我們經常需要把dem.tif中空值轉換成0,此時應輸入的表達式是:Con(IsNull("dem.tif"),0,"dem.tif"),如果使用栅格文件格式,需要加擴展名,來自數據庫中栅格數據,就是數據名稱,反之加擴展名的是就是文件格式的栅格,不加擴展名就是數據庫格式的栅格數據。
有時需要0轉換成空,如raster1數據,此時需要輸入的表達式為Con("raster1"!=0,"raster1"),或SetNull("raster1"==0,"raster1"),這裡的raster1是上面dem.tif将空轉換成0的結果數據。
15.4.4 比較影像的不同影像數據的比較,隻能是一個波段,對于多個波段數據,各個波段要分别比較,也可以先轉換成灰度圖。處理的有兩種方法,
第1種:相減。在栅格計算器中輸入表達式:"dem.tif" - "dem1.tif",執行後數值為0的地方相同,不為0就不同;
第2種:相同不返回,返回不相同的差值。在栅格計算器中輸入表達式:Con("dem.tif" != "dem1.tif","dem.tif" - "dem1.tif")。
更多内容看ArcGIS基礎到實戰書