ENVI5.7-6.0FLAASH大气校正工具详解

文摘   科技   2024-04-26 11:39   北京  

大气校正模块提供两种大气校正工具: FLAASH校正工具(Fast Line-of-sight Atmospheric Analysis of Spectral Hypercubes)和快速大气校正工具——QUick Atmospheric Correction (QUAC)。

FLAASH大气校正工具


FLAASH开始采用的是MODTRAN 6版本。MODTRAN 6)算法,可在更短的波长分辨率下计算透射率和辐射度,以获得更高的精度。


1.   FLAASH特点


①可校正可见光、近红外和短波红外范围的波长,支持传感器种类多,包括多光谱和高光谱传感器。

②FLAASH采用了MODTRAN6辐射传输模型,该算法精度高。任何有关图像的标准MODTRAN大气模型和气溶胶类型都可以直接使用。

③通过图像像素光谱上的特征来估计大气的属性,不依赖遥感成像时同步测量的大气参数数据。

④可以有效地去除水蒸气/气溶胶散射效应,同时基于像素级的校正,矫正目标像元和邻近像元交叉辐射的“邻近效应”。

⑤对由于人为抑止而导致波谱噪声进行光谱平滑处理。作为结果,除了真实地表反射率外,还可以得到整幅图像内的能见度、卷云与薄云的分类图像、水气含量数据。


2.处理步骤


工具中大气校正主要分3步:

1)从图像中获取大气参数,包括能见度(气溶胶光学厚度)、气溶胶类型和大气水汽含量。由于目前气溶胶反演算法多是基于图像中的特殊目标,如水体或浓密植被等暗体目标,在FLAASH中也延用了暗目标法,一景图像最终能获取一个平均的能见度数据;另一方面,FLAASH 中水汽含量的反演算法是基于水汽吸收的光谱特征,采用了波段比值法,水汽含量的计算在FLAASH中是逐像元进行的。

(2)大气参数获取之后,通过求解大气辐射传输方程来获取反射率数据。

(3)为了消除纠正过程中存留的噪声,需要利用图像中光谱平滑的像元对整幅图像进行光谱平滑运算。


云或云影对图像的污染会给大气纠正带来许多问题。被云覆盖的像元不仅无法获得其反射率信息,由于受到云的影响,其它邻近像元的反射率会有不同程度的降低。FLAASH 中能够自动判断出图像中受云影响的区域,在大气纠正的过程中避开这些像元,并用图像的平均辐射率来代替云区的辐射率,以进行后续的处理。


3.算法基本原理


FLAASH是基于太阳波谱范围内(不包括热辐射)和平面朗伯体(或近似平面朗伯体),在传感器处接收的像元光谱辐射亮度公式。

   1)

式中:

  L:传感器处像元接收到的总辐射亮度

  ρ:像素表面反射率

  ρe:像素周围平均表面反射率

  S:大气球面反照率

  Lα:大气后向散射辐射率(大气程辐射)

  A和B:取决于大气条件和几何条件的两个系数


式(1)中的所有变量都与波段范围有关,为了简化公式,波长指数在公式中被省略。将公式(1)分成3个部分(以括号为分割线),右边第一部分代表了太阳辐射经大气入射到地表后反射直接进入传感器的辐射亮度;右边第二部分为经大气散射后进入传感器的辐射亮度,ρ和ρe的区别主要来自于大气散射引起的“邻近像元效应”。在很多大气校正模型中,假设ρ=ρe ,忽略“邻近像元效应” ,这种校正方法对短波范围内的结果产生很大的反射误差,尤其图像上有薄雾或地物存在强烈对比的条件下;第三部分为大气后向散射辐射率(大气程辐射)。


参变量A、B、S 和 La的值是通过辐射传输模型MODTRAN的计算获取的,需要用到观测视场角、太阳角度、平均海拔高度,以及假设的大气模型、气溶胶类型、能见度范围。A、B、S 和La的值与大气中水汽含量有密切的关系,MODTRAN4用波段比值法来进行水汽含量的反演,即用水汽吸收波段(常用1130nm)及其邻近的非水汽吸收波段的比值来获取大气水汽含量,生成了一个二维查找表来对每一个像元进行水汽含量的反演。(注:当图像没有适当的波段用于水汽的移除,如Landsat、SPOT等,水汽含量的确定由自定义选择大气模型)。


当水汽反演步骤完成,利用公式(1)可以计算传感器所有通道的像素平均反射率,要计算平均辐射亮度Le图像,可以构建以下近似公式估算空间平均反射率ρe的方法来解决:

     2

空间平均反射率用于计算大气点扩散函数(point-spread function),它是描述地表未处于视线路径上的部分点对目标像素的辐射贡献关系。FLAASH中用一个径向距离的近似指数函数代替大气点扩散函数。为了获得准确的结果,在计算平均反射率之前去除包括云的像素。云是通过组合亮度、波段比和水蒸气来检测。


FLAASH中气溶胶光学厚度的反演应用了Kaufman提出的暗目标法。Kaufman认为,由于2100 nm波长比大部分气溶胶微粒的直径要大,该波段受气溶胶影响可以忽略;在大量的试验中,他发现2100 nm的暗目标反射率与660 nm暗目标反射率之间存在稳定的比值关系,平均为ρ660=0.45ρ2100;利用公式(1)和公式(2)以及一系列的能见度范围可以反演出气溶胶光学厚度。


FLAASH输入数据要求


FLAASH对大气校正的输入图像做了一些要求,具体要求如下:

1.    图像基本参数   

 波段范围:不能超过3,且至少包含以下波段范围中的一个:

 1050-1210 nm

  770-870 nm

  870-1020 nm

像元值类型:如果不是辐射亮度值,有定标系数情况下则自动辐射定标a。如果是经过定标后的辐射亮度数据,单位要求为(μW)/(cm2*nm*sr)。

2.   数据储存类型

数据类型:浮点型(floating)、32位有符号整型(long integer)、16位无符号和有符号整型(integer)

文件类型:可以是任意存储顺序(Interleavea

3.    辅助信息

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


由于ASTER L1A级别数据的波段未配准,因此无法直接将ASTER L1A VNIRSWIR数据集输入FLAASH。推荐的方法是对VNIRSWIR波段进行配准,然后使用Build Layer Stack工具将它们波段组合成一个数据,然后输入FLAASH

a:ENVI5.7及以上版本具备。

FLAASH输入参数说明


FLAASH输入参数可分为主界面参数、传感器参数、观测参数、大气模型参数、水汽参数、气溶胶参数和其他参数。


在Toolbox工具箱中,双击

Radiometric Correction/Atmospheric Correction Module/FLAASH Atmospheric Correction工具,启动FLAASH模块。在Data Selection对话框中选择一个输入文件。可根据需要进行空间(spatial subsetting )和波谱子集(spectral subsetting)裁剪、掩膜设置(mask)。单击OK按钮,显示FLAASH - Rigorous Atmospheric Correction对话框。


1.  主界面参数


打开如图1所示主界面参数设置面板。

1) 拍摄时间(Acquisition Date/Time):图像拍摄时间。使用格林威治时间。一般会自动从图像中读取。

提示:拍摄时间和图像中心点坐标(Scene Center)是计算太阳天顶角(Solar Zenith)和太阳方位角(Solar Azimuth)所必需的。

(2)输出云图(Output Cloud Raster):单击按钮,选择云检测图像的输出路径及文件名。此输出仅适用于高光谱图像。

(3) 输出水汽反演图像(Output Water Raster):单击按钮,选择水汽反演图像的输出路径及文件名。此输出仅适用于高光谱图像。该图像是柱状水汽含量图像,单位为(atm - cm)。

提示:atm-cm单位是大气科学界特有的。大气科学界 通常使用两个单位中的一个来测量大气柱中从地面到大气顶部的气体总量(200到300公里是常用的大气顶部高度)。

(4)输出结果(Output Raster):单击按钮,选择输出路径及文件名。

提示:输出结果默认是经过缩放的反射率数据(放大了10000倍),其像素值的范围从0到10000(表示0到100%的反射率)。一些像素可能位于该范围之外,这些异常值通常位于饱和度过高的高反射表面,或者暗像元。负值通常出现在反射率低的深水或阴影中。要将像素值缩放为01之间,可使用Band Math工具进行波段运算,公式为b1/10000.0,将b1指定为整个文件。

对话框(Main选项(图2)。

2.  传感器参数


单击Sensor选项(图2)。

(1)传感器类型(Sensor Type):选择传感器类型。如果不知道传感器类型,选择Unknown。

(2)输入比例因子(Input Scale):该参数应用于转换辐射亮度值单位。对于已知传感器类型,将自动填入。可以指定单个值或数组。如果要导入包含比例因子的文本文件,单击Load Value按钮并选择一个文件,选择的文本文件必须是单列数据,其行数与图像波段数相匹配。要将指定的比例因子保存到文本文件,单击Save Values按钮。

提示:①FLAASH算法内部要求输入数据为浮点值,单位为µW/(cm2*sr*µm)。如果输入的辐射亮度图像不符合这个标准,则必须知道用于转换为此单位的比例因子。转换公式如公式(3)。

      (3)

FLAASH中输入AVIRIS-NG、NVIS、MARS、HYPERION文件时,ENVI会自动校准并应用这些文件的比例因子。自动计算的比例因子不适用于较旧的AVIRIS(non-NG)图像。对于这些较旧的图像,使用以下比例因子:前三个探测器的比例因子为0,大约为1-160波段;第四个探测器的比例因子为0,大约波段161-224

(3)输出反射率图像结果比例因子(Output Reflectance Scale Factor):可选。用于将输出反射率图像从浮点缩放到16位整型数据。有符号整型的数据范围在-32768和+32767之间。默认比例因子为10000。该值作为Reflectance Scale Factor属性存储在输出图像的头文件中。

(4)校准文件格式(Calibration File Format):默认为FLAASH。如下为5个选项说明:

 ASCII:文本文件,包含两列数据,用于指定中心波长和FWHM;

• ENVI:ENVI格式的头文件,包含波长、FWHM和BBL(坏波段列表)数组;

• Discrete:文本文件,包含波段响应数据,即波长和响应值;

• Filter:FLAASH输入配置中定义的离散波段响应数据;

•  FLAASH:以FLAASH输入图像的中心波长和FWHM为准,不需要额外输入校准文件。

(5)置校准文件(Calibration File):可选。选择包括中心波长和波长半径的校准文件。

(6)校准文件单位(Calibration Units):选择Nanometers或Microns作为单位。

(7)瞬时视场角(Instantaneous Field of View):设置传感器瞬时视场角,以弧度为单位,一般软件自动计算。


提示:这个参数是描述传感器分辨率,缩写为IFOV。它是指传感器内单个探测元件的受光角度或观测视野,它决定了在给定高度上瞬间观测的地表面积,这个面积就是传感器所能分辨的最小单元。IFOV越小,最小可分辨单元越小,图像空间分辨率越高。IFOV取决于传感器光学系统和探测器的大小。


IFOV是传感器固有的参数,如果该值未知,可以根据传感器飞行高度和图像成像分辨率进行计算。

 IFOV = atan(GSD/H/2)*2                     (4)

式中,GSD是图像分辨率,H是传感器飞行高度。


2 FLAASH - Rigorous Atmospheric Correction对话框(Sensor参数)

3.   观测参数


单击Geometric选项(图3)。

(1)图像中心经纬度(Scene Center):以度格式输入,当图像位于西半球时,经度为负值,位于南半球时,纬度为负值。

提示:如果输入图像具有坐标系信息自动获取。

(2)传感器高度(Sensor Altitude):输入采集图像时传感器的海拔高度,单位为km。对于已知传感器,会自动设置高度。默认值为100km。

(3)地面海拔高程(Ground Elevation):输入图像具有坐标系信息将使用ENVI自带全球DEM自动计算并填入;输入图像无地理参考,则需手动输入平均海拔高程,单位km。

提示:海拔高程结合中心经纬度用于确定图像太阳仰角,用于大气校正模型,不需要很精确的数值。

(4) 太阳天顶角(Solar Zenith):当有图像中心经纬度和拍摄时间,将自动计算Solar Zenith并填入。若要使用自定义值,使用从成像地点的地面测量相对太阳角度。天顶角0度表示在头顶,而90度在地平线。

(5)太阳方位角(Solar Azimuth):当有图像中心经纬度和拍摄时间,将自动计算Solar Azimuth并填入。若要使用自定义值,使用从成像地点的地面测量相对太阳角度。方位角是从正北到太阳视线方向的顺时针度数。

(6)视线方位角(Line of Sight Azimuth):从地面到传感器视线的方位角(传感器直线视线方向和正北方向的夹角),以从正北到视线方向的顺时针度数来测量的,范围是-180~180度。如果是垂直观测的传感器,这个角度可以是任意。对于拍摄角度大于5度的图像建议输入。

(7)视线天顶角(Line of Sight Zenith):传感器直线视线方向和天顶的夹角,以度为单位。范围是90~180度,其中180为传感器垂直观测。对于拍摄角度大于5度的图像建议输入。

3 FLAASH - Rigorous Atmospheric Correction对话框(Geometric参数)


4.  大气模型参数


单击Model选项(图4)。

(1)大气模型(Atmospheric Model):选择一个标准MODTRAN模型。提供标准MODTRAN六种大气模型:热带(Tropical Atmosphere,北纬15度)、中纬度夏季(Mid-Latitude Summer,北纬45度)、中纬度冬季(Mid-Latitude Winter,北纬45度)、亚极地冬季(Sub-Arctic Winter,北纬60度)、亚极地夏季热带(Sub-Arctic Summer,北纬60度)、1976美国标准大气模型(1976 US Standard Atmosphere)。


选择一种大气模型所对应水汽含量(附录表1)接近或者稍微大于图像所在场景水汽含量。如果没有水汽柱或者表面大气温度信息,可以通过季节-纬度信息选择大气模型(表2)。

表1 MODRTAN在各个大气模型中水汽含量和表面大气温度值(从海平面起算)

表2基于季节/纬度选择MODTRAN大气模型

(2)Modtran分辨率(Modtran Resolution):选择一个分辨率。Modtran Resolution参数控制Modtran光谱分辨率,以及权衡Modtran部分的计算速度与精度。分辨率越低,速度越快,但精度越低。精度的主要差异出现在2000nm及以上。选择高光谱传感器时,默认为5 cm-1,但选择多光谱传感器时,分辨率会更改为15 cm-1。如果需要反演气溶胶,则有两次以15 cm-1的分辨率运行MODTRAN,然后以选择的分辨率再运行一次MODTRAN。如果没有反演气溶胶,则省略前两次运行。

(3)Modtran多重散射模型(Modtran Multiscatter Model):校正大气散射对成像的影响,提供三种模型供选择ISAACS,DISORT和 Scaled ISAACS。默认是Scaled ISAACS。

• Isaacs模型计算速度快,精度一般;

•  DISORT模型对于短波(小于1000nm)具有较高的精度,但是速度比较慢,由于散射对短波(如可见光)影响较大,长波(近红外以上)影响较小,因此当薄雾较大和短波图像时可以选择此方法;

•  Scaled ISAACS提供在大气窗口内与DISORT类似的精度,速度与Isaacs类似,这模型是推荐使用的模型。

(4) CO2混合比率(CO2 Mixing Ratio):默认情况是根据历史趋势对图像拍摄年份进行估计。


5.    水汽参数


单击Water选项(图4)。为了求解计算实际地表反射率的辐射传输方程,需要确定图像中每个像素的柱状水汽含量。对于大多数多光谱传感器类型由于缺少相应波段和太低光谱分辨率不执行水汽反演。使用一个固定水汽含量值,固定值参见附录表1。


FLAASH内置一种用于反演每个像素的水汽含量的方法。相比对整个图像使用恒定水汽含量,此技术可以进行更准确的校正。要使用这种水汽反演方法,图像必须具有以15 nm或更高的光谱分辨率,并至少包含如下列表中的一个波段范围:

1050-1210 nm (1130 nm水汽特征波段)

• 870-1020 nm (940 nm水汽特征波段)

• 770-870 nm (820 nm水汽特征波段)

(1)选择水汽吸收波段(Water Absorption Wavelength):默认为Automatic Selection。

提示:如果满足水汽反演条件,优先选择1130。

(2)固定水汽含量乘数(Water Column Multiplier):为固定水汽含量指定Min和Max水气柱乘数。默认值分别为0.01和1。

预设水汽含量(Water Vapor Preset):可以选择输入一个值替代内置的水汽含量。默认值0表示使用水汽反演,输入正值将替代水汽反演。

4 FLAASH - Rigorous Atmospheric Correction对话框(Water参数)


6. 气溶胶参数


单击Aerosol选项(图5)。

(1)气溶胶模型(Aerosol Model):拉列表中选择一个模型。气溶胶类型包括:

• No Aerosol:计算时不考虑气溶胶或云衰减。

• High-Visibility Rural:表示未受到城市或工业强烈影响地区的气溶胶,属于清晰到非常清晰(能见度)的状态,气溶胶消光系数的垂直分布是指数分布。

• Low-Visibility Rural:表示未受到城市或工业强烈影响地区的气溶胶。属于雾霾天气(能见度),假设气溶胶消光系数的垂直分布与1公里以内的高度无关,并在该高度以上显著下降。

• Maritime:海平面或者受海风影响的大陆区域,混合了海雾和小粒乡村气溶胶。

•  Urban:混合80%乡村和20%烟尘气溶胶,适合高密度城市或工业地区。

• Tropospheric:应用于平静、干净条件下(能见度大于40km)陆地,只包含微小成分的乡村气溶胶。

(2)气溶胶反演(Use Aerosol):选择用于气溶胶反演算法。如果选择反演算法运行失败或禁用此选项,则使用默认能见度。气溶胶反演选项包括

•  禁用此项(Disabled):使用默认能见度;

•  自动选择(Automatic Selection):算法自动选择;

• 基于植被(Vegetation Based Retrieval):输入图像必须包含浓密植被;

• 基于水体(Water Based Retrieval):输入图像上必须包含水体;

•  基于水汽波长(Wavelength Dependent Water Based Retrieval)

•  线性回归(Linear Regression Retrieval)

(3)气溶胶厚度系数(Aerosol Scale Height):可选。用于计算邻域效应范围。一般值为1~2km,默认为2km。

(4)气溶胶波段比(Aerosol Band Ratio):可选。指定两个波段,计算他们之间反射率比值。Ratio = (upper band) / (lower band)。

(5)气溶胶波段波长(Aerosol Band Wavelength):可选。为自定义单波段气溶胶反演指定波段波长(nm)。可以指定单个波长或波长间隔。

(6)   气溶胶参考值(Aerosol Reference Value):可选。为自定义单波段气溶胶反演中设置像素反射率值。

(7) 气溶胶参考像元(Aerosol Reference Pixel):可选。为自定义单波段气溶胶反演中设置使用的像素位置(列号、行号)。如果未定义,则使用最暗像元作为参考像元。

(8) 气溶胶下行波段中心波长(Aerosol Bandlow Wavelength):可选。指定气溶胶反演的下行波段波长(nm)。可以指定单个波长值或间隔波长值。

(9) 气溶胶下行波段最大反射率(Aerosol Bandlow Max Reflectance):可选。指定气溶胶反演的下行波段的最大反射率值。高于该值的像元将被排除在气溶胶反演过程之外。

(10)  气溶胶上行波段中心波长(Aerosol Bandhigh Wavelength):可选。指定气溶胶反演的上行波段波长(nm)。可以指定单个波长值或间隔波长值。

(11)气溶胶上行波段最大反射率(Aerosol Bandhigh Max Reflectance):可选。指定气溶胶反演的上行波段的最大反射率值。高于该值的像元将被排除在气溶胶反演过程之外。

5 FLAASH - Rigorous Atmospheric Correction对话框(Aerosol参数)


7.   其他参数


单击Misc选项(图附录6)。

(1)邻域校正(Adjacency Correction):是否执行邻域校正。有三个选项供选择:

•  不执行(Disabled)

• 传统指数散射核(Legacy exponential scattering kernel)

• 波长相关散射核(Wavelength-dependent scattering kernel),默认项。

提示:与大多数大气校正模型不同,FLAASH工具既考虑了直接进入传感器的地表反射的辐射,也考虑了被大气散射到传感器的地表辐射,即大气散射引起的邻域效应(相邻像素之间的混合辐射)。当使用邻域校正时,会得到更准确的反射率结果。

    (2)初始能见度(Initial Visibility Value):输入一个初始能见度。当不执行气溶胶反演或者气溶胶反演失败时候,这个初始能见度将用于大气校正。可以根据天气条件估计能见度(表3)。


表3 天气条件与估算能见度

(3)光谱修正(Spectral Polishing):针对高光谱数据,FLAASH提供光谱修正处理,用相邻N个波段的均值对波谱曲线进行微调,使波谱曲线更加近似于真实地物的波谱曲线。有三个选项供选择:

•  不执行(Disabled)

•  Polish using reference materials:将图像中的反射光谱与参考波谱库(主要是土壤和岩石)相匹配。使用匹配图像光谱和光谱库光谱之间的偏差来计算每个波段的补偿因子。

•  Polish using statistical detection of spectral artifacts:使用光谱和低通滤波结果之间的比较来计算修正因子。

(4)修正宽度(Polishing Width):在FLAASH光谱修正算法中使用的平滑窗口宽度(相邻波段数量)。数字越大,平滑度越高。对于典型的10 nm分辨率高光谱传感器(如AVIRIS),建议值为9。光谱分辨率越小,建议设置这个值越小,并使用奇数平滑宽度,因为它们在计算上更高效。

(5) 传感器自动校准(Sensor Autocalibration):选择启用(Yes)或禁用(No)传感器自动校准。

提示:启用此项可调整传感器波段的中心波长。它根据图像数据计算大气透射的模拟值,并将这些值与参考吸收特征的已知位置进行比较。如果传感器具有多个检测器,则对每个检测器独立地进行调整。传感器自动校准在多光谱传感器上不起作用。

(6)自动精度阈值(Autocalibration Precision):指定一个阈值,用于确定吸收特征是否足够独特用于波长校准。默认值为15 nm

(7)传感器校准特征(Sensor Calibration Features):如果启动了Sensor Autocalibration,则以下列出的所有光谱特征用于传感器校准。如果仅使用这些特征的子集,请在本参数填写需要使用的光谱特征名。根据经验,列表中的前三个特征是最可靠的。

光谱特征:O2_763H2O_940CO2_2040Solar_H_434Solar_H_486Solar_Mg_517Solar_H_656O2_691H2O_820H2O_1130O2_1266CO2_1614

6 FLAASH - Rigorous Atmospheric Correction对话框(Misc参数)


FLAASH执行处理


设置好FLAASH参数后,在FLAASH - Rigorous Atmospheric Correction对话框中,运行FLAASH模块。

(1)勾选Preview可以在当前视图中预览结果。

(2) 单击可打开三个菜单。

 Save Parameter Values

保存参数设置为外部文件(.json)

  Restore Parameter Values

打开外部参数设置文件(.json)

       Run Task in the Background

在ENVI Servers执行该任务。

ENVI技术殿堂
ENVI官方公众号。分享光学与雷达遥感技术,以及ENVI/IDL/ESE/SARscape系列产品最新技术、相关培训、市场活动等信息。【主页:envi.geoscene.cn】
 最新文章