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/2795#issuecomment-709991825,https://api.github.com/repos/pydata/xarray/issues/2795,709991825,MDEyOklzc3VlQ29tbWVudDcwOTk5MTgyNQ==,38673295,2020-10-16T11:34:05Z,2020-10-16T11:34:05Z,NONE,"Hi, I also vote for this function, My typical use-case.
There is some structure in 3D space and I need to ""flatten it"" to 2D. Let us say it is axially symetric so I assign R and Z coordinate to points (or r and theta in polar). And I want to simplify this using `interp`; however, it requuires unique coordinates.
I have some solution here: https://stackoverflow.com/questions/51058379/drop-duplicate-times-in-xarray
and adapted this into actuall function:
```python
def distribure_uniform(ds, N_points=512):
ds_theta = ds.sortby(""theta"").swap_dims({""idx"": ""theta""})
_, index = np.unique(ds_theta['theta'], return_index=True)
ds_theta = ds_theta.isel(theta=index)
ds_theta = ds_theta.interp(
theta=np.linspace(ds.theta.min(), ds.theta.max(), N_points))
ds_theta = ds_theta.swap_dims({""theta"": ""idx""})
return ds_theta
```
In an idal case I would like to write something like this:
```python
def distribure_uniform(ds, N_points=512):
ds_theta= ds.unique(""theta"", sorted=False, sort=True)
ds_theta = ds_theta.swap_dims({""idx"": ""theta""})
ds_theta = ds_theta.interp(
theta=np.linspace(ds.theta.min(), ds.theta.max(), N_points))
ds_theta = ds_theta.swap_dims({""theta"": ""idx""})
return ds_theta
```
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,415774106