天天看點

Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

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上經常崩潰,換到火狐後沒什麼問題。

Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

在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)。

Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

選擇影像級别為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列明顯不正常,為壞帶。

Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

再從之前引用的論文中的兩張圖來看Smile效應。

Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

是以可見,對Hyperion資料的預處理包括了:

Hyperion高光譜資料預處理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的波長順序完全不安大小排列:

    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
    若繼續進行操作,則最後光譜曲線出現如下錯亂,逼死強迫症啊!
    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
    後來還覺得調整波段順序就可以了,但是仔細思考後續的條紋去除,壞線修複,應該都與波段順序有關,特别是未标定波段的去除(删除1-7、58-76、255-242),必須在第一步讀入檔案的時候按照VNIR+SWIR的順序排列。
  • 問題解決

    發現在ENVI5.3中按照”File → Open As→ EO1→ HDF4“順序打開,順序完全正常:

    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

    1-70是VNIR,之後的是SWIR,太清爽了,于是猜想是L1R檔案的鍋,打算從ENVI5.3中另存出一個檔案來,放到classic裡。但誰料儲存速度極慢,難忍,重新試着在classic裡直接打開L1R檔案。

    這次直接按照”File → Open Image File”選擇“EO1H1230322004141110KZ.L1R”,彈出兩個視窗,選中名稱點OK,然後選擇BIL格式即可:

    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
    于是順序就對了,就是這麼簡單!!【之前做這麼多白白浪費時間沮喪臉@[email protected]】
    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

接着就沒什麼問題了,對與Workshop用到的“Ancillary Data”這個神奇的檔案夾,大家可能比較困惑,其實内容很簡單,并且有一些可以改進的地方。

  • 關于Ancillary Data

    根據”微網誌W”,第一步要做的是“條紋修複及壞線去除”,用到了

    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
    這個TXT檔案。打開第一列明顯是波段号(是以順序很重要),第二列是壞條帶的列号。
    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

    但是“bad_pixel_list_esri.txt”中有些波段的壞帶沒有,而且77-224的256号都重複了,這個esri的檔案看來不是良心貨啊,參考**譚炳香《EO-1 Hyperion高光譜資料的預處理》**後,改進成更完整的檔案。

    下載下傳位址:http://download.csdn.net/detail/qq_24442579/9638693

    Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

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中可見

Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

打開"Forward MNF Estimate Noise Statistics",選擇大氣校正後的檔案,用Spectral Subset選擇179的前50波段(接着後129-3=126波段);接着填寫Noise-stats; MNF-Noise-stats; MNF輸出檔案。運作完畢後會彈出特征值分布曲線,單調遞減(關閉該結果曲線就不知在哪再打開):

Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

圖示的是SWIR的結果,橫坐标為126個波段,縱坐标是特征值。

Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

在後129波段中,要剔除123-125的波段,因為它們是水汽吸收段,幾乎不含地面資訊,如果選上,ENVI會報錯:

根據"譚炳香《EO-1 Hyperion高光譜資料的預處理》“的文章,對VNIR與SWIR分别都隻用前20個特征值較大的波段,做MNF反轉,已達到抑制鋸齒現象。

具體的MNF反轉操作,打開"Inverse MNF Rotation”,選擇MNF輸出檔案,用Spectral Subset隻選擇前20個波段,接着的MNF-Noise-stats就是剛才的輸出之一。

Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理
Hyperion高光譜資料預處理Hyperion高光譜資料——影像擷取+預處理

在分别得到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