气象大数据

数据同化入门:从 OI、3D/4D-Var 到 EnKF

· 南京运梦科技算法团队 · 评审 算法负责人

数据同化入门:从 OI、3D/4D-Var 到 EnKF 封面

做新能源功率预测和资源评估的人,几乎天天都在用再分析数据:拉一段 ERA5 历史风速喂模型、用它当训练标签、回测电量。但很少有人停下来问一句——这套"全球无死角、逐小时、物理自洽"的历史气象场,到底是怎么算出来的? 它既不是观测站直接堆出来的(观测千疮百孔),也不是模式随便跑出来的(模式会漂移)。把这两者"最优地"缝合在一起的那门技术,叫数据同化(Data Assimilation, DA)。读懂它,你就读懂了再分析数据的底层逻辑,也就更清楚手里这份数据哪里可信、哪里要留心。

关键要点

  • 数据同化的本质是:把模式背景场(先验猜测)真实观测按各自的误差大小做加权融合,得到一个比两者单独都更准、且物理自洽的"分析场"。
  • 它是一个贝叶斯估计 / 最小二乘问题:背景误差协方差 B 与观测误差协方差 R 决定了"信模式多一点还是信观测多一点"。
  • 方法演进有一条清晰主线:OI(最优插值)→ 3D-Var(三维变分)→ 4D-Var(四维变分,加进时间维)→ EnKF(集合卡尔曼滤波,用集合估计误差),以及当前主流的混合同化(Hybrid / 4DEnVar)
  • ERA5 这类再分析,正是"用今天最好的同化系统、回头把几十年历史重跑一遍"的产物——同化是它能成为新能源训练金标准的根本原因。
  • 理解同化能改善工程判断:哪些误差来自数据源本身的客观不确定性、哪些是观测稀疏区的外推,避免把数据噪声错记到预测模型头上。

为什么需要数据同化:一个估计问题

设想你要知道某时刻全球大气的状态 x(风、温、压、湿的三维场,量级上千万到上亿维)。你手上有两份信息,谁都不完美:

  • 背景场 x_b:上一轮预报积分到当前时刻的结果。它处处都有值、物理自洽,但会随时间累积误差、发生漂移。
  • 观测 y:来自卫星、探空气球、地面站、飞机、船舶、浮标。它们贴近真值,但稀疏、异构、分布极不均匀——海洋和高空大片空白,而且很多观测(如卫星辐射率)并不是直接测风温压,需要通过观测算子 H 把模式变量映射到观测空间。

数据同化要做的,就是在这两份信息之间求一个最优折中。写成代价函数,就是经典的变分形式:

J(x) = (x - x_b)ᵀ B⁻¹ (x - x_b)  +  (y - H(x))ᵀ R⁻¹ (y - H(x))

第一项惩罚"偏离背景太远",第二项惩罚"偏离观测太远",BR 分别是背景误差与观测误差的协方差矩阵。求 J 的极小值,得到的分析场 x_a 就是同化结果。BR 的相对大小,本质决定了在每一点上你信模式多一点还是信观测多一点——这是整门学问的核心直觉。

方法演进:OI → 3D-Var → 4D-Var → EnKF

OI:最优插值

最早大规模业务化的方法是最优插值(Optimal Interpolation, OI)。它在每个网格点局部地、用预设的背景误差相关结构对邻近观测做加权平均。思路朴素、计算便宜,但 B 是人为静态指定的、且只能局部求解,难以全局一致地处理复杂观测算子。

3D-Var:三维变分

3D-Var 直接对上面那个代价函数 J(x) 做全局极小化,不再局限于局部插值。它能优雅地容纳非线性观测算子 H(比如卫星辐射率、雷达),是 1990s 末到 2000s 业务中心的主力。局限在于:它把一个同化窗口内的所有观测都当成"同一时刻"处理,没有用上观测的时间信息,而 B 依然是静态的。

4D-Var:四维变分

4D-Var 把时间维加了进来:在一个同化窗口(如 6 或 12 小时)内,用预报模式本身作为约束,寻找一条最贴合窗口内所有观测的模式轨迹的初始场。它隐式地利用模式动力学来传播误差信息,使分析在时空上更协调,长期是 ECMWF 等中心的旗舰方案——ERA5 用的就是 4D-Var。代价是需要模式的**伴随(adjoint)**来算梯度,工程实现与维护成本高。

EnKF:集合卡尔曼滤波

变分方法的一大软肋是 B 静态。集合卡尔曼滤波(Ensemble Kalman Filter, EnKF)换了个思路:同时跑一组(几十到上百个)略有扰动的预报成员,用成员之间的离散度直接估计当下的、随流动演变的背景误差协方差(即"flow-dependent B")。它不需要伴随、天然给出不确定性,但成员数有限会带来采样噪声,需要**协方差膨胀(inflation)局地化(localization)**等技巧来稳住。

混合同化:两条路线的合流

当下主流(包括多数业务中心)走的是混合同化:把 EnKF 给出的随流动变化的误差结构,注入到变分框架里,得到 4DEnVar / Hybrid-4D-Var 之类的方案——既保留变分对复杂观测的处理能力,又借集合获得动态、贴合实际的背景误差。这也是过去十余年再分析与业务预报质量稳步抬升的重要推手之一。

再分析:把同化"倒着"用在历史上

业务预报是向前同化:每天用最新观测更新初始场,再积分出未来。再分析则是向后同化:冻结一套当前最先进、版本一致的同化系统(ERA5 即基于 4D-Var),把过去几十年的历史观测重新喂一遍,逐窗口同化、积分、再同化,从而得到一套时间一致、物理自洽、无缝无断层的历史气象场。ERA5 数据集本身覆盖 1940 年至今。

这正是再分析比"原始观测堆叠"更适合做新能源训练底座的根本原因:它在观测稀疏的年代和区域,用模式动力学做了物理上合理的外推;在观测密集处,又被真实观测牢牢锚定。也正因如此,使用时要心里有数——观测稀疏的早期年代、远洋与高空,分析更依赖模式背景,不确定性更高;这类信息在再分析的不确定性集合(如 ERA5 的 EDA)里有量化体现,做资源评估的 P50/P90 时值得纳入考量。

落地:与运梦气象 API 的关系

理解同化,对工程选型有两点直接帮助。

其一,训练与回测用再分析。在运梦气象 API 上,历史底座固定走 dataSourceId = era5(ERA5 再分析,运梦平台可取历史范围为 1950 年至今)。它是 4D-Var 同化的产物,时间一致、物理自洽,最适合给功率预测模型当特征与标签。

其二,误差归因更清醒。读懂"分析场 = 背景 + 观测的加权融合"后,复盘预测偏差时就能把"气象输入里客观存在、源于观测稀疏与同化外推的不确定性",与"后处理和特征工程真正能改善的部分"分开看,资源投放不会错位。

至于上线预报,运梦对外口径采用德国气象局作为业务预报源,与历史再分析互补,完成"历史评估 + 未来预测"的闭环。想直接上手,可从 运梦气象 API 的 ERA5 产品页 开始;想先把再分析这件事整体读懂,推荐配合 ERA5 完全解读 一起看。

常见问题

数据同化和"插值"是一回事吗?

不是。普通插值只在观测之间做空间填充,不含物理约束;数据同化是把模式背景场观测按各自误差大小做最优融合,结果既贴近观测又保持物理自洽,并能填补观测完全空白的区域。

4D-Var 和 EnKF 哪个更好?

各有所长。4D-Var 擅长处理复杂非线性观测、时空协调好,但需要模式伴随、维护成本高;EnKF 天然给出随流动变化的误差和不确定性、无需伴随,但受集合规模限制需要膨胀与局地化。当下主流是把两者合流的混合同化(4DEnVar)

ERA5 用的是哪种同化方法?

ERA5 基于4D-Var变分同化系统生产,并配套一套集合(EDA)来估计不确定性。它用版本一致的现代同化系统,把历史观测回头重跑,得到时间一致、物理自洽的再分析场。

为什么观测稀疏的地方再分析也有值?这值可信吗?

因为同化在没有观测处会更多依赖模式背景场(物理外推),所以"有值"。但这类区域和早期年代的分析不确定性更高,建议结合再分析自带的不确定性信息谨慎使用,做资源评估时为 P90 折扣多留余量。

做新能源,理解同化有什么实际用处?

它帮你看清误差来源:哪些是数据源本身(观测稀疏、同化外推)带来的客观不确定性、无法靠模型消除,哪些才是后处理能改善的。误差归因清晰了,工程资源才不会投错地方。