原本年初稀里糊涂研究一通,能用python读grib2文件了,但是10月份python被我玩崩了,不会解决,就删除重下了新的anaconda,至此开始遇到各种奇怪的问题,比如现在遇到的这个运行过去读取grib2文件的代码会报错。
这里附上读取grib2文件的代码和报错截图:
import xarray as xr
filein = "D:\\apps\\baidu\\BaiduNetdiskDownload\\gfs.0p25.2023070300.f000.grib2"
data = xr.open_dataset(filein, engine='cfgrib',
backend_kwargs={'filter_by_keys':{'typeOfLevel': 'isobaricInhPa','level':500}})
z500 = data['gh']
t500 = data['t']
lon = data.variables['longitude'][::]
lat = data.variables['latitude'][::]
print(z500)
看了一下午各种帖子没找到好的解决方法,我猜测了一下觉得还是因为我新下的python版本过高(3.12),因此创建了一个3.8版本的虚拟环境。
创建虚拟环境
conda create -n grib2s1 python==3.8
激活虚拟环境
conda activate grib2s1
安装xarray
pip install xarray
安装eccodes
conda install -c conda-forge eccodes
安装cfgrib
conda install cfgrib
好了,现在让我们运行一下上面的代码:
可以看到已经读取到了我命名的变量z500,折磨了我一下午的问题就愉快地解决啦!
下面附上这个虚拟环境应用到的库的版本号,如果就想在基础环境中下载的话,也可以尝试一下傻瓜方式,我在另一个库版本对应不上的时候选择了这种傻瓜方式是可以的,这里没有尝试——按照现在这个虚拟环境中各个库的版本号挨个下载应该也可以解决这个问题。
(grib2s1) PS C:\Users\17745> conda list
# packages in environment at D:\python anacond new\envs\grib2s1:
#
# Name Version Build Channel
attrs 24.2.0 py38haa95532_0
blas 1.0 mkl
blosc 1.21.6 hfd34d9b_1 conda-forge
bottleneck 1.3.7 py38h9128911_0
bzip2 1.0.8 h2466b09_7 conda-forge
ca-certificates 2024.12.14 h56e8100_0 conda-forge
cffi 1.17.1 py38h827c3e9_0
cfgrib 0.9.14.1 pyhd8ed1ab_0 conda-forge
click 8.1.7 py38haa95532_0
colorama 0.4.6 py38haa95532_0
eccodes 2.39.0 h49d5f8d_1 conda-forge
findlibs 0.0.5 pyhd8ed1ab_0 conda-forge
freeglut 3.2.2 he0c23c2_3 conda-forge
hdf4 4.2.15 h5557f11_7 conda-forge
hdf5 1.14.4 nompi_hd5d9e70_105 conda-forge
intel-openmp 2023.1.0 h59b6b97_46320
jasper 4.2.4 hcb1a123_0 conda-forge
krb5 1.21.3 hdf4eb48_0 conda-forge
libaec 1.1.3 h63175ca_0 conda-forge
libcurl 8.11.1 h88aaa65_0 conda-forge
libffi 3.4.2 h8ffe710_5 conda-forge
libiconv 1.17 hcfcfb64_2 conda-forge
libjpeg-turbo 3.0.0 hcfcfb64_1 conda-forge
liblzma 5.6.3 h2466b09_1 conda-forge
liblzma-devel 5.6.3 h2466b09_1 conda-forge
libnetcdf 4.9.2 nompi_h5bdc103_116 conda-forge
libpng 1.6.44 h3ca93ac_0 conda-forge
libsqlite 3.47.2 h67fdade_0 conda-forge
libssh2 1.11.1 he619c9f_0 conda-forge
libxml2 2.13.5 he286e8c_1 conda-forge
libzip 1.11.2 h3135430_0 conda-forge
libzlib 1.3.1 h2466b09_2 conda-forge
lz4-c 1.10.0 h2466b09_1 conda-forge
mkl 2023.1.0 h6b88ed4_46358
mkl-service 2.4.0 py38h2bbff1b_1
mkl_fft 1.3.8 py38h2bbff1b_0
mkl_random 1.2.4 py38h59b6b97_0
numexpr 2.8.4 py38h7b80656_1
numpy 1.24.4 pypi_0 pypi
numpy-base 1.24.3 py38h8a87ada_1
openssl 3.4.0 h2466b09_0 conda-forge
packaging 24.2 pypi_0 pypi
pandas 2.0.3 py38h4ed8f06_0
pip 24.2 py38haa95532_0
pycparser 2.21 pyhd3eb1b0_0
python 3.8.20 hfaddaf0_2_cpython conda-forge
python-dateutil 2.9.0post0 py38haa95532_2
python-eccodes 1.7.1 py38haf47d59_0 conda-forge
python-tzdata 2023.3 pyhd3eb1b0_0
python_abi 3.8 5_cp38 conda-forge
pytz 2024.2 pypi_0 pypi
setuptools 75.1.0 py38haa95532_0
six 1.17.0 pypi_0 pypi
snappy 1.2.1 h500f7fa_1 conda-forge
sqlite 3.45.3 h2bbff1b_0
tbb 2021.8.0 h59b6b97_0
tk 8.6.13 h5226925_1 conda-forge
tzdata 2024.2 pypi_0 pypi
ucrt 10.0.22621.0 h57928b3_1 conda-forge
vc 14.40 haa95532_2
vc14_runtime 14.42.34433 he29a5d6_23 conda-forge
vs2015_runtime 14.42.34433 hdffcdeb_23 conda-forge
wheel 0.44.0 py38haa95532_0
xarray 2023.1.0 pypi_0 pypi
xz 5.6.3 h208afaa_1 conda-forge
xz-tools 5.6.3 h2466b09_1 conda-forge
zlib 1.3.1 h2466b09_2 conda-forge
zstd 1.5.6 h0ea2cb4_0 conda-forge
(grib2s1) PS C:\Users\17745> pip list
Package Version
--------------- -----------
attrs 24.2.0
Bottleneck 1.3.7
cffi 1.17.1
cfgrib 0.9.14.1
click 8.1.7
colorama 0.4.6
eccodes 1.7.1
findlibs 0.0.5
mkl-fft 1.3.8
mkl-random 1.2.4
mkl-service 2.4.0
numexpr 2.8.4
numpy 1.24.3
packaging 24.1
pandas 2.0.3
pip 24.2
pycparser 2.21
python-dateutil 2.9.0.post0
pytz 2024.1
setuptools 75.1.0
six 1.16.0
tzdata 2023.3
wheel 0.44.0
xarray 2022.11.0
以上主要参考的帖子: