ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

大气与海洋如何耦合?DLESyM-V1-ERA5中SST耦合变量的完整解析

大气与海洋如何耦合?DLESyM-V1-ERA5中SST耦合变量的完整解析

【免费下载链接】dlesym-v1-era5

项目地址:https://ai.gitcode.com/hf_mirrors/nvidia/dlesym-v1-era5
点击查看免费下载

DLESyM-V1-ERA5是 NVIDIA 开源的深度学习地球系统模型(DLESyM)检查点包,包含独立的大气与海洋组件,通过海表温度(SST)等耦合变量实现大气-海洋相互作用,面向亚季节-季节(S2S)预报与气候模拟。本文用通俗的语言拆解它的 SST 耦合变量背后的物理逻辑与配置实现,帮助你理解这类 AI 气候模型"如何耦合"。

1. 先看整体架构:两个 U-Net,一个耦合环 🌍

DLESyM 的架构设计很直观——把地球系统拆成两个神经网络:

组件角色预测变量
大气模型(atmos)快速环流z500、tau300-700、z1000、t2m、tcwv、t850、z250、ws10m
海洋模型(ocean)慢速环流sst(海表温度)

两者都采用针对HEALPix nside=64(约 1° 分辨率)球面网格改造的 U-Net 网络,权重文件以.mdlus格式存放。

关键点在于:大气与海洋并非各算各的,而是通过"耦合变量"互相喂数据,形成一个单向互为输入的耦合环。

2. SST 耦合变量的物理逻辑 🌊

耦合变量在 checkpoints/v1.1/config.yaml 中由两组配置明确定义:

  • atmos_coupling_variables: ["sst"]—— SST 进入大气模型
  • ocean_coupling_variables: ["z1000", "ws10m"]—— 大气状态反馈给海洋模型

2.1 海表温度如何驱动大气?

物理上,海洋是大气的"恒温底座":

  1. 热量输送:SST 决定海面的感热与潜热通量,直接影响边界层温度(t2m)和大气湿度(tcwv,总柱水汽);
  2. 对流与低压系统:暖水区蒸发旺盛,容易触发对流,进而改变 850 hPa 温度(t850)与中高层位势高度(z250、z500);
  3. 季节尺度记忆:海洋热惯性大、状态演变慢,把 SST 作为已知边界条件输入大气模型,相当于把海洋的"慢记忆"注入快速预报,这正是 S2S 预报(10~60 天)能延伸预报时效的核心机制。

2.2 大气又怎样反馈海洋?

反馈通道选择了两个变量,恰好对应海气相互作用的两大驱动:

  • ws10m(10 m 风速):代表风应力,驱动表层海流与混合,影响热量在海洋中的平流与再分配;
  • z1000(1000 hPa 位势高度):低层大气状态的代理量,反映气压系统与风场结构,间接约束海面热通量。

这种"大气快、海洋慢"的弱耦合设计,与物理地球系统模型中的"松弛耦合"思路一致,但代价极低——一次前向推理即可完成。

3. 实现细节:配置文件中能读出什么?⚙️

3.1 耦合时间步:快慢组件异步驱动

输入时间配置直观体现了大气与海洋的时间尺度差异:

配置项取值含义
atmos_input_times[-18, -12, -6, 0]大气模型读取最近 18 小时的 4 个历史状态
ocean_input_times[-48, 0]海洋模型只看 2 天前和当前 2 个状态
atmos_output_times6, 12, …, 96大气每 6 小时输出一次,直至 4 天
ocean_output_times[48, 96]海洋只在 2 天、4 天两个时刻输出 SST

也就是说,海洋模型每 48 小时"更新一次" SST,再把这个 SST 作为边界条件喂给后续 2 天的大气预报。想手动复现这套流程的话,可以先获取仓库git clone https://gitcode.com/hf_mirrors/nvidia/dlesym-v1-era5,再参考 README.md 中提到的 Earth2Studio / PhysicsNeMo 生态完成推理。

3.2 SST 的标准化参数

神经网络需要量纲一致的输入。checkpoints/v1.0/config.yaml 的data.scaling段记录了训练时从 ERA5(1980–2015)统计的 SST 全局均值与标准差:

  • sst: mean = 291.38 K, std = 10.20 K(v1.0)
  • sst: mean = 290.96 K, std = 10.62 K(v1.1)

推理前将 SST 做(x - mean) / std归一化、输出再还原,是这类模型的标准做法。

3.3 静态常数场:让模型"知道哪里是海"

两个组件都需要固定的地理信息作为常数输入:

  • 大气常数:land_sea_mask+topography(地形)
  • 海洋常数:land_sea_mask(海陆掩码,决定 SST 只在海洋有效)

这些网格数据以 NumPy 格式随仓库提供:

  • land_sea_mask.npy
  • topography.npy
  • hpx_lat.npy / hpx_lon.npy(HEALPix 网格的经纬度坐标)

4. v1.0 与 v1.1:两代检查点差异对比 📦

根目录的 config.yaml 声明default_version: v1.1,并标记 v1.0 为废弃(deprecated: true)。两代差异如下:

特性v1.0v1.1(默认)
大气检查点4 个(atmos_model_0~3.mdlus)1 个(atmos_model_0.mdlus)
海洋检查点4 个1 个
集合预报方式多检查点轮换条件层归一化(CLN),condition_shape: 32
诊断输出无tp6(3 小时降水)、msl(海平面气压)
额外变量8 个状态变量新增ttr-3h(3 小时降水总量)

v1.1 用 CLN 机制取代了"多模型轮换":单次前向推理中采样随机噪声条件,即可生成集合成员间的变率,推理开销更小——这也是它作为 ECMWF AI Weather Quest 参赛作品的设计。

5. 小结:一张表看懂 DLESyM 的耦合逻辑

方向耦合变量物理机制更新频率
海洋 → 大气sst热通量、蒸发、边界层加热海洋每 48h 输出
大气 → 海洋z1000、ws10m风应力、低层环流驱动大气每 6h 输出

一句话概括:DLESyM-V1-ERA5 用"海洋慢、大气快"的异步弱耦合,把 SST 当作两个 U-Net 之间的桥梁,在极低的计算成本下捕捉了 S2S 时间尺度上最重要的海气相互作用。如果你想动手实践,建议从默认的 checkpoints/v1.1/config.yaml 入手,先跑通单次前向推理,再逐步理解集合变率的生成方式。

【免费下载链接】dlesym-v1-era5

项目地址:https://ai.gitcode.com/hf_mirrors/nvidia/dlesym-v1-era5
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进