python打开文件_喜大普奔 | 如何在Win10下利用Python打开grib文件

博主分享了在Windows10系统中使用Anaconda和JupyterLab,通过创建虚拟环境解决安装cfgrib及其依赖ECcodes的问题,以读取和处理grib格式数据的经历。过程中遇到了安装包冲突、环境配置加载慢等问题,最终通过使用conda创建新环境、安装nb_conda插件并在JupyterLab中切换环境解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要花差不多半个月来研究这个,明明Linux比这个简单多了……

窃格瓦拉·瓶:学Linux是不可能学Linux的,这辈子都不可能喜欢命令行的,Win10说话又好听,我偷别人代码养你啊(?)

总之就是提不起兴趣学Linux,但是组里的绝大部分数据都是grib格式的,为了让自己能在Win10的溺爱下多摸鱼一会,只能想个办法找个借口了。

感谢来自英俊的Sonic师兄的帮助,以及网络上曾经写过相关教程的大佬们,参考链接见后。

我的情况:Windows10专业版,使用了Anaconda安装、管理相关的包,编译器则选择了JupyterLab。

下面介绍一下我的方法。

根据参考链接[1],最简单的方法就是利用xarray和cfgrib来打开grib文件了。文中提到要首先安装ECcodes这个包,还介绍了离线安装的步骤,我试了很多个eccodes的版本,尽管离线安装成功,但是在后续过程中仍然会报错:

dc9d4adcc2933df7cdb9af5c3b9abd3a.png

如果直接安装eccodes,不是和上图里一样报了的错误,就是环境配置一直loading,最后帮我把所有安装的包都更新了一遍……

(说到这个真的把我气坏了,我刚开始根本不知道它在更新包,只看到整个屏幕都是进度条,我既不知道怎么暂停进程,又不敢直接关掉电脑,只能把电脑盖子合上物理断网……)

8eb1c3c546fdcaf95a8f01985e4ef5f0.png

考虑到eccodes是cfgrib的依赖包,如果要安装cfgrib的话应该会自动帮我把eccodes也装了吧?于是我尝试直接安装cfgrib,确实没有报unknown的错误了,但是Solving environment又出问题了:

8c3468da22bd90dd5a051c4fdc5b562b.png
实在等不下去了,按了暂停

所以到底应该怎么办?

根据参考链接[2]以及Sonic师兄的谆谆教导,我得知了在 (base) 环境下安装包很容易冲突,因此可以像[2]中所说的,在 (base) 下输入以下代码,即可新建一个虚拟环境以安装cfgrib:

conda create -n cfgrib_env python=3.7.0

其中cfgrib_env是环境名称,可以修改为自己喜欢的名字;而python=(版本号)也可以改为自己需要的版本,此时我们就有了一个新的、版本为3.7.0的Python环境。

然后输入以下代码启动刚刚设定好的虚拟环境:

activate cfgrib_env

这个时候 (base) 就会变成 (cfgrib_env) 。但是,我们之前装好的xarray、cartopy是在 (base) 环境中安装的,于是要在激活了cfgrib_env的环境下,利用conda install ~~的命令,重新在新环境下进行安装我们需要的包——不要忘了装cfgrib哦。

搞了这么多东西,总应该能读取grib文件了吧?

但是,我们的编译器所处环境更新了吗?事实证明没有,我还是没有办法在编译器里import cfgrib。这个时候就要用到参考链接[3]和[4]的办法了。

ps. 也可参考链接

在 (base) 下安装anaconda的NB插件:

conda install nb_conda

然后,切换到新的环境(如cfgrib_env)中,安装Jupyter:

pip install jupyter

完成这两个步骤后,就会发现这个nb_conda到底有多nb了:这个插件可以让我们在JupyterLab里很方便的切换需要的环境——在打开代码前利用下拉菜单选择即可。

12bced1dffc6ef960798545c542a9199.png
7872ca1d1682764056d2dd955ac596c4.png

好了,让我们写代码验证一下是不是真的能打开grib文件并提取数据来画图吧!

import 

确实是可以出图的(难掩激动):

02557723356f3dad4b2b1121dd665cf2.png

最后,让我们大声喊一句Python永远滴神吧!(?)

谢谢你的阅读!

参考

  1. ^[1] https://www.jianshu.com/p/683d3bb5b3cd

  2. ^[2] https://blog.csdn.net/weixin_46604505/article/details/106910440

  3. ^[3] https://blog.csdn.net/w55100/article/details/88925697

  4. ^[4] https://zhuanlan.zhihu.com/p/139776843

  5. ^https://blog.csdn.net/xfdywy/article/details/80113079

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值