GIS前沿 2022-03-29 12:00 以下文章来源于gisoracle ,作者闫磊ArcGIS 栅格计算器算数运算 该操作相当于对原栅格数据进行了加密处理,具体加密公式可以自己写,别人不知道具体的公式,就不能还原的最原始的栅格数据,当然也可以其他应用,多个栅格,根据权重计算。 例2:输入算数运算公式:9000 - "dem.tif",可以发现原来高的地方变低,低的地方变高,就是平时讲的反地形,海洋中山脉和陆地的山脉正好相反,在陆地上的山谷线就是海洋的山脊线。 例3:输入逻辑计算公式:"dem.tif" < 1000,计算后,看到满足条件返回1,不满足条件(大于等于1000),返回0,即将栅格数据以1000数值进行了分类,原始数据小于1000的变为1,大于等于1000的数值变为0。 一、空间分析函数调用测试数据:“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 20001;2000 9000 2"),其中输入语法中使用的都是双引号,分类中间使用“;”隔开,输出结果就是分类后输出栅格。 例3:裁剪影像: 使用面clip.SHP裁剪栅格dem.tif。将该数据一定添加到ArcMap中,在栅格计算器中输入表达式:ExtractByMask("dem.tif","clip")。 二、 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所列。 表-Con函数的参数说明表
例如:对于DEM值小于1000,返回1,大于1000的返回0,则输入的表达式为:Con("dem.tif"< 1000,1,0),也可以是Con("dem.tif",1,0,"VALUE <1000");如果只返回小于1000的范围,输入的表达式:Con("dem.tif" < 1000,1)。返回变量Con("dem.tif" < 2000,"dem.tif")。也支持没有加入arcmap的数据,如Con("F:\2020培训\data\最后示例数据\最后示例数据\chp15\dem.tif"<2000,"F:\2020培训\data\最后示例数据\最后示例数据\chp15\dem.tif") 结果 三、空和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的结果数据。 四、比较影像的不同第2种:相同不返回,返回不相同的差值。在栅格计算器中输入表达式:Con("dem.tif"!= "dem1.tif","dem.tif" - "dem1.tif")。 - END - |
|