Python-Fortran 混合编程融合 AI 与物理模式:气候与天气模式中的 AI-LDA 实例(Hf2pMDA_v1.0)
欢迎阅读EarthAI公众号的学术文章解读,受限于个人知识水平,解读难免存在疏漏或不当之处,敬请谅解,也欢迎大家留言区交流,希望您能有所收获。
本文基于 F2PY(Fortran to Python 接口生成器)协议,提出一套 Python-Fortran 混合编程与资料同化基础设施 Hf2pMDA,使 Fortran 编写的物理模式与 Python 训练的 AI 算法可互相在线调用;并以气候强耦合资料同化(SCDA)与 1 km 高分辨率天气同化(FSDA)两个实例,验证该框架在地球系统模式中的可行性。
一、背景:物理模式与 AI 的"语言鸿沟"
数值天气与气候模式(如地球系统模式 ESM)多采用 Fortran 编写,而机器学习 AI 算法多在 Python 中设计与训练。随着分辨率不断提高,物理模式在次网格参数化、海冰与边界层等跨尺度过程上遇到瓶颈,AI 提供了端到端求解的契机;但反过来,数据驱动的 AI 也受限于物理可解释性,物理引导的 AI 正在兴起。深度融合二者能"双向驱动":让 AI 注入丰富物理、让物理模式直接调用任意训练好的 AI 算法。然而,Fortran 与 Python 之间长期缺乏对物理建模者友好的便捷基础设施,现有方案要么把物理表达式用 Python 重写、要么把 AI 翻译成 Fortran(如 FTorch,且对 Torch 接口支持不全)。因此,本文的核心动机就是提供一座低侵入、可互调的"桥"。
二、方法:Hf2pMDA 混合编程框架
Hf2pMDA 以 F2PY 为底层协议,把 Fortran 科学计算封装为 Python 可调用对象,并让 Fortran 程序回调 Python 函数,整体通过四个步骤搭建:配置计算环境、用 -fPIC 重编译 Fortran 代码、定义 Fortran 可调用 Python(FCP)接口、编写 Python 主控制器(PMC)。它提供两条互补路径:
- PMC 组织 PCF 模块:把原 Fortran 工作流拆成可调用组件,封装为 Python-callable Fortran(PCF)模块,由 PMC 在外部重组执行逻辑并插入 AI 算法,概念简单、易调试(类似 fv3gfs-wrapper);
- Fortran 程序回调 FCP 函数:对 WRF 这类深度嵌套、难以拆解的模式,保留 Fortran 为主驱动,仅在需要处插入薄薄的回调接口,由 F2PY 注册的 Python 函数完成计算,大幅降低对宿主模式的侵入式重构。
两条路径可混合使用,兼顾"AI for Science"(AI 解物理难题)与"Science for AI"(科学计算直接回灌训练,如强化学习)。
三、方法:AE 潜空间三维变分(L3DVar)
作为 Hf2pMDA 中的 AI 算法示例,作者设计 Latent Space 3D-Var(L3DVar):先用自编码器(AE)把高维物理状态压缩到低维潜空间(编码器 E、解码器 D,训练中固定),再在潜空间最小化 3D-Var 型代价函数,吸收观测信息后解码回物理空间。相比物理空间 3D-Var,控制变量变为低维潜向量,最小化维度大幅缩减,且因解码器为非线性神经网络,可表达跨变量的非线性关系——这对强耦合资料同化(SCDA)尤为关键:某一分量(如大气)的观测可直接调整另一分量(如海洋)的耦合状态。本文特意采用确定性 AE 而非 VAE,以保住解码分析场的保真度。
四、结果:气候强耦合资料同化(SCDA)
在耦合模式 CM2(大气 2°×2.5°、海洋 1°)上,用"PMC 组织 PCF 模块"路径把 L3DVar 接入 CM2-CDA,形成 Hf2pMDA-CM2SCDA。
- 重构精度:以海表风、温、压(Us、Vs、Ts、Ps)与海流、海温、海高(SSU、SSV、SST、SSH)训练 AE,验证集总 SSIM 达 0.9945,总 RMSE 约 0.104,满足同化背景要求;
- 潜空间诊断:通道相关矩阵接近对角(95% 非对角相关绝对值 < 0.29),支持采用对角简化背景误差协方差 Bz;
- 维度削减:物理空间耦合状态向量 339840 维 → 潜空间 40500 维,削减率 88%,使快速最小化可行;
- 同化增益:以 1982 全年 ERA5 地表气压(Ps)与 OISST 海温(SST)为观测,7—12 月 6 个月平均 SCDA 较 WCDA 降低 RMSE 约 4%(4.62 vs 4.81);对 Ps 的优势在约 4—5 个月后显现,增益主要出现在热带(SST)与中高纬风暴轴(Ps),在热带不稳定波(TIWs)等强非线性区差异最明显。
五、结果:1 km 高分辨率天气同化(FSDA)
在 WRF v3.7.1 的三层嵌套域(中国西部 9 km、四川中部 3 km、成都 1 km)上,用"Fortran 回调 FCP"路径把 L3DVar 接入,形成 Hf2pMDA-WRFFSDA,并在 1 km 成都核心域并行开展传统 MSHea-EnKF 与 AI L3DVar 试验,同化常规站与激光雷达(Lidar)观测。
- 重构精度:D03 近地面变量(q1、T1、u1、v1)训练后验证集总 SSIM 达 0.9966,保真度满足精细尺度同化;
- 尺度取向:为表达 1 km 高分辨率小尺度信息,latent_dim 取较大值 196608,削减率仅约 25%,侧重局部结构保留;
- 结果印证 Hf2pMDA 能便捷地在传统 DA 与 AI L3DVar 间做并行对照,把含湍流信息的激光雷达观测纳入高分辨率分析。
六、讨论:基础设施价值与局限
Hf2pMDA 的核心价值在于"低侵入、可互调":物理模式者无需把 legacy Fortran 代码推倒重来,即可插件式注入任意 Python AI 算法;同时科学计算可回灌 AI 训练。两个实例分别覆盖"PMC 组织模块"(模块化 CM2)与"Fortran 回调"(嵌套 WRF)两类典型模式,证明框架通用。需要说明的是,SCDA 在本文低分辨率(大气约 200 km、海洋约 100 km)下相对 WCDA 的增益尚小,其优势应在更高分辨率、更活跃的海气耦合(如台风、中尺度涡)场景中被进一步放大;L3DVar 的协方差简化也依赖潜空间充分去相关这一前提。
未来方向
- 在更高分辨率耦合模式(如可分辨台风、中尺度涡)中检验 SCDA 的额外增益;
- 将 Hf2pMDA 推广到更多 AI 算法(生成式先验、AI 子网格闭包、混合采样);
- 评估潜空间 Bz 的非对角相关在真实业务中的影响,探索更精细的协方差建模;
- 拓展到更多 Fortran 地球系统模式与区域模式的即插即用接入;
- 结合强化学习,使动力学作为训练约束直接回灌 AI。
核心亮点
- 给出一座 Fortran↔Python 的便捷"桥":基于 F2PY 的 Hf2pMDA 让 AI 与物理模式在线互调,且对宿主模式侵入小;
- 两条互补路径覆盖两类模式:PMC 组织 PCF 模块(适合模块化 CM2)与 Fortran 回调 FCP(适合嵌套 WRF),通用性强;
- AI-LDA 落地两个地球科学实例:气候强耦合同化(SCDA,潜空间维度削减 88%、6 个月 RMSE 降约 4%)与 1 km 天气同化(FSDA,SSIM 0.9966),打通"AI 算法 → 物理模式"的链路。
论文信息
- 标题:Python-Fortran Hybrid Programming to Fuse AI and Physical Models: Examples of AI-LDA in climate and weather models (Hf2pMDA_v1.0)
- 作者:Zhu, Xianrui、Lin, Zikuan、Zhang, Shaoqing、Lu, Zebin、Wu, Songhua 等
- 链接:https://arxiv.org/abs/2608.29532
文中图片
图片题注:展示所设计的 Hf2pMDA 融合 Fortran 科学模式与 Python 机器学习的总体示意。 解读:点明框架目标——让 AI 算法与物理建模/资料同化在同一程序实体内互相调用,是全文的方法总纲。
图片题注:Hf2pMDA 的两条融合路径示意:a) PMC 组织 PCF 模块,b) Fortran 程序回调 FCP 函数。 解读:直观区分"PMC 外部重组"与"Fortran 内部回调"两种低侵入接入策略,对应后文 CM2 与 WRF 两个实例。
图片题注:基于自编码器的潜空间三维变分(L3DVar)算法工作流程示意图。 解读:编码器把背景态压入潜空间、做 3D-Var 最小化、解码器回物理空间,是 AI-LDA 的核心算子。
图片题注:CM2 大气—海表界面变量在 AE 潜空间中的重构结果。 解读:重构场保留原始大尺度结构、误差小、谱斜率一致,佐证潜空间可用作同化背景。
图片题注:自由模式控制模拟(CTL,蓝)、WCDA(橙)与 SCDA(绿)的 SST 与 Ps 均方根误差(RMSE)时间序列。 解读:SCDA 在约 4—5 个月后对 Ps 显现更小 RMSE,是强耦合增益的定量证据。
图片题注:a) 中国西部(D01)、四川中部(D02)、成都(D03)9/3/1 km 三层嵌套模式域配置。 解读:标出 1 km 成都核心域与激光雷达站位置,对应 FSDA 高分辨率同化实例。
声明:欢迎转载、转发。气象学家公众号转载信息旨在传播交流,其内容由作者负责,不代表本号观点。文中部分图片来源于网络,如涉及内容、版权和其他问题,请联系小编(微信:qxxjgzh)处理。