介绍一下利用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文件。一直有人发电邮问这个问题,现在详细说明一下,自定义过程如下:proMakeBadLineList,first,interval,lines,filename=filenameifnotkeyword_set(filename)thenfilename=’c:\aa.BLL’curline=firsti=1badlines=curlinewhile(curline+intervallelines)dobegincurline=i*interval+firsti=i+1badlines=[[badlines],[curline]]endwhileopenw,lun,filename,/get_lunprintf,lun,badlinesfree_lun,lunendfirst为出现第一个条带的行数,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-generalpurposeUtilitis-replacebadlines进行修补:弹出如下对话框:对MODIS影象运用经纬度来进行几何校正1打开图像(BSQ形式打开,注意经纬度所对应的波段)本实验中,#3对应longitude,#4对应latitude,#2对应影像2将经纬度合并为一个文件file/savefileas/envistandard/选择#3,#4对应的文件/保存文件为f13对影像文件进行重采样basetools/resizedata/选择#2对应的影像文件/ok在这个窗口中,把xfac和yfac根据实际情况自己设置,保存为f2文件4裁图(因为对整个图像处理太慢,而且又只需要对图像其中一部分进行处理)1)basictools/resizedata/spatialsubset中,选择f1文件(经纬合成文件),进入下一个窗口选择image,图像大小为400,400(当然,位置和大小看我们的需要来定)结果保存为f1-12)basictools/resizedata/spatialsubset中,选择f2文件(影像重采样文件),进入下一个窗口再此窗口中,选择previous,这一点非常重要,确保经纬度和影像位置和大小匹配结果保存为f2-15通过经纬度文件建立GLTmap/georeferencefrominputgeometry/builtGLT,进入下一窗口注意,x对应经度波段,y对应纬度波段,注意修改outputpixelsize:1000,outputrotation:0即不旋转)保存为GLT6用GLT对f2-1配准在此之前,应对f2-1修改头文件,改为1,1为左上角起点map/georeferencefrominputgeometry/georeferencefromGLT分别输入GLT文件:GLT输入数据文件:f2-2最后输出结果重点注意:1由于分辨率的不同,要对影像(对应或是经纬度文件)进行重采样,变成同样的分辨率2裁剪图像时,要保证各个图像位置和大小一致(用previous形式)3用GLT文件配准图像时,要编辑图像的头文件,使得左上角为1,14几何校正前需要对modis影像进行去bow_tieeffect,否则结果中会有空条带出现当然,也可以不对经纬度文件进行合并,这对运算结果和精度没有影像,只是在裁剪时,先后对经纬度文件进行裁减(也用previous形式)。注意了,最好把影像文件进行重采样,在和经纬度文件进行配准,可以减少1倍的运算量,但是这样做降低了影像的分辨率,会影响后续的应用,根据实际情况决定。