2019-10-21 设置GeoTif图像中缺失值为Nodata

需求与目的

在批量将MODIS数据hdf转为GeoTif格式之后(具体操作可参考我的另一篇博客MODIS数据hdf转tifs),在ArcGIS打开图像发现,图像中的缺失值是一个具体的数值(有时是+3888888888888或者是-3888888888888或者是其它)而非Nodata(如下图所示)
在这里插入图片描述
可以看出,图像中像素值为0的像元都是Nodata区域。如果不将0值设为Nodata,不仅影响ArcGIS中图像显示的美观效果,而且在使用ArcGIS进行其它计算分析的时候也会造成很大的影响。故而需要将GetTif中的这类数值都设置成Nodata。
另外,MOD11B1中的LST_Day_6km、LST_Night_6km数据集是表面温度产品,像元值需要乘以0.02,单位是K,如果需要转为℃,需要减去273.15才是实际的温度值。所以还需要将图像的值进行一个数学运算。

运行环境

Windows 7、10(其它系统版本未尝试);
ArcGIS10.5自带Python 2.7.12,因为要调用ArcGIS中的ArcPy模块,所以只能使用ArcGIS自带的Python 2.7.12版本;
ArcGIS需要在扩展模块中勾选 Spatial Analyst模块。如下图所示。
在这里插入图片描述

Python代码实现

代码如下:
在这里插入图片描述之前忘记了转换公式,代码中需要进行修改
K温度: data = data * 0.02
摄氏度: data = data * 0.02 - 273.15

结果

在这里插入图片描述
用ArcGIS打开看一下:
在这里插入图片描述OK,那些像素值低于100和大于100000的像元就设置为了Nodata值了,搞定!

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值