【WRFDA教程第十期】混合数据同化(Hybrid Data Assimilation)
WRFDA 混合数据同化
- 一、混合数据同化(Hybrid Data Assimilation)
- 背景
- 混合模式所用的可执行文件
- 二、3DEnVar 模式下混合同化的执行步骤
- 三、4DEnVar 模式混合同化的执行步骤
- 四、Dual-resolution Hybrid(双分辨率混合同化)
- 准备工作
- namelist.input 配置方法
- 五、Hybrid namelist options(混合模式相关 namelist 设置)
- &wrfvar7:混合协方差权重设置(Hybrid Covariance Weighting)
- &wrfvar16:混合模式控制与高级功能设置
- 参考
本博客结合- WRFDA(Weather Research and Forecasting Data Assimilation)教程 详细介绍混合数据同化(Hybrid Data Assimilation)。
一、混合数据同化(Hybrid Data Assimilation)
背景
在传统的 WRFDA 3DVAR/4DVAR 中,背景误差协方差(Background Error Covariance)是 静态的(static),即不随天气场变化。
混合方法的不同点
混合方法结合了:
- 静态误差协方差(Static B matrix)
- 从集合预报中估计的流依赖误差协方差(Ensemble-based B matrix)
这使得背景误差可以随天气流场变化而变化,是所谓的 flow-dependent,从而提高了分析精度。
混合模式所用的可执行文件
在 WRFDA/var/build 目录下包含以下 4 个关键程序:
程序名 | 功能说明 |
---|---|
gen_be_ensmean.exe | 计算集合均值和方差 |
gen_be_ep2.exe | 生成集合扰动(perturbations) |
gen_be_vertloc.exe | 垂直方向的局地化处理 |
da_wrfvar.exe | 主同化程序,运行 hybrid 模式 |
对比总结表如下:
对比项 | 3DVAR/4DVAR | 3DEnVar/4DEnVar |
---|---|---|
背景误差 | 静态 | 静态 + 动态(集合) |
是否需要集合 | 否 | 是 |
是否需要 WRFPLUS | 是(4DVAR) | 否(4DEnVar) |
优势 | 简单、经典 | 精度高、适应天气流场变化 |
二、3DEnVar 模式下混合同化的执行步骤
第1步:设置工作目录
setenv WORK_DIR your_hybrid_path
setenv DAT_DIR your_data_path
cd $WORK_DIR
第2步:计算集合均值
a) 链接集合成员文件(10个集合预报)
ln -sf $DAT_DIR/Hybrid/fc/2015102612/wrfout_d01_2015-10-27_12:00:00.e* .
b) 准备模板文件
cp wrfout_d01_2015-10-27_12:00:00.e001 wrfout_d01_2015-10-27_12:00:00.mean
cp wrfout_d01_2015-10-27_12:00:00.e001 wrfout_d01_2015-10-27_12:00:00.vari
c) 设置 gen_be_ensmean_nl.nl 文件
&gen_be_ensmean_nl
directory = '.'
filename = 'wrfout_d01_2015-10-27_12:00:00'
num_members = 10
nv = 7
cv = 'U', 'V', 'W', 'PH', 'T', 'MU', 'QVAPOR'
/
d) 运行计算程序
ln -sf $WRFDA_DIR/var/build/gen_be_ensmean.exe .
./gen_be_ensmean.exe
输出文件:
- *.mean:集合均值
- *.vari:集合方差
第3步:生成集合扰动(perturbations)
a) 创建工作子目录
mkdir -p ./ep
cd ./ep
b) 执行扰动生成程序(参数依次为日期、成员数、路径、文件名前缀)
ln -sf $WRFDA_DIR/var/build/gen_be_ep2.exe .
./gen_be_ep2.exe 2015102712 10 . ../wrfout_d01_2015-10-27_12:00:00
输出文件包括扰动文件和中间文件(tmp.e* 可删除)
第4步:生成垂直局地化输入文件
cd $WORK_DIR
ln -sf $WRFDA_DIR/var/build/gen_be_vertloc.exe .
./gen_be_vertloc.exe 42
生成的文件是 be.vertloc.dat
第5步:运行 WRFDA 混合同化
a) 准备输入文件(软链接)
ln -fs ./wrfout_d01_2015-10-27_12:00:00.mean ./fg
ln -fs $WRFDA_DIR/run/LANDUSE.TBL .
ln -fs $DAT_DIR/Hybrid/ob/2015102712/ob.ascii ./ob.ascii
ln -fs $DAT_DIR/Hybrid/be/be.dat ./be.dat
ln -sf $WRFDA_DIR/var/build/da_wrfvar.exe .
cp $DAT_DIR/Hybrid/namelist.input .
b) 编辑 namelist.input 文件
关键设置如下:
&wrfvar7
je_factor = 2.0
/&wrfvar16
ensdim_alpha = 10
alphacv_method = 2
alpha_corr_type = 3
alpha_corr_scale = 500.0
alpha_std_dev = 1.000
alpha_vertloc_opt = 2
ep_format = 1
/
- ensdim_alpha:集合维数
- alpha_corr_scale:水平局地化尺度(单位 km)
c) 执行主程序
./da_wrfvar.exe >& wrfda.log
输出结果与 3DVAR 类似。
三、4DEnVar 模式混合同化的执行步骤
特点
- 不需要 WRFPLUS(切线/伴随模型)
- 类似于 FGAT(First Guess at Appropriate Time)
- 需要多个时间的集合均值和扰动(每个时间窗都要)
- 同样运行 gen_be_ensmean.exe, gen_be_ep2.exe, gen_be_vertloc.exe
激活方式
在 namelist.input 文件中添加:
&wrfvar16
use_4denvar = .true.
/
示例
- 集合初始化时间:2005071512
- 有效时间:2005071521 到 2005071603
- 分析时间:2005071600
和 3DEnVar 类似,只是需要更多时间点的集合均值和扰动数据,计算量更大。
四、Dual-resolution Hybrid(双分辨率混合同化)
什么是 Dual-resolution Hybrid?
在 混合同化(Hybrid DA) 中,我们通常需要:
- 高分辨率背景场(用于最终分析)
- 集合扰动(用于估计流依赖误差)
Dual-resolution Hybrid 允许:
- 在 高分辨率分析域(如 15km)上执行同化;
- 使用从 低分辨率集合(如 45km)中提取的扰动来估计背景误差协方差。
这种方式可以 降低集合计算成本,同时保留高分辨率分析的优势。
🧠 背后原理
- 高分辨率背景提供更精准的局地天气细节;
- 低分辨率集合提供大尺度、流依赖的背景误差估计;
- 通过插值与映射关系,将低分辨率扰动影响传递到高分辨率分析中。
准备工作
需要两个 WRF 域(domain):
- Domain 1:低分辨率集合域
集合扰动文件必须来自 Domain 1 - Domain 2:高分辨率分析域
分析运行将在 Domain 2 上进行
namelist.input 配置方法
1. &domains 设置
重点要求:
- max_dom = 2:两个域
- 低分辨率设置必须写在每列的第一项!
- parent_id 和 parent_grid_ratio 要正确设置嵌套关系
示例:
&domainstime_step = 90,max_dom = 2,s_we = 1, 1,e_we = 222, 184,s_sn = 1, 1,e_sn = 128, 196,s_vert = 1, 1,e_vert = 45, 45,dx = 45000, 15000,dy = 45000, 15000,grid_id = 1, 2,parent_id = 0, 1,i_parent_start = 0, 89,j_parent_start = 0, 22,parent_grid_ratio = 1, 3,
/
2. &wrfvar16 设置
增加以下关键参数:
&wrfvar16
hybrid_dual_res = .true. ! 激活双分辨率混合同化
ensdim_alpha = 10 ! 使用的集合成员数(必须 > 0 才启用混合)
/
3. 其他要求
在工作目录中,准备一个名为 fg_ens 的文件:
ln -sf your_low_res_domain/wrfinput_d01 ./fg_ens
这个文件不用于分析计算,只是用于读取低分辨率集合域的网格映射信息。
五、Hybrid namelist options(混合模式相关 namelist 设置)
在 WRFDA(Weather Research and Forecasting Data Assimilation) 系统中,&wrfvar7 和 &wrfvar16 是 namelist.input 文件中用于混合同化(Hybrid DA) 和 变分同化(3DVAR/4DVAR) 的两个重要参数组。
&wrfvar7:混合协方差权重设置(Hybrid Covariance Weighting)
功能概述
&wrfvar7 主要用于控制静态背景误差协方差(B_static) 和 集合扰动误差协方差(B_ens) 之间的混合比例。
以下为与混合同化密切相关的 namelist 参数说明:
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
je_factor | 实数 | 1.0 | 集合协方差权重因子,控制 B_ens 与 B_static 的混合比例。推荐值为 2.0(即 50:50 权重) |
jb_factor | 实数 | 自动计算 | 静态协方差权重因子,由程序根据 je_factor 自动计算: jb_factor = je_factor / (je_factor - 1)(如 je=2.0,则 jb=2.0) |
混合协方差公式:
B_{\text{hybrid}} = \left(1 - \frac{1}{\text{je_factor}} \right) B_{\text{static}} + \frac{1}{\text{je_factor}} B_{\text{ens}}
例如:
- je_factor = 2.0 → 50% B_static + 50% B_ens
- je_factor = 3.0 → 66.7% B_static + 33.3% B_ens
&wrfvar16:混合模式控制与高级功能设置
功能概述
&wrfvar16 控制与 Hybrid DA、Dual-resolution Hybrid、4DEnVar、扰动读取格式 等相关的高级设置,是配置 Hybrid 系统的核心部分。
常用参数说明如下:
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
ensdim_alpha | 整数 | 0 | 启用 hybrid 模式的开关,>0 则启用混合同化,值为集合成员数 |
use_4denvar | 逻辑 | .false. | 启用 4DEnVar 模式 |
hybrid_dual_res | 逻辑 | .false. | 启用双分辨率混合同化(Dual-resolution Hybrid) |
ep_para_read | 整数 | 0 | 扰动文件读取方式: 0=串行,1=并行 |
rden_bin | 整数 | 1 | 并行读取的 bin 数,越小越快但占内存多;越大越慢但节省内存 |
alphacv_method | 整数 | 2 | 协方差空间类型: 2=模型变量空间(推荐) 1=控制变量空间 |
alpha_corr_type | 整数 | 3 | 协方差函数类型: 1=指数型,2=SOAR,3=高斯(推荐) |
alpha_corr_scale | 实数 | 200.0 | 协方差的水平局地化半径(单位:km) |
alpha_std_dev | 实数 | 1.0 | alpha 的标准差(调节扰动强度) |
alpha_vertloc_opt | 整数 | 2 | 垂直局地化选项: 0=不局地化 2=默认 logP 层局地化(推荐) |
ep_format | 整数 | 1 | 扰动文件格式(v4.2+ 支持多种格式): 1=原始格式,2/3=单精度合并格式,推荐用于大域 |
补充说明:ep_format 格式选项
ep_format | 描述 |
---|---|
1 | 每个变量每个成员一个文件(双精度) |
11 | 同上,但为单精度 |
2 | 每个变量一个文件,包含所有成员(单精度) |
3 | 每个变量一个文件,包含所有成员,分块域(decomposed patch),适合大区域模拟 |