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