如有研究需要数据,请与QQ1807232;或微信扫码添加客服咨询

遥感IDL二次开发(大气校正)

遥感IDL二次开发(大气校正)

1.程序功能:
用ENVI打开TM数据,将数据传到IDL工作空间,在IDL环境下进行大气校正,并将结果回传给ENVI。

2.程序源代码:

Function AtmoCorr32,test 

;**************** 读入数据 *********************;

size_image=size(test) 

samples=size_image[1];TM列数

lines=size_image[2];TM行数

bands=size_image[3];TM波段数  

;读取 TM 的 Gain 和 Offset 值到 data 中

fn_calib='辐射定标参数txt文件存储路径'; 

openr,lun,fn_calib,/get_lun 

data=fltarr(2,6) 

data1=fltarr(3,6) 

readf,lun,data0 

readf,lun,data1 

free_lun,lun 

gain=data0[0,0:5];增益值 

offset=data0[1,0:5];偏移值  

;用定标系数将原始DN值转换为大气层顶太阳辐亮度L 

L=fltarr(size_image[1],size_image[2],size_image[3]);定义辐亮度

 for i=0,bands-1 do begin

  L[*, *, i]=gain[i]*test[*,*,i]+offset[i]; 

  Endfor 

  ;输出辐射定标后文件

  envi_write_envi_file,out_name='大气校正参数txt文件路径',L  

  ;读取大气校正参数

  a=data1[0,*] 

  b=data1[1,*] 

  c=data1[2,*]  

  ;设置一个数组准备存放大气校正的结果

  E=fltarr(size_image[1],size_image[2],size_image[3]) 

  ;大气校正

  for i=0,bands-1 do begin

     y=a[i]*L[*,*,i]-offset[i];

   E[*,*,i]=y/(1+c[i]*y); 

   Endfor 

   ;输出大气校正文件 

   envi_write_envi_file,out_name='输出大气校正结果txt文件路径',E  

     return,E 

     end

**注意:**首先要打开 ENVI+IDL联合程序, 然后用ENVI加载影像,并将需要使用的影像导入到 IDL 中,最后在IDL命令窗口中输入函数:如 E=AtmoCorr32(test)

3.结果
例图遥感影像(预处理前)

原图光谱曲线

辐射定标后光谱曲线
大气校正后光谱曲线

来源引用:地理遥感生态网平台www.gisrs.cn