Closed
Description
What happened:
When I open()
a netCDF4 file and pass the file object to xr.open_dataset
with engine='scipy'
xarray silently ignores the value of the engine
keyword and opens the file with h5netcdf
. When opening an netCDF3 file with engine='h5netcdf'
the scipy
engine is used instead without warning.
What you expected to happen:
Silent autodetection of the engine is fine when passing engine=None
, but it is very surprising when passing a value explicitly. I would have expected an exception or at least a warning.
Minimal Complete Verifiable Example:
>>> xr.open_dataset('netCDF4.nc', engine='scipy')
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
[...]
TypeError: Error: netCDF4.nc is not a valid NetCDF 3 file
If this is a NetCDF4 file, you may need to install the
netcdf4 library, e.g.,
$ pip install netcdf4
>>> fp = open('netCDF4.nc')
>>> xr.open_dataset(fp, engine='scipy')
<xarray.Dataset>
Dimensions: (line: 41587, pixel: 17751)
Coordinates:
* line (line) int64 0 1 2 3 4 5 ... 41582 41583 41584 41585 41586
* pixel (pixel) int64 0 1 2 3 4 5 ... 17746 17747 17748 17749 17750
Data variables:
phase (line, pixel) float32 ...
Attributes:
Conventions: CF-1.7
[...]