id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 263403430,MDU6SXNzdWUyNjM0MDM0MzA=,1613,Should sel with slice objects care about underlying coordinate order?,25015426,open,0,,,22,2017-10-06T10:35:29Z,2023-10-23T18:50:54Z,,CONTRIBUTOR,,,,"If I have a xarray DataArray, that has x-coordinates in descending order, and I try to crop the DataArray using `da.sel(x=slice(10,50))`, it gives me empty DataArray. If I use `da.sel(x=slice(50,10))`, it finds everything it is supposed to find. I think it would be useful to be able to use this feature without knowing the exact order of the DataArray. Is this intentional? ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1613/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 278453914,MDU6SXNzdWUyNzg0NTM5MTQ=,1755,Is there a reason for why DataArray.swap_dims() cannot be done in place like Dataset.swap_dims?,25015426,closed,0,,,8,2017-12-01T12:37:39Z,2017-12-02T20:09:17Z,2017-12-02T10:13:39Z,CONTRIBUTOR,,,,"#### Problem description This is a problem if I want to swap_dims in DataArray Accessor. #### Code Sample This is what I'm forced to do: ```python import xarray as xr import numpy as np @xr.register_dataarray_accessor('testing') class TestAccessor(object): def __init__(self, xarray_obj): self._obj = xarray_obj def the_problem(self): self._obj = self._obj.swap_dims({'x':'x2'}) print(self._obj) arr = np.random.rand(4,3,2) cube = xr.DataArray(arr, dims=['ya', 'x', 'y'], coords={'y':[1,3], 'ya':[1,2,3,6], 'x':[1,2,5]}) cube.coords['x2'] = ('x', [1,2,3]) cube.testing.the_problem() print(cube) ``` this prints: ``` array([[[ 0.659583, 0.167555], [ 0.357974, 0.46081 ], [ 0.85115 , 0.845257]], [[ 0.280308, 0.777399], [ 0.512527, 0.542036], [ 0.838603, 0.799414]], [[ 0.572031, 0.350464], [ 0.205219, 0.812232], [ 0.687778, 0.984928]], [[ 0.803385, 0.63981 ], [ 0.089909, 0.499857], [ 0.25266 , 0.967909]]]) Coordinates: * y (y) int32 1 3 * ya (ya) int32 1 2 3 6 x (x2) int32 1 2 5 * x2 (x2) int32 1 2 3 array([[[ 0.659583, 0.167555], [ 0.357974, 0.46081 ], [ 0.85115 , 0.845257]], [[ 0.280308, 0.777399], [ 0.512527, 0.542036], [ 0.838603, 0.799414]], [[ 0.572031, 0.350464], [ 0.205219, 0.812232], [ 0.687778, 0.984928]], [[ 0.803385, 0.63981 ], [ 0.089909, 0.499857], [ 0.25266 , 0.967909]]]) Coordinates: * y (y) int32 1 3 * ya (ya) int32 1 2 3 6 * x (x) int32 1 2 5 x2 (x) int32 1 2 3 ``` where the two xarrays are clearly different. I would want to do: ```python import xarray as xr import numpy as np @xr.register_dataarray_accessor('testing') class TestAccessor(object): def __init__(self, xarray_obj): self._obj = xarray_obj def the_problem(self): self._obj.swap_dims({'x':'x2'}, inplace = True) print(self._obj) arr = np.random.rand(4,3,2) cube = xr.DataArray(arr, dims=['ya', 'x', 'y'], coords={'y':[1,3], 'ya':[1,2,3,6], 'x':[1,2,5]}) cube.coords['x2'] = ('x', [1,2,3]) cube.testing.the_problem() print(cube) ``` this would keep the two xarrays the same, as they should be: ``` array([[[ 0.659583, 0.167555], [ 0.357974, 0.46081 ], [ 0.85115 , 0.845257]], [[ 0.280308, 0.777399], [ 0.512527, 0.542036], [ 0.838603, 0.799414]], [[ 0.572031, 0.350464], [ 0.205219, 0.812232], [ 0.687778, 0.984928]], [[ 0.803385, 0.63981 ], [ 0.089909, 0.499857], [ 0.25266 , 0.967909]]]) Coordinates: * y (y) int32 1 3 * ya (ya) int32 1 2 3 6 x (x2) int32 1 2 5 * x2 (x2) int32 1 2 3 array([[[ 0.659583, 0.167555], [ 0.357974, 0.46081 ], [ 0.85115 , 0.845257]], [[ 0.280308, 0.777399], [ 0.512527, 0.542036], [ 0.838603, 0.799414]], [[ 0.572031, 0.350464], [ 0.205219, 0.812232], [ 0.687778, 0.984928]], [[ 0.803385, 0.63981 ], [ 0.089909, 0.499857], [ 0.25266 , 0.967909]]]) Coordinates: * y (y) int32 1 3 * ya (ya) int32 1 2 3 6 x (x2) int32 1 2 5 * x2 (x2) int32 1 2 3 ``` I have version 0.10.0, the newest on conda-forge. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1755/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 252541192,MDU6SXNzdWUyNTI1NDExOTI=,1520,Rasterio CRS-attribute can be None,25015426,closed,0,,,1,2017-08-24T09:29:04Z,2017-09-01T17:58:42Z,2017-09-01T17:58:42Z,CONTRIBUTOR,,,,"[open_rasterio](https://github.com/pydata/xarray/blob/b201ff784a9c74dbed3b0b178b01bbea75ae9c85/xarray/backends/rasterio_.py) does not work when rasterio crs is None. It is also clearly visible from the code that this is the case: Here's the code from line 144 onward ```python attrs = {}` if hasattr(riods, 'crs'): # CRS is a dict-like object specific to rasterio # We convert it back to a PROJ4 string using rasterio itself attrs['crs'] = riods.crs.to_string() if hasattr(riods, 'res'): # (width, height) tuple of pixels in units of CRS attrs['res'] = riods.res if hasattr(riods, 'is_tiled'): # Is the TIF tiled? (bool) # We cast it to an int for netCDF compatibility attrs['is_tiled'] = np.uint8(riods.is_tiled) if hasattr(riods, 'transform'): # Affine transformation matrix (tuple of floats) # Describes coefficients mapping pixel coordinates to CRS attrs['transform'] = tuple(riods.transform)` ``` I have version 1.0a9 for rasterio and 0.9.6 for xarray. For what I looked, the issue [#1466](https://github.com/pydata/xarray/issues/1466) is related, but not same issue. CRS is None when I read ENVI-dataset that has no georeferencing with rasterio.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1520/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue