You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Feature request for multiple tolerance values when using nearest method and sel() #3223
importxarrayasxrimportnumpyasnpimportpandasaspd# Create test datads=xr.Dataset()
ds.coords['lon'] =np.arange(-120,-60)
ds.coords['lat'] =np.arange(30,50)
ds.coords['time'] =pd.date_range('2018-01-01','2018-01-30')
ds['AirTemp'] =xr.DataArray(np.ones((ds.lat.size,ds.lon.size,ds.time.size)), dims=['lat','lon','time'])
target_lat= [36.83]
target_lon= [-110]
target_time= [np.datetime64('2019-06-01')]
# Nearest pulls a date too far awayds.sel(lat=target_lat, lon=target_lon, time=target_time, method='nearest')
# Adding tolerance for lat long, but also applied to timeds.sel(lat=target_lat, lon=target_lon, time=target_time, method='nearest', tolerance=0.5)
# Ideally tolerance could accept a dictionary but currently failsds.sel(lat=target_lat, lon=target_lon, time=target_time, method='nearest', tolerance={'lat':0.5, 'lon':0.5, 'time':np.timedelta64(1,'D')})
Expected Output
A dataset with nearest values to tolerances on each dim.
Problem Description
I would like to add the ability of tolerance to accept a dictionary for multiple tolerance values for different dimensions. Before I try implementing it, I wanted to 1) check it doesn't already exist or someone isn't working on it, and 2) get suggestions for how to proceed.
We could potentially do this, and your suggested API looks sane.
But before we start, are you sure we need it? Would it suffice to index multiple times instead? I guess a motivating use-case could be point-wise indexing in a multi-dimensional dataset, e.g., to pull out lat/lon/time values matching a list of points.
As part of the ongoing explicit / flexible indexes refactoring, we'll probably need a more general solution to pass any selection option to the corresponding indexes.
Is there an update on this? I have a similar issue with lat, lon, time dimensions. I'm looking into the sel documentation and do not clearly see an option to specify independent thresholds for each of the dimensions.
Activity
shoyer commentedon Aug 16, 2019
We could potentially do this, and your suggested API looks sane.
But before we start, are you sure we need it? Would it suffice to index multiple times instead? I guess a motivating use-case could be point-wise indexing in a multi-dimensional dataset, e.g., to pull out lat/lon/time values matching a list of points.
stale commentedon Jul 21, 2021
In order to maintain a list of currently relevant issues, we mark issues as stale after a period of inactivity
If this issue remains relevant, please comment here or remove the
stalelabel; otherwise it will be marked as closed automaticallybenbovy commentedon Jul 30, 2021
This is still relevant.
As part of the ongoing explicit / flexible indexes refactoring, we'll probably need a more general solution to pass any selection option to the corresponding indexes.
jenseva commentedon Apr 29, 2024
Is there an update on this? I have a similar issue with lat, lon, time dimensions. I'm looking into the sel documentation and do not clearly see an option to specify independent thresholds for each of the dimensions.