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 是一个开源的.大数据处理系统,与 ...
随机推荐
- Python词云生成
一.目的 1. 熟悉jieba库和wordcloud库的使用方法: 2. 熟悉文本词频统计和词云生成的基本方法. 二.内容 1. 从网上自行下载一个长篇英文小说,统计并输出该小说中词频最大的TOP 2 ...
- 数据结构之递归Demo(走迷宫)(八皇后)(汉诺塔)
递归 顾名思义,递归就是递归就是递归就是递归就是递归......就是递归 Google递归:
- mac下xampp访问php显示403错误
错误描述 New xampp security concept: Access Forbidden Error 403 错误分析和解决 403就是我们访问的时候,被安全策略拒绝了,解决方法 找到文件 ...
- 【FreeRTOS学习05】深度解剖FreeRTOSConfig.h实现对系统的自定义剪裁
ROM/RAM太小,因此要对系统进行剪裁: 相关文章 [FreeRTOS实战汇总]小白博主的RTOS学习实战快速进阶之路(持续更新) 文章目录 相关文章 1 系统的剪裁 2 FreeRTOSConfi ...
- u-boot 移植(一)编译环境搭建
u-boot 移植(一)编译环境搭建 soc:s3c2440 board:jz2440 uboot:u-boot-2016.11 toolchain:gcc-linaro-7.4.1-2019.02- ...
- 阿里巴巴泰山版《Java 开发者手册》,也是一份防坑指南
我是风筝,公众号「古时的风筝」,一个不只有技术的技术公众号,一个在程序圈混迹多年,主业 Java,另外 Python.React 也玩儿的 6 的斜杠开发者. Spring Cloud 系列文章已经完 ...
- Python中range, np.arange, np.linspace的区别
目录 range np.arange np.linspace range 特点 range()是python内置函数,指定开始值,终值和步长生成等差数列的一维数组 不包含终值 步长只能是整数,生成整数 ...
- 黑马程序员_毕向东_Java基础视频教程——位运算符(随笔)
位运算符 左移和右移 左移 左移越移越大. 往左移几位就相当于这个数乘于2的几次方 3 << 2 --> 3 * 2^2 = 3 * 4 = 12 3 << 3 --&g ...
- fastadmin后台:选择视频并允许上传到服务器
1.在对应方法的视图 “view/class/add.html" 中上传视频部分添加:data-mimetype="video/mp4" 2.在 ”applicatio ...
- 自建nodejs服务器(一:有个服务器)
之前在阿里云备案过,也买过域名和虚拟主机(6元一年),可惜虚拟主机虽然说可选linux或windows系统,但linux系统只支持几个php程序,一番折腾,云栖社区的大伙们都说要弄node得买个ECS ...