遥感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.结果
83cbc605d31897fd661cffe0f7ac3ae6.jpeg

451ef7653fcbeeafb64420bf6bd6dd85.jpeg

bd5ee1c0711664c255715a40bd97e640.jpeg
251cfccad9517733c787e563ae67257f.jpeg

来源引用:地理遥感生态网平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值