Dataset format broken due to xarray bug (numpy.bool_ attrs not supported)
UPDATE:
This issue should be fixed when xarray releases a >=0.17.1.
Changes made to the data handling in !131 (merged) should be reverted at that point.
See https://github.com/pydata/xarray/issues/4981 for issue on xarray
Roundtrip of a dataset with a boolean attribute will raise:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-17-f74d2909a4a1> in <module>
6 # This should be working
7 file_name2 = "file_numpy_bool.nc"
----> 8 loaded_dset.to_netcdf(file_name2, engine="h5netcdf", invalid_netcdf=True)
9 loaded_dset2 = xr.load_dataset(file_name2, engine="h5netcdf")
10
/usr/local/anaconda3/envs/dclab/lib/python3.7/site-packages/xarray/core/dataset.py in to_netcdf(self, path, mode, format, group, engine, encoding, unlimited_dims, compute, invalid_netcdf)
1697 unlimited_dims=unlimited_dims,
1698 compute=compute,
-> 1699 invalid_netcdf=invalid_netcdf,
1700 )
1701
/usr/local/anaconda3/envs/dclab/lib/python3.7/site-packages/xarray/backends/api.py in to_netcdf(dataset, path_or_file, mode, format, group, engine, encoding, unlimited_dims, compute, multifile, invalid_netcdf)
1057 # validate Dataset keys, DataArray names, and attr keys/values
1058 _validate_dataset_names(dataset)
-> 1059 _validate_attrs(dataset)
1060
1061 try:
/usr/local/anaconda3/envs/dclab/lib/python3.7/site-packages/xarray/backends/api.py in _validate_attrs(dataset)
229 # Check attrs on the dataset itself
230 for k, v in dataset.attrs.items():
--> 231 check_attr(k, v)
232
233 # Check attrs on each variable within the dataset
/usr/local/anaconda3/envs/dclab/lib/python3.7/site-packages/xarray/backends/api.py in check_attr(name, value)
221 if not isinstance(value, (str, Number, np.ndarray, np.number, list, tuple)):
222 raise TypeError(
--> 223 f"Invalid value for attr {name!r}: {value!r} must be a number, "
224 "a string, an ndarray or a list/tuple of "
225 "numbers/strings for serialization to netCDF "
TypeError: Invalid value for attr 'my_bool_attr': True must be a number, a string, an ndarray or a list/tuple of numbers/strings for serialization to netCDF files
Edited by Victor Negîrneac