版权声明:本教程涉及到的数据仅供练习使用,禁止用于商业用途。
目录
基本光谱分析
1.概述
2.详细操作步骤
2.1标准波谱库与浏览
2.2波谱库创建
2.3高光谱地物识别
2.3.1从标准波谱库选择端元进行地物识别
2.3.2自定义端元进行地物识别
1. 概述
光学遥感技术的发展经历了:全色(黑白)—>彩色摄影—>多光谱扫描成像—>高光谱遥感四个历程。
高光谱分辨率遥感(HyperspectralRemoteSensing)用很窄(小于10nm)而连续的光谱通道对地物持续遥感成像的技术。在可见光到短波红外波段其光谱分辨率高达纳米(nm)数量级,通常具有波段多的特点,光谱通道数多达数十甚至数百个以上,而且各光谱通道间往往是连续的,因此高光谱遥感又通常被称为成像光谱(ImagingSpectrometry)遥感。相比多光谱传感器,如Landsat8 OLI包括9个波段,光谱分辨率为106nm。
如下图为从多光谱和高光谱数据上获取的波谱曲线,更高波谱分辨率的图像可以用于识别物质,而相比多光谱图像,如TM只能用于区分物质。
图:从多光谱和高光谱数据上获取的波谱曲线对比
本课程学习ENVI的高光谱基本分析功能,包括波谱库的浏览与创建、基本的高光谱物质识别流程。
2. 详细操作步骤
2.1 标准波谱库与浏览
ENVI自带多种标准波谱库,包括建立在JPL波谱库基础上的,从0.4~2.5μm三种不同粒径160种"纯"矿物的波谱。美国USGS从0.4~2.5μm包括近500种典型的矿物和一些植被波谱。来自JohnsHopkinsUniversity(JHU)的波谱包含0.4~14μm。IGCP246波谱库有5部分组成,通过对26个优质样品用5个不同的波谱仪测量获得。植被波谱库由ChrisElvidge 提供,范围是0.4~2.5μm。ENVI5.1波谱库中新增了2443种Aster的波谱文件,同时对应的波谱工具也有了很大的该进,用户可直观地看到每一种波谱库中的文件个数,以及更为方便的查看每一种波谱文件的波谱曲线。
ENVI的波谱库文件存放在HOME ProgramFilesExelisENVI51classicspec_lib。
启动ENVI 5.1, 主菜单 > Display > Spectral LibraryView,在对话框中显示的就是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 LibraryBuilder。打开Spectral Library Builder对话框。
(2)为波谱库选择波长范围和FWHM值,有三个选项:
选择"First Input Spectrum",单击ok,打开Spectral Library Builder面板。
图:Spectral Library Builder对话框
第二步:波谱收集
在Spectral LibraryBuilder面板中,可以从各种数据源中收集波谱,见下表。所有收集的波谱被自动重采样到选择的波长空间。
表2.1波谱收集方法说明
菜单命令 | 功能 |
文本文件(From ASCII file) | 从包含波谱曲线x轴和y轴信息的文本文件,当选择好文本文件时候,需要在Input ASCIIFile面板中为x轴和y轴选择文本文件中相应的列。当选择from ASCII file (previoustemplate)时,自动按照前面设置导入波谱信息。 |
from ASD Binary Files | 从ASD波谱仪中导入波谱曲线。波谱文件将被自动重采样以匹配波谱库中的设置。当ASD文件的范围与输入波长的范围不匹配,将会产生一个全0结果。 |
from Spectral Library | 从标准波谱库中导入波谱曲线。 |
from ROI/EVF from inputfile | 从ROI或者矢量EVF导入波谱曲线,这些ROI/EVF关联相应的图像,波谱就是ROI/EVF上每个要素对应图像上的平均波谱。 |
from Stats file | 从统计文件中导入波谱曲线,统计文件的均值波谱将被导入。 |
From Plot Windows | 从Pot窗口中导入波谱曲线。 |
下面介绍从高光谱图像数据中收集波谱。启动ENVI,打开高光谱数据CupriteReflectance.dat。
(1)选择Display>Profile>Spectral,在SpectralProfile对话框中,显示当前鼠标点的剖面曲线。找到要收集的像元,鼠标选中,该像元的波谱曲线显示
(2)回到SpectralLibrary Builder面板中,选择Options>From Plot Windows,将所收集的波谱选中导入。
(3)导入的波谱显示在列表中,在波谱名称(SpectrumName)字段对应的记录双击鼠标以修改波谱名称。同样的方法可以修改颜色(Color)字段的信息。
图:Import from Plot Windows面板
这种方法是从图像上获取单个点的波谱曲线,也可以获取某个区域的平均波谱曲线,如ROI文件或者矢量文件。
(1)在ENVI主菜单中,选择File>Open,打开"ROICupriteMineralROIs.xml"感兴趣样本文件。
(2)回到SpectralLibrary Builder面板中,选择Options>from ROI/EVF from inputfile,选择高光谱文件CupriteReflectance.dat作为波谱来源。
图:Spectral Library Builder面板
(3)选中某一类感兴趣区,如方解石Calcite,点击Plot,绘制该感兴趣区的平均光谱曲线。
图:方解石Calcite的平均光谱曲线
第三步:保存波谱库
(1)SpectralLibrary Builder面板中,点击Select All,将样本全部选中;
(2)SpectralLibrary Builder面板中,选择File>Save Spectra As>SpectralLibrary,打开Output Spectral Library面板;
(3)在OutputSpectral Library面板中,可以输入以下参数:
(4)选择输入路径及文件名,单击OK保存波谱库文件。
图:保存波谱库参数设置面板
2.3 高光谱地物识别
高光谱图像分类方法与传统的多光谱分类有本质的区别,从高光谱图像的每个像元均可以获取一条连续的波谱曲线,就可以考虑用已知的波谱曲线和图上每个像元获取的波谱曲线进行对比,理想情况下两条波谱曲线一样,就能说明这个像元是哪种物质。我们把高光谱图像分类、物质识别、探测等称为波谱识别。
ENVI提供许多波谱分析方法,包括:二进制编码、波谱角分类、线性波段预测(LS-Fit)、线性波谱分离、光谱信息散度、匹配滤波、混合调谐匹配滤波(MTMF)、包络线去除、光谱特征拟合、多范围光谱特征拟合等。
下面以一高光谱数据为例,学习用波谱角分析方法从高光谱图像中识别物质的操作过程。
2.3.1从标准波谱库选择端元进行地物识别
第一步:端元波谱收集
ENVI的端元波谱收集途径非常多,包括ASCII文件、ASD测量文件、波谱库、ROI/矢量文件、统计文件、剖面波谱图、N维可视化分析器、二维散点图、SMACC工具等。这里我们选择从波谱库中收集端元波谱的方式。
(1)启动ENVI,打开高光谱数据CupriteReflectance.dat
(2)单击主菜单Display-> Spectral LibraryViewer,打开usgs(1994)->minerals_asd_2151.sli,点击Alunite、Calcite、Prehnite、Protlanndite,收集这些矿物的端元波谱并自动绘制在右侧的窗口中,将这四条光谱曲线绘制在新的波谱显示窗口,修改每条曲线为中文名;
图:从波谱库中收集端元波谱
第二步:物质识别
(1)在Toolbox中,打开/Classification/EndmemberCollection工具,在文件对话框中选择高光谱数据CupriteReflectance.dat;
(2)在EndmemberCollection面板中,选择Import >from Plot Windows。将4个端元波谱全部选中,点击OK;
(3)选择Algrithm>Spectral Angle Mapper 波谱角识别方法。
(4)单击SelectAll,选中所有的端元波谱。
图:选择端元波谱和制图方法
(5)单击Apply,运行波谱角法制图。
第三步:结果输出
在Spectral AngleMapper面板上,设置波谱角阈值: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/EndmemberCollection工具,在文件对话框中选择高光谱数据CupriteReflectance.dat;
(4)在EndmemberCollection面板中,选择Import –>from Plot Windows。将显示的端元波谱选中,点击OK;
单个像素的波谱曲线收集好了,下面是收集一个区域的平均波谱。
(5)在图层管理器中CupriteReflectance.dat上点击右键New Region OfInterest,找到一片需要识别的区域,绘制一个多边形区域;
注:可直接打开ROI端元ROI.xml
(6)回到EndmemberCollection面板,选择Import –>from ROI from inputfile,将绘制的ROI都选中,点击OK;
(7)在EndmemberCollection面板,选择Select All,单击Plot将几条波谱曲线显示出来。
注:以防万一,点击File->Save Spectraas->Spectral Library File,将获取的端元波谱保存为端元波谱文件。
图:保存端元波谱
第二步:确定端元波谱类型
(1)在Toolbox中,选择/Spectral/SpectralAnalyst,选择在对话框的右下角选择Open>Spectral Library,选择...ProgramFilesExelisENVI51classicspec_libusgs_minusgs_min.sli作为对比波谱库,在识别方法权重上按照默认,点击OK;
(2)在Spectral Analyst面板上,选择Options->Edit(x,y) Scale Factors,设置XData Multipliter为0.001,设置Y Data Multipliter为0.0001,点击OK;
注:标准波谱库的波长是微米,y轴的值为0-1反射率。
图:设置待识别波谱与标准波谱库的单位比例关系
(3)在SpectralAnalyst面板上,单击Apply按钮,选择之前步骤中得到的第一个波谱进行分析,点击OK,记下分值最高对应的地物;
图:选择一个波谱进行分析
图:波谱曲线分析结果
(4)回到Endmember Collection面板,将波谱分析得到的地物名在Name中输入;
(5)重复(3)--(4)两步,识别剩下的波谱,最后结果如下图所示:
图:波谱识别结果
第三步:物质识别
(1)在EndmemberCollection面板中,选择Algrithm >Spectral Angle Mapper 波谱角识别方法;
(2)选择SelectAll将所有端元波谱全部选中,点击OK;
(3)单击Apply,运行波谱角法制图。
(4)在SpectralAngle Mapper面板上,设置波谱角阈值:0.02,选择结果输出路径和名称。
图:Spectral Angle Mapper制图输出面板
图:矿物识别结果
教材下载:http://pan.baidu.com/s/1bnnMgEz
数据下载:http://pan.baidu.com/s/1bnD48yF
视频下载:http://pan.baidu.com/s/1rlYSA