对天气敏感的行业如今能够获取到越来越丰富的观测数据,这些数据提供了更早、更本地化的天气变化视角。能源企业在风能和太阳能资产上采集测量数据,应急管理团队依赖雷达和本地传感器,卫星运营商则持续观测地球状况。这些数据帮助资本市场、保险、农业和物流等行业理解和管理物理风险。
借助NVIDIA Earth-2中的AI数据同化工具,你可以更高效地处理这些观测数据。通过整合专有数据或第三方数据,你可以使用这些工具更频繁地发布预报,使预测结果与实时状况保持一致,并针对特定区域和应用场景定制预报流程。
本教程涵盖两种技术:
用点观测数据约束扩散模型,通常用于区域模型。
将不同来源的数据集同化为一致状态,通常用于全球模型。
前提条件
学习本教程,你需要:
已安装Earth2Studio的开发环境
一块NVIDIA RTX PRO或数据中心GPU
Python基础知识
大约30分钟时间
用观测数据改进区域预报
你可能正在运行一个用于管理能源生产和需求的区域天气预报流程,观测数据来自风能和太阳能场站、输电走廊或人口密集区域。借助AI数据同化,你可以利用这些观测数据在最需要本地精度的地方约束你的预报,从而帮助你改进运营决策。同样的技术也可以支持其他行业,利用来自生产场地、活动场馆、物流网络或其他本地条件直接影响决策的资产的观测数据。
你可以使用基于评分的数据同化(SDA)技术,将观测数据融入CorrDiff和StormCast等基于扩散模型的AI降尺度和预报模型中。SDA能引导模型给出与你的观测数据一致的预测结果,而无需重新训练模型。
图1展示了这一过程背后的原理。扩散模型通过一系列去噪步骤生成高分辨率预测。在每一步中,SDA会将中间预测结果与你的观测数据进行比较,并将模型向正确方向推进。SDA的输出是概率性的,观测位置附近的不确定性较小,而离观测点越远,不确定性范围越大,此时预测结果越来越多地由其他模型输入和底层AI仿真所主导。
为了推动模型调整,你需要定义一个观测算子,它将模型输出映射为你在每个测量位置预期观测到的量。对于温度或风速等物理量的原位测量而言,这一点尤为简单。在这种情况下,最简单的算子形式是将附近网格值插值到每个观测位置。你也可以为代理测量或观测到的影响创建算子。例如,风力涡轮机的输出功率可以作为风速的代理测量。
SDA能带来两项主要能力:
更快更新预报。数值分析需要大量处理时间,并按固定时间表发布。SDA让你能够持续融入观测数据。图2展示了一个具体示例:一个每小时预报一次的流程,依赖于每六小时发布一次的全球分析结果。
融入专有、区域或特定领域的观测数据。数值分析依赖广泛的观测数据来源。SDA让你能够融入自己来源的数据,使预报聚焦于特定资产位置或下游应用。
SDA的效果取决于几个因素:观测数据的数量、空间分布和准确性;你预测的场的特征长度尺度;以及观测算子的质量和适定性。
如何在Earth2Studio中运行CorrDiff-SDA
CorrDiff是一种基于AI的降尺度技术。Earth2Studio提供了一个在欧洲区域预训练的CorrDiff模型,能将0.25°的天气场转换为2.2公里的预测结果。借助AI数据同化,你可以在本地精度重要的地方用观测数据改进这些预测。利用优化后的输出,你可以初始化区域预报,或创建用于校准下游模型的再分析数据集。
首先加载预训练模型。我们将区域限定在荷兰部分地区和德国西北部,并选择同化10米风速数据。
(代码示例见原文)
获取用于低分辨率约束的ERA5数据,以及该区域内的GHCN风速观测数据。
(代码示例见原文)
最后,用输入数据运行模型。我们进行两次运算,以衡量额外观测数据对结果的影响。
(代码示例见原文)
完整实现请参见Earth2Studio中的示例,上述代码即改编自该示例。
如何在Earth2Studio中运行StormCast-SDA
StormCast是一种与CorrDiff类似的技术,但专为高分辨率区域预报设计。Earth2Studio包含一个在美国本土(CONUS)预训练的StormCast模型,该模型以HRRR数据初始化,能生成3公里分辨率的预测结果。计算和发布新的HRRR分析需要一定时间,但你可以使用SDA将当前可用的分析结果与最新观测数据相结合,从而更新你的预报。
首先加载预训练模型。我们将区域限定在美国中部。
(代码示例见原文)
接下来,获取用于模型初始化的HRRR分析数据,并定义该区域内的观测数据来源。
(代码示例见原文)
现在,我们可以在初始滚动预报步骤中使用观测数据,之后再过渡到不使用额外观测数据的纯预报模式。与上文图2所示的原理类似,这种方法利用观测数据弥合最新分析结果与当前状况之间的差距,之后预报便独立进行。
对于以HRRR初始化的流程,通常只需在新分析结果到来之前使用一步SDA信息化步骤。当使用全球分析结果进行初始化时,可以有多个滚动预报步骤从SDA中获益。
(代码示例见原文)
完整实现示例可在Earth2Studio示例库中找到。
如何在自有模型中使用SDA
你可以通过扩展自定义模型的Earth2Studio模型封装器,来实现观测数据同化。为此,需要使用PhysicsNeMo中的扩散工具。我们从x0_predictor开始,这是一个预训练的去噪扩散模型,它接收一个带噪声的样本及其噪声水平作为输入,并预测无噪声的样本。若不使用SDA,该模型的扩散采样实现方式如下:
(代码示例见原文)
为使用SDA,我们将x0_predictor转换为带有SDA引导的评分预测模型。我们使用DataConsistencyDPSGuidance,它将每个被遮罩的像素与相应的观测值关联起来。你可以用它来同化来自气象站、专有传感器或类似基于点的数据源的观测数据。
(代码示例见原文)
对于更高级的SDA流程,可使用ModelConsistencyDPSGuidance从多个网格点推导出模拟观测数据。这种方法要求你提供一个PyTorch模型,将每个样本映射为相应的模拟观测数据。借助自定义PyTorch模型,你还可以同化观测到的影响。例如,你可以使用风电模型来同化涡轮机输出的测量数据。
完整实现请参见Earth2Studio中的StormCast CONUS封装器,上述示例即基于此改编。
从观测数据计算全球天气状况
大多数全球天气预报流程都以通过数值数据同化得出的当前天气估计值进行初始化。数值数据同化计算量巨大,这降低了预报的及时性和更新频率,也让整合自定义观测数据变得更加困难。
借助一种名为HealDA的AI技术,你可以在几秒钟内估算出全球大气状态。这使你能够发布更贴近当前状况的预报,或计算自定义的再分析数据。
HealDA将某个时间窗口内的遥感和原位观测数据映射为全球网格化大气状态。它由两个主要组件构成:一个观测编码器和一个视觉Transformer(ViT)骨干网络。编码器以点云形式接收异构观测数据,将每个标量值与地理位置、时间等元数据一起嵌入为一个Token。这些Token随后被聚合到目标网格上,并由ViT骨干网络进行处理。
你可以使用预训练的全球数据同化模型作为起点。如果你拥有自定义的常规观测数据,通常无需修改模型即可将其融入。
对于专有卫星数据,你可以调整编码器以支持你的数据来源。这种灵活性让你能够根据自己的区域或应用场景定制数据同化系统。你可以用同样的技术训练一个区域系统而非全球系统。要开始使用,请参阅开源Python库PhysicsNeMo中的HealDA训练流程。
如何在Earth2Studio中运行HealDA
Earth2Studio提供了一个用于研究用途的预训练全球数据同化模型。它将来自微波探测器、无线电掩星、地面站、飞机、浮标等多种来源的数据整合到1°的HEALPix网格(HPX64)上。
首先,加载模型。
(代码示例见原文)
接下来,从NOAA UFS回放存储库中获取输入观测数据。我们使用常规观测数据和卫星观测数据。
(代码示例见原文)
然后用观测数据框调用模型。
(代码示例见原文)
关于运行HealDA的扩展示例,可在Earth2Studio示例库中找到。
通过Earth2Studio访问观测数据
Earth2Studio让你能够访问广泛的数据来源,用于开发、初始化和验证天气模型,包括来自不同平台和传感器类型的观测数据。
其中包括来自地球静止卫星(GOES、Himawari、Meteosat)和雷达网络(MRMS、OPERA)的网格化数据,你可以直接使用这些数据来训练和快速更新诸如StormScope等区域高分辨率预报模型。当你想要预测依赖于日照或降水的量(如太阳能发电量、冷却过程和水库进水量)时,这些数据来源尤为有用。
为开发和评测数据同化系统,Earth2Studio还允许你访问GHCN/ISD、NNJA和UFS等常规观测数据档案,以及来自GDAS和ASOS的业务观测数据。这些数据来源以数据框形式提供温度、风速等变量。来自MetOp和JPSS等极轨卫星系统的观测数据也可获取。
Earth2Studio为所有数据来源提供统一的接口。你实例化一个数据源对象,并用一系列时间步和变量名称调用它。预报数据源还接受一系列预报时效参数。这种一致的接口让你能够轻松在同一工作流中组合多个数据来源,或将自己的观测数据连接到某个流程中。
(代码示例见原文)
关于所支持数据来源的完整列表,请参见用户指南中的API参考。
开始使用Earth2Studio
在Earth2Studio示例库中探索端到端的AI数据同化示例。要将你自己的观测数据连接到某个流程中,请参考自定义数据源示例。
AI数据同化让你能够通过融入对你所在区域或组织至关重要的观测数据,发布更准确、更及时的预报。
访问Earth2Studio用户指南,开始使用AI数据同化,并探索AI天气模型更广泛的能力。
Q&A
Q1:NVIDIA Earth-2中的AI数据同化技术能做什么?
A:它能帮助用户更高效地处理天气观测数据,通过整合专有或第三方数据,更频繁地发布预报,使预测结果与实时状况保持一致,并针对特定区域和应用场景定制预报流程,主要包括SDA和HealDA两种技术。
Q2:Score-Based Data Assimilation(SDA)技术的原理是什么?
A:SDA能将观测数据融入CorrDiff和StormCast等基于扩散模型的AI降尺度和预报模型中,无需重新训练模型。在扩散模型的每一步去噪过程中,SDA会比较中间预测结果与观测数据,并引导模型向正确方向调整。
Q3:HealDA技术相比传统数值数据同化有什么优势?
A:传统数值数据同化计算量巨大,降低了预报的及时性和更新频率。HealDA是一种AI技术,能在几秒钟内估算全球大气状态,使用户能够发布更贴近当前状况的预报,或计算自定义的再分析数据。
