最近在服务器上配置环境遇到了xarray读取nc数据的相关问题,折腾了一下午终于解决了,记录下来,希望帮助后来人。具体报错如下
ValueError: did not find a match in any of xarray's currently installed IO backends ['netcdf4', 'scipy', 'pydap', 'zarr']. Consider explicitly selecting one of the installed engines via the ``engine`` parameter, or installing additional IO dependencies, see:
http://xarray.pydata.org/en/stable/getting-started-guide/installing.html
http://xarray.pydata.org/en/stable/user-guide/io.html
想要解决该问题只需要两步:
【1】下载相关依赖包
可以发现已经明显提示了缺少IO backends,可到给出的网址中寻求解答。
第一行的网址是可以访问的,第二行则不行。在网址http://xarray.pydata.org/en/stable/getting-started-guide/installing.html中,推荐给user一键安装backends的代码如下
conda install -c conda-forge xarray dask netCDF4 bottleneck
在你的prompt或是powershell中运行上述代码,就可以安装相关包了。这里博主为了方便就使用了这种方法,如果想要自定义安装的话详见上述网页。
【2】调用xarray.open_dataset()的engine
如果你刚好使用默认的engine就能够运行请自动忽略这步
我是遇到了如下报错(抱歉,截图有些小了,但大致意思就是需要选择engine,图中的xr就是xarray)
因此这里依照open_dataset()函数说明
写成如下形式就可以正常读取了
xr.open_dataset('file.nc', engine='netcdf4')
###如有疑问,欢迎留言###