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