-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Code Sample, a copy-pastable example if possible
In [1]: import dask.array as da; import xarray as xr; import numpy as np
In [2]: a = xr.DataArray(da.random.random((4, 6), chunks=2), attrs={'test': ['x1', 'y1']}, dims=('y', 'x'))
In [3]: b = xr.DataArray(da.random.random((4, 6), chunks=2), attrs={'test': ['x2', 'y2']}, dims=('y', 'x'))
In [4]: xr.concat([a, b], 'y')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-4-c8b32db4cfb7> in <module>()
----> 1 xr.concat([a, b], 'y')
~/anaconda/envs/polar2grid_py36/lib/python3.6/site-packages/xarray/core/combine.py in concat(objs, dim, data_vars, coords, compat, positions, indexers, mode, concat_over)
119 raise TypeError('can only concatenate xarray Dataset and DataArray '
120 'objects, got %s' % type(first_obj))
--> 121 return f(objs, dim, data_vars, coords, compat, positions)
122
123
~/anaconda/envs/polar2grid_py36/lib/python3.6/site-packages/xarray/core/combine.py in _dataarray_concat(arrays, dim, data_vars, coords, compat, positions)
337
338 ds = _dataset_concat(datasets, dim, data_vars, coords, compat,
--> 339 positions)
340 return arrays[0]._from_temp_dataset(ds, name)
341
~/anaconda/envs/polar2grid_py36/lib/python3.6/site-packages/xarray/core/combine.py in _dataset_concat(datasets, dim, data_vars, coords, compat, positions)
303 if k in concat_over:
304 vars = ensure_common_dims([ds.variables[k] for ds in datasets])
--> 305 combined = concat_vars(vars, dim, positions)
306 insert_result_variable(k, combined)
307
~/anaconda/envs/polar2grid_py36/lib/python3.6/site-packages/xarray/core/variable.py in concat(variables, dim, positions, shortcut)
1772 return IndexVariable.concat(variables, dim, positions, shortcut)
1773 else:
-> 1774 return Variable.concat(variables, dim, positions, shortcut)
1775
1776
~/anaconda/envs/polar2grid_py36/lib/python3.6/site-packages/xarray/core/variable.py in concat(cls, variables, dim, positions, shortcut)
1299 if var.dims != first_var.dims:
1300 raise ValueError('inconsistent dimensions')
-> 1301 utils.remove_incompatible_items(attrs, var.attrs)
1302
1303 return cls(dims, data, attrs, encoding)
~/anaconda/envs/polar2grid_py36/lib/python3.6/site-packages/xarray/core/utils.py in remove_incompatible_items(first_dict, second_dict, compat)
157 if (k not in second_dict or
158 (k in second_dict and
--> 159 not compat(first_dict[k], second_dict[k]))):
160 del first_dict[k]
161
~/anaconda/envs/polar2grid_py36/lib/python3.6/site-packages/xarray/core/utils.py in equivalent(first, second)
106 return ((first is second) or
107 (first == second) or
--> 108 (pd.isnull(first) and pd.isnull(second)))
109
110
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Problem description
If two or more DataArray
s are concatentated and they have list attributes that are not equal an exception is raised about arrays not being truth values.
Expected Output
I guess the expected result would be that the list attribute is not included in the resulting DataArray's attributes.
Output of xr.show_versions()
INSTALLED VERSIONS
commit: None
python: 3.6.4.final.0
python-bits: 64
OS: Darwin
OS-release: 17.5.0
machine: x86_64
processor: i386
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8
xarray: 0.10.1
pandas: 0.21.0
numpy: 1.13.3
scipy: 1.0.0
netCDF4: 1.3.1
h5netcdf: 0.5.0
h5py: 2.7.1
Nio: None
zarr: None
bottleneck: 1.2.1
cyordereddict: None
dask: 0.17.1
distributed: 1.21.2
matplotlib: 2.2.0
cartopy: 0.16.0
seaborn: None
setuptools: 39.0.1
pip: 9.0.1
conda: None
pytest: 3.4.0
IPython: 6.1.0
sphinx: 1.6.6
</details>