气象数据
GDAS(Global Data Assimilation System)全球数据同化系统,是美国国家气象局(National Weather Service, NWS)的一部分,它是一个复杂的系统,用于生成全球范围的气象分析数据。
1.FNL大气再分析数据集
是GDAS的最终分析产品,用于历史和气候研究
更新慢
1度的数据
https://rda.ucar.edu/datasets/d083002/
0.25度的数据
https://rda.ucar.edu/datasets/d083003/
2.GFS 全球预报数据
https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/
只提供最近10天的数据
GFS(Global Forecast System)
GFS模型依赖于GDAS提供的初始场来进行天气预报
GFS数据集由选定的模型输出作为网格化预测变量组成。384小时预报,具有3小时预测间隔,以6小时时间分辨率(即每天更新四次)进行。
时间分辨率:3小时,6小时,12小时,18小时,24小时,16天
1度的数据命名格式
gfs.tCCz.pgrb2.1p00.fFFF
0.25度的数据命名格式
gfs.tCCz.pgrb2.0p25.fFFF
下载下来的气象数据是grib2格式
下面使用python读取下载的grib2数据
GRIB是一种用于表示和交换气象数据的国际标准格式,广泛应用于气象和海洋科学领域
pygrib
是一个用于读取和写入GRIB(Gridded Binary)文件的Python库
安装
conda install -c conda-forge pygrib
读取
import pygrib grbs = pygrib.open('D:\\data\\gfs.t18z.pgrb2.1p00.f006') for grb in grbs: print(grb) # 打印消息的详细信息 print("dataDate",grb.dataDate) print("analDate",grb.analDate) print("validDate",grb.validDate) print("forecastTime",grb.forecastTime) print("julianDay",grb.julianDay) print("indicatorOfUnitOfTimeRange",grb.indicatorOfUnitOfTimeRange) break # 假设lats和lons是已经获取的纬度和经度数组 spatial_resolution_lat = lats[0]-lats[1] spatial_resolution_lon = lons[0]-lons[1] print("Spatial resolution (latitude):", spatial_resolution_lat[0]) print("Spatial resolution (longitude):", spatial_resolution_lon[0]) min_lon = lons[0] max_lon = lons[-1] min_lat = lats[0] max_lat = lats[-1] print("Spatial range (longitude):", min_lon[0], "to", max_lon[-1]) print("Spatial range (latitude):", min_lat[0], "to", max_lat[-1]) # 关闭文件 grbs.close()
运行结果:
说明:
索引或序号 1
变量的名称 Pressure reduced to MSL
单位和时间类型 Pa 压力单位帕斯卡(Pascal)
(instant):这表明预报是瞬时的
regular_ll:这指的是使用的网格类型,regular_ll表示这是一个规则的纬度-经度网格。
meanSea:level:这进一步确认了数据是在平均海平面上的水平面数据。
预报时间 fcst time 6 hrs:这表示预报是在分析时间之后6小时的。
初试时间 from 202409131800:这是一个时间戳,格式为YYYYMMDDHH,表示预报是从2024年9月13日18时开始的。
analDate(分析时间)
validDate(有效时间)
forecastTime(预报时间)
indicatorOfUnitOfTimeRange(forecastTime字段的单位,1小时,10分钟)