ENVI系列教程(十七)——基本光谱分析

目录

1 概述

2 详细操作步骤

2.1 标准波谱库与浏览

2.2 波谱库创建

2.2.1 第一步:输入波长范围

2.2.2 第二步:波谱收集

2.2.3 第三步:保存波谱库

2.3 高光谱地物识别

2.3.1 从标准波谱库选择端元进行地物识别

2.3.1.1 第一步:端元波谱收集

2.3.1.2 第二步:物质识别

2.3.1.3 第三步:结果输出

2.3.2 自定义端元进行地物识别

2.3.2.1 第一步:构建端元波谱库

2.3.2.2 第二步:确定端元波谱类型

2.3.2.3 第三步:物质识别


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.x 波谱库中新增了 2443 种 Aster 的波谱文件,同时对应的波谱工具也有了很大的改进,用户可直观地看到每一种波谱库中的文件个数,以及更为方便的查看每一种波谱文件的波谱曲线。

ENVI 的波谱库文件存放在 HOME\Program Files\Exelis\ENVI51\classic\spec_lib。

启动 ENVI 5.x,主菜单 > Display > Spectral Library View,在对话框中显示的就是 ENVI 自带的波谱库文件。

点击打开波谱库浏览器工具
波谱库浏览器

(1) 选择打开 Veg_lib(99)中的几个植被波谱文件:

在 vegetation 波谱库中选择 6 种不同植被的波谱曲线,在下图可以看到起对应的波谱曲线,以及波谱文件的属性信息,包括常规信息和曲线信息。

不同植被波谱曲线

(2)波谱曲线显示窗口中的功能:

在波谱曲线窗口中可以看到 4 个部分的内容:

– 导入文件(Import)

导入数据方式

此功能可以导入两种格式的文件,包括 ASCII 及波谱库形式存在的文件。

– 导出文件(Export)

导出数据方式
导出波谱文件的格式可以分类 4 大类:
  • 常见数据格式——ASCII 与波谱库文件;
  • Image、PDF 及 Postscript 输出格式;
  • 复制波谱曲线;
  • 直接打印曲线或在 PowerPoint 中展示。

– 选项工具(Options)

选项功能

选项工具中有三个功能:

  • 打开新的 Plot 窗口 —— 自由拖拽收集的地物波谱;
  • 波谱曲线上显示十字丝 —— 一直保持十字丝可见,显示波谱显现十字丝节点含义;
  • 添加波谱图例 —— 不同颜色的波谱曲线代表什么样的地物,更直观方便;

– 波谱曲线 X、Y 轴代表含义

X 轴代表:

  • Wavelength:(默认显示)影像波长;
  • Index:波段 i,i 代表影像具有 i 个波段;
  • Wavenumber: 波数,即 1/wavelength ,波数与波长成反比关系,波长越小,波数就越大。

Y 轴代表:

  • Data Value:(默认显示)影像原始值;
  • 包络线去除 Continuum Removed:绘制数据与连续删除。连续的是,套在光谱的顶部的凸包。它分为原始数据值,以产生连续取出的值。在连续使用中的绘制曲线中所显示的第一和最后一个数据点计算的,所以只对已缩放的图形,在连续的基础上所显示的数据来计算范围。
  • Binary Encoding:二进制编码,重新生成 0 与 1 的波频曲线。
导出 PNG 格式的波谱曲线

(3)波谱曲线属性显示窗口:

同一窗口中显示多个地类的波谱曲线不予重叠显示;

恢复原始数值范围曲线显示;

点击此功能显示或者隐藏 Plot Key 与曲线属性;

移除选中的一个曲线数据;

移除全部的曲线数据。

2.2 波谱库创建

ENVI 可以从波谱源中构建波谱库,波谱来源包括:ASCII 文件,由 ASD 波谱仪获取的波谱文件,标准波谱库,感兴趣区 / 矢量区域平均波谱曲线,波谱剖面和曲线等。

下面介绍波谱库建立的操作步骤:

2.2.1 第一步:输入波长范围

(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 对话框

2.2.2 第二步:波谱收集

在 Spectral Library Builder 面板中,可以从各种数据源中收集波谱,见下表。所有收集的波谱被自动重采样到选择的波长空间。

波谱收集方法说明
菜单命令
功能
文本文件(From ASCII file)从包含波谱曲线 x 轴和 y 轴信息的文本文件,当选择好文本文件时候,需要在 Input ASCII File 面板中为 x 轴和 y 轴选择文本文件中相应的列。当选择 from ASCII file (previous template) 时,自动按照前面设置导入波谱信息。
from ASD Binary Files从 ASD 波谱仪中导入波谱曲线。波谱文件将被自动重采样以匹配波谱库中的设置。当 ASD 文件的范围与输入波长的范围不匹配,将会产生一个全 0 结果。
from Spectral Library从标准波谱库中导入波谱曲线。
from ROI/EVF from input file从 ROI 或者矢量 EVF 导入波谱曲线,这些 ROI /EVF 关联相应的图像,波谱就是 ROI/EVF 上每个要素对应图像上的平均波谱。
from Stats file从统计文件中导入波谱曲线,统计文件的均值波谱将被导入。
From Plot Windows从 Plot 窗口中导入波谱曲线。

下面介绍从高光谱图像数据中收集波谱。启动 ENVI,打开高光谱数据 CupriteReflectance.dat。

  • 收集图像上某个像元的波谱:

(1)选择 Display>Profile>Spectral,在 Spectral Profile 对话框中,显示当前鼠标点的剖面曲线。找到要收集的像元,鼠标选中,该像元的波谱曲线显示。

(2)回到 Spectral Library Builder 面板中,选择 Options>From Plot Windows,将所收集的波谱选中导入。

(3)导入的波谱显示在列表中,在波谱名称(Spectrum Name)字段对应的记录双击鼠标以修改波谱名称。同样的方法可以修改颜色(Color)字段的信息。

鼠标取值定位到某个像元
指定像元的光谱曲线
选择从图像窗口导入按钮
选择图像窗口中的那个像元波谱曲线数据
导入的结果
波谱曲线

这种方法是从图像上获取单个点的波谱曲线,也可以获取某个区域的平均波谱曲线,如 ROI 文件或者矢量文件。

  • 收集 ROI 或矢量文件范围的平均波谱:

(1)在 ENVI 主菜单中,选择 File>Open,打开 “ROI\CupriteMineralROIs.xml” 感兴趣样本文件。

打开的ROI区域

(2)回到 Spectral Library Builder 面板中,选择 Options>from ROI/EVF from input file,选择高光谱文件 CupriteReflectance.dat 作为波谱来源。

选择高光谱文件 CupriteReflectance.dat 作为波谱来源
(3)选中某一类感兴趣区,如方解石 Calcite,点击 Plot,绘制该感兴趣区的平均光谱曲线。
选择方解石
导入的结果
ROI内的方解石区域平均光谱曲线

2.2.3 第三步:保存波谱库

(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 从标准波谱库选择端元进行地物识别

2.3.1.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,收集这些矿物的端元波谱并自动绘制在右侧的窗口中,将这四条光谱曲线绘制在新的波谱显示窗口,修改每条曲线为中文名。

从波谱库中收集端元波谱
修改名称后导出的波普曲线图
2.3.1.2 第二步:物质识别

(1)在 Toolbox 中,打开 / Classification/Endmember Collection 工具,在文件对话框中选择高光谱数据 CupriteReflectance.dat。

选择高光谱数据

(2)在 Endmember Collection 面板中,选择 Import >from Plot Windows。将 4 个端元波谱全部选中,点击 OK。

选择从图像窗口导入波谱曲线
选择所有的端元波谱曲线

(3)选择 Algrihm >Spectral Angle Mapper 波谱角识别方法。

选择SAM方法(波谱角法制图)

(4)单击 Select All,选中所有的端元波谱。

选择所有的端元波谱曲线

(5)单击 Apply,运行波谱角法制图。

2.3.1.3 第三步:结果输出

在 Spectral Angle Mapper 面板上,设置波谱角阈值:0.15,选择结果输出路径和名称。

导出结果的参数设置
矿物识别结果

2.3.2 自定义端元进行地物识别

这里我们选择从图像上收集端元波谱的方式,包括收集单个像元波谱和区域的平均波谱。

2.3.2.1 第一步:构建端元波谱库

(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
ROI的位置分布

(6)回到 Endmember Collection 面板,选择 Import ->from ROI from input file,将绘制的 ROI 都选中,点击 OK。

选择from ROI-EVF from input file按钮
选择刚才新建的ROI文件

(7)在 Endmember Collection 面板,选择 Select All,单击 Plot 将几条波谱曲线显示出来。

选中全部文件
波谱曲线的显示结果

注:以防万一,点击 File->Save Spectra as->Spectral Library File,将获取的端元波谱保存为端元波谱文件。

保存端元波谱
2.3.2.2 第二步:确定端元波谱类型

(1)在 Toolbox 中,选择 / Spectral/Spectral Analyst,选择在对话框的右下角选择 Open>Spectral Library,选择…\Program Files\Exelis\ENVI51\classic\spec_lib\usgs_min \usgs_min.sli 作为对比波谱库,在识别方法权重上按照默认,点击 OK。

选择ENVI自带的对比波谱库
选择导入的对比波谱库文件
默认权重参数设置

(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)两步,识别剩下的波谱,最后结果如下图所示:

剩下的波谱曲线分析结果
波谱识别结果
2.3.2.3 第三步:物质识别

(1)在 Endmember Collection 面板中,选择 Algrithm ->Spectral Angle Mapper 波谱角识别方法。

选择SAM方法(波谱角识别方法)

(2)选择 Select All 将所有端元波谱全部选中,点击 OK。

(3)单击 Apply,运行波谱角法制图。

(4)在 Spectral Angle Mapper 面板上,设置波谱角阈值:0.02,选择结果输出路径和名称。

Spectral Angle Mapper 制图输出面板参数设置
矿物识别结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@HNUSTer_CUMTBer

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值