需求与目的
在批量将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模块。如下图所示。