版權聲明:本教程涉及到的數據僅供練習使用,禁止用於商業用途。
目錄
基本光譜分析
1. 概述
2. 詳細操作步驟
2.1 標準波譜庫與瀏覽
2.2 波譜庫創建
2.3 高光譜地物識別
2.3.1 從標準波譜庫選擇端元進行地物識別
2.3.2 自定義端元進行地物識別
1. 概述
光學遙感技術的發展經歷了:全色(黑白)—>彩色攝影—>多光譜掃描成像—>高光譜遙感四個歷程。
高光譜解析度遙感(HyperspectralRemote Sensing)用很窄(小於10nm)而連續的光譜通道對地物持續遙感成像的技術。在可見光到短波紅外波段其光譜解析度高達納米(nm)數量級,通常具有波段多的特點,光譜通道數多達數十甚至數百個以上,而且各光譜通道間往往是連續的,因此高光譜遙感又通常被稱為成像光譜(Imaging Spectrometry)遙感。相比多光譜傳感器,如Landsat8 OLI包括9個波段,光譜解析度為106nm。
如下圖為從多光譜和高光譜數據上獲取的波譜曲線,更高波譜解析度的圖像可以用於識別物質,而相比多光譜圖像,如TM只能用於區分物質。
圖:從多光譜和高光譜數據上獲取的波譜曲線對比
本課程學習ENVI的高光譜基本分析功能,包括波譜庫的瀏覽與創建、基本的高光譜物質識別流程。
2. 詳細操作步驟
2.1 標準波譜庫與瀏覽
ENVI自帶多種標準波譜庫,包括建立在JPL波譜庫基礎上的,從0.4~2.5μm三種不同粒徑160種"純"礦物的波譜。美國USGS從0.4~2.5μm包括近500種典型的礦物和一些植被波譜。來自Johns Hopkins University(JHU)的波譜包含0.4~14μm。IGCP246波譜庫有5部分組成,通過對26個優質樣品用5個不同的波譜儀測量獲得。植被波譜庫由Chris Elvidge 提供,範圍是0.4~2.5μm。ENVI 5.1波譜庫中新增了2443種Aster的波譜文件,同時對應的波譜工具也有了很大的該進,用戶可直觀地看到每一種波譜庫中的文件個數,以及更為方便的查看每一種波譜文件的波譜曲線。
ENVI的波譜庫文件存放在HOME\ Program Files\Exelis\ENVI51\classic\spec_lib。
啟動ENVI 5.1, 主菜單 > Display > Spectral Library View,在對話框中顯示的就是ENVI自帶的波譜庫文件;
圖:ENVI自帶波譜庫文件
(1)選擇打開Veg_lib(99)中的幾個植被波譜文件;
在vegetation波譜庫中選擇6種不同植被的波譜曲線,在下圖可以看到起對應的波譜曲線,以及波譜文件的屬性信息,包括常規信息和曲線信息。
圖:不同植被波譜曲線
(2)波譜曲線顯示窗口中的功能;
在波譜曲線窗口中可以看到4個部分的內容:
圖:導入數據方式
此功能可以導入兩種格式的文件,包括ASCII及波譜庫形式存在的文件。
圖:導出數據方式
導出波譜文件的格式可以分類4大類:
圖:選項功能
選項工具中有三個功能:
X軸代表:
Y軸代表:
圖:導出PNG格式的波譜曲線
(3)波譜曲線屬性顯示窗口
2.2 波譜庫創建
ENVI可以從波譜源中構建波譜庫,波譜來源包括:ASCII文件,由ASD波譜儀獲取的波譜文件,標準波譜庫,感興趣區/矢量區域平均波譜曲線,波譜剖面和曲線等。
下面介紹波譜庫建立的操作步驟:
第一步:輸入波長範圍
(1)在ENVI中,選擇Toolbox/Spectral/Spectral Libraries/Spectral Library Builder。打開Spectral Library Builder對話框。
(2)為波譜庫選擇波長範圍和FWHM值,有三個選項:
"Data File" (ENVI圖像文件) :波長和FWHM值(若存在)從選擇文件的頭文件中讀取
"ASCII File":波長值與FWHM值的列的文本文件
"First Input Spectrum":以第一次輸入波譜曲線的波長信息為準
選擇"First Input Spectrum",單擊ok,打開Spectral Library Builder面板。
圖:Spectral Library Builder對話框
第二步:波譜收集
在Spectral Library Builder面板中,可以從各種數據源中收集波譜,見下表。所有收集的波譜被自動重採樣到選擇的波長空間。
表2.1波譜收集方法說明
下面介紹從高光譜圖像數據中收集波譜。啟動ENVI,打開高光譜數據CupriteReflectance.dat。
(1)選擇Display>Profile>Spectral,在Spectral Profile對話框中,顯示當前滑鼠點的剖面曲線。找到要收集的像元,滑鼠選中,該像元的波譜曲線顯示
(2)回到Spectral Library Builder面板中,選擇Options>From Plot Windows,將所收集的波譜選中導入。
(3)導入的波譜顯示在列表中,在波譜名稱(Spectrum Name)欄位對應的記錄雙擊滑鼠以修改波譜名稱。同樣的方法可以修改顏色(Color)欄位的信息。
圖:Import from Plot Windows面板
這種方法是從圖像上獲取單個點的波譜曲線,也可以獲取某個區域的平均波譜曲線,如ROI文件或者矢量文件。
(1)在ENVI主菜單中,選擇File>Open,打開"ROI\CupriteMineralROIs.xml"感興趣樣本文件。
(2)回到Spectral Library Builder面板中,選擇Options>from ROI/EVF from input file,選擇高光譜文件CupriteReflectance.dat作為波譜來源。
圖:Spectral Library Builder面板
(3)選中某一類感興趣區,如方解石Calcite,點擊Plot,繪製該感興趣區的平均光譜曲線。
圖:方解石Calcite的平均光譜曲線
第三步:保存波譜庫
(1)Spectral Library Builder面板中,點擊Select All,將樣本全部選中;
(2)Spectral Library Builder面板中,選擇File>Save Spectra As>Spectral Library,打開Output Spectral Library面板;
(3)在Output Spectral Library面板中,可以輸入以下參數:
Z剖面範圍(Z Plot Range):空白(Y軸的範圍,根據波譜值自動調節)
X軸標題(X Axis Title):波長
Y軸標題(Y Axis Title):反射率
反射率縮放係數(Reflectance Scale Factor):空白
波長單位(Wavelength Units):Nanometers
X值縮放係數(X Scale Factor):1
Y值縮放係數(Y Scale Factor):1
(4)選擇輸入路徑及文件名,單擊OK保存波譜庫文件。
圖:保存波譜庫參數設置面板
2.3 高光譜地物識別
高光譜圖像分類方法與傳統的多光譜分類有本質的區別,從高光譜圖像的每個像元均可以獲取一條連續的波譜曲線,就可以考慮用已知的波譜曲線和圖上每個像元獲取的波譜曲線進行對比,理想情況下兩條波譜曲線一樣,就能說明這個像元是哪種物質。我們把高光譜圖像分類、物質識別、探測等稱為波譜識別。
ENVI提供許多波譜分析方法,包括:二進位編碼、波譜角分類、線性波段預測(LS-Fit)、線性波譜分離、光譜信息散度、匹配濾波、混合調諧匹配濾波(MTMF)、包絡線去除、光譜特徵擬合、多範圍光譜特徵擬合等。
下面以一高光譜數據為例,學習用波譜角分析方法從高光譜圖像中識別物質的操作過程。
2.3.1 從標準波譜庫選擇端元進行地物識別
第一步:端元波譜收集
ENVI的端元波譜收集途徑非常多,包括ASCII文件、ASD測量文件、波譜庫、ROI/矢量文件、統計文件、剖面波譜圖、N維可視化分析器、二維散點圖、SMACC工具等。這裡我們選擇從波譜庫中收集端元波譜的方式。
(1)啟動ENVI,打開高光譜數據CupriteReflectance.dat
(2)單擊主菜單Display-> Spectral Library Viewer,打開usgs(1994)->minerals_asd_2151.sli,點擊Alunite、Calcite、Prehnite、Protlanndite,收集這些礦物的端元波譜並自動繪製在右側的窗口中,將這四條光譜曲線繪製在新的波譜顯示窗口,修改每條曲線為中文名;
圖:從波譜庫中收集端元波譜
第二步:物質識別
(1)在Toolbox中,打開/Classification/Endmember Collection工具,在文件對話框中選擇高光譜數據CupriteReflectance.dat;
(2)在Endmember Collection面板中,選擇Import >from Plot Windows。將4個端元波譜全部選中,點擊OK;
(3)選擇Algrithm >Spectral Angle Mapper 波譜角識別方法。
(4)單擊Select All,選中所有的端元波譜。
圖:選擇端元波譜和製圖方法
(5)單擊Apply,運行波譜角法製圖。
第三步:結果輸出
在Spectral Angle Mapper面板上,設置波譜角閾值:0.15,選擇結果輸出路徑和名稱。
圖:Spectral Angle Mapper製圖輸出面板
圖:礦物識別結果
2.3.2 自定義端元進行地物識別
這裡我們選擇從圖像上收集端元波譜的方式,包括收集單個像元波譜和區域的平均波譜。
第一步:構建端元波譜庫
(1)啟動ENVI,打開高光譜數據CupriteReflectance.dat;
(2)單擊主菜單Display> Profiles>Spectral,在圖像上定位到像素坐標為:(467,412)的像元,即在工具欄Go To輸入467,412回車,將該像元的光譜曲線顯示在窗口中
圖:(467,412)像元的波譜曲線
(3)在Toolbox中,打開/Classification/Endmember Collection工具,在文件對話框中選擇高光譜數據CupriteReflectance.dat;
(4)在Endmember Collection面板中,選擇Import –>from Plot Windows。將顯示的端元波譜選中,點擊OK;
單個像素的波譜曲線收集好了,下面是收集一個區域的平均波譜。
(5)在圖層管理器中CupriteReflectance.dat上點擊右鍵New Region Of Interest,找到一片需要識別的區域,繪製一個多邊形區域;
註:可直接打開ROI\端元ROI.xml
(6)回到Endmember Collection面板,選擇Import –>from ROI from input file,將繪製的ROI都選中,點擊OK;
(7)在Endmember Collection面板,選擇Select All,單擊Plot將幾條波譜曲線顯示出來。
註:以防萬一,點擊File->Save Spectra as->Spectral Library File,將獲取的端元波譜保存為端元波譜文件。
圖:保存端元波譜
第二步:確定端元波譜類型
(1)在Toolbox中,選擇/Spectral/Spectral Analyst,選擇在對話框的右下角選擇Open>Spectral Library,選擇...\Program Files\Exelis\ENVI51\classic\spec_lib\usgs_min \usgs_min.sli作為對比波譜庫,在識別方法權重上按照默認,點擊OK;
(2)在Spectral Analyst面板上,選擇Options->Edit(x,y) Scale Factors,設置X Data Multipliter為0.001,設置Y Data Multipliter為0.0001,點擊OK;
註:標準波譜庫的波長是微米,y軸的值為0-1反射率。
圖:設置待識別波譜與標準波譜庫的單位比例關係
(3)在Spectral Analyst面板上,單擊Apply按鈕,選擇之前步驟中得到的第一個波譜進行分析,點擊OK,記下分值最高對應的地物;
圖:選擇一個波譜進行分析
圖:波譜曲線分析結果
(4)回到Endmember Collection面板,將波譜分析得到的地物名在Name中輸入;
(5)重複(3)--(4)兩步,識別剩下的波譜,最後結果如下圖所示:
圖:波譜識別結果
第三步:物質識別
(1)在Endmember Collection面板中,選擇Algrithm >Spectral Angle Mapper 波譜角識別方法;
(2)選擇Select All將所有端元波譜全部選中,點擊OK;
(3)單擊Apply,運行波譜角法製圖。
(4)在Spectral Angle Mapper面板上,設置波譜角閾值:0.02,選擇結果輸出路徑和名稱。
圖:Spectral Angle Mapper製圖輸出面板
圖:礦物識別結果
數據下載:https://pan.baidu.com/s/1bnD48yF
視頻下載:https://pan.baidu.com/s/1rlYSA
原文連結:
http://blog.sina.com.cn/s/blog_764b1e9d0102v2dd.html
聲明:本文僅限行業學習交流之用,版權、著作權歸原載平臺及作者所有。我們尊重作者的成果,如涉嫌侵權,請聯繫我們及時刪除。
你若喜歡,請轉發點讚點廣告點在看