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/2028#issuecomment-1422518769,https://api.github.com/repos/pydata/xarray/issues/2028,1422518769,IC_kwDOAMm_X85Uyenx,4160723,2023-02-08T12:29:27Z,2023-02-08T12:41:00Z,MEMBER,"@gewitterblitz there is a kdtree-based index example in #7041 that works with multi-dimensional coordinates. You could also have a look at https://xoak.readthedocs.io/en/latest/ (it doesn't use Xarray indexes - soon hopefully - so the current API is via Xarray accessors). EDIT: seeing your previous https://github.com/pydata/xarray/issues/2028#issuecomment-921926536, not sure how you could use slices for label selection using those indexes as I don't think the wrapped scipy / sklearn kdtree objects support range queries. Other spatial indexes may support it (e.g., there's an example in https://github.com/martinfleis/xvec of selecting points using a `shapely.box`, although currently it only supports 1-d geometry coordinates).","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-1421222703,https://api.github.com/repos/pydata/xarray/issues/2028,1421222703,IC_kwDOAMm_X85UtiMv,4160723,2023-02-07T18:01:39Z,2023-02-07T18:01:39Z,MEMBER,"@aberges-grd If your non-index coordinate supports it (I guess it does?), you could assign a default index to the coordinate with `set_xindex` and then use slices for selection like any other (dimension) coordinate backed by a pandas index.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-1265252754,https://api.github.com/repos/pydata/xarray/issues/2028,1265252754,IC_kwDOAMm_X85LajmS,4160723,2022-10-03T10:38:57Z,2022-10-03T16:45:35Z,MEMBER,"With the last release v2022.09.0, this is now possible via `.set_xindex()`: ```python a = a.set_xindex(""currency"") a.sel(currency=""EUR"") # <xarray.DataArray (country: 2)> # array([20, 30]) # Coordinates: # * country (country) <U7 'Germany' 'France' # * currency (country) <U3 'EUR' 'EUR' ``` Closed in #6971 (although `set_xindex` still needs to be documented in the User Guide).","{""total_count"": 9, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 5, ""confused"": 0, ""heart"": 3, ""rocket"": 1, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-1202467717,https://api.github.com/repos/pydata/xarray/issues/2028,1202467717,IC_kwDOAMm_X85HrDOF,4160723,2022-08-02T12:48:47Z,2022-08-02T12:49:37Z,MEMBER,"Hi @covertg, as soon as there is public API for setting non-dimension or custom indexes it should be ready. See #6849, which is actually already implemented in the `scipy22` branch (+ an example [here](https://github.com/pydata/xarray/discussions/6783#discussioncomment-3149904)). I plan to re-submit it as a proper PR within the few coming weeks.","{""total_count"": 2, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 2, ""rocket"": 0, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-923098243,https://api.github.com/repos/pydata/xarray/issues/2028,923098243,IC_kwDOAMm_X843BVyD,2448579,2021-09-20T16:46:28Z,2021-09-20T16:46:28Z,MEMBER,"xoak should work here: https://xoak.readthedocs.io/en/latest/ Here's an example with ocean model output: https://pop-tools.readthedocs.io/en/latest/examples/xoak-example.html . If you can wait a while, this will all work better once #5692 is merged.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-614031935,https://api.github.com/repos/pydata/xarray/issues/2028,614031935,MDEyOklzc3VlQ29tbWVudDYxNDAzMTkzNQ==,2448579,2020-04-15T13:12:50Z,2020-04-15T13:12:50Z,MEMBER,#3925 would fix this for 1D non-dim coords. We should update the docs (ping @TomNicholas),"{""total_count"": 4, ""+1"": 4, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-592475338,https://api.github.com/repos/pydata/xarray/issues/2028,592475338,MDEyOklzc3VlQ29tbWVudDU5MjQ3NTMzOA==,6213168,2020-02-28T11:35:04Z,2020-02-28T11:35:04Z,MEMBER,Still relevant,"{""total_count"": 8, ""+1"": 8, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-377318151,https://api.github.com/repos/pydata/xarray/issues/2028,377318151,MDEyOklzc3VlQ29tbWVudDM3NzMxODE1MQ==,1217238,2018-03-29T17:51:27Z,2018-03-29T17:51:27Z,MEMBER,"@maxim-lian Probably. Or you could make the `pandas.Index` explicitly, e.g., `da.sel(a=da.c.to_index().get_indexer(['x', 'y']))`. We should really add `DataArray.isin()` (https://github.com/pydata/xarray/issues/1268).","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-377316057,https://api.github.com/repos/pydata/xarray/issues/2028,377316057,MDEyOklzc3VlQ29tbWVudDM3NzMxNjA1Nw==,5635139,2018-03-29T17:44:11Z,2018-03-29T17:44:11Z,MEMBER,"What's the easiest way to select on multiple values? Is it really this: ```python In [63]: da = xr.DataArray(np.random.rand(3,2), dims=list('ab'), coords={'c':(('a',),list('xyz'))}) In [64]: da.sel(a=(np.isin(da.c, list('xy')))) Out[64]: <xarray.DataArray (a: 2, b: 2)> array([[0.383989, 0.174317], [0.698948, 0.815993]]) Coordinates: c (a) <U1 'x' 'y' Dimensions without coordinates: a, b ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-377311481,https://api.github.com/repos/pydata/xarray/issues/2028,377311481,MDEyOklzc3VlQ29tbWVudDM3NzMxMTQ4MQ==,1217238,2018-03-29T17:28:58Z,2018-03-29T17:28:58Z,MEMBER,This has some connections to the broader indexes refactor envisioned in https://github.com/pydata/xarray/issues/1603.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-377311169,https://api.github.com/repos/pydata/xarray/issues/2028,377311169,MDEyOklzc3VlQ29tbWVudDM3NzMxMTE2OQ==,1217238,2018-03-29T17:28:14Z,2018-03-29T17:28:14Z,MEMBER,"we're discussed this before: https://github.com/pydata/xarray/issues/934 I agree that this would be nice to support in theory. The challenge is that we would need to create (and then possibly throw away?) a pandas.Index do to the actual indexing, or use a numpy search function like `np.isin()`. Neither of these are very efficient. Conceptually, I think it makes sense to support indexing on arbitrary variables, which is simply more expensive if an index is not already set. Dimension coordinates would not be special except that they have indexes created automatically.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,309691307 https://github.com/pydata/xarray/issues/2028#issuecomment-377306186,https://api.github.com/repos/pydata/xarray/issues/2028,377306186,MDEyOklzc3VlQ29tbWVudDM3NzMwNjE4Ng==,5635139,2018-03-29T17:12:21Z,2018-03-29T17:12:21Z,MEMBER,"I agree this is harder that it should be. Here's one way: ```python In [28]: a.where(a.currency=='EUR', drop=True) Out[28]: <xarray.DataArray (country: 2)> array([20., 30.]) Coordinates: * country (country) <U7 'Germany' 'France' currency (country) <U3 'EUR' 'EUR' ``` I'm not sure whether `.sel` should work for non-`IndexVariables` - thoughts?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,309691307