ArcGIS应用(二十七)修改图像背景值nodata为0值
1.使用工具
arcgis10.2 工具箱
方法一 公式计算
使用Con函数计算,函数的基本语句:con(条件(语句),真(语句),假(语句))
若“真(语句)”或“假(语句)”存在缺失,则对应栅格单元的值赋值为空(NoData)。
三处语句均可以是表达式,布尔语句,值,嵌套条件语句,具体运用可根据实际需要灵活组合。
依次打开ArcTools->Spatial Analyst Tools->Map Algebra->Single Output Map Algebra.
打开Raster Calculator 窗口,如下图:
输入公式:Con(IsNull(“your raster_name”),0,“your raster_name.tif”)
这里是将nodata值改为了图像有效值0值了,在这之前,nodata值不在属性中显示的,我们打开原图属性,可以看到nodata值不在属性表中,如下图:
当我们计算完成之后,重新查看属性表,如下图:
背景值作为0值显示在属性表中了。
方法二 使用Copy Raster工具
依次打开ArcTools->Data Management Tools->Raster->Raster Dataset>CopyRaster.
复制并输出一个栅格数据,将背景值设置为0.
输出后,打开栅格数据属性,nodata值修改成了0,其他软件读取的时候读取到的就是0值了:
补充说明:实际上nodata值可以设置为任意值,arcgis可以识别为nodata值不做处理,不过如果使用python读取图像的时候,处理方法不一样,会读取到nodata的值作为像元的值,有时候其实是无效值,因此需要我们单独处理这种情况。
将背景值修改为Nodata
setnull函数可将特定的栅格值赋值为空值。
setnull([raster==1],[raster]),将raster中值为1的数据赋为空,其他保留原值
mask=IsNull(“SmallRegion.tif”) 设置非空区域为0,空值区域为1。
SetNull(“mask”==0,1) 设置掩膜层中值为0的为nodata,而其余 的为1
SetNull(“mask”==0,“mask”) 设置mask图层中值为0的为nodata,而其余区域为原始数据
来源:https://blog.csdn.net/liyanzhong/article/details/41928541