使用 ENVI Classic 计算 landsat 7 ETM+ 图像ROI的星上反射率
在 USGS GloVis 网站上下载的 landsat 7 ETM+ 遥感影像是图像的DN值,在计算NDVI等指数之前需要将DN值转化为相应的反射率。
一、所需材料
二、操作步骤
1. 运行 NIVI Classic,点击“File”菜单中的“Open Image File”选项,找到遥感图像所在目录,选择并打开卫星图像文件夹中的MTL文件,即名为“LE07_L1TP_122044_20020107_20170201_01_T1_MTL.txt”的文本文件。MTL文件存储了遥感图像的元数据(Matadata)信息。此时图像所有波段都已加载进“Band List”。
2. 点击图中“RGB Color”选项,依次点击三个波段可以进行RGB真、假彩色合成。
3. 依次点击 Band 3、Band 2、Band 1,Load Band,得到合成的真彩色遥感影像。三个新窗口如下图所示,分别为Image(最上)、Scroll(左下)、Zoom(右下)。
4. 点击Image图像上的“Tools”菜单栏,在下拉菜单“Region Of Interest”中选择“ROI tool“,便可以通过ROI Tool创建多个region,选择合适的Window界面选项画图。在ROI_Type可以选择不同的形状。这里使用矩形工具,选择的区域如下:
5. 在 ROI Tool 的”File“菜单中点击”save“保存当前的ROI文件(”PearlRiver.roi“)。
6. 在 ROI Tool 的”File“菜单中点击”Subset Data via ROIs“,导出提取的文件(”PearRiver“)。
7. 为了使用IDL语言的”read_tiff“命令,需要将提取的”PearRiver“转化为TIFF格式。在ENVI Classic主菜单中 save file as ”TIFF/GeoTIFF“,命名为”PearlRiver.tif“。
8. 编程计算 TOA Reflectance,IDL代码如下:
pro CalcRefl
;参数从MTL文件中获得
REFLECTANCE_MULT_BAND_1 = 1.1619E-03
REFLECTANCE_MULT_BAND_2 = 1.3074E-03
REFLECTANCE_MULT_BAND_3 = 1.2383E-03
REFLECTANCE_MULT_BAND_4 = 1.8146E-03
REFLECTANCE_MULT_BAND_5 = 1.7302E-03
REFLECTANCE_MULT_BAND_7 = 1.6390E-03
REFLECTANCE_MULT_BAND_8 = 2.2468E-03
REFLECTANCE_ADD_BAND_1 = -0.010412
REFLECTANCE_ADD_BAND_2 = -0.011782
REFLECTANCE_ADD_BAND_3 = -0.011198
REFLECTANCE_ADD_BAND_4 = -0.016280
REFLECTANCE_ADD_BAND_5 = -0.015438
REFLECTANCE_ADD_BAND_7 = -0.014707
REFLECTANCE_ADD_BAND_8 = -0.013071
filename = 'C:\My_File\PearlRiver.tif'
img = read_tiff(filename, geotiff = tag)
idx = where(img ne 0)
img_nonzero = img[idx]
help,img
min_DN = min(img_nonzero)
max_DN = max(img_nonzero)
print," min nonzero value in img: ", min_DN
print," max nonzero value in img: ", max_DN
img_new = img*1.0
img_new[0,*,*] = img_new[0,*,*] * REFLECTANCE_MULT_BAND_1 + REFLECTANCE_ADD_BAND_1
img_new[1,*,*] = img_new[1,*,*] * REFLECTANCE_MULT_BAND_2 + REFLECTANCE_ADD_BAND_2
img_new[2,*,*] = img_new[2,*,*] * REFLECTANCE_MULT_BAND_3 + REFLECTANCE_ADD_BAND_3
img_new[3,*,*] = img_new[3,*,*] * REFLECTANCE_MULT_BAND_4 + REFLECTANCE_ADD_BAND_4
img_new[4,*,*] = img_new[4,*,*] * REFLECTANCE_MULT_BAND_5 + REFLECTANCE_ADD_BAND_5
img_new[5,*,*] = img_new[5,*,*] * REFLECTANCE_MULT_BAND_7 + REFLECTANCE_ADD_BAND_7
idx_new = where(img_new ne 0)
img_new_nonzero = img_new[idx_new]
help,img_new
min_DN_new = min(img_new_nonzero)
max_DN_new = max(img_new_nonzero)
print," min nonzero value in img_new: ", min_DN_new
print," max nonzero value in img_new: ", max_DN_new
write_path = 'C:\My_File\PR_Refl.tif'
write_tiff, write_path, img_new, geotiff = tag, /float
end
9. 生成的“PR_Refl.tif”即为 ROI 的星上反射率图像。