乐于分享
好东西不私藏

Python下载NOAA GFS全球预报数据实战教程

Python下载NOAA GFS全球预报数据实战教程
无需注册,免费下载教程,后续使用Python一键获取全球数值天气预报数据

一、GFS是什么?

     GFS(Global Forecast System,全球预报系统)是美国国家环境预测中心(NCEP)开发并运行的旗舰级全球数值天气预报模型。它是全球气象、能源、农业、交通、航空、航运等行业获取中期天气预报数据的主要来源之一。

     GFS每天运行4次(00、06、12、18 UTC),每次生成未来16天的预报结果,覆盖全球任意位置。2025年12月,NOAA正式启用了AI增强版GFS(AIGFS),可在保持精度的同时将计算时间缩短至传统模式的0.3%。


二、GFS的核心作用

应用领域
具体用途
气象研究与预报
短期至中期天气预报、台风路径预测、强对流分析、驱动区域模式(如WRF)
航空与航运
航线优化、船舶路线规划、风能资源评估
农业生产
农业灌溉调度、作物生长模型、霜冻/热浪预警
可再生能源
风电、光伏发电量预测、电网调度
科学研究
气候学、水文学、海洋学、大气动力学研究
灾害预警
洪水、干旱、热浪、寒潮的早期识别

研究表明,基于GFS初始化的WRF模型可将热带风暴预报误差降低44%至57%。


三、分辨率与变量详解

3.1 水平分辨率

产品类型
分辨率
赤道处约
高分辨率预报(前7天)
0.25° × 0.25°
28 km
延长期预报(7-16天)
0.5° × 0.5°
55 km
内部模式分辨率
T1534谱模式
13 km

3.2 垂直分层

  • 标准GFS:64层混合sigma-压力坐标,模式层顶约0.27 hPa(~55 km)

  • 升级版:127层,模式层顶提高至80 km,更好捕捉平流层过程

3.3 时间分辨率

预报时段
输出频率
0-120小时(5天)
逐小时
120-240小时(10天)
每3小时
240-384小时(16天)
每12小时

3.4 常用变量列表

GFS数据包含数十种变量,以下是常用变量及其GRIB编码:

变量名
GRIB搜索关键字
单位
说明
2米气温
TMP:2 m
K
地面以上2米处温度
10米风场
UGRD:10 m
VGRD:10 m
m/s
东西/南北向风速
总降水量
APCP:surface
kg/m²
累计降水(预报时段内)
海平面气压
PRMSL:mean sea level
Pa
海平面气压
位势高度
HGT:500 mb
gpm
500 hPa等高面高度
相对湿度
RH:2 m
%
地面相对湿度
云量
TCDC:entire atmosphere
%
整层总云量
土壤湿度
SOILW:0-0.1 m below ground
fraction
表层土壤湿度
海表温度
TMP:sea surface
K
SST
辐射通量
DSWRF:surface
W/m²
向下短波辐射

完整变量列表可参考NOAA官方文档:https://www.nco.ncep.noaa.gov/pmb/products/gfs/


四、重要提示:是否需要注册登录?

✅ 完全不需要注册,不需要登录,不需要API密钥。

GFS数据由美国政府机构免费向全球公开,支持以下方式直接访问:

  • FTP匿名访问ftp://ftpprd.ncep.noaa.gov

  • HTTPS直接下载https://nomads.ncep.noaa.gov

  • 云平台公开存储桶:AWS、Google Cloud、Azure

Herbie等Python工具直接连接这些开放服务器,无需任何账号配置,开箱即用。

⚠️ 服务器有通用限流规则(如每分钟最多120次请求),建议使用批量下载时适当添加延迟。


五、Python下载与处理(完整脚本)

5.1 环境准备

conda create -n gfs_env python=3.11conda activate gfs_envconda install -c conda-forge herbie-data xarray cfgrib matplotlib cartopy

5.3 作者的实际案例:下载全球2米气温GFS数据(原始GRIB2文件)直接运行脚本即可

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""下载GFS全球2米气温数据(单变量)测试支持多时效下载,每个时效单独保存为GRIB2文件"""import argparsefrom herbie import Herbieimport osimport shutilfrom datetime import datetime, timedelta, timezonedef download_t2m_single(date_str, forecast_hour, save_dir='./gfs_t2m', resolution='0p25'):    os.makedirs(save_dir, exist_ok=True)    product_map = {        '0p25''pgrb2.0p25',        '0p50''pgrb2.0p50',        '1p00''pgrb2.1p00'    }    product = product_map.get(resolution, 'pgrb2.0p25')    H = Herbie(date_str, model='gfs', product=product, fxx=forecast_hour)    print(f"下载2米气温: 起始时间={H.date}, 预报时效={forecast_hour}h, 分辨率={resolution}")    # 只下载变量 'TMP:2 m'(2米气温)    local_path = H.download('TMP:2 m', verbose=True)    # 重命名文件以便区分时效    target_path = os.path.join(save_dir, f"gfs_t2m_{H.date.strftime('%Y%m%d%H')}_f{forecast_hour:03d}.grib2")    shutil.move(local_path, target_path)    file_size_mb = os.path.getsize(target_path) / (1024**2)    print(f"✅ 已保存: {target_path} ({file_size_mb:.2f} MB)")    return target_pathif __name__ == "__main__":    parser = argparse.ArgumentParser(description="下载GFS全球2米气温数据(单变量)")    parser.add_argument('--date'type=strhelp="起始时间,如 '2025-01-01 00:00:00'")    parser.add_argument('--fxx_list'type=int, nargs='+', default=[061224],                         help="预报时效列表,如 0 6 12 24")    parser.add_argument('--outdir'type=str, default='./gfs_t2m'help="保存目录")    parser.add_argument('--res'type=str, default='0p25', choices=['0p25''0p50''1p00'],                         help="分辨率: 0p25(0.25°), 0p50(0.5°), 1p00(1.0°)")    args = parser.parse_args()    if args.date is None:        default_date = (datetime.now(timezone.utc) - timedelta(days=1)).replace(hour=0, minute=0, second=0, microsecond=0)        args.date = default_date.strftime('%Y-%m-%d %H:%M:%S')        print(f"未指定--date,使用默认: {args.date}")    for fxx in args.fxx_list:        download_t2m_single(args.date, fxx, args.outdir, args.res)
执行成功情况如下:选择时间等要素需要在脚本修改对应参数,默认是下载最近时刻的,后续下载规范和输出可以自己扩充规范代码【案例下载2米温度,0,3,6,9,12,24时刻】每个时刻是一个单独文件
使用PanoplyWin工具打开数据查看是否正确,目前作者下载的完全没有问题

六、GFS数据在WRF模式中的应用

GFS是驱动WRF区域模式的理想全球背景场。操作流程:

  1. 下载GFS预报数据(GRIB2格式)

  2. 使用WPS中的ungrib.exe解码GFS数据(需要对应的Vtable)

  3. 使用metgrid.exe插值到WRF网格

  4. 运行real.exe生成初始和边界条件

  5. 运行wrf.exe进行区域高分辨率预报

WRF用户手册中提供了专门针对GFS的Vtable(Vtable.GFS),位于WPS/ungrib/Variable_Tables/目录。


七、最新进展:AI增强版GFS

2025年12月,NOAA正式启用了以下AI驱动系统:

系统名称
全称
特点
AIGFS
人工智能全球预报系统
计算量仅为传统GFS的0.3%,40分钟完成16天预报
AIGEFS
人工智能全球集合预报系统
多成员集合预报
HGEFS
混合全球集合预报系统
物理+AI混合,性能优于纯AI或纯物理系统

用户可以继续通过相同的数据源获取这些新产品,产品标识符将有所变化,但下载方式保持一致。后续针对增强版再出新的教程版本,请关注作者后续更新

预警!超级厄尔尼诺即将登场:2026-2027年全球气候或迎“极端狂暴模式”

EC 数据驱动的颠簸指数计算全解析(Python 实现)

太平洋上演罕见“双子风暴”——超强台风森拉克与南太平洋迈拉的气象奇观

沉寂近40年!南极巨无霸A23a冰山解体,背后藏着地球气候大信号

基于单站气象雷达数据实现 SCIT 风暴单体识别算法技术