Closed
Description
From xarray-contrib/xarray-tutorial#43 by @scottyhq:
Many notebooks out there start with the line ds = xr.tutorial.load_dataset("air_temperature")
. That now gives an error traceback with xarray>=0.18:
Traceback (most recent call last):
File "/Users/scott/GitHub/zarrdata/./create_zarr.py", line 6, in <module>
ds = xr.tutorial.load_dataset("air_temperature")
File "/Users/scott/miniconda3/envs/zarrdata/lib/python3.9/site-packages/xarray/tutorial.py", line 179, in load_dataset
with open_dataset(*args, **kwargs) as ds:
File "/Users/scott/miniconda3/envs/zarrdata/lib/python3.9/site-packages/xarray/tutorial.py", line 100, in open_dataset
ds = _open_dataset(filepath, **kws)
File "/Users/scott/miniconda3/envs/zarrdata/lib/python3.9/site-packages/xarray/backends/api.py", line 485, in open_dataset
engine = plugins.guess_engine(filename_or_obj)
File "/Users/scott/miniconda3/envs/zarrdata/lib/python3.9/site-packages/xarray/backends/plugins.py", line 112, in guess_engine
raise ValueError("cannot guess the engine, try passing one explicitly")
ValueError: cannot guess the engine, try passing one explicitly
It's an easy fix though, just add ds = xr.tutorial.load_dataset("air_temperature", engine="netcdf4")
, new users might be thrown by that though. Also a note that unless the netcdf4
library is explicitly put into the software environment, even adding the engine=netcdf4 can result in an error: "ValueError: unrecognized engine netcdf4 must be one of: ['store', 'zarr']", so I think a minimal environment definition to run would be:
name: xarray-tutorial
channels:
- conda-forge
dependencies:
- xarray=0.18
- pooch=1.3
- netcdf4=1.5
- zarr=2.8