ALG(Atmospheric Look-up table Generator)大气查找表生成器下载、配置及6sV2.1生成LUT(学习笔记1)

一、ALG介绍

        ALG包是一个GUI工具箱,它促进了大气辐射传输模型(RTM)和后处理工具的运行。软件工具独立,与ARTMO工具箱兼容。本文记录在windows环境下的配置过程。

、软件安装及环境配置

1、ALG软件下载

下载地址:

ARTMOartmo, radiative model transfer, inversion, biophisical parametersicon-default.png?t=N7T8https://artmotoolbox.com/download.html

下载ALG软件包并安装对应版本的Matlab

2、 安装ALG

        安装ALG之前,需验证安装64位MCR(Matlab Compiler Runtime)9.9,MCR为一组独立的共享库,可以在未安装Matlab的计算机上执行编译后的Matlab程序。因此,没有Matlab R2020b(64位)软件时,可安装相应的MCR,仍可使用ALG软件包。

        为简便,提前安装Matlab R2020b。(若为其他版本的ALG,按照官网说明下载对应版本的Matlab!)

(1)解压ALG软件,包含以下文件。

文件夹非必要不进行编辑或移动!

  1. ALGTools:包含一组Matlab函数(.m),用于读取ALG生成的大气查找表(LUT)文件头、实现LUT插值及光谱卷积
  2. bin:软件二进制文件
  3. Conf:软件配置文件(.xml)
  4. Help:软件用户手册(html)、教程(.m)
  5. LUTs_folder:存储生成查找表的默认路径
  6. Others:使软件运行的附加文件(如,大气概况等)
  7. third_party_sw:安装第三方大气辐射传输模型的默认文件夹,目前包含6SV v2.1(已完成编译),且RTMs可以安装在其他目录中
  8. UserData:用于存储用户自定义数据的默认文件夹

(2)运行ALG软件,运行bin目录下的ALG.exe

显示主界面如下。(可先将Matlab打开再执行ALG.exe)

(3)需配置软件,使其能够运行自定义安装的大气RTM,如MODTRAN v5.2、6SV等。进入installation-guide.html界面。以6SV2.1为例,ALG包含该RTM的编译版本,在third_party_sw目录下。

 A.添加大气RTM。Settings,进入首选项界面,单击RTM选项卡以更新RTM的配置:

        从窗口右上角的select RTM弹出菜单中选择一个大气RTM,键入大气RTM可执行文件的路径和名称(例如,ALG_v3.2.2\third_party_sw\6sV-2.1,使用ALG工具箱中默认的6SV2.1版本)

单击“Apply”按钮,更新存储在ALG-Conf子文件夹中的RTM配置文件(RTMconf.xml)。

三、ALG第三方库6sV2.1建立查找表

1、6SV v2.1建立查找表

        基于大气辐射传输模型(RTM)创建新的查找表(LUT)包括(1)定义控制大气RTM(新LUT配置)行为的输入参数和变量;(2)处理RTM输出文件并存储处理后的数据以生成LUT。

1.1 常规LUT配置

        新LUT配置面板旨在通过定义输入LUT参数和变量来运行辐射传输模型的模拟。这些变量包括:(1)通用LUT配置参数,(2)RTM关键输入变量,(3)用户定义的OPAC气溶胶变量,(4)传感器光谱配置,以及(5)高级RTM参数。所有这些变量和参数都控制着大气RTM的行为。

ALG界面→File→New→Run simulations,打开面板

以下步骤和GUI用于配置新的大气LUT,与所选的大气RTM无关。

        ①默认情况下,ALG将LUT路径设置为LUTs_folder文件夹

        ②指定用于运行RTM的并行CPU核的数量。此数量会自动受到安装ALG的PC的最大CPU内核的限制。通过选择N个并行运行的值,ALG将自动将所有RTM模拟分布在N个不同的子文件夹中,路径及名称在保存LUT文件文本框中引入,后缀为_i(i从1到N)。

        ③选择用户级别(Basic、Medium或Advanced)。该参数允许用户访问更高级的LUT配置参数和选项,例如关键输入变量和LUT采样策略。

        ④可用的大气RTM。

        大气模型

        A. Operation mode - Transfer Functions option:允许为所选择的RTM生成大气传输函数。这些函数包括大气RTM的典型标准输出,如路径辐射、透射率或表面辐照度。将传输函数模式用于正向模拟或大气校正等应用程序。

        B. Operation mode - At-sensor Radiance option:正向模式运行所选RTM,计算到达传感器的辐射。在该模式中,除了大气、几何和光谱配置外,用户还将定义表面特性(例如反射率、荧光、温度、发射率)和云特性。

        C. Operation mode - Transmittance option:在透射率模式下运行选定的RTM,并存储可用气体的地表-传感器的直接透射率。

用户必须在其弹出菜单上选择采样策略⑤。

        采样策略

        A. Manual (gridded) sampling:关键输入变量的值被全部与全部组合,从而给出一个n维矩形网格(n=输入变量空间的维度)。此选项适用于所有用户,是多个应用程序中LUT生成的最常见选项(例如大气校正)

        B. Automatic (gradient):LUT节点会自动分布,以便将线性插值中的误差限制在用户输入值以下。注意,该方法仅适用于包含连续变量的LUT,因此不接受离散变量的各种值。此选项可用于所有用户。

        C. Latin Hypercube:输入变量在输入变量空间中伪随机且均匀地分布,从而产生一组分散的LUT节点。此选项适用于Medium和Advanced用户,建议用于开发回归模型(模拟器)或模拟一组随机模拟,以验证LUT插值。

        D. Sobol/Halton sequence:输入变量在输入变量空间中伪随机且均匀地分布,从而产生一组分散的LUT节点。此选项适用于Advanced用户。

        E. Read distribution:用户将从以前的LUT(在.h5文件中)或存储在.txt文件中选择预先计算的节点分布。在.txt文件的情况下,该文件应包含一个由N个输入变量(以行为单位)和M个组合(以列为单位)组成的矩阵,每一列都用表格分隔。请注意,使用此选项,将打开另一个“关键输入变量”窗口。此选项适用于Medium和Advanced用户,允许用户重新运行现有LUT并更新或添加新的输入变量和值。

        F. User-defined distribution:可以定义每个输入变量的随机生成值的统计分布。如果要基于真实的自然分布来分布大气变量,请使用此选项。

根据所选择的采样策略,不同的选项将可用于评估停止条件,即确定LUT⑥中包括的节点数量:

        G. maximum number of input samples/nodes:当采样是手动(网格化)或拉丁超立方体采样时,此选项是固定的。它也可用于Sobol和Halton序列分布

⑦第一个允许用户引入相对误差阈值(以%为单位)

⑧允许选择表面反射率光谱。与LUT中的大气传输函数相结合,该参数允许生成TOA辐射,用于通过交叉验证评估插值误差。

1.2 输入变量

        选定的大气RTM引入关键输入变量, 打开此步骤时,ALG将自动从RTMconf.xml文件中读取与所选RTM的关键输入变量相关联的所有属性。根据所选的用户级别,用户将可以访问或多或少的关键输入变量。

        在拉丁超立方体或Sobol/Holton序列分布具有基于LUT样本最大数量选项的停止条件的情况下,用户必须在LUT中引入网格点的总数。此外,用户可以用勾选框进行选择,以包括N维参数空间的2N个角。如果分布为手动(网格化)采样,或者在交叉验证选项上选择了停止条件,则这些参数将不可见。

        设置大气、气溶胶及几何参数范围

        6SV气溶胶变量

        变量G(无量纲)定义了相函数的不对称参数,从而控制了气溶胶相函数的形状,这对气溶胶引起的散射效应有影响。对于-1(后向散射)到+1(前向散射)之间的值,通过与光谱无关的Henyey-Greenstein经验近似对相位函数进行建模。对于典型的气溶胶,在400-2500 nm的光学范围内,陆地上的G值在0.5和0.8之间。如果G=10(默认值),6SV将把G值重置为0.82,这是OPAC大陆平均气溶胶模型的典型值。

        ALPHA近似定义了气溶胶消光系数的光谱依赖性,这个变量对气溶胶引起的吸收和散射效应有影响。对于典型的气溶胶,ALPHA值的范围从0到2。

        SSA(单散射反照率)是一个无量纲变量,它定义了气溶胶散射和消光系数之间与光谱无关的比率,从而控制了气溶胶吸收和散射的分数。其数值范围从0到1,陆地上的典型气溶胶数值在0.8到1之间,光学范围为400-2500 nm。如果SSA=-1(默认值),6SV将把SSA值重置为0.9,这是OPAC大陆平均气溶胶模型的典型值。

        6SV几何变量 

1.3 自定义OPAC气溶胶 

        ALG当前版本允许将OPAC v3.1气溶胶数据库与几个大气RTM耦合。这种耦合通过引入作为RTM输入的OPAC气溶胶的气溶胶光学特性(即消光系数、单散射反照率和不对称参数或相位函数),在定义其他气溶胶类型方面具有更高的通用性。自动耦合。

        当选择气溶胶模型作为LUT中的关键输入变量时,用户将获得RTM默认气溶胶模型(例如,MODTRAN的IHAZE)和OPAC气溶胶模型(AERTYPE)。其中,用户定义(OPAC)选项允许用户引入更多的离散气溶胶类型。

1.4 自定义大气剖面

        对于那些允许用户定义大气剖面的大气RTM(例如,MODTRAN6),ALG实现了图形用户界面,以自动化和促进新大气剖面的定义。通过该工具,用户可以通过引入高度相关的剖面数据(例如,温度、H2O、O3)来定义额外的大气模型,这些数据后来被格式化并解释为输入大气RTM。

1.5 传感器光谱设置

        该配置将设置RTM计算大气传输模型的波长。可以从Sensorconf.xml文件加载一个或多个传感器的预定义光谱配置,ALG将自动确定每个光谱带的最小/最大波长范围和光谱分辨率。ALG将分配比相应传感器光谱分辨率(FWHM)高10倍的光谱过采样因子,并调整光谱范围(最小/最大波长值)。 

1.6 高级参数

        对于要添加的每个新的高级参数,都应重复此操作。RTMconf.xml文件中的默认值将分配给所有未由用户引入的参数。

        点击左下角的Run simulations按钮,根据LUT配置继续运行RTM。这将自动创建一个LUT配置.xml文件(例如,\ALG_v3.2.2\LUTs_folder\LUTfile.xml),该文件将存储所选的输入配置(通用、输入变量、光谱和高级),以便稍后在执行大气RTM和生成输入数据时使用。

1.7. 6sV2.1模型生成LUT 示例

常规配置示例

输入变量示例,参数组合为2*2*3*3*2=72

LUT保存配置文件,xml 

        输入/输出文件的名称为combN_bandL,其中N是结点node的组合数(如4个变量,每个变量2取值,则node为16),L是定义配置中定义的每个谱带的数字(6SV2.1可以只设置一条光谱带,如0.4-2.5um,2.5nm光谱分辨率即可) 

写入6s input文件

         进度条将显示6SV输入文件的写入,完成后,6SV执行将运行这些RTM输入文件的模拟,即生成对应的.out文件。

        一旦这些模拟完成,我们就可以从这些RTM文件中生成大气LUT。

        ALG将这些大气传递函数组合在维度为(n·l)×p的LUT中,其中n是大气传递函数的数量,l是波长的数量,p是输入变量组合的总数,分层数据格式HDF5文件(.h5)中。

        ALG界面→Package LUT, 选取LUTfile.xml文件,将查找表打包, ALG将处理RTM输出文件并生成单个LUT HDF5文件(.h5),该文件包含大气传递函数和关于RTM密钥输入变量、参数和光谱配置的头部信息。

 2、Matlab读取查找表

%% Extracting and reading LUT data
%1.读取存储在其头文件(tutorial.hdr)中的LUT键输入变量。readLUTheader函数用于读取LUT头文件的内容并将相关信息存储在一个结构中
%sza:该字段包含长度为m(m:LUT节点的数量)的向量,其中太阳天顶角的值对应于每个LUT节点
%LUTheader:该字段包含一个n×m维的矩阵(n:输入变量的数量),其中包含每个关键输入变量组合的值。
%wvl:该字段包含一个具有k个波长的矢量
filename='D:\ALG_v3.2.2\LUTs_folder\6SV2.1_0.4-2.5um\LUTfile';
hdr = readLUThdr([filename,'.h5']);

wvl=hdr.wvl;
Varnames=hdr.varnames;
LUTheader=hdr.LUTheader;

Y = h5read([filename,'.h5'],'/LUTdata');
L0   = Y(1:numel(hdr.wvl),:);%Atmospheric path radiance
Tgas = Y(numel(hdr.wvl)+1:2*numel(hdr.wvl),:);%Total gas transmittance
Etot = Y(2*numel(hdr.wvl)+1:3*numel(hdr.wvl),:);%Total at-surface irradiance due to scattering
Ttot = Y(3*numel(hdr.wvl)+1:4*numel(hdr.wvl),:);%Total upwards transmittance due to scattering
S    = Y(4*numel(hdr.wvl)+1:5*numel(hdr.wvl),:);%Spherical albedo

plot(wvl,Tgas(:,50));

%% TOC->TOA:create TOA radiance spectra from a given surface reflectance 
%LTOA = L0 + (1/pi)*(bsxfun(@times,Tgas.*Etot.*Ttot,rho))./(1-bsxfun(@times,S,rho));

        变量名称

        其中,示例配置情况下,共72个参数组合,存储在LUTheader中

        以上程序输出参数组合为“50”情况下的总气体透过率,如下图,模拟波段为400-2000nm,光谱分辨率为2.5nm,共641个波段。

以上文档均来自ALG帮助文档翻译。

参考:《ALG v3.0 Installation Guide》

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NaRi~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值