伏羲天气预报科研数据集:公开提供100组历史再分析样本与真值标签
1. 伏羲天气预报系统简介
伏羲(FuXi)是复旦大学开发的15天全球天气预报级联机器学习系统,基于Nature npj Climate and Atmospheric Science期刊发表的论文实现。这个系统代表了人工智能在气象预报领域的前沿应用,能够提供从短期到长期的全球天气预测。
与传统数值天气预报方法不同,伏羲采用机器学习技术,通过级联网络结构处理不同时间尺度的预报任务。系统将预报过程分为三个阶段:短期预报(0-36小时)、中期预报(36-144小时)和长期预报(144-360小时),每个阶段都有专门的模型进行处理。
论文链接: https://www.nature.com/articles/s41612-023-00512-1
这个系统的独特之处在于它能够处理高分辨率的全球气象数据,输入数据维度达到(2, 70, 721, 1440),包含70个气象变量,覆盖全球范围的高精度网格点。输出结果提供了未来15天的详细天气预报,包括温度、风速、湿度、气压和降水等多个关键气象要素。
2. 数据集内容与价值
2.1 数据集组成
本次公开的科研数据集包含100组历史再分析样本,每组样本都包含完整的输入数据和对应的真值标签。数据集的具体组成如下:
- 输入数据:100个NetCDF格式文件,每个文件包含70个气象变量的初始场数据
- 真值标签:对应每个输入样本的未来15天实际观测数据
- 时间范围:覆盖不同季节和天气模式的历史时期
- 空间范围:全球范围,经纬度网格分辨率为0.25度
2.2 数据变量详解
数据集包含70个气象变量,分为两大类:
大气变量(65个):
- 位势高度(Z):13个气压层(50-1000 hPa)
- 温度(T):13个气压层
- U风分量(U):13个气压层
- V风分量(V):13个气压层
- 相对湿度(R):13个气压层
地表变量(5个):
- 2米温度(T2M)
- 10米U风(U10)
- 10米V风(V10)
- 海平面气压(MSL)
- 6小时累积降水量(TP)
2.3 科研价值
这个数据集为气象AI研究提供了宝贵的资源,具有以下科研价值:
- 模型训练与验证:可用于训练新的天气预报模型或验证现有模型性能
- 算法对比:为不同机器学习算法提供统一的测试基准
- 可重现性研究:确保研究成果的可比较性和可重现性
- 极端天气研究:包含各种天气模式,适合研究极端天气事件的预测能力
3. 数据获取与使用
3.1 获取方式
数据集通过复旦大学气象AI研究平台公开提供,研究人员可以通过以下方式获取:
- 直接下载:提供网盘下载链接,压缩包大小约50GB
- API接口:支持编程方式按需获取特定样本
- 子集选择:可根据研究需求选择特定区域或时间段的子集
3.2 数据格式说明
数据集采用NetCDF格式存储,这是一种在气象领域广泛使用的科学数据格式:
import xarray as xr # 读取数据示例 data = xr.open_dataset('sample_001.nc') print(data.dims) # 查看维度信息 print(data.variables) # 查看变量列表 # 访问特定变量 temperature = data['T'] # 温度变量 precipitation = data['TP'] # 降水变量3.3 数据预处理工具
为了方便使用,提供了多个数据预处理脚本:
make_hres_input.py:处理高分辨率原始数据make_era5_input.py:处理ERA5再分析数据make_gfs_input.py:处理GFS预报数据
这些工具可以帮助研究人员将各种来源的气象数据转换为伏羲系统所需的输入格式。
4. 在研究中的应用示例
4.1 模型训练应用
使用该数据集进行模型训练的典型流程:
import numpy as np import xarray as xr from sklearn.model_selection import train_test_split # 加载数据集 def load_dataset(sample_ids): inputs = [] labels = [] for sample_id in sample_ids: # 加载输入数据 input_data = xr.open_dataset(f'input_{sample_id:03d}.nc') # 加载真值标签 label_data = xr.open_dataset(f'label_{sample_id:03d}.nc') inputs.append(input_data) labels.append(label_data) return inputs, labels # 划分训练集和测试集 all_samples = range(1, 101) train_ids, test_ids = train_test_split(all_samples, test_size=0.2, random_state=42) train_inputs, train_labels = load_dataset(train_ids) test_inputs, test_labels = load_dataset(test_ids)4.2 预报性能评估
数据集可以用于评估不同预报模型的性能:
def evaluate_forecast(forecast_results, true_labels): """评估预报结果与真值的差异""" metrics = {} # 计算均方根误差 mse = np.mean((forecast_results - true_labels) ** 2) metrics['rmse'] = np.sqrt(mse) # 计算平均绝对误差 metrics['mae'] = np.mean(np.abs(forecast_results - true_labels)) # 计算相关系数 metrics['correlation'] = np.corrcoef(forecast_results.flatten(), true_labels.flatten())[0, 1] return metrics # 使用示例 metrics = evaluate_forecast(model_forecast, true_data) print(f"RMSE: {metrics['rmse']:.4f}") print(f"MAE: {metrics['mae']:.4f}") print(f"Correlation: {metrics['correlation']:.4f}")4.3 可视化分析
数据集支持多种可视化分析,帮助理解天气模式和预报结果:
import matplotlib.pyplot as plt import cartopy.crs as ccrs import cartopy.feature as cfeature def plot_weather_map(data, variable='T2M', time_step=0): """绘制气象变量空间分布图""" fig = plt.figure(figsize=(12, 8)) ax = plt.axes(projection=ccrs.PlateCarree()) # 提取指定时间和变量的数据 plot_data = data[variable].isel(time=time_step) # 绘制填色图 im = ax.contourf(plot_data.lon, plot_data.lat, plot_data, levels=50, transform=ccrs.PlateCarree(), cmap='RdBu_r') # 添加地理特征 ax.add_feature(cfeature.COASTLINE) ax.add_feature(cfeature.BORDERS, linestyle=':') ax.gridlines(draw_labels=True) # 添加颜色条 plt.colorbar(im, ax=ax, orientation='horizontal', pad=0.05) plt.title(f'{variable} at time step {time_step}') plt.show() # 使用示例 sample_data = xr.open_dataset('input_001.nc') plot_weather_map(sample_data, variable='T2M', time_step=0)5. 学术规范与引用要求
5.1 使用规范
在使用本数据集时,请遵守以下学术规范:
- 注明数据来源:在所有使用该数据集的研究成果中明确注明数据来源
- 保持数据完整性:不得篡改或歪曲原始数据
- 共享改进:鼓励基于该数据集的改进模型和方法的共享
- 遵守许可协议:数据集采用Apache-2.0许可协议
5.2 推荐引用格式
@article{chen2023fuxi, title={FuXi: a cascade machine learning forecasting system for 15-day global weather forecast}, author={Chen, Lei and Zhong, Xiaohui and Zhang, Feng and Cheng, Yuan and Xu, Yinghui and Qi, Yuan and Li, Hao}, journal={npj Climate and Atmospheric Science}, year={2023}, doi={10.1038/s41612-023-00512-1} }5.3 贡献与反馈
鼓励研究人员在使用过程中:
- 报告问题:发现数据问题及时反馈
- 分享应用:分享基于该数据集的有趣应用和发现
- 提出建议:提出对数据集改进的建议
- 参与扩展:参与数据集的扩展和完善工作
6. 总结与展望
伏羲天气预报科研数据集的发布为气象人工智能研究提供了重要的基础设施。这个包含100组历史再分析样本与真值标签的数据集,不仅支持天气预报模型的训练和验证,还为算法比较和可重现研究提供了标准基准。
数据集的价值体现在多个方面:首先,它提供了高质量、经过严格质量控制的气象数据;其次,它包含了从短期到长期的全周期预报标签;最后,它的全球覆盖和高空间分辨率使其适用于各种尺度的气象研究。
未来,我们计划持续更新和扩展这个数据集,增加更多样本、更高分辨率的数据,以及更多气象变量。同时,我们也欢迎研究社区的参与和贡献,共同推动气象人工智能技术的发展。
对于研究人员来说,这个数据集提供了一个难得的机会,可以在真实的气象数据上测试和验证新的机器学习算法,推动天气预报技术的进步,最终为更好地理解和预测天气气候系统做出贡献。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。