您的当前位置:首页正文

环境小卫星多光谱数据FLAASH精确大气校正方法

2023-03-25 来源:我们爱旅游
环境小卫星多光谱数据FLAASH精确大气校正方法

环境与灾害监测预报小卫星星座A、B星(简称环境小卫星,简写HJ-1A /1B)于2009年3月30日开始正式交付使用,HJ-1-A星搭载了CCD相机和超光谱成像仪(HSI),HJ-1-B星搭载了CCD相机和红外相机(IRS)。HJ-1A /1B卫星是继我国继气象、海洋、国土资源卫星之后一个全新的民用卫星。卫星投入使用后,对自然灾害、生态破坏、环境污染进行大范围、全天候、全天时的动态监测,对灾害和环境质量进行快速和科学评估,提高灾害和环境信息的观测、采集、传送和处理能力,为紧急救援、灾后救助及恢复重建和环境保护工作提高科学依据。

HJ-1数据应用于自然灾害、生态环境之前,需要进行几何及光谱方面的预处理。ENVI在数据读取、图像配准、精确大气校正等方面提供了非常好的工具。

1、数据读取

目前,网上免费获取的 HJ-1A /1B卫星CCD和HSI影像的分发的格式主要有两种:CCD为Geotiff,每一个波段为一个Geotiff文件,并提供一个元数据说明(.XML); HSI为HDF5格式,也提供一个元数据说明(.XML)。 CCD相机的Geotiff格式直接可以在ENVI软件下打开,利用ENVI->Basic Tools->Layer Stacking工具将各个波段组合成一个文件输出。HIS高光谱数据是以HDF5格式提供,安装ENVI的HDF5读取补丁后直接在ENVI中打开。

更为方便的方法是直接使用HJ-1数据读取补丁,下载网址为:http://bbs.esrichina-bj.cn/ESRI/thread-83044-1-3.html。直接双击运行 .sav 或拷贝 sav 文件到 ENVI安装目录的save_add 目录下,

1)启动ENVI->File->Open External File->HJ-1->HJ-1A /1B Tools工具(下图)。直接读取CCD、HIS、IRS数据,输出结果为一个多波段的ENVI标准栅格文件,并带有中心波长等信息,其中CCD数据可以直接输出定标结果(辐射亮度)。

图1.1 HJ-1A /1B Tools

注意此步骤中Calibration 和Layer Stacking选项应勾上。如果数据是BSQ格式的,要转换

成BIL或者BIP格式的。转换方法

2) 构建波谱响应函数

任何传感器在设计时都会给出严格的波段响应函数,环境小卫星也不例外。在中国资源卫星应用中心可下载:http://www.cresda.com/n16/n1115/n1522/n2118/index.html。以四列数字形式提供,第一列表示波长,后面四列分别表示4个波段对应波长的波谱响应值。

选择Window->Start New Plot Window,ENVI Plot Window窗口中,选择File->Input Data->ASCII,如图2所示,选择相应的波普响应函数

3) 选择File- >Save Plot As->Spectral Library,将波谱曲线保存为波谱库文件。

注意此处的Wavelength Units 应选Nanometers.

4)如下图3.2所示,生成了4条曲线。选择Edit->Data Parameters,更改每一条曲线的名称:b1,b2,b3,b4,便于区分。

2 、FLAASH大气校正

启动FLAASH模块,将准备好的数据输入,注意定标后的单位是W/(m2*um*sr)与FLAASH要求的单位(μW)/(cm2*nm*sr)相差10倍关系,因此在Radiance Scale Factors中输入10缩放系数。

其他特殊参数设置主要如下: l 一般参数设置

传感器高度(Sensor Altitude):650km 像元大小(pixel Size):30m 地面高程():0.05km

多光谱数据参数设置

Fileter Function File:选择前面生成的波谱响应文件。

大气模型(Atmospheric Model)根据经纬度和日期来定。

表1六种标准的大气模型

Latitude (°N)

80 70 60 50 40 30 20

Jan. SAW SAW MLW MLW SAS MLS T

March SAW SAW MLW MLW SAS MLS T

May SAW MLW MLW SAS SAS MLS T

July MLW MLW SAS SAS MLS T T

Sept. MLW MLW SAS SAS MLS T T

Nov. SAW SAW MLW SAS SAS MLS T

10 0 -10 -20 -30 -40 -50 -60 -70 -80

T T T T MLS SAS SAS MLW MLW MLW

T T T T MLS SAS SAS MLW MLW MLW

T T T T MLS SAS SAS MLW MLW MLW

T T T MLS MLS SAS MLW MLW MLW SAW

T T T MLS MLS SAS MLW MLW MLW MLW

T T T T MLS SAS SAS MLW MLW MLW

高级设置

其它参数参考FLAASH大气校正的参数说明。

高级设置里注意将Title Size设置成合适的值,一般设置成100-800不等,如有发现此类问题相关报错,请试着调试Title Size大小和图7中的 Image Title Size大小,一般Cache Size设置成物理内存的一半,Image Title Size大小设置成Cache Size的一半。

图 7

FLAASH大气校正常见错误及解决方法

FLAASH对输入数据类型有以下几个要求:

1、波段范围:卫星图像:400-2500nm,航空图像:860nm-1135nm。如

果要执行水汽反演,光谱分辨率<=15nm(环境小卫星的光谱分辨率平均为5nm),且至少包含以下波段范围中的一个:

l1050-1210 nm

l770-870 nm l870-1020 nm

2、像元值类型:经过定标后的辐射亮度(辐射率)数据,单位是:(μW)/(cm2*nm*sr)。 3、数据类型:浮点型(Floating Point)、32位无符号整型(Long Integer)、16位无符号和有符号整型(Integer、Unsigned Int),但是最终会在导入数据时通过Scale Factor转成浮点型的辐射亮度(μW)/(cm2*nm*sr)。 4、文件类型:ENVI标准栅格格式文件,BIP或者BIL储存结构。

5、中心波长:数据头文件中(或者单独的一个文本文件)包含中心波长(wavelenth)值,如果是高光谱还必须有波段宽度(FWHM),这两个参数都可以通过编辑头文件信息输入(Edit Header)。

运行错误

1.Unable to write to this file.File or directory is invalid or unavailable。

没有设置输出反射率文件名。

解决方法是单击Output Reflectance File按钮,选择反射率数据输出目录及文件名,或者直接手动输入。 2.ACC Error:convert7

IDL Error:End of input record encountered on file unit:0.

平均海拔高程太大。

注意:填写影像所在区域的平均海拔高程的单位是km:Ground Elevation(Km)。 3.ACC error:avrd:

IDL error:Unable to allocate memory:to make array Not enough space ACC_AVRD

为了能处理大数据,ENVI采用分块计算的方式,这个提示是分块(Tile)太大了。

在高级设置里面(Advanced Settings),tile size:它默认是File-> preferences ->miscellaneous:cache的大小,这个值正常是1~4Mb(0背景很少的情况下);如果0背景较多,这个值还是需要设置大一些,比如100~200m。 4. ACC error:avrd:No nonblank pixels found IDL error:

OPENR: Error opening file. Unit: 100,

为了能处理大数据,ENVI采用分块计算的方式,当Tile设置太小,而且有

背景值(0),就会出现一个Tile中全部为0的情况,提示这个错误信息。 在高级设置里面(Advanced Settings),tile size:设置稍微大一些,如100~200M等。

5. ACC error:lsmooth2: IDL error:

ACC_LSMOOTH2:Cannot continue with smoothing calculation

比较低,领域效应区分不出来。

ENVI的FLAASH提供领域纠正功能,但是MODIS、AVHRR等图像分辨率

解决方法是在在高级设置里面(Advanced Settings),将领域纠正(Use

Adjacency Correction)设置为No。

6. ACC error:modrd5:Nonfinite numbers in coefficient array coefprefix

=

o

ns

=

\"urn:schemas-microsoft-com:office:office\" /> IDL error:

CDRIVER4V3R2:>>>Wait for MODTRAN4 calculation to

finish…

提示传入MODTRAN模型参数有误,常常是由于太阳高度角太小或者太大引起的。提示这个错误之前会出现以下提示框。

解决方法是确认填写的影像中心位置经纬度信息(西经为负数、南纬为负数)、影像成像时间(格林威治时间)是否正确。

7.ACC error:autochan

HIS数据缺少K-T气溶胶反演的所需的波段,因此不能使用K-T方法反演气溶胶。8、ACC error:

autochanACC_AUTOCHAN:No water absorption channels selected

这种错误一直没模拟出来,一般是由于水汽反演、大气模型的选择和飞行时间的问题,如飞行时间使用的是北京时间等。

9、ACC error:avrd

IDL error:REBIN:Result dimensions must be integer factor of original dimen

这个错位一般出现在你多次执行FLAASH工程文件时,没有重新设置输出文件而选择替代的时候出现。好的方法就是重新启动FLAASH和加载一次工程文件。

结果错误

1.结果中某一个波段或者多个波段全部为0或者负值

主要产生的原因是输入的辐射亮度数据值偏小。 可能有以下几种情况:

(1)在传感器定标的时候选择的是表观反射率(Reflectance)而不是辐射率数据(Radiance); (2)没有做传感器定标,即没有将DN值转换为辐射率数据;

(3)选择了错误的波谱响应函数;

(4)用BandMath做了辐射亮度的单位换算,在FLAASH中导入辐射亮度数据时,Scale Factor选择的不是1.0000。

2.结果中极大值、极小值非常多,也就是0~10000之外的值。当选择RGB假彩色显示的时候,出现花花绿绿的情况。

辐射定标得到的辐射率数据单位与FLAASH要求的单位不一样。

可能有以下几种情况:

(1)用BandMath做了辐射亮度的单位换算,在FLAASH中导入辐射亮度数据时,Scale Factor选择的不是1.0000。 (2)没有做单位换算。

3.结果中部分像元为负值

这个属于正常现象。FLAASH是采用MODTRAN辐射传输模型模拟成像中的大气过程,而且很多大气属性都是通过图像来估算,加上大气组成的非均一性,即使MODTRAN4模型精度很高,也不能完全表达大气辐射传输的真实状况。当影像上有强吸收或者高反射地物时候,就会出现部分像元为负值(如深水、高密度)或者大于10000。

解决方法可以手动修改,如用周围的像元的平均值代替,可以使用ENVI下的The DEM Editing Tool工具。

4.结果图像以RGB显示比原图像视觉效果要差,如模糊。

这个需要了解下遥感软件RGB显示机制。遥感软件为了让遥感图像显示更加“艳丽”,方便解译,默认会对图像进行拉伸显示,一般是2%的线性拉伸。也就是我们常常会看到图像值有两个,一个是Scrn值,也就是拉伸之后的显示值,一个是Data值,也就是原始的图像DN值。另外一个方面,目前我们的RGB加色法显示都是基于8bit显示,也就是0~255。

FLAASH大气校正之后的结果是16bit的整型,而且存在一些极小、极大值,这些对直方图整体形状有一定的影响,影响拉伸效果。解决方法是利用ENVI下的Interactive stretching工具,选择有效值范围进行拉伸。 还有一种情况是校正图像有很多背景值,比如经过几何校正的整景TM影像。背景及图像边缘处的像元在大气校正之后变成负值或者0值,由于这样的像元数量多,对图像的整体拉伸影响很大。解决方法就是将这些像元掩膜掉,如在ROI Tool中,利用Option->Band Threshold to ROI建立一个ROI进行图像裁剪。

5.结果图像为什么像元值大多是大于1

ENVI FLAASH考虑到数据储存和后续处理,将大气校正得到的反射率结果乘以10000变成16bit整型。

如果想让反射率结果在0~1范围,可用BandMath,表达式为b1/10000.0。

因篇幅问题不能全部显示,请点此查看更多更全内容