
Building Custom Batched Ensemble Weather Forecasting with NVIDIA Earth2Studio
In this tutorial, we build an ensemble weather forecasting workflow with NVIDIA Earth2Studio. We install the required Earth2Studio components while preserving Colab’s existing CUDA-enabled PyTorch environment, load the FCN prognostic model, and retrieve atmospheric initial conditions from GFS. We then implement a custom wind-power diagnostic that converts 10-meter wind components into turbine capa
- 先核对来源和时间
- 把试用限制在可回滚范围
- 对缺少独立证据的结论保持观望
事件时间线
- 1事件时间线
- 2关键机制
- 3真实使用场景
- 4限制与复核
发生了什么
整套流程从环境搭建开始。教程在 Google Colab 中运行,安装 Earth2Studio 时借助 PIP_CONSTRAINT 文件锁定当前已有的 PyTorch 与 NumPy 版本,确保 CUDA 环境不被替换。安装完成后,FCN 预测模型通过默认包被加载,大气初始条件则取自 GFS 数据源。
诊断和扰动是这套工作流的核心差异点。自定义模块 WindPowerCF 先用幂律风切变把 10 米风分量外推到轮毂高度,再经过切入、额定、切出三段风速定义的功率曲线,把风速映射为 0 到 1 范围的机组容量因子。扰动模块 VariableScaledNoise 按变量施加空间噪声,扰动幅度对 t2m 与 t850 取 0.20,z500 取 40.0,z850 取 25.0,u10m 与 v10m 取 0.25,u500 与 v500 取 0.40,tcwv 取 0.30。八个集合成员中,第 0 号保留为未受扰动的控制预报;当 SphericalGaussian 采样器不可用时,自动回退到 Brown 采样器。
执行阶段没有调用高层 API,而是直接复用 Earth2Studio 的底层迭代器、坐标映射、批处理和 Zarr 接口拼装管线,结果写入支持坐标的 Zarr 后端。集合规模、批大小、预报步数分别为 8、2、8。保存变量涵盖 t2m、z500、u10m、v10m、tcwv,验证变量限定为 t2m、z500、u10m 三项。
初始化时间取当前 UTC 向前回退 7 天,再按整时刻归零。验证阶段以 GFS 分析场作为真值,对三个变量分别计算纬度加权 RMSE、Fair CRPS、集合离散度和离散度-技巧比,关注点设在印度新德里,坐标约为 28.61°N、77.21°E。
输出端除了统计指标,还包括 500 hPa 位势高度 5520 m 等高线 spaghetti 图、点位扇形图、风电容量因子预报、空间分布图,以及随预报时效变化的技巧曲线。教程由 marktechpost.com 于 2026 年 8 月 29 日发布。
时间线与证据
教程于 2026 年 8 月 29 日在 marktechpost.com 上线,整套示例流程顺序为:安装 Earth2Studio、加载 FCN 模型、装配自定义 WindPowerCF 诊断与 VariableScaledNoise 扰动、经由底层接口驱动 ZarrBackend 完成集合预报,再用 GFS 分析场对 t2m、z500、u10m 做验证,最后输出统计指标与多种可视化。教程主体以代码片段加说明文字呈现,可视化部分中 wind_cf 绘图代码在材料里已被截断,并非完整示例。
可核验的数值直接来自代码与参数表。轮毂高度 100 m,风切变指数 0.143,切入、额定、切出风速分别为 3、12、25 m/s,组成风电容量因子计算的默认配置;八个集合成员、批大小 2、预报步数 8 在执行段落同一处声明,与扰动幅度按变量逐一列出的写法保持一致。初始化时间由当前时刻回退 7 天并归零,验证真值取 GFS 分析场,关注点为新德里 28.61°N、77.21°E,这些取值都直接出现在教程配置中。
教程在 GPU 上运行最快,材料只说明若无 GPU 检测到将非常缓慢,没有给出具体耗时或基准数字。Earth2Studio 与 FCN 默认包的版本号、GFS 数据的分辨率,以及最终的 RMSE、Fair CRPS、离散度与离散度-技巧比的数值结果,材料均未披露,无法据此复算或横向比较。可视化部分除已列出的五类图像外,其余图件未逐一描述。
具体变化
相较于直接调用 Earth2Studio 高层接口的常规示例,本文把执行管线拆到了更低的一层:循环遍历交给 Earth2Studio 的底层迭代器,输入输出经由坐标映射与批处理统一处理,最终结果写入支持坐标的 Zarr 后端 ZarrBackend。这一选择让保存变量与验证变量可以分别定制,因此保存集合同时涵盖 t2m、z500、u10m、v10m、tcwv,验证却只针对 t2m、z500、u10m 三项。
诊断环节的改动集中在风电。教程新增自定义模块 WindPowerCF,把 10 米 u、v 风分量按幂律风切变外推到 100 m 轮毂高度,再用切入 3 m/s、额定 12 m/s、切出 25 m/s 三段折线定义的功率曲线换算为 0 到 1 区间的机组容量因子,风切变指数默认 0.143。结果以独立变量形式进入 Zarr 输出,并配有专门的点位扇形图与风电预报图。
扰动环节使用 VariableScaledNoise 模块,按变量名逐一施加空间噪声:t2m、t850 取 0.20,z500 取 40.0,z850 取 25.0,u10m、v10m 取 0.25,u500、v500 取 0.40,tcwv 取 0.30。八个集合成员中第 0 号固定为未受扰动的控制预报,其余成员由 SphericalGaussian 采样器生成,若该采样器在当前环境中不可用,则自动回退到 Brown 采样器。
初始化时间由当前 UTC 向前回退 7 天再按整时刻归零,关注点固定在新德里 28.61°N、77.21°E。验证时以 GFS 分析场为真值,统计量包括纬度加权 RMSE、Fair CRPS、集合离散度以及离散度-技巧比。可视化除统计图外,还包括空间分布图与 5520 m 等高线 spaghetti 图,用于呈现 500 hPa 位势高度的集合发散情况。

对使用者的影响
对希望把 Earth2Studio 用于科研或业务场景的读者,这篇教程把以往藏在高层 API 下的执行细节暴露出来。读者可以直接看到输入坐标如何被映射、迭代器如何被驱动、批维如何被切分,因此可以照着同一骨架替换成自己的诊断、扰动或 IO 模块,而不必绕开框架重写整套流程。借助支持坐标的 Zarr 后端,保存集合与下游验证集合得以分离配置,读者按需挑选验证字段即可,不必改动预报端的保存列表。
风电场景的读者获得了一条可复用的链路:把 10 米 u、v 分量按幂律风切变外推到自定义轮毂高度,再用三段功率曲线换算为 0 到 1 的容量因子。教程把轮毂高度、风切变指数、切入/额定/切出风速全部列为可调参数,并提供点位扇形图与时间序列图,使研究者能在此基础上接入真实机组的功率曲线。新德里关注点的设置让结果便于直接与当地电力数据比对,但读者同样可改写坐标以服务其它场址。
集合扰动的可配置性是另一处实际收益。教程将扰动幅度按变量名逐一显式列出,并提供采样器的自动回退逻辑,方便读者在不同 Earth2Studio 环境下维持可重复的集合实验。验证指标同时给出绝对误差、概率校准、集合离散度及其与技巧的比值,使读者可以从多个角度评估自己的扰动方案。需留意的是,教程未披露 GPU 基准耗时、Earth2Studio 与 FCN 版本以及 GFS 分辨率,且部分绘图代码被截断,读者在复用前需自行补齐。
限制与未知
教程把执行拆到了底层迭代器、坐标映射、批处理与 ZarrBackend,但留给读者进一步定位的版本信息非常有限。Earth2Studio 的具体版本号、FCN 默认模型包的版本号,以及 GFS 数据源在这一示例中实际加载的分辨率,材料均未披露。教程只在配置段说明运行在 Google Colab,并强调 GPU 检测不到时执行将非常缓慢,却未给出任何基准耗时、显存占用或加速比数字,因此读者无法据此估算批量集合工作流在本地或云端所需的资源。
自定义参数同样缺乏依据说明。t2m、t850 取 0.20,z500 取 40.0,z850 取 25.0,u10m、v10m 取 0.25,u500、v500 取 0.40,tcwv 取 0.30 的扰动幅度,以及轮毂高度 100 m、风切变指数 0.143、切入/额定/切出风速 3、12、25 m/s 的风电参数,全部由教程直接给出,没有任何来源、敏感性分析或与业务机型的对照。教程也没有说明初始化时间向前回退 7 天这一选择的目的,以及把验证变量收缩到 t2m、z500、u10m 三项的具体考量。
材料未公布最终的纬度加权 RMSE、Fair CRPS、集合离散度与离散度-技巧比的具体数值,因此读者无法从教程本身复算或横向比较集合质量。可视化部分中 wind_cf 绘图代码在材料中已被截断,并非完整示例,其余图件也未逐一描述,读者在复用前需要自行补齐缺失片段。
如何核对
要把这篇教程复现并核对,第一关是环境与依赖。教程要求在 Google Colab 中运行 Earth2Studio,并借助 PIP_CONSTRAINT 文件锁定现有 PyTorch 与 NumPy 版本以保留 CUDA 环境,因此读者需要先确认 Colab 运行时已经启用 GPU,并核对自身 Colab 环境中既有的 PyTorch、NumPy 版本与约束文件中所写是否一致,否则后续 FCN 推理将无法获得 GPU 加速。
第二关是配置参数的逐项比对。集合规模 8、批大小 2、预报步数 8 必须同时出现于同一执行段落;保存变量为 t2m、z500、u10m、v10m、tcwv,验证变量只保留 t2m、z500、u10m,初始化时间由当前 UTC 向前回退 7 天并按整时刻归零,关注点坐标固定为 28.61°N、77.21°E。扰动幅度按变量逐一设定,t2m、t850 取 0.20,z500 取 40.0,z850 取 25.0,u10m、v10m 取 0.25,u500、v500 取 0.40,tcwv 取 0.30。风电诊断默认轮毂高度 100 m,风切变指数 0.143,切入、额定、切出风速分别为 3、12、25 m/s。这些数值都应直接对得上教程原文或代码片段。
第三关是模块行为核对。WindPowerCF 是否真的把 10 米 u、v 风分量按幂律切变外推到 100 m,再以三段折线功率曲线换算为 0 到 1 的容量因子,并作为独立变量进入 Zarr 输出。VariableScaledNoise 是否按变量名匹配施加空间噪声,且第 0 号成员保持为未受扰动的控制预报。SphericalGaussian 采样器若不可用是否自动回退到 Brown 采样器,结果是否写入支持坐标的 ZarrBackend。
第四关是输出端的指标与图像。教程应给出纬度加权 RMSE、Fair CRPS、集合离散度与离散度-技巧比四项统计量,空间分布图、5520 m 等高线 spaghetti 图、点位扇形图、风电容量因子预报图以及随预报时效变化的技巧曲线五类图像,缺一即视为与教程不符。
读者能做什么
把这篇教程当作可拆装骨架来用,是最直接的收益。读者可以保留 Earth2Studio 的底层迭代器、坐标映射、批处理与 ZarrBackend 这条主轴,把 WindPowerCF 换成自家业务的诊断公式,例如把风电容量因子替换成光伏辐照度换算、降水概率分级或空气质量阈值判定,再通过同一 IO 通道把新变量写进 Zarr,验证集合同样可以按需增减字段,不必改动预报端的保存列表。集合规模 8、批大小 2、预报步数 8 的执行规模也可整体放大或缩小,只要保持成员 0 为控制预报、按变量名施加噪声这两条规则,扰动采样器在 SphericalGaussian 与 Brown 之间的回退逻辑便会继续生效。
地理关注点方面,教程将坐标硬编码为新德里 28.61°N、77.21°E,读者只需替换这一对数值即可把同一管线迁到任意场站,初始化时间由当前 UTC 向前回退 7 天并按整时刻归零的写法也能直接沿用,便于在不同起报时刻之间做平行实验。验证侧的四项指标(纬度加权 RMSE、Fair CRPS、集合离散度、离散度-技巧比)面向 t2m、z500、u10m 三个变量,读者可以照此结构新增自己的字段评估,例如把风电容量因子纳入验证,对照 GFS 分析场观察概率预报相对确定预报的增益。
复用前需要自行补齐的事项也很具体。教程没有披露 Earth2Studio 与 FCN 默认包的版本号,也没有给出 GFS 数据源在本例中的分辨率,读者应先核对自身环境中 Earth2Studio 是否支持 SphericalGaussian 采样器以及 ZarrBackend 的坐标写入能力,否则回退到 Brown 后扰动统计特性会发生改变。教程中 wind_cf 绘图代码被截断,读者若要复现风电容量因子图与点位扇形图,需要自行补全 matplotlib 部分;教程也未公布四项统计量的具体数值,因此横向比较时应在本地重新运行后取数,而不是引用教程结果。
后续观察
教程的写作重心明显偏向可拆解的执行骨架,而不是某一个具体预报技巧的优劣。读者若把示例当作模板来落地自己的集合系统,需要持续关注的并非运行步骤本身,而是几处会随 Earth2Studio 升级而漂移的细节,例如 SphericalGaussian 采样器在不同版本中的可用性、ZarrBackend 对坐标维度的支持范围,以及 PIP_CONSTRAINT 文件所锁定的 PyTorch 与 NumPy 版本是否仍能覆盖新的 CUDA 运行时。
教程把关注点写死在新德里 28.61°N、77.21°E,并使用当前 UTC 时间向前回退 7 天、归零到整时刻的初始化策略,这一组合在迁移到其他场站时需要同步调整,否则验证集合与实际业务关心的时间窗口会发生错位。风电诊断 WindPowerCF 的输出与风功率曲线的三段折线以及幂律切变指数 0.143 直接耦合,替换为光伏或其它诊断时也应保留按变量名挂载、可独立开关的写法,便于在保存变量列表中按需启停。
教程没有披露 FCN 默认模型包版本与 GFS 数据源在示例中实际加载的分辨率,也没有给出四项验证指标的具体数值,因此后续若要在论文或业务报告中引用本教程,应先在自有环境复跑并记录结果,再用本地数据替换教程中直接给定的扰动幅度与风电参数,避免把示例常数误当作经验证的生产配置。教程的发布站点为 marktechpost.com,发布日期为 2026-08-29,版本相关注释应以发布时为准,之后若 Earth2Studio 升级导致 API 行为变化,需要回查官方仓库再做适配。
参考来源
本文由 AI X Tool 基于公开资料研究后原创整理,发布日期与产品信息可能变化,请以来源网站最新内容为准。
本文提到的资源
浏览目录An aggregation API platform for accessing multiple models through one interface.
A China-friendly, cost-effective platform for large-model APIs.
提出 Transformer 架构的奠基性论文。
Andrew Ng's course platform with short courses on modern AI engineering.
A structured way to learn prompt engineering, RAG, and agent techniques.
A public evaluation platform comparing LLM output quality through real-user voting.