当前位置: 首页 > news >正文

【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/4DVAR3DEnVar/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.0alpha 的标准差(调节扰动强度)
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),适合大区域模拟

参考

http://www.lryc.cn/news/580040.html

相关文章:

  • 【C++复习1】基础篇
  • 负载均衡--常见负载均衡算法
  • 大带宽服务器中冗余技术的功能
  • 【深度解析】Seedance 1.0:重新定义 AI 视频生成的工业级标准
  • 10.双端Diff算法
  • [代码学习] c++ 通过H矩阵快速生成图像对应的mask
  • 嵌入式C语言:指针
  • Jenkins-Email Extension 插件插件
  • ubuntu 18.04配置镜像源
  • ubuntu22桌面版中文输入法 fcitx5
  • 运维打铁:企业云服务解决方案
  • 金融系统中常用的FIX协议
  • 企业电商解决方案哪家好?ZKmall模块商城全渠道支持 + 定制化服务更省心
  • 文本分词 nltk
  • ODS 系统是什么?企业为什么需要搭建 ODS?
  • CentOS配置网络
  • 【Oracle APEX开发小技巧15】多级弹窗关闭子级保留父级
  • 建议大家都去频繁大量地记录自己:让目标在笔尖下生根发芽
  • 【银行测试】手机银行APP专项项目+测试点汇总(一)
  • 【烧脑算法】最小字典序:巧用单调栈,从栈底到最优解
  • Jmeter安装使用-测试Java接口
  • iOS IPA 混淆,如何对企业定制 App 做渠道差异化保护
  • 写一个ununtu C++ 程序,调用ffmpeg , 来判断一个数字电影的音频文件mxf 的 采样率(频率),通道数, 采样位数
  • ARMv8 没开mmu执行memset引起的非对齐访问异常
  • 新商品冷启动:基于语义Embedding与GBRT的消费指标预估技术实践
  • chrome插件合集
  • vue 循环无限滚动表格
  • Mint密室 · 猫猫狐狐的“特征选择”囚室逃脱
  • QT5.14.2+VS2019 打包程序找dll(纯QT+Opencv程序)
  • 鸿蒙开发List长按Item拖拽切换效果