Surface Reflectance 高光谱图像 ↑

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],如下图所示,从辐亮度图像到反射率图像主要经过了大气校正和残差抑制两个步骤。具体描述如下。

L2大气校正流程以及反射率图像生成 ↑

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 这个就是反射率处理流程的官方说明文档,不同数据中该文件几乎相同,只是最后更新版本的区别。

参考文档


  1. AVIRIS Surface Reflectance Data Distribution Document - HyspIRI Precursor Data Sets ONLY

  2. Level 2 processing of AVIRIS HyspIRI preparatory campaign measurements

AVIRIS反射率数据简介的更多相关文章

  1. Ajax.BeginForm的异步提交数据 简介

    Html.BeginForm与Ajax.BeginForm都是MVC架构中的表单元素,它们从字面上可以看到区别,即Html.BeginForm是普通的表单提交,而Ajax.BeginForm是支持异步 ...

  2. Salesforce 导入导出数据简介

    导入数据的方式 有两种方式可以将数据导入Salesforce: 数据导入向导 Data Loader工具 Salesforce支持将csv文件中的数据导入系统. 数据导入向导 数据导入向导可以从设置界 ...

  3. 【原创】Thinking in BigData (1)大数据简介

    提到大数据,就不得不提到Hadoop,提到Hadoop,就不得不提到Google公布的3篇研究论文:GFS.MapReduce.BigTable,Google确实是一家伟大的公司,开启了全球的大数据时 ...

  4. Ajax传递json数据简介和一个需要注意的小问题

    Ajax传递json数据 Ajax操作与json数据格式在实际中的运用十分广泛,本文为大家介绍一个两者相结合的小案例: 项目结构 我们新建一个Django项目,在里面创建一个名为app01的应用: p ...

  5. Spark记录-大数据简介

    什么是大数据 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信 ...

  6. python 读写Oracle10g数据简介

    1.测试环境: Centos6 X86_64python 2.6 Oracle 10g 2.安装cx_Oracle 和 Oracle InstantClient: http://www.rpmfind ...

  7. NoSQL数据库技术实战-第1章 NoSQL与大数据简介 NoSQL数据库的类型

    键值存储数据库临时性:如Memcached.临时性的键值数据库把数据存储在内存中,在两种情况下会造成上数据的丢失,一是断电,而是数据内容超出内存大小.这种处理的好处是非常快.永久型:如Tokyo Ty ...

  8. NoSQL数据库技术实战-第1章 NoSQL与大数据简介 NoSQL产生的原因

    NoSQL产生的原因: 关系型数据库不擅长的操作,是NoSQL应运而生的原因: 大量的数据写入操作书上写的是“大量数据的写入操作“,我理解的应该是“大量的数据写入操作”,因为大量的数据写入操作才会引起 ...

  9. [转载] 使用 Twitter Storm 处理实时的大数据

    转载自http://www.ibm.com/developerworks/cn/opensource/os-twitterstorm/ 流式处理大数据简介 Storm 是一个开源的.大数据处理系统,与 ...

随机推荐

  1. js上传文件过大导致上传失败原因以及解决办法

    背景:项目需要用到上传视频功能,由于视频有知识产权,要求必须上传到自己的服务器上不允许用第三方视频网站接口上传,于是一开始开始用的是input type=file去上传,小的视频上传没有问题,上传将近 ...

  2. centos系统克隆

    首先保证虚拟机处于关机状态. 1.修改网卡信息 vi /etc/sysconfig/network-scripts/ifcfg-eth0 删除网卡信息HWADDR与UUID信息 修改IPADDR信息为 ...

  3. Oracle的pl/sql变量类型

    pl/sql定义 sql是结构化查询语言.sql是不是一个编程语言?编程语言一般都能够声明变量,写条件判断,循环.sql不具备这些特征,所有sql不是一门编程语言.我们在实际的开发中,有这种需要,把s ...

  4. JAVA设计模式之单例(singleton)

    一.饿汉式 /** * 饿汉式 */public class Singleton01 { private static final Singleton01 instance = new Singlet ...

  5. 【FPGA篇章四】FPGA状态机:三段式以及书写方法

    欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 状态机是fpga设计中极其重要的一种技巧,状态机通过不同的状态迁移来完成特定的逻辑操作,掌握状态机的写法可以使fpga的开发事半功倍. 状态 ...

  6. 用Visual Studio2019自定义项目模板

    项目模板简介 众所周知,在我们使用VS新建项目时,都需要选择一个项目模板,如下图: 我们选择完项目模板进行创建,创建完成之后,可以发现项目中已经包含了一些基础的文件.例如MVC: 可以看到,MVC项目 ...

  7. spark on yarn安装

    网上关于spark的安装说明很多了,这里就以spark  pre-build with user provided hadoop 安装包为例讲解, 下载spark  pre-build with us ...

  8. xml(4)

    schema约束 dtd语法:<!ELEMENT 元素名称 约束> schema符合xml的语法,xml语句 一个xml中可以有多个schema,多个schema用名称空间区分(类似jav ...

  9. java中"no enclosing instance of type * is accessible"的解决方法

    这种情况一般发生在“在静态方法里面使用内部类” 测试代码: public class Test { public static void main(String[] args) { A a = new ...

  10. [hdu5525 Product]暴力

    题意:给定n和a[],令N = ∏(1≤i≤n)ia[i],求N的所有约数的积(取模1e9+7) 思路: 假定N因式分解后的结果是2p1*3p2*5p3*...,如何计算答案呢? 单独看2p1这一项, ...