请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 40002|回复: 19

[经验总结] windows下如何用xarray+cfgrib读取grib资料

[复制链接]

新浪微博达人勋

发表于 2020-5-21 21:45:56 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
相信很多人都需要这个知识点,我就把今天的经验做个介绍,可能不是很完善,希望能帮到你。
1、之前我在家园帖子也发过相似的帖子,windows读取grib2,那时候我用的是OLDLee 河北干部培训学院李开元老师的方法
用wgrib2转,具体的大家可以在家园里搜索哟。
2、之前在群里有人问怎么用xarray+cfgrib读取,那时候刚好看到有人用这样读取,具体方法就没做介绍,刚好今天上完大夜班休息,两个小伙伴来问我,
我就搜了一下,也总结一下了。
3、第一步:xarray 相信这个没问题 conda环境底下conda install xarray
4、第二部:安装cfgrib,由于该模块依赖于ecmwf eccode 二进制库 必须安装在系统上并作为共享库访问。安装eccodes,
具体方法参照:https://www.cnpython.com/pypi/cfgrib 这里有说明,我在安装的过程中,实现没提前创建环境,导致numpy包冲突,
所以建议大家创建一个环境安装吧。安装好了以后再conda install cfgrib。
5、安装完成以后,import cfgrb 看看是否安装成功,我自己也是安装了两遍才成功的。
6、https://cloud.tencent.com/developer/article/1471285 学前班大队长在这里已经做了很好的总结了,大家可以参照一下。
7、在上面的帖子中,介绍了如何提取某一层的要素,那么我们在实际过程中,还会遇到画垂直剖面时,需要提取某一要素的所有层次资料,
经过摸索找到问题,直接把代码贴上来 大家自行调试吧。
ds = xr.open_dataset("E:/data/fnl_20190526_12_00.grib2",engine='cfgrib',
                      backend_kwargs={'filter_by_keys':{'typeOfLevel':'isobaricInhPa','cfVarName': 'w'}})

在这里 我下载的fnl再分析资料中,w代表的是垂直速度,当然还有t\gh\u\v\r等等,用cfVarName匹配对应的物理量。
大概就是这些吧 大家在上面的链接中先学习吧,有问题再欢迎交流。
祝您学习愉快,生活安康。


评分

参与人数 1金钱 +15 贡献 +5 收起 理由
mofangbao + 15 + 5

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-5-21 22:59:35 | 显示全部楼层
楼主正解,我去讲课的时候eccodes2.10.0刚刚有Python3接口,几个版本迭代下来,还算比较成熟了,用eccodes扩展库和cfgrib基本可以满足基本需求,还需要再提升。即将出版的《Python气象数据处理与可视化》中以此方法为主,也介绍了wgrib和gdal。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-5-22 08:25:41 | 显示全部楼层
edwardli 发表于 2020-5-21 22:59
楼主正解,我去讲课的时候eccodes2.10.0刚刚有Python3接口,几个版本迭代下来,还算比较成熟了,用eccodes ...

李老师加油啊 到时候跟出版社要个优惠 大家来个团购啊 哈哈哈
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-22 09:57:51 | 显示全部楼层
刚摸索第一天,感觉xarray读取grib2数据速度有点慢呢?还是我得方法有问题?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-24 20:48:43 | 显示全部楼层
edwardli 发表于 2020-5-21 22:59
楼主正解,我去讲课的时候eccodes2.10.0刚刚有Python3接口,几个版本迭代下来,还算比较成熟了,用eccodes ...

出版后,一定去买,手头必备啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-27 19:57:44 | 显示全部楼层
已成功运行,感谢大家的无私奉献,我就想咨询一下,那个绘图的title是自动加上的去?如何处理掉,或自己加个标题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-29 11:30:49 | 显示全部楼层
没有安装成功,提示错误如下:
ECCODES ERROR : Unable to find boot.def. Context path=D:/bld/eccodes_1585603088298/_h_env/Library/share/eccodes/definitions

Possible causes:
‑ The software is not correctly installed
‑ The environment variable ECCODES_DEFINITION_PATH is defined but incorrect

ecCodes assertion failed: `0' in D:\bld\eccodes_1585603088298\work\src\grib_context.c:226
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-8-6 16:40:29 | 显示全部楼层
安装eccode失败,请教一下怎么创建环境?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-8-8 22:19:54 | 显示全部楼层
花容天下重莲 发表于 2020-8-6 16:40
安装eccode失败,请教一下怎么创建环境?

创建语言环境:conda create --name XXX python=3.8    (XXX是环境名,3.8是版本)
进入环境:conda activate XXX
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-25 10:44:43 | 显示全部楼层
rus007 发表于 2020-5-29 11:30
没有安装成功,提示错误如下:
ECCODES ERROR : Unable to find boot.def. Context path=D:/bld/eccodes_1 ...

设置一下ECCODES_DEFINITION_PATH 就好啦
这里有教程https://blog.csdn.net/weixin_44052055/article/details/108658464
我按照他的方法不行,只能手动输入。。。你可以试试,如果可以的话教教我哈
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表