html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue
https://github.com/pydata/xarray/issues/1471#issuecomment-430946620,https://api.github.com/repos/pydata/xarray/issues/1471,430946620,MDEyOklzc3VlQ29tbWVudDQzMDk0NjYyMA==,941907,2018-10-18T09:48:20Z,2018-10-18T09:48:20Z,NONE,"I indeed often resort to using a `pandas.MultiIndex`, but especially the dropping of the selected coordinate value (#1408) makes it quite inconvenient.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,241290234
https://github.com/pydata/xarray/issues/1471#issuecomment-430324391,https://api.github.com/repos/pydata/xarray/issues/1471,430324391,MDEyOklzc3VlQ29tbWVudDQzMDMyNDM5MQ==,941907,2018-10-16T17:24:42Z,2018-10-16T17:46:17Z,NONE,"I've hit this design limitation quite often as well, with several use-cases, both in experiment and simulation. It detracts from xarray's power of **conveniently** and transparently handling coordinate meta-data. From the [Why xarray?](http://xarray.pydata.org/en/stable/why-xarray.html) page:
> with xarray, you don’t need to keep track of the order of arrays dimensions or insert **dummy dimensions**
Adding effectively dummy dimensions or coordinates is essentially what this alignment design is forcing us to do.
A possible solution would be something like having (some) coordinate arrays in an (Unaligned)Dataset being a ""reducible"" (it would reduce to Index for each Datarray) MultiIndex. A workaround can be using MultiIndex coordinates directly, but then alignment cannot be done easily as levels do not behave as real dimensions.
# Use-cases examples:
## 1. coordinate ""metadata""
I often have measurements on related axes, but also with additional coordinates (different positions, etc.) Consider:
```python
import numpy as np
import xarray as xr
n1 = np.arange(1, 22)
m1 = xr.DataArray(n1*0.5, coords={'num': n1, 'B': 'r', 'ar' :'A'}, dims=['num'], name='MA')
n2 = np.arange(2, 21)
m2 = xr.DataArray(n2*0.5, coords={'num': n2, 'B': 'r', 'ar' :'B'}, dims=['num'], name='MB')
ds = xr.merge([m1, m2])
print(ds)
```
What I would like to get (pseudocode):
```python
Dimensions: (num: 21, ar:2) # <-- note that MB is still of dims {'num': 19} only
Coordinates: # <-- mostly unions as done by concat
* num (num) int64 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
B
array('A', dtype='
array('B', dtype='