1.程序功能:
在IDL环境下进行辐射定标,并将结果返回ENVI。
2.运行步骤:
2.1 在ENVI中打开TM数据,并将数据传回到IDL工作空间:
首先打开ENVI+IDL8.5,导入TM数据,然后在右侧工具栏中输入IDL,点击Export to IDL variable,选择导入的TM_data,命名为TM01。然后切换到IDL工作空间,输入代码后编译运行。
2.2 读入TM的定标参数,将TM的DN值转换为辐亮度L:
在下方控制台中,调用函数L= AtmoCorr5(TM_data),在弹出的窗口中选择校正参数文档,点击回车,IDL就会自动对图像进行辐射定标。
2.3 将辐亮度数据传回ENVI,保存,并编辑头文件:
回到ENVI,在右侧工具栏中输入IDL,点击 Import from IDL variable,导入L(辐射定标后的图像),如是在新版ENVI 中操作,需要打开Data Manager,才可以显示输出后的图像。
3.程序源代码:
functionAtmoCorr5,TM_data
;L——定标后辐射亮度
;DN——原始灰度值
;Gain和Offset分别为该波段的增益和偏置系数
;读入数据
size_TM=size(TM_data) ;TM数据的大小
samples=size_TM[1] ;TM数据列数
lines=size_TM[2] ;TM数据行数
bands=size_TM[3] ;TM数据波段数
print, samples,lines,bands
;读取TM各波段增益与偏置系数
fn_calib=dialog_pickfile(filter='*.txt')
openr,lun,fn_calib,/get_lun
data=fltarr(2,6)
readf,lun,data
free_lun,lun
gain=data[0,*] ;增益值
offset=data[1,*] ;偏移值
;利用定标系数将原始DN值转换为大气层顶太阳辐亮度L
L=fltarr(samples,lines,bands) ;定义辐亮度
fori=0,bands-1dobegin
L[*,*,i]=TM_data[*,*,i]*gain[i]+offset[i] ;计算辐亮度
endfor
return,L
end
来源引用:地理遥感生态网平台