ENVI扩展工具:完全约束最小二乘法混合像元分解【更新】

0
分享 2016-06-02
ENVI中提供了功能强大的光谱分析方法,比如SMACC端元提取技术、波谱归一化处理、MNF变换的噪声分析、像元纯度分析、N维散度分析等功能,还具有二进制编码、波谱角分类、线性波段预测(LS-Fit)、线性波谱分离、光谱信息散度、匹配滤波、混合调谐匹配滤波(MTMF)、包络线去除、光谱特征拟合、多范围光谱特征拟合等高光谱分析方法。
其中,线性波谱分离即线性混合像元分解(Linear Spectral Unmixing),此工具只能进行一个约束条件,即分解丰度图结果的和,一般情况下设为1。但是得到的丰度图经常会出现负值的情况,这是不合理的。
理论上来讲,一个像元内每种端元的丰度图DN值范围在0~1之间,并且和为1。这是两个约束条件,因此可以利用完全约束最小二乘法进行混合像元分解,即扩展工具采用的算法。扩展工具采用均方根误差(Root Mean Square Error,RMSE)对端元提取和混合像元分解结果进行精度评价,会保存为输出结果的最后一个波段,波段名为RMS Error。
本扩展工具的功能和技术亮点如下:
  • 采用了ENVI分块技术,对于输入文件的大小没有限制;
  • 采用ENVI自带的端元光谱收集面板(Endmember Collection),操作便捷;
  • 在每一次循环时,对分块数据进行混合像元分解和RMS的计算,效率最优;
  • 对于所有波段值全为0的像元不进行分解和计算RMS,保持为0,起到掩膜的效果;

注:采用的分块顺序为BIL,这样便能一次性获取一行内所有波段的值,因此结果的默认存储顺序同样为BIL。如果想修改,可以使用Convert Interleave工具。

2014年4月9日:更新使用ENVI自带的端元光谱收集面板(Endmember Collection),导入端元波谱的途径更多,比如ROI/EVF、ASCII、波谱库等。
工具安装

下载地址:http://vdisk.weibo.com/s/zrSeGYf9hpYcY
百度云盘:http://pan.baidu.com/s/1c0pGUvI
将下载得到的fcls_spectral_unmixing.sav文件拷贝到如下路径,重启ENVI即可。
  • ENVI 4.x — x:\program files\itt\idl\idl80\products\envi48\save_add

  • ENVI Classic — x:\program files\exelis\enviXX\classic\save_add

  • ENVI 5.x — x:\program files\exelis\enviXX\extensions



工具菜单:
  • ENVI 4.x & ENVI Classic:Spectral > Mapping Methods > FCLS Spectral Unmixing

  • ENVI 5.x:Toolbox /Extensions/ FCLS Spectral Unmixing



使用说明
工具使用了ENVI自带的端元收集组件(Endmember Collection),可以从多种途径输入端元波谱,例如ROI、波谱库、ASCII文件等。
下面介绍扩展工具的操作步骤:
1) 打开输入文件,准备端元波谱;
2) 打开工具,弹出选择输入文件的对话框,选择后点击OK;
3) 然后进入Endmember Collection界面,可以通过ASCII、波谱库、ROI等导入端元波谱;
4) 以波谱库为例,选择Import > from Spectral Library file,在弹出的对话框中选择.sli文件。如果ENVI中没有打开,可以在同一界面的Open > Select Spectral Library菜单打开;
5) 选择波谱库文件后,在主界面会自动将端元信息显示在表格内,如下图所示。
6) 此时可以点击Apply按钮,在弹出的对话框选择输出路径,点击OK执行混合像元分解。
同样可以选择Select ALL,然后Plot进行端元波谱的绘制,如下图所示。
图:工具主界面(表格内显示端元信息)


图:端元波谱曲线,左为ENVI Classic,右为ENVI 5.x

图:混合像元分解时的进度条

图:输入图像,左为标准假彩色,右为真彩色

图:混合像元分解结果

文章来源:http://blog.sina.com.cn/s/blog_764b1e9d0101dnjz.html

1 个评论

我尝试下载了但是网址失效,能否将此插件分享给我,我的邮箱是maxu2020@xju.edu.cn

要回复文章请先登录注册