Hyperion高光谱数据——影像获取+预处理
最近在用Hyperion做植被分类,利用高光谱的优势,应该能得到比Landsat精度更高的结果。按照以下几项对数据准备工作总结:
- Hyperion数据的免费下载
- 影像预处理的必要性
- 利用ENVI补丁Workshop进行处理——对出现的bug进行修改
- 最小噪声变换(MNF)改进锯齿现象
Firstly–Download the Image
主要在美国地质勘探局(United States Geological Survey)官网上下载最新的免费数据,包括Landsat系列、Modis系列等,网址是http://earthexplorer.usgs.gov/。
百度经验中详细介绍了操作。http://jingyan.baidu.com/article/a3f121e4e75626fc9152bb71.html
主要遇到过的问题就是JAVA插件,在360浏览器,Edge,IE上经常崩溃,换到火狐后没什么问题。
在Dataset中选择EO-1卫星的Hyperion;Resolution选择1000m;MapLayer中选择Admin Boundaries;在鹰眼视图中大致选择研究区位置(北京为例),或者直接输GPS。
Hyperion覆盖7.5km*180km宽的细长条带,对较大面积研究区覆盖起来比较尴尬。获取EO-1 Hyperion数据并不容易,每景数据2000美金,此数据需要编程订购,时间较长,所以现有的数据也就没几景(图示的北京周边地理范围内,2015年3景、2014年4景、2013年2景、2012年1景、2011年5景),时间段选择上也没有Landsat那么丰富。所以说我们现在看到的都是别人花钱买完公开的数据吧···
本次以2004年5月20号影像为例(ID: EO1H1230322004141110KZ)。
选择影像级别为L1R,未经过几何校正的,其坏带,条纹均在同一列,后续的预处理更方便。
Secondly–Important Preprocessing
预处理是遥感的一个重要环节,下载到的影像为了存储方便,一般都是按特定字节数(例如TM为8bit,OLI为16bit,Hyperion为16bit)。每个像元数值是压缩到bit级别后的大小(16bit下:-32767~+32767),不代表仪器测量出来辐照度/反射率的大小,如果仅拿影像当作观看,目视解译,则不必进行预处理校正;但是当作植被分类,参数反演等,需要用其物理真实意义的情况下,没有经过预处理(主要为辐射定标与大气校正)的影像,不是好的选择。以下引用来说明大气校正什么时候需要做:
“图像是否需要进行大气纠正,取决于图像的质量和其应用。如果图像的空间分布均匀,大气的影响是一致的,若只是用单时相的数据进行分类,或者根据相关矩阵判断地物的分离性,那么就没必要进行大气纠正。相反,如果图像的空间分布不均匀,如部分区域有薄雾出现,这时有必要进行大气纠正,如果想对不同时相的图像进行比较,或者进行图像与样地测量光谱或数据库光谱比较,那么大气纠正是十分必要的。”——谭炳香, 李增元, 陈尔学,等. EO-1 Hyperion高光谱数据的预处理[J]. 遥感信息, 2005, 2005(6):36-41.
Hyperion数据是以推扫方式用2套仪器分别获取VNIR和SWIR的数据,(一共4套敏感元件收集信号),L1产品有242个波段,1~70为可见近红外波段(VNIR),71~242为短波红外波段(SWIR),其中198个波段经过辐射定标处理,定标的波段分别为VNIR8~57,SWIR77~224。由于VNIR56~57与SWIR77~78的重叠,实际上只有196个独立的波段。没有定标的波段置为0值。VNIR的最大辐射为750W/m2/sr/μm,SWIR的为350W/m2/sr/μm。因此,产品生成时,采用了扩大因子,VNIR和SWIR的因子系数分别为40和80。
Hyperion L1产品从L0数据经过一系列处理生成,包括斑点去除、回波纠正、背景去除、辐射纠正、坏像元恢复以及图像质量检查等过程。一旦L1数据集生成,应该不再有坏像元或条纹等误差存在。但是,实际上不正常的像元仍然存在,在进行图像应用之前,必须将不正常的像元识别出来并加以纠正。
打开影像,可见1-7波段均为0值;8-9波段打开后,其中1、6、68、144列明显不正常,为坏带。
再从之前引用的论文中的两张图来看Smile效应。

因此可见,对Hyperion数据的预处理包括了:
Thirdly–Preprocessing Parts
此处主要参考的是“ENVI-IDL中国官方微博”的《ENVI下Hyperion高光谱数据预处理补丁Workshop及操作》(以下简称为”微博W”)一文。
其步骤介绍详细,功能完整,但是在亲测中出现了一些小问题,特在此进行补充,并对txt文件进行解释,方便大家理解参数的意义。
打开L1R文件的问题
问题描述:按照“微博W”的操作,从ENVI classic界面通过EO-1文件打开,波段出现乱序。由于补丁Workshop在classic中操作,经过“File → Open External File → EO1→ HDF,选择*.L1R文件打开“后,Band50-91的波长顺序完全不安大小排列:

若继续进行操作,则最后光谱曲线出现如下错乱,逼死强迫症啊!
后来还觉得调整波段顺序就可以了,但是仔细思考后续的条纹去除,坏线修复,应该都与波段顺序有关,特别是未标定波段的去除(删除1-7、58-76、255-242),必须在第一步读入文件的时候按照VNIR+SWIR的顺序排列。问题解决
发现在ENVI5.3中按照”File → Open As→ EO1→ HDF4“顺序打开,顺序完全正常:
1-70是VNIR,之后的是SWIR,太清爽了,于是猜想是L1R文件的锅,打算从ENVI5.3中另存出一个文件来,放到classic里。但谁料保存速度极慢,难忍,重新试着在classic里直接打开L1R文件。
这次直接按照”File → Open Image File”选择“EO1H1230322004141110KZ.L1R”,弹出两个窗口,选中名称点OK,然后选择BIL格式即可:

于是顺序就对了,就是这么简单!!【之前做这么多白白浪费时间沮丧脸@X@】
接着就没什么问题了,对与Workshop用到的“Ancillary Data”这个神奇的文件夹,大家可能比较困惑,其实内容很简单,并且有一些可以改进的地方。
- 关于Ancillary Data
根据”微博W”,第一步要做的是“条纹修复及坏线去除”,用到了
这个TXT文件。打开第一列明显是波段号(因此顺序很重要),第二列是坏条带的列号。


但是“bad_pixel_list_esri.txt”中有些波段的坏带没有,而且77-224的256号都重复了,这个esri的文件看来不是良心货啊,参考**谭炳香《EO-1 Hyperion高光谱数据的预处理》**后,改进成更完整的文件。
下载地址:http://download.csdn.net/detail/qq_24442579/9638693
PS:有个小疑惑就是29-35难道不包括32吗?论文内此处地方应该有误。
接着做未标定及水汽吸收严重波段剔除,用“Gain-offset files->Recal_242to179Band.txt",其保留了波段
| 8-57 | 79-120 | 123-125 | 128-166 | 179-223 |
|---|
一共179个,而与**谭炳香《EO-1 Hyperion高光谱数据的预处理》**论文中的176不符,论文中认为123-125波段受水汽吸收影像大,几乎不包含地物信息,但是ENVI的FLAASH大气校正需要输入1380nm附近的水汽吸收段,来mask云层,特别是高空云,参考补丁中附带文件“Hyperion Data Processing Instructions.pdf”16页,因此保留123-125为好。
最后的FLAASH大气校正,在“Enter ASCII Filename containing spectral scale factors(gains)”时用的FLAASHfactor-179 FLAASH_Scale_Factors.txt文件,前50个数为400,后129为800,解决的就是VNIR与SWIR扩大因子不同的问题,完成绝对辐射值转换。
Lastly–MNF抑制锯齿现象
"反射率转换后的某些像元光谱具有连贯锯齿噪音,并且与亮度高度相关,另外辐射定标是经过了一系列的处理生成的,包括斑点去除、回波纠正、背景去除、辐射纠正、坏像元恢复以及图像质量检查等过程,每一个环节都有一定缺陷和不确定性,所以光谱图像后处理是非常必要的。本文应用了一种图像MNF转换的方法来去除图像中波谱曲线上微小的相干“抖动”,因为这种方法不降低图像的空间分辨率。”——谭炳香, 李增元, 陈尔学,等. EO-1 Hyperion高光谱数据的预处理[J]. 遥感信息, 2005, 2005(6):36-41.
179波段的文件需要按前50VNIR,后129SWIR分为两部分处理。注意后129波段中的第123、124、125不能参与处理,详解见下。
打开ENVI5.3,在Toolbox->Transform->MNF Rotation中可见
打开"Forward MNF Estimate Noise Statistics",选择大气校正后的文件,用Spectral Subset选择179的前50波段(接着后129-3=126波段);接着填写Noise-stats; MNF-Noise-stats; MNF输出文件。运行完毕后会弹出特征值分布曲线,单调递减(关闭该结果曲线就不知在哪再打开):
图示的是SWIR的结果,横坐标为126个波段,纵坐标是特征值。

在后129波段中,要剔除123-125的波段,因为它们是水汽吸收段,几乎不含地面信息,如果选上,ENVI会报错:
根据"谭炳香《EO-1 Hyperion高光谱数据的预处理》“的文章,对VNIR与SWIR分别都只用前20个特征值较大的波段,做MNF反转,已达到抑制锯齿现象。
具体的MNF反转操作,打开"Inverse MNF Rotation”,选择MNF输出文件,用Spectral Subset只选择前20个波段,接着的MNF-Noise-stats就是刚才的输出之一。


在分别得到VNIR与SWIR的光谱曲线后,接着进行Layer Stack。但是在ENVI的该功能中,结果会对影像进行偏移,对坐标要求严格,故选择了在ArcGIS中利用Data management->Raster-Composite Bands,接着另存为tif格式即可。
MNF结果对比图如上3幅所示,左边为大气校正后,右边为MNF处理后的光谱曲线,前2植被光谱曲线&后1水体光谱曲线。
显然MNF可以起到抑制锯齿现象的作用,光滑程度与特征值波段的选择有关,本次选择20。若选择更少,则越光滑,噪声越少,若全选上,则与变换前完全相同。
以上的预处理步骤结束,接着可以对植被区域进行提取与分类。
2016年9月23-25日
林业楼517,BJFU