介绍一下利用ENVI去除MODIS数据条带的方法与步骤

  • 格式:doc
  • 大小:155.00 KB
  • 文档页数:5

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

介绍一下利用ENVI去除MODIS数据条带的方法与步骤。

MODIS数据应用日益广泛,但是由于波谱的相互干涉作用导致MODIS的5通道和26通道的反射率中“条带”现象非常严重,这严重影响了MODIS数据的应用。5通道分辨率5OOM,对云、气溶胶特性敏感。26通道分辨率1000M在薄云、卷云识别方面具有优越特性。

本文主要利用ENVI的ReplacingBadLines功能进行条带去除说明。这主要是利用条带出现的行两边对称的临近行数值进行平均,利用这个平均值来替代条带的数值。手工输入条带的行数超级慢,可以利用条带的周期性特点通过编制一个小程序来快速确定行数,然后通过ReplacingBadLines 的Restore功能载入行数即可。

对MODIS的500M分辨率的数据中5通道进行条带去除:因为5通道的条带只有一条,去除条带后效果很明显。而26通道的条带去除较为困难,因为该通道的条带特征是以中心为主向两侧羽化扩展,而且羽化的程度不一样,所以去条带效果不好。

下面以500M分辨率的5通道为例利用ENVI的ReplacingBadLines功能进行条带的去处,其中条带的行数利用自定义的一个过程:

MakeBadLineList,first,interval,lines,filename=filename,得到并生成一个BLL文件存贮条带行的信息用于ReplacingBadLines的Restore。first为出现第一个条带的行数,interval是条带的间隔,lines是数据的总行数,filename是输出文件名存贮行信息。

1、去除条带前,横向条纹十分明显

2、去除条带后,数据平滑,

在以前发了一个关于用ENVI的ReplacingBadLines去除MODIS数据中的条纹,其中提及到了用了一个自定义的过程MakeBadLineList来生成Restore所用到的BLL文件。一直有人发电邮问这个问题,现在详细说明一下,自定义过程如下:

pro MakeBadLineList,first,interval,lines,filename=filename

if not keyword_set(filename) then filename=’c:\aa.BLL’

curline=first

i=1

badlines=curline

while (curline+interval le lines) do begin

curline=i*interval+first

i=i+1

badlines=[[badlines],[curline]]

endwhile

openw,lun,filename,/get_lun

printf,lun,badlines

free_lun,lun

end

first为出现第一个条带的行数,interval是条带的间隔,lines是数据的总行数,filename是输出文件名存贮行信息

在ENVI中打开你所要去除条纹的MODIS的波段,如5波段,从图像的最上部起查找第一次出现条带的行数First,然后计算第二次条带出现时的间隔Interval,最后移动鼠标到图像的最下部得到MODIS数据的总行数Lines。Filename是可选变量,是用来定义一个文件来存贮得到的坏道数。

编译上面的过程后,可以在命令行来调用:MakeBadLineList,

first,interval,lines,filename=filename

最后在ReplacingBadLines中Restore这个文件Filename,就可以按步骤进行了。

通过以上图像的对比可以看到横向的条纹被去除了。

处理步骤:

编译上面的过程后,可以在命令行来调用:MakeBadLineList,

first,interval,lines,filename=filename,其中first为出现第一个条带的行数,(可以在打开该图的主影像中双击来查看图像信息来获取)interval是条带的间隔,lines是数据的总行数,filename 是输出文件名存贮行信息。

在这里,我用的是500米分辨率的影像,出现第一个条带是在第4行,500米分辨率的条带间隔是20,1000米分辨率的间隔是10,250米分辨率的影像间隔是40。我的图像的总行数为5400.

编译完成后在C:\生成了aa.bll文件。

然后用ENVI的修补坏道的菜单preprocessing->general purpose Utilitis-> replace bad lines进行修补:

弹出如下对话框:

对MODIS影象运用经纬度来进行几何校正

1 打开图像(BSQ 形式打开,注意经纬度所对应的波段)

本实验中,#3 对应longitude , #4 对应latitude , # 2对应影像

2 将经纬度合并为一个文件

file / save file as / envi standard / 选择#3 ,# 4 对应的文件/ 保存文件为f1

3 对影像文件进行重采样

base tools / resize data / 选择#2 对应的影像文件/ ok

在这个窗口中,把xfac和yfac 根据实际情况自己设置,保存为f2文件

4 裁图(因为对整个图像处理太慢,而且又只需要对图像其中一部分进行处理)

1)basic tools / resize data / spatial subset 中,选择f1文件(经纬合成文件),进入下一个窗口

选择image , 图像大小为400,400 (当然,位置和大小看我们的需要来定)结果保存为f1-1 2)basic tools / resize data / spatial subset 中,选择f2文件(影像重采样文件),进入下一个窗口

再此窗口中,选择previous ,这一点非常重要,确保经纬度和影像位置和大小匹配结果保存为f2-1 5 通过经纬度文件建立GLT

map / georeference from input geometry / built GLT , 进入下一窗口

注意,x 对应经度波段,y对应纬度波段,注意修改output pixel size : 1000 , output rotation : 0 即不旋转)保存为GLT

6 用GLT 对f2-1 配准

在此之前,应对f2-1 修改头文件,改为1,1 为左上角起点

map / georeference from input geometry / georeference from GLT

分别输入GLT 文件:GLT 输入数据文件:f2-2 最后输出结果重点注意:

1 由于分辨率的不同,要对影像(对应或是经纬度文件)进行重采样,变成同样的分辨率

2 裁剪图像时,要保证各个图像位置和大小一致(用previous形式)

3 用GLT 文件配准图像时,要编辑图像的头文件,使得左上角为1,1

4 几何校正前需要对modis影像进行去bow_tie effect,否则结果中会有空条带出现当然,也可以不对经纬度文件进行合并,这对运算结果和精度没有影像,只是在裁剪时,先后对经纬度文件进行裁减(也用previous形式)。注意了,最好把影像文件进行重采样,在和经纬度文件进行配准,可以减少1倍的运算量,但是这样做降低了影像的分辨率,会影响后续的应用,根据实际情况决定。