最近老师留了一份做家乡市级地温反演的期中大作业,从网上查阅了一些资料,发现大部分都是一幅图像的地表温度反演。而我们地大物博的吕梁超出了单幅遥感图像所覆盖的范围,需要选择两幅或多幅图像才能覆盖全区,这就加大了操作难度。
于是在我查阅大量资料后,找了解决方法,特在此分享一下。顺便以此纪念一下我连续三个晚上的挑灯夜战。(本人小白,大佬勿笑)
特别声明:本人也是新手,难免会有错误,有错误的话希望大家指正。
1.数据下载:
本实验采用的数据是
①从地理空间数据云下载的来自landsat8 卫星,云量<=1%,时间为2017年5月12日的山西省吕梁市影像数据。为全面覆盖吕梁市,选用了两片影像。
②吕梁市边界矢量图(shp文件)
2.操作流程:
导入数据(用open直接打开):
首先对第一幅影像使用Radiometric Correction-Radiometric Calibration工具对多光谱影像进行辐射定标,设定如下图:(在这里利用矢量文件减少运算量),然后点ok。
参数默认,设置输出路径即可:
然后对第二幅影像做相同处理:
得到结果:
将两幅完成辐射校正的影像使用 Mosaicking-Seamless Mosaic工具进行拼接:
勾选Histogram Matching:
点击seamlines,选择Auto Generate Seamlines自动生成缝纫线 ,然后在export中设置输出路径:
在漫长的等待后,成功地将两幅影像合成一幅:
在Toolbox中,选择Regions of interest>subset data from ROIs。选择刚刚拼接的影像,单击OK。
在弹出的spatial subset via ROI parameters面板中,选中吕梁市边界矢量文件,单击mask pixels output of ROI右侧按钮切换为Yes。设置输出路径和文件名,单击OK按钮:
输出裁剪结果(记为影像a):
对后缀为Thermal,按图示操作,选择Thermal Infrared 1(10.9)光谱,进行辐射定标:
然后对第二幅影像做相同处理
与上文操作相同,将两幅完成辐射校正的影像进行拼接裁剪,得到band10辐射亮度图像(记为影像b):
对影像a进行ndvi计算(直接使用ENVI自带的计算NDVI指数工具):
点击ok进行计算:
然后通过BAND math 进行输出植被覆盖度公式(b1 gt 0.7)*1+(b1 lt 0.05)*0+(b1 ge 0.05 and b1 le 0.7)*((b1 -0.05)/(0.7-0.05))
再用bandmath计算比辐射率公式 0.004*b1+0.986;b1指的是植被覆盖度,
然后在NASA公布的网站进行查询(http://atmcorr.gsfc.nasa.gov)大气剖面信息:(百度查到吕梁市的经纬度)
大气剖面信息为:大气在热红外波段的透过率τ:0.96;大气向上辐射亮度L↑:0.28;大气向下辐射亮度L↓:0.52。
因此,再用bandmath计算辐射亮度值公式(b2-0.28-0.96*(1-b1)*0.52)/(0.96*b1);b1指地表比辐射率,b2指辐射亮度图像(影像b)。
再用bandmath计算温度公式(1321.08)/alog(774.89/b1+1)-273;b1指的是辐射亮度,得到最后的结果:
在图层管理层中最终结果图层上,右键选择“Raster color slices”:
叉掉后得到地温反演成果图:
3.实验结果解释
本次实验数据结果温度13度到57度。刚开始以为做错了,在询问大佬后,他说实验数据结果温度在负几到五十多都是可以的。因为数据质量的问题,以及这本身就是一个反演,并不是真实的地表温度。
ps:此结果与两幅做完温度反演后拼接裁剪后的结果相同,说明操作流程没有问题。