一、GFS是什么?
GFS(Global Forecast System,全球预报系统)是美国国家环境预测中心(NCEP)开发并运行的旗舰级全球数值天气预报模型。它是全球气象、能源、农业、交通、航空、航运等行业获取中期天气预报数据的主要来源之一。
GFS每天运行4次(00、06、12、18 UTC),每次生成未来16天的预报结果,覆盖全球任意位置。2025年12月,NOAA正式启用了AI增强版GFS(AIGFS),可在保持精度的同时将计算时间缩短至传统模式的0.3%。
二、GFS的核心作用
| 气象研究与预报 | |
| 航空与航运 | |
| 农业生产 | |
| 可再生能源 | |
| 科学研究 | |
| 灾害预警 |
研究表明,基于GFS初始化的WRF模型可将热带风暴预报误差降低44%至57%。
三、分辨率与变量详解
3.1 水平分辨率
3.2 垂直分层
标准GFS:64层混合sigma-压力坐标,模式层顶约0.27 hPa(~55 km)
升级版:127层,模式层顶提高至80 km,更好捕捉平流层过程
3.3 时间分辨率
3.4 常用变量列表
GFS数据包含数十种变量,以下是常用变量及其GRIB编码:
TMP:2 m | |||
UGRD:10 mVGRD:10 m | |||
APCP:surface | |||
PRMSL:mean sea level | |||
HGT:500 mb | |||
RH:2 m | |||
TCDC:entire atmosphere | |||
SOILW:0-0.1 m below ground | |||
TMP:sea surface | |||
DSWRF:surface |
完整变量列表可参考NOAA官方文档:https://www.nco.ncep.noaa.gov/pmb/products/gfs/

四、重要提示:是否需要注册登录?
✅ 完全不需要注册,不需要登录,不需要API密钥。
GFS数据由美国政府机构免费向全球公开,支持以下方式直接访问:
FTP匿名访问:
ftp://ftpprd.ncep.noaa.govHTTPS直接下载:
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=str, help="起始时间,如 '2025-01-01 00:00:00'")parser.add_argument('--fxx_list', type=int, nargs='+', default=[0, 6, 12, 24],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)


六、GFS数据在WRF模式中的应用
GFS是驱动WRF区域模式的理想全球背景场。操作流程:
下载GFS预报数据(GRIB2格式)
使用WPS中的
ungrib.exe解码GFS数据(需要对应的Vtable)使用
metgrid.exe插值到WRF网格运行
real.exe生成初始和边界条件运行
wrf.exe进行区域高分辨率预报
WRF用户手册中提供了专门针对GFS的Vtable(Vtable.GFS),位于WPS/ungrib/Variable_Tables/目录。
七、最新进展:AI增强版GFS
2025年12月,NOAA正式启用了以下AI驱动系统:
用户可以继续通过相同的数据源获取这些新产品,产品标识符将有所变化,但下载方式保持一致。后续针对增强版再出新的教程版本,请关注作者后续更新
夜雨聆风