注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面朝大海 春暖花开

一点心得,转载本博客文章,请注明转帖,谢谢!

 
 
 

日志

 
 
关于我

中国科学院博士 主要从事遥感机理、定量反演、数据处理以及GIS应用研究。ArcGIS、Envi 、ERDAS、Ecognition软件、IDL语言、6S、SAIL

网易考拉推荐

MODIS数据条带去除的方法  

2014-10-23 13:14:52|  分类: 遥感 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

?

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

这种多元并扫的扫描方式不可避免的会使遥感图像中存在条带噪声。这种现象在多种航天和航空遥感传感器当中是一种普遍存在的现象。只要该传感器是采用多个探测单元并列扫描的方式,则其获取的遥感图像就会存在条带噪声。这种现象的产生主要是因为传感器研制时的差异(如制作材料的不同)以及传感器光电和光学特性随着环境的变化、时间的推移产生衰减而引起的差异等原因,导致各个探测单元的转换传递函数不同,从而造成传感器对电磁辐射的响应及电子装置性能的差异,使相邻的扫描线在亮度方面产生不协调,表现为规则的横向条带。同时,这种噪声还可能由内部校准系统的微小误差及其噪声引起。最后需要指出的是,这种条带噪声并不同于由于仪器原因造成数据在记录或传输过程中丢失或中断而形成的坏线,这种坏线在图像中是随机分布,没有规律的[5]

本文主要利用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、去除条带前,横向条纹十分明显

clip_image002

clip_image003clip_image004

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

clip_image006

在以前发了一个关于用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,就可以按步骤进行了。

clip_image007clip_image008

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

处理步骤:

1、 打开IDL,写如程序代码:

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

保存

2、 在菜单中run->compil……进行编译。

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

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

这里要注意,并间隔不一定完全是上面这种情况,要根据图像上的条带具体间隔来定,我所用到的数据是500m,但是用这种方法进行处理的时候条带间隔就是20,可能是因为所用到的数据是归化到1000m的原因。

clip_image011

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

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

clip_image013

clip_image015

弹出如下对话框:

clip_image017

对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倍的运算量,但是这样做降低了影像的分辨率,会影响后续的应用,根据实际情况决定。

  评论这张
 
阅读(748)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017