Python读取grib方法总结(window/Linux/Mac)

grib数据是以另一种带压缩功能的自描述文件,和netcdf相比,它没有什么额外的优点,但有诸多使用上的不便。grib使用不便的原因有两个:

  1. 该数据的标准定义严格且狭窄,仅有少数部门(或单位、或应用场景)能够完全遵守标准来制作数据;
  2. 数据读写接口工具支持的语言不丰富,接口容错性差。

当气象部门有些新的数据需要传输,若套用grib格式进行压码,往往由于难以完全符合标准,导致下游数据应用部门出现解码错误。当前,grib文件格式之所以仍然流行,一方面是因为和历史数据、系统的承接,另外一个重要原因是欧洲中心在使用,间接导致许多数值预报研究部门在使用该格式。实际上grib所需的功能用netcdf完全能够替代,且后者明显更加便利。


无论安装以下哪种库, 强烈建议在新环境下安装,之前在base环境下安装各种报错!!!如何在新环境下安装可参见我之前的总结或网上其他文章。

一、不推荐方法

1.pygrib(2021年之前)

pygrib库基于python2.4+、numpy、pyproj、Jasper和GRIB_API,依赖库基于Linux或MacOS,GRIB_API将于2020年6月30日正式被ecCodes取代。如果要在Windows上使用pygrib,必须使用Cygwin环境,因为grib_api库需要posix环境。Cygwin安装说明可在此处获得。综合来看,不推荐使用pygrib库

2.GDAL

可于window下安装,安装简单,但是需借助wgrib2查看grib变量所在通道,因此不推荐

3. PyNIO

Linux或者MacOS用户强烈推荐PyNIO。
PyNIO (“pie-nee-oh”) 允许对气候和天气中流行的各种科学数据格式进行读写访问:

  • NetCDF3 / NetCDF4
  • GRIB1 / GRIB2
  • HDF4
  • HDF-EOS2
  • HDF-EOS5
  • Shapefile

PyNIO由美国国家大气研究中心(NCAR)的计算和信息系统实验室开发,最熟悉气象数据格式的机构开发的库,值得信赖,不过对于windows用户不够友好,只能在Linux或者MacOS上安装

二、推荐方法

1.pygrib(2021年之后)

2021年之后,pygrib开始支持windows系统,使用范围大增,读取grib数据稳定,详见官网用户手册

安装方法:

conda install -c conda-forge pygrib

示例:

import pygrib

grbs = pygrib.open('a2.grib')
# 输出所有变量
for grb in grbs[1:]: # 索引从1开始,不是从0开始
    print(grb)
# 查看所有变量
v_names = grbs.select()
# 选择第一个变量,从0索引开始
v0 = grbs.select()[0]
# 随便挑一个变量做示例,从1开始
grb = grbs[1]
key = grb.keys()
value = grb.values
lats, lons = grb.latlons()

缺点: 读取的变量grbs数量有可能出现非常多,很难挑出自己想要的变量所在维度。

2. xarray搭配cfgrib

优点:Linux/windows/MacOS均可用,安装较简单,强烈建议在新环境下安装各所需库
安装步骤:

  1. 新建新环境
  • 17
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值