• 遥感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

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

  • 相关阅读:
    Java之泛型
    FreeRTOS实时操作系统 —基于STM32
    Android笔记
    ​LeetCode解法汇总2560. 打家劫舍 IV
    从电竞男孩到CEO,他如何用电子签实现事业腾飞
    js基础知识整理之 —— 全局作用域
    Spring实例化Bean的三种方法
    【上采样方式-OpenCV插值】
    海光异构智能计算专区上线飞桨AI Studio!
    流媒体及直播相关知识
  • 原文地址:https://blog.csdn.net/m0_66875796/article/details/127403554