FuXi-DA
模型介绍
FuXi-DA 融合天气背景场和卫星观测生成改进的全球大气分析场,用于深度学习卫星数据同化和预报初值优化。模型在统一特征空间中学习背景误差、观测偏差和分析增量,可利用多时次静止卫星资料改善后续预报。
论文:FuXi-DA: a generalized deep learning data assimilation framework for assimilating satellite observations
https://doi.org/10.1038/s41612-025-01039-3
模型描述
该方法由上海人工智能实验室、复旦大学等机构的研究团队提出。论文使用 ERA5、FuXi 背景场和风云四号B星 AGRI 观测开展训练。FuXi-DA 使用背景、观测和条件三条编码分支进行多尺度特征融合,并结合冻结 FuXi 的预报误差监督同化网络。模型适用于 0.25° 全球大气背景订正和静止卫星多通道观测同化。
适用场景
| 场景 | 说明 |
|---|---|
| 卫星数据同化 | 融合 70 通道背景场与 AGRI 多时次亮温观测。 |
| 多模态融合 | 验证背景、观测和条件分支的多尺度特征交互。 |
| 本地工程验证 | 在完整变量和全球坐标协议下执行采样 tile 验证。 |
| ModelScope/OneCode 运行 | 在 ModelScope 或 OneCode 环境中验证数据、训练、推理、同化指标和可视化流程。 |
| 多卡训练 | 通过 torchrun 验证分布式训练和 checkpoint 流程。 |
使用说明
1.OneCode
2.下载安装
modelscope download --model OneScience/FuXi-DA --local_dir ./FuXi-DA
cd FuXi-DA
环境依赖
硬件要求
- 推荐使用 GPU 或 DCU 运行。
- CPU 可用于默认小样本配置的连通性验证。
- DCU 用户需预先安装 DTK,建议使用 DTK 25.04.2 以上版本或与当前集群匹配的 OneScience 推荐版本。
DCU环境
# 请首先激活 DTK 及 Conda
conda create -n onescience311 python=3.11 -y
conda activate onescience311
pip install onescience[earth-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
GPU环境
# 请首先激活 Conda
conda create -n onescience311 python=3.11 -y libstdcxx-ng=12 libgcc-ng=12 gcc_linux-64=12 gxx_linux-64=12
conda activate onescience311
pip install onescience[earth-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
训练数据介绍
本仓库使用少量虚拟样本验证工程流程,虚拟数据包含 70 变量全球背景场、8 个 AGRI 时次、15 个观测通道、6 小时时间关系,以及 [70,721,1440] 背景和 [8,15,640,640] 观测的真实维度协议。虚拟数据通过程序化完整坐标场和少量原坐标对齐 tile 保持变量、通道和时空规格,仅减少实际执行的样本与覆盖范围。该数据仅用于验证多分支 U-Net、特征融合、训练、推理和评估流程,不代表 ERA5 或 AGRI 官方数据分布与训练规模。
python scripts/fake_data.py
训练
单卡训练可使用:
python scripts/train.py
多卡训练可使用:
torchrun --nproc_per_node=8 --nnodes=1 --rdzv_id=1000 --rdzv_backend=c10d --max_restarts=0 --master_addr="localhost" --master_port=29500 scripts/train.py
训练联合使用纬度加权分析 L1 和冻结预报代理提供的多时效监督,使分析场同时接近 ERA5 并改善后续预报。默认配置缩小实际 tile 覆盖、网络宽度、迭代次数和预报监督步数,论文配置保留 6000 次迭代和 10 个预报时效。训练产物保存到:
result/checkpoints/fuxi_da.pt
result/training/metrics.json
训练权重
论文未提供可直接加载的官方模型权重,本仓库不在 weight/ 中内置权重。
推理
python scripts/inference.py
推理加载训练 checkpoint,以 70 通道背景 tile 和对应 AGRI 多时次观测作为输入。模型通过背景、观测和条件分支生成分析增量,并将其叠加到背景场得到分析结果。输出保留目标、背景、观测、分析、坐标和覆盖信息,并明确标记为非完整全球覆盖。推理结果保存到:
result/output/predictions.npz
评估和可视化
python scripts/result.py
评估比较原始背景、纯订正基线和 FuXi-DA 分析的纬度加权 RMSE,并保存 Z、T、U、V、R 和地表变量组结果。评估还计算逐预报步误差及单观测扰动产生的分析增量局地性,并生成不同分析方案和变量组误差对比图。虚拟 tile 结果仅用于工程验证,不代表论文完整全球性能。评估结果保存到:
result/evaluation/metrics.json
result/evaluation/comparison.png
OneScience官方信息
| 平台 | OneScience 主仓库 | Skills 仓库 |
|---|---|---|
| Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills |
| GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills |
引用与许可证
本仓库为 FuXi-DA 公开规格的独立工程复现版本,代码采用 Apache License 2.0 许可证。
原始论文采用 CC BY-NC-ND 4.0 许可证;论文、官方模型权重、ERA5 和风云四号B星 AGRI 数据仍应按照各自项目的许可证及使用条款使用。