Skip to content

基于微软Aurora-1.5气象预报大模型的台风预报检验 ​

1.Aurora-1.5气象预报大模型介绍 ​

Aurora-1.5气象预报大模型由微软研究院AI for Science团队与Microsoft Weather联合发布,在地球系统基础模型Aurora基础上通过三阶段微调流程(扩展变量集、注入噪声优化CRPS、自回归微调)得到,在变量覆盖、时间分辨率、预报范式三个维度实现了结构性升级。Aurora-1.5气象预报大模型不仅能实现更高预报技巧的中期天气预报(未来10天),也具备集合天气预报(Ensemble Prediction)能力。Aurora-1.5气象预报大模型在超过100万小时的异构数据上完成预训练,支持26个气象变量的逐小时分辨率预报,能满足能源、农业、交通等多行业需求。

Aurora-1.5气象预报大模型包含以下两个模型:

•Aurora-1.5(确定性预报模型):经过优化后的单点最佳估计预报模型。

•Aurora-1.5-ENS(概率预报模型):通过噪声注入与概率损失训练出的集合预报模型。

2.Aurora-1.5气象预报大模型目录结构 ​

安装后的软件目录结构如下:

shell
~/apprepo/aurora/1-singularity_bw
├── app
│   ├── aurora_image.sif  # 环境镜像
├── scripts
│   ├── env.sh          # 环境配置文件
├── case                 # 工作目录
│   ├──  logs           # 模型推理日志
│   ├──  input_data      # 输入数据路径
│   │   ├── Aurora_input_sfc_2026070906.nc    # 表层驱动数据
│   │   ├── Aurora_input_upper_2026070906.nc  # 高空驱动数据
│   ├──  static          # 静态数据路径
│   │   ├── aurora-0.25-v1.5-static.pickle   # 静态数据
│   ├──  model         # 模型权重路径
│   │   ├── aurora-0.25-v1.5.ckpt           # 确定性预报模型权重
│   │   ├── aurora-0.25-v1.5-ensemble.ckpt   # 概率预报模型权重
│   ├──  output_data     # 输出数据路径
│   │   ├── Aurora_output_sfc_YYYYmmddhh.nc    # 表层预报数据
│   │   ├── Aurora_output_upper_YYYYmmddhh.nc  # 高空预报数据
├── process_era5.py       # ERA5再分析数据处理代码
├── decode_aurora.py      # Aurora大模型的变量解码
├── run_aurora.py         # Aurora大模型的推理代码
├── submit.slrum          # 提交作业的脚本

3.Aurora-1.5气象预报大模型运用 ​

为便于模型的部署和测试,已针对核心节点异构加速卡进行了适配。您可在“应用商城”中找到并购买的Aurora软件,点击“命令行”图标,选择开通区域后进入eshell界面。

1.png

终端会显示商品自带的软件应用版本、环境变量和启动路径信息。由启动路径可以得到软件部署的位置。以下述软件为例(注:实际使用中请根据下方红框内提供的算例示例进入对应路径)。

2.png

Aurora-1.5气象预报大模型运用包含以下两个阶段:

•数据预处理阶段:对ERA5再分析数据进行处理,生成Aurora-1.5气象预报大模型所需的驱动数据。

•模型推理阶段:基于预处理后的驱动数据完成Aurora-1.5气象预报大模型推理,并将Aurora-1.5气象预报大模型预报结果保存为NetCDF格式。

第一步:Aurora-1.5气象预报大模型驱动数据处理

样例数据来自ERA5再分析数据集,包含两个时间步长(间隔6小时)的ERA5表层和高空数据。

•2个时间步长的表层数据:era5_2d_2026070900.nc、era5_2d_2026070906.nc

•2个时间步长的高空数据:era5_3d_2026070900.nc、era5_3d_2026070906.nc

将下载的ERA5再分析数据合并为Aurora-1.5气象预报大模型驱动数据。

python process_era5.py -t 2026070906 -i ./input_data -o ./input_data

其中,-t表示起报时刻,-i表示输入数据路径,-o表示输出数据路径

3.png

如果使用自己的数据集,操作步骤如下:

(1)将自己的数据集上传至case/input_data目录下,确保数据路径下包含两个时间步长(间隔6小时)的ERA5数据集(地表数据和高空数据),文件命名格式为era5_2d_YYYYmmddhh.nc和era5_3d_YYYYmmddhh.nc;

(2)执行ERA5再分析数据处理命令python process_era5.py -t YYYYmmddhh -i ./input_data -o ./input_data;

(3)随后,case/input_data目录下会生成Aurora_input_sfc_YYYYmmddhh.nc和Aurora_input_upper_YYYYmmddhh.nc文件。

第二步:Aurora-1.5气象预报大模型推理

算力要求:Aurora-1.5气象预报大模型使用单卡即可进行推理。

作业脚本:在case目录下有作业脚本submit.slurm,如下所示。

4.png

5.png

确认作业队列无误后,可以通过sbatch submit.slurm命令提交作业,随后可在当前作业查询作业状态

6.png

submit.slurm会调用scripts/env.sh脚本,其中包含Aurora-1.5大模型的推理命令。

(1)Aurora-1.5气象预报大模型确定性预报的推理命令

shell
python run_Aurora.py \
     --forecast-steps 4 \    # 预报步长,4表示4*6=24小时
     --output-dir ./output_data \   # 输出数据路径
     --checkpoint-path ./model/aurora-0.25-v1.5.ckpt \   #模型权重路径
     --static-path static/aurora-0.25-v1.5-static.pickle \   #静态数据路径
     --surf-input ./input_data/Aurora_input_sfc_2026070906.nc \  #输入数据路径
     --atmos-input ./input_data/Aurora_input_upper_2026070906.nc#输入数据路径

确定性预报运行成功后,case/output_data目录下将生成以下文件:

7.png

(2)Aurora-1.5气象预报大模型集合预报的推理命令

shell
python run_Aurora_ensmeble.py \
     --forecast-steps 4 \    # 预报步长,4表示4*6=24小时
     --members 2 \        # 集合成员数量
     --seed 42 \           # 随机种子数
     --output-dir ./output_data \   # 输出数据路径
     --checkpoint-path ./model/aurora-0.25-v1.5.ckpt \   #模型权重路径
     --static-path static/aurora-0.25-v1.5-static.pickle \   #静态数据路径
     --surf-input ./input_data/Aurora_input_sfc_2026070906.nc \  #输入数据路径
     --atmos-input ./input_data/Aurora_input_upper_2026070906.nc#输入数据路径

概率预报运行成功后,case/output_data目录下将生成member01、member02……文件夹,每个文件夹下的文件命名格式与确定性预报的文件命名格式相同。

作业运行成功后,case/logs目录下将生成以下文件:

•logs/slurm-xxxx.out:作业运行过程的详细日志

•logs/output_det.log:确定性预报模型推理过程的详细日志

8.png

•logs/output_ens.log:概率预报模型推理过程的详细日志

9.png

4.Aurora-1.5气象预报大模型检验 ​

Aurora-1.5大模型的预报数据为NetCDF格式,可以用Xarray库和Cartopy库进行可视化。为了检验台风巴威的预报效果,本次最佳实践的起报时刻为2026年7月9日06时(UTC时间),随后根据实际观测进行台风巴威预报路径检验。

(1)提取2609号台风巴威预报路径

以海平面气压的最低值作为台风中心,检索不同预报时效下的台风中心,并得到2609号台风巴威的预报路径。

shell
import pandas as pd
from datetime import datetime
import xarray as xr
import numpy as np
# Aurora-1.5预报数据路径
data_path = './Aurora-1.5/output_data/'
time = pd.date_range(start='2026-07-09 12:00:00', end='2026-07-19 06:00:00', freq='6h')
ds = xr.open_mfdataset(data_path + 'Aurora_output_sfc_*.nc')
# 筛选台风附近区域数据
ds = ds.sel(time=time).sel(lon=slice(115,135),lat=slice(40,15))
msl = ds['msl']
# 创建台风相关属性列表
lon_list = []   # 台风中心经度列表
lat_list = []   # 台风中心纬度列表
msl_list = []   # 台风中心海平面最低气压列表
# 提取大模型预报的台风数据
for time in range(len(forecast_time)):
    lat_coord = msl.lat.values[msl[time,:,:].argmin() // msl.lon.size]
    lon_coord = msl.lon.values[msl[time,:,:].argmin() %  msl.lon.size]
    lat_list.append(lat_coord)
    lon_list.append(lon_coord)
    msl = msl.sel(lon=lon_coord,lat=lat_coord)[time].values
    msl_list.append(msl)
# 创建DataFrame表格格式
df = pd.DataFrame({'time':forecast_time,
                    'lon':lon_list,
                    'lat':lat_list,
                    'msl':msl_list})
# 保存为xlsx文件
df.to_excel('202609_Aurora.xlsx',index=False)

(2)绘制2609号台风巴威观测路径和预报路径

结合中央气象台台风网数据,绘制2609号台风巴威观测路径和预报路径,如下图所示。由图可知,Aurora-1.5气象大模型较好地预报出2609号台风巴威登陆前和登陆后的轨迹。

10.png

(3)绘制2609号台风巴威路径预报偏差时序图

为了量化Aurora-1.5大模型对2609号台风巴威路径的预报能力,进一步计算预报的台风中心与实际的台风中心距离偏差,得到路径预报偏差时序图,如下图所示。由图可知,Aurora-1.5大模型对2609号台风巴威的路径预报偏差在20~100 km之间。

11.png