home / github / issues

Menu
  • Search all tables
  • GraphQL API

issues: 371990138

This data as json

id node_id number title user state locked assignee milestone comments created_at updated_at closed_at author_association active_lock_reason draft pull_request body reactions performed_via_github_app state_reason repo type
371990138 MDU6SXNzdWUzNzE5OTAxMzg= 2495 Confusing error message when using a set to pass coordinates 500246 closed 0     4 2018-10-19T14:48:04Z 2018-10-22T21:43:01Z 2018-10-22T20:32:48Z CONTRIBUTOR      

Code Sample, a copy-pastable example if possible

```python xarray.DataArray(numpy.arange(3), dims=("x",), coords={"x": {"a", "b", "c"}})

```

Problem description

This results in a MissingDimensionsError, which really isn't the correct exception to raise here.

``` In [57]: xarray.DataArray(numpy.arange(3), dims=("x",), coords={"x": {"a", "b", "c"}})


MissingDimensionsError Traceback (most recent call last) <ipython-input-57-6d18e1623a15> in <module>() ----> 1 xarray.DataArray(numpy.arange(3), dims=("x",), coords={"x": {"a", "b", "c"}})

/group_workspaces/cems2/fiduceo/Users/gholl/anaconda3/envs/FCDR37a/lib/python3.7/site-packages/xarray/core/dataarray.py in init(self, data, coords, dims, name, attrs, encoding, fastpath) 225 226 data = as_compatible_data(data) --> 227 coords, dims = _infer_coords_and_dims(data.shape, coords, dims) 228 variable = Variable(dims, data, attrs, encoding, fastpath=True) 229

/group_workspaces/cems2/fiduceo/Users/gholl/anaconda3/envs/FCDR37a/lib/python3.7/site-packages/xarray/core/dataarray.py in _infer_coords_and_dims(shape, coords, dims) 62 if utils.is_dict_like(coords): 63 for k, v in coords.items(): ---> 64 new_coords[k] = as_variable(v, name=k) 65 elif coords is not None: 66 for dim, coord in zip(dims, coords):

/group_workspaces/cems2/fiduceo/Users/gholl/anaconda3/envs/FCDR37a/lib/python3.7/site-packages/xarray/core/variable.py in as_variable(obj, name) 99 'cannot set variable %r with %r-dimensional data ' 100 'without explicit dimension names. Pass a tuple of ' --> 101 '(dims, data) instead.' % (name, data.ndim)) 102 obj = Variable(name, obj, fastpath=True) 103 else:

MissingDimensionsError: cannot set variable 'x' with 0-dimensional data without explicit dimension names. Pass a tuple of (dims, data) instead. ```

Expected Output

It should probably raise a TypeError, because the values of the coords mapping must be ordered, and a set is an unordered type. If there comes a day that sets are ordered like dictionaries, then it should probably accept the values as they are. In fact, an ordered set would be even more appropriate than a list or array, seeing as coordinate values should be unique :)

Output of xr.show_versions()

INSTALLED VERSIONS ------------------ commit: None python: 3.7.0.final.0 python-bits: 64 OS: Linux OS-release: 2.6.32-754.el6.x86_64 machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_GB.UTF-8 LOCALE: en_GB.UTF-8 xarray: 0.10.7 pandas: 0.23.2 numpy: 1.15.2 scipy: 1.1.0 netCDF4: 1.4.0 h5netcdf: 0.6.1 h5py: 2.8.0 Nio: None zarr: None bottleneck: 1.2.1 cyordereddict: None dask: 0.18.1 distributed: 1.22.0 matplotlib: 3.0.0 cartopy: 0.16.0 seaborn: 0.9.0 setuptools: 39.2.0 pip: 18.0 conda: None pytest: 3.2.2 IPython: 6.4.0 sphinx: None
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/2495/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed 13221727 issue

Links from other tables

  • 1 row from issues_id in issues_labels
  • 4 rows from issue in issue_comments
Powered by Datasette · Queries took 2.311ms · About: xarray-datasette