AVIRIS反射率数据简介

AVIRIS高光谱成像光谱仪采集得到的原始图像为辐亮度图像,经过校正后的L1级产品为地表辐亮度信息。但是许多时候,我们更希望知道地面目标物的反射率信息,并且这一信息应该与在地面使用地物光谱仪(如常见的ASD光谱仪)采集的反射率曲线应该一致。因此从原始的辐亮度(Radiance)图像转换生成反射率图像通常需要进行大气校正,水汽吸收校正等过程,最终消除大气传输过程中的各种干扰因素影响,得到最终的反射率曲线。需要注意的是,由于大气水汽吸收的影响,如上图所示,在特定波长波段(1400nm左右与1900nm左右)信号强度非常弱,数据信噪比差,通常会将这些波段认定为无效波段。
特别注意:由于AVIRIS服役时间较长,数据采集和处理流程应该经历过多次优化,目前官方文档中介绍反射率图像生成和描述方法中提到的部分描述文件在当前下载到的反射率文件中不存在。因此我综合多个官方文档来理解和描述当前反射率图像数据,可能存在错误。
1. 基本说明
根据官方文档的描述[1],将原始的校正后的AVIRIS辐亮度数据(Radiance Data),通过高光谱-红外图像L2级处理流程,转换生成反射率信息。该处理只针对HyspIRI Precursor Data Sets进行,也就是说只有部分图像有对应的反射率图像。文档中具体介绍了该处理流程中的使用的算法、理论假设以及最终结果数据组织等信息。网站上列出的文档最后更新日期为2013年10月,但是在下载到的数据中,有更新版本的文档(最后更新日期为2014年8月),最主要的不同是2014年版本中删除了关于结果数据组织的内容。因为13年版本描述的数据组织方式与我下载的几景图像的数据组织完全不同,可能后续更新过,但是并没有相关文档说明。
根据AVIRIS HyspIRI preparatory campaign measurements任务中关于L2级大气校正算法的描述[2],如下图所示,从辐亮度图像到反射率图像主要经过了大气校正和残差抑制两个步骤。具体描述如下。

2. 大气校正
大气校正是基于ATREM(Atmosphere Removal Algorithm)算法进行的,该算法通过水蒸气、二氧化碳、臭氧、氮氧化物、一氧化碳、甲烷和氧气的吸收作用来反演等比例的表面反射率(scaled surface reflectance)。根据这些气体吸收模型,再结合图像的成像几何,可以联合估计400~2500nm的大气透射率。大气散射效应则通过6S模型进行估计,6S模型是利用940nm和1140nm处的水汽吸收特征来反演水蒸气柱浓度,进而估算得到朗伯体表面反射率。
在HyspIRI数据预处理流程中,还增加几个额外的特征:HITRAN 2012 line list中的块吸收,同时估计液态、气态和固态水的三相反演结果。压力高度(Pressure Altitude)则使用氧气A波段的深度进行反演,在成像目标中存在大范围高程变化和多光学路径情况下,该方法能够提高反演精度。
3. 经验校正
最终,使用实地对应位置(in situ)的目标测量结果,通过经验模型,来修正表面反射率结果。具体的,为每个波段估计一个改正系数项,使得最终机载图像的光谱曲线与实地测量的同名点地物光谱曲线尽量一致。这个改正系数存储在以.smth为扩展名的额外对应文件中。如果研究人员希望使用原始数据,那么可以通过将网站提供的校正后的图像逐波段除以该改正系数即可。
4. 实际数据简介
从网站上实际下载的一景反射率图像中可能包含数个文件,其具体含义如下表所示(注:该表格为作者结合文档与数据情况理解制成,可能存在错误)
| 文件名称 | 文件含义 |
|---|---|
*_corr_v1, *_corr_v1.hdr |
ENVI格式的反射率图像,该图像为最终矫正结果。需要注意的是,该图像像素值可能为整型(我下载的2013~2015的几景图像均为整型,2018年为浮点型),其含义是将原始浮点型反射率乘以10000得到的整数部分。也就是说如果想得到反射率数据,需要将像素值除以10000即可。例如某个像素值为2500,则该像素对应的实际反射率为0.25(2500 ÷ 10000 = 0.25)。 此外文档中提到的经验改正系数存储文件*.smth在下载得到的数据包中并不存在,而在ENVI数据头文件中,存在一项名为 correction factors的浮点数列表,其中包含n个浮点数(n为波段数量),我猜测这个应该就是文档中提到的经验改正系数 |
*_h2o_v1,*_h2o_v1.hdr |
这个ENVI图像文件包含三个波段数据,每个波段图像的长宽与反射率图像相同,疑似为文档中提到的水汽的三相反演结果 |
*_README_v1.txt |
这个就是反射率处理流程的官方说明文档,不同数据中该文件几乎相同,只是最后更新版本的区别。 |
参考文档
- 本文作者: 闫钊
- 本文链接: https://whuhenry.github.io/2020/05/31/AVIRIS-reflectance-data-introduction/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
AVIRIS反射率数据简介的更多相关文章
- Ajax.BeginForm的异步提交数据 简介
Html.BeginForm与Ajax.BeginForm都是MVC架构中的表单元素,它们从字面上可以看到区别,即Html.BeginForm是普通的表单提交,而Ajax.BeginForm是支持异步 ...
- Salesforce 导入导出数据简介
导入数据的方式 有两种方式可以将数据导入Salesforce: 数据导入向导 Data Loader工具 Salesforce支持将csv文件中的数据导入系统. 数据导入向导 数据导入向导可以从设置界 ...
- 【原创】Thinking in BigData (1)大数据简介
提到大数据,就不得不提到Hadoop,提到Hadoop,就不得不提到Google公布的3篇研究论文:GFS.MapReduce.BigTable,Google确实是一家伟大的公司,开启了全球的大数据时 ...
- Ajax传递json数据简介和一个需要注意的小问题
Ajax传递json数据 Ajax操作与json数据格式在实际中的运用十分广泛,本文为大家介绍一个两者相结合的小案例: 项目结构 我们新建一个Django项目,在里面创建一个名为app01的应用: p ...
- Spark记录-大数据简介
什么是大数据 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信 ...
- python 读写Oracle10g数据简介
1.测试环境: Centos6 X86_64python 2.6 Oracle 10g 2.安装cx_Oracle 和 Oracle InstantClient: http://www.rpmfind ...
- NoSQL数据库技术实战-第1章 NoSQL与大数据简介 NoSQL数据库的类型
键值存储数据库临时性:如Memcached.临时性的键值数据库把数据存储在内存中,在两种情况下会造成上数据的丢失,一是断电,而是数据内容超出内存大小.这种处理的好处是非常快.永久型:如Tokyo Ty ...
- NoSQL数据库技术实战-第1章 NoSQL与大数据简介 NoSQL产生的原因
NoSQL产生的原因: 关系型数据库不擅长的操作,是NoSQL应运而生的原因: 大量的数据写入操作书上写的是“大量数据的写入操作“,我理解的应该是“大量的数据写入操作”,因为大量的数据写入操作才会引起 ...
- [转载] 使用 Twitter Storm 处理实时的大数据
转载自http://www.ibm.com/developerworks/cn/opensource/os-twitterstorm/ 流式处理大数据简介 Storm 是一个开源的.大数据处理系统,与 ...
随机推荐
- (Lineup the Dominoes筛子)三维状压
传送门 描述:\(一堆筛子,每个筛子两个面,上面有1-6之间的数字.后一个筛子与前一个筛子的接触面的点数必须相等.\) \(求,有多少种方案堆完筛子.(方案只关心筛子的位置,不关心是否翻转)\) \( ...
- 第一个Vue-cli
第一步下载node.js https://nodejs.org/zh-cn/ 安装成功后 在cmd 输入 node -v 看看能不能打印出来 在cmd 输入 nmp-v 看看能不能打印出来 全局安装 ...
- 你应该知道的Vue高级特性
本文使用的Vue版本:2.6.10 Vue为我们提供了很多高级特性,学习和掌握它们有助于提高你的代码水平. 一.watch进阶 从我们刚开始学习Vue的时候,对于侦听属性,都是简单地如下面一般使用: ...
- VS Code的安装与配置
VS Code的安装与配置 Visual Studio Code(VS Code)是微软旗下的一个开源文本编辑器,支持Windows.macOS.Linux操作系统.数量众多.种类多样的插件极大提高了 ...
- 带你看看Java的锁(三)-CountDownLatch和CyclicBarrier
带你看看Java中的锁CountDownLatch和CyclicBarrier 前言 基本介绍 使用和区别 核心源码分析 总结 前言 Java JUC包中的文章已经写了好几篇了,首先我花了5篇文章从源 ...
- Ubuntu系统make menuconfig的依赖包ncurses安装
Linux内核或者u-boot进行make menuconfig的时候,如果系统上没有安装ncurses,就会出现以下报错 *** Unable to find the ncurses librari ...
- OpenCV 经纬法将鱼眼图像展开
文章目录 前言 理论部分 鱼眼展开流程 鱼眼标准坐标计算 标准坐标系与球坐标的转换 代码实现 测试效果如下图 总结 this demo on github 前言 鱼眼镜头相比传统的镜头,视角更广,采集 ...
- Vant 顶部导航栏【van-tabs】Bug
Vant 顶部导航栏[van-tabs]Bug 如果在外面包裹div控制显示隐藏会出现导航条不准确的bug 代码 <div class="selWrap" v-show=&q ...
- 解决:idea中右键项目找不到subversion
2019.02版IDEA,刚刚发现更新不了项目,但是我记得之前的项目是可以直接更新的.然后,我打开之前的项目找到相关项,对比了一下,找到了方法: file--settings--Version Con ...
- 简述SpringCloud底层原理
目录 一.业务场景介绍 二.Spring Cloud核心组件:Eureka 三.Spring Cloud核心组件:Feign 四.Spring Cloud核心组件:Ribbon 五.Spring Cl ...