数据科学

如何使用 NVIDIA Earth-2 解锁粗略气候投影的局部细节

全球气候模型擅长大局把握,但飓风和台风等局部极端气候现象往往在细节中被忽略。这些现象依然存在,只需借助合适的工具,便可在高分辨率气候数据中将其揭示出来。

本博文将介绍如何利用 NVIDIA Earth™ 2 将粗略的气候预测降尺度为更高分辨率且经过偏差修正的场数据,从而揭示原始数据中未能反映的局部细节。

为何缩小气候预测的不确定性是风险评估的关键

高分辨率预测在评估物理气候风险方面发挥着关键作用,为从基础设施规划到农业适应的决策提供支持。然而,在精细分辨率下运行全球模型需要大量的计算资源、存储空间和时间,导致计算能力难以满足实际需求。耦合模型比较项目第6阶段(CMIP6)提供了应用广泛的全球气候预测,为IPCC报告和特定行业风险模型提供依据,但其输出通常过于粗略,难以准确捕捉热带气旋或极端高温等短期天气事件。

较小的集成尺寸使问题变得更加复杂。当模拟数量有限时,罕见但极端的事件可能被忽略,从而降低尾部风险估计的可靠性。许多天气工作流基于再分析数据集 ERA5 构建,而 CMIP6 输出在网格、时间步长、气压层级和变量定义等方面通常存在差异,导致可用预测与气候风险评估需求之间出现差距。对研究人员和从业者而言,缩小这一差距需要借助加速计算和人工智能驱动的工具,以实现粗分辨率气候预测与分析就绪数据之间的有效衔接。

NVIDIA Earth-2 提供了一个全栈平台,用于构建和部署由 AI 驱动的天气与气候应用。 NVIDIA CorrDiff 是该生态系统中的一项模型,它采用生成式降采样方法,替代传统计算密集且耗时的高分辨率模拟,将粗分辨率的 CMIP6 输出转化为高分辨率场数据。该模型包含一个用于预测条件均值的回归模型,以及一个用于预测回归结果与真实值之间残差的扩散模型。

CorrDiff 通过训练将有偏差的气候模型输出映射到受观测约束的再分析数据(如 ERA5),同时执行核心气候数据转换(包括空间与时间降尺度、偏差校正及变量合成)。作为一种模型到模型的转换工具,它能够从单个输入样本生成大型集合,从而提供有助于评估尾部风险的不确定性估计。

这篇博文将逐步介绍如何训练 CorrDiff 模型,以实现 CMIP6 数据的降采样,涵盖数据集的选择与配置。

它还展示了气候危害评估领域的领先企业 S&P Global Energy 如何与 NVIDIA 合作开发该工作流,以生成基于观测的数据,用于风险分析。

用于 CorrDiff 训练的输入和目标数据集

训练 CorrDiff 需要配对的低分辨率输入和高分辨率目标数据集,这些数据应覆盖相同的时间段并包含多样的天气变化。为进行训练,您需运行一个结合观测与同化的气候模型。自由运行的气候模拟结果往往与实际观测到的模式存在不一致。

使用 CanESM5 将后投射同化为输入

本指南采用 CanESM5 气候模型的数据。输出位于 64 × 128 的全球网格上,分辨率约为 2.8 (距赤道约 300 公里) 。该分辨率能够捕捉大尺度的气候模式,但较为粗略,难以反映气候风险评估所需的更精细特征。

选择在历史与未来情景适用性之间保持平衡、时间分辨率接近 ERA5 逐小时输出且具备垂直覆盖范围的数据。请务必包含气压层变量,以描述三维大气状态。

您将使用 CanESM5 同化后继运行(experiment_id:dcppA-assim)中的每日数据。这些运行利用 ERA-Interim 数据,使 CanESM5 的大尺度环流与观测到的天气状况保持一致。由于 CanESM5 提供的是每日数据,而 ERA5 提供的是每小时数据,因此采用目标时刻前后三个连续的每日时间步长(即目标日的前一天、当天和后一天)作为输入。

地表输入包括温度、湿度、降水、辐射通量、风速、云量和冷冻圈变量。压力层输入(ta、ua、va、zg、hus、wap)的压力范围为 1000、850、700、500、250、100、50 和 10 hPa。

将 ERA5 再分析作为高分辨率目标

目标数据集为 ERA5,可在 721 × 1440 网格上以 0.25° 的分辨率(距赤道约 31 公里)提供每小时数据。该数据集涵盖变量全面,是许多 AI 天气模型(包括 FourCastNet HENS)常用的目标数据集。当输入分辨率为约 2.8°、目标分辨率为约 0.25° 时,每个空间维度可实现约 11 倍的超分辨率。

在输出端,采用与 HENS 相同的海面温度 (SST) 变量。通过平滑的邻近点插值法填补陆地上 SST 的缺失值,以避免海岸线处出现数据空缺和人为梯度。

其他输入和预处理 

除了 CanESM5 变量之外,还需包含时间及地理环境通道(表 1)。

类别 变量 描述
时间依赖性 太阳顶角 太阳位置
时间依赖性 一天中的小时 输出目标:小时 0–23 UTC;引导时间背景:混合
静态 地理电势高度 图形效果
静态 海洋距离陆地 陆地–海洋对比
静态 陆地–海洋掩膜 表面类型区分
静态 经度(sin, cos) 球面编码(2 通道)
静态 纬度(sin, cos) 球面编码(2 通道)
表 1. 其他用于提供时间和地理环境的输入通道

三角形编码可提供连续的球面坐标。一天中的小时通道用于指导时间权重,例如,午夜的预测更依赖于“昨天”,而23时则更依赖于“明天。”

应用三个预处理步骤:

  1. 将积雪与海冰浓度合并为单一变量,以防止陆地区域数值丢失。
  2. 采用 z-score 对各通道进行归一化处理,以确保训练过程稳定。
  3. 对 ERA5 网格执行双线性上采样,以满足 CorrDiff 对输入与输出网格一致性的要求。

CanESM5 和 ERA5 核心数据集重叠了 38 年。再加上 CanESM5 中的 10 个集成成员,可生成约 138700 个训练样本,远高于建议的 50000 个最低样本量。最终输入包含 231 个通道:其中 202 个通道来自 CanESM5(74 个变量 × 3 个时间步长),2 个时间依赖通道和 7 个静态通道。

如何训练 CorrDiff 进行气候降级

CorrDiff 的训练包含五个步骤:数据加载、模型配置、回归训练、回归评估和扩散训练。完整流程对于小型数据集需要数十个 GPU 小时,而对于大型数据集则需要约 2000 个 GPU 小时,具体如本指南所述。

  1. 数据加载
    1. 以 NVIDIA PhysicsNeMo DownscalingDataset 为模板构建自定义数据加载器。
    2. 确保每个样本的处理任务保持轻量。
    3. 预先计算数据集范围内的统计信息(例如气候态)。
    4. 若数据加载成为性能瓶颈,可考虑优化流程或切换至更高效的数据加载方案。
  2. 配置模型和数据集
    1. 参照文档说明,编辑基于 Hydra 的 YAML 配置文件,明确指定数据集、模型结构、训练超参数以及数据划分方式。
    2. 如有需要,可使用 Hydra++ 语法在运行时动态覆盖特定配置项。
  3. 训练回归模型
    1. 采用回归配置运行 python train.py,训练 UNet 模型以预测映射条件下的均值。
    2. 监控验证损失并结合早停机制,防止模型过拟合。
    3. 如需提升训练效率或加速收敛,可参考 CorrDiff 训练性能优化相关技术文章。
  4. 评估回归模型
    1. 在验证集上执行已训练的回归模型推理。
    2. 计算各输出通道预测误差的标准差。
    3. 利用这些统计量,在扩散模型的损失函数中设置 sigma_data 参数。
    4. 此举有助于在不同误差尺度的变量之间实现更均衡的优化过程。
  5. 训练扩散模型
    1. 基于回归评估阶段确定的 sigma_data,使用扩散配置运行 python train.py
    2. 该阶段旨在学习生成具有真实感的细尺度变异特征。

为 CanESM5 SSP585 运行推理并评估降尺度输出

使用 NVIDIA Earth2Studio(一个用于运行 AI 天气和气候模型的开源 Python 软件包)进行推理。该软件包包含 CorrDiff 包装器和 CMIP6 数据集,可自动从 ESGF 服务器下载。通过自定义源和封装器,该工具可轻松扩展。

对 CanESM5 SSP585 情景进行降采样非常简便:

import torch
import numpy as np
import xarray as xr
from earth2studio.models.dx import CorrDiffCMIP6
from earth2studio.data import CMIP6MultiRealm, CMIP6, fetch_data

# Load model
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = CorrDiffCMIP6.load_model(
    CorrDiffCMIP6.load_default_package(), 
    output_lead_times=np.array([np.timedelta64(-12, "h"), np.timedelta64(-6, "h")])
)
model.seed = 1 # Set seed for reproducibility
model.number_of_samples = 1 # Modify number of samples if needed
model = model.to(device)
# Build CMIP6 multi-realm data source, about 60 Gbs of data will be fetched
cmip6_kwargs = dict(experiment_id="ssp585", source_id="CanESM5", variant_label="r1i1p2f1", exact_time_match=True)
data = CMIP6MultiRealm([CMIP6(table_id=t, **cmip6_kwargs) for t in ("day", "Eday", "SIday")])
x, coords = fetch_data(
    source=data,
    time=np.array([np.datetime64("2037-09-06T12:00")]), # CMIP daily data provided at 12:00 UTC
    lead_time=model.input_coords()["lead_time"],
    variable=model.input_coords()["variable"],
    device=device,
)
# Run model forward pass
out, out_coords = model(x, coords)
da = xr.DataArray(data=out.cpu().numpy(), coords=out_coords, dims=list(out_coords.keys()))

此代码加载 CorrDiff 模型和 CMIP6 数据集(大气与海冰领域),配置实验及变体 ID,并运行指定时长的降采样工作流,最终以 xarray DataArray 的形式返回结果。

如需了解有关 Earth2Studio 的更多信息,可注册 NVIDIA 深度学习培训中心的在线课程使用 NVIDIA Earth-2 应用 AI 天气模型

An image showing10-meter wind speed for 09-03-2037
图 1. 2037 年 9 月 3 日风速为 10 米(SSP585)。粗略输入(左)忽略了局部细节,而经过 AI 提升分辨率至每小时(右)后,则显示出两个热带气旋。

图 1 展示了模型在单一时间点的功能表现。左侧面板为原始 CMIP6 10 米风速数据,分辨率为 +2.8°;右侧面板为 CorrDiff 输出结果,分辨率为 +0.25°,可清晰呈现加勒比海地区的飓风和太平洋上的台风,而这些系统在原始粗分辨率输入数据中均未被解析。

CorrDiff 通过识别与气旋存在相关的细微大规模指纹来恢复这些系统。尽管 ERA5 在热带气旋方面存在已知局限,但该结果展示了如何从粗分辨率气候模型输出中提取精细尺度的信号。

您还可以对模型进行定量评估。对于2010年测试集,取每天四次输出(00、06、12、18 UTC),计算其日平均值,并与经双线性插值处理的CMIP6数据作为基准进行比较。表2总结了近地表空气温度(T2m)以及10米风速(U10m、V10m)的评估结果。

CorrDiff 在均值绝对误差 (MAE) 和均方根误差 (RMSE) 方面的表现优于基准,同时能显著改善温度。T2m 偏差从接近 1 K 下降到 -0.11 K。对于风分量,基准的偏差较低,但这反映了 CanESM5 同化运行中较小的风偏差,而非 CorrDiff 的局限性。

Variable Source Bias MAE RMSE
T2m CMIP6 0.97 K 2.06 K 3.19 K
T2m CorrDiff -0.11 K 0.99 K 1.55 K
U10m CMIP6 0.01 m/s 1.55 m/s 2.17 m/s
U10m CorrDiff 0.09 m/s 0.87 m/s 1.24 m/s
V10m CMIP6 -0.01 m/s 1.55 m/s 2.15 m/s
V10m CorrDiff 0.20 m/s 0.87 m/s 1.21 m/s
表 2. 2010 年每日平均测试指标,比较双线性插值 CMIP6(基准)与 CorrDiff 输出,指标基于 ERA5 计算。

CorrDiff 能够从单个输入样本生成合理的输出集合。表 3 报告了由 8 个成员组成的集成的每小时指标,其中包括连续排名概率评分(CRPS),该评分将 MAE 推广到概率预测。CRPS 同时衡量准确性和校准良好的离散程度——数值越低,表示性能越优。当 CRPS 低于确定性 MAE 时,表明集成的离散性反映的是真实不确定性,而非噪声。

Variable Source Bias MAE RMSE CRPS
T2m CorrDiff -0.12 K 1.24 K 1.88 K 0.94 K
U10m CorrDiff 0.09 m/s 1.24 m/s 1.78 m/s 0.94 m/s
V10m CorrDiff 0.20 m/s 1.27 m/s 1.80 m/s 0.96 m/s
表 3. 2010 年每小时测试指标,包含基于集成的 CRPS(8 个成员),该指标根据 ERA5 计算得出

这些量化评估使用历史数据,其中 ERA5 提供了真实情况。为测试泛化能力,将该模型应用于 SSP585 投影 (r1i1p1f1),其时间范围将延伸至 2100 年以后。

遵循相同的协议:每日降阶四次,汇总为日均值,再计算全球年平均值。图 2 展示了 T2m、U10m 和 V10m 的时间序列。

Comparison of variables over time. Left panel shows ERA5, CMIP6, and CorrDiff trends for temperature and wind components. Right panel shows the difference between CorrDiff and CMIP6.
图 2. ERA5、CMIP6 和 CorrDiff 中 T2m、U10m 和 V10m 的全球年度平均值。垂直线表示向 SSP585 的过渡;右侧面板显示 CorrDiff − CMIP6 校正随时间变化

在历史时期,该模式与 2010 年的调查结果相符。CanESM5 显示出温暖偏差,而 CorrDiff 输出与 ERA5 非常接近。在 SSP585 投影中,CorrDiff 的校正结果保持稳定,表明所学习到的偏差调整在未来条件下依然适用。然而,随着预测时间距离训练周期越来越远,校正的变异性也随之增加,尤其是对于风的分量而言。

尽管结果令人鼓舞,我们仍应保持谨慎。该模型尚未使用未来的气候数据进行训练,且某些分布变化在所难免。对于需要对未来预测具备高置信度的应用,采用其他验证策略(例如滚动窗口交叉验证)有助于量化外推的极限。

气候降级的应用、关键要点及后续步骤

下一个问题是,这些高分辨率领域(尤其是相关的大型集成)如何融入下游的决策工作流。S&P Global Energy 正在利用 CorrDiff 和 FourCastNet 模型生成大量气候集成,用于组合层面的影响评估与恢复能力的概率分析。这些大型集成使团队能够基于一组初始条件(包括罕见但具有重大影响的极端情形),刻画出合理未来气候状态的范围与结构。

S&P Global Energy 可以访问数百乃至数千个结果,从而更准确地定义和量化各类资产的可变性、尾部行为及联合风险,这对模拟高度相关的非线性气候影响至关重要。他们正在构建一种可扩展的能力,利用规模庞大的集成开展概率性投资组合层面的风险分析。这些集成可作为内部影响模型的输入,将气候变量转化为实际损失,例如建筑物与基础设施的损毁、能源系统或交通网络的中断,以及对支撑基本服务的社区供应链造成的压力。

借助这项技术,我们能够提升抗灾能力,将气候风险转化为可操作的洞察。尽管这项工作仍处于积极的开发阶段,但这些技术可帮助组织和决策者更深入地理解、更充分地准备并有效应对气候风险。

开始使用

本指南介绍了 CorrDiff 如何在单个工作流中融合 11 倍空间超分辨率、从每天到每小时的时间降采样、变量合成以及偏差校正,从而实现对粗分辨率气候模型输出的降尺度处理。

现在,您可以在自己的气候降尺度项目中应用这一方法。立即开始使用:

  1. 使用 Earth2Studio 运行推理,借助预训练的 CorrDiff 模型对 CMIP6 场景进行降尺度。 
  2. 利用 PhysicsNeMo 训练专属模型,根据您的特定数据集和需求定制 CorrDiff。 
  3. 观看教程视频,5 分钟内快速上手 NVIDIA Earth-2。 

 

标签