ENVI FLAASH 大气校正常见错误及解决方法(2013 年 7 月 15 号更新)
http://blog.sina.com.cn/s/blog_764b1e9d0100pvrk.html
本文汇总了 ENVI FLAASH 大气校正模块中常见的错误,并给出解决方法,分为两部分:运行
错误和结果错误。前面是错误提示及说明,后面是错误解释及解决方法。
FLAASH 对输入数据类型有以下几个要求:
1、波段范围:卫星图像:400-2500nm,航空图像:860nm-1135nm。如果要执行水汽
反演,光谱分辨率<=15nm,且至少包含以下波段范围中的一个:
1050-1210 nm
770-870 nm
870-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 coef
IDL error:
CDRIVER4V3R2:>>>Wait for MODTRAN4 calculation to finish…
提示传入 MODTRAN 模型参数有误,常常是由于太阳高度角太小或者太大引起的。提
示这个错误之前会出现以下提示框。
解决方法是确认填写的影像中心位置经纬度信息(西经为负数、南纬为负数)、影
像成像时间(格林威治时间)是否正确。
7.
Problem:The FLAASH
program
exited
with
the following
erro
rs:
ACC
error:
modrd5:reading
archieve file
header
IDL
error:
READU:End
of
file
encountered. Unit:
102,
File:
C:Users\administrator\AppData\Local\Temp\acc_modroot.fla
ACC_MODRD5
ACC_KTAEROSOL
ACC_HYPER2
ACC_ACC
ENVI_ACC_EVENT
ENVI_FLAASH_PROCESS_MANAGER
IDLRTMAIN
$MAIN$
在高级设置里面(Advanced Settings),tile size 设置太大,根据内存情况设置小一点的
值。tile size 的默认值是 file->preference 中 cache size 大小。
结果错误
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
工具,选择有效值范围进行拉伸。