-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Coordinate promotion workaround broken #6607
Comments
this is a known issue, and one that we'd like to clean up (see #4825 for discussion). The short answer is that you should use ds.swap_dims({"x": "lon"}) |
@shoyer This was the regression I ran in to. We could raise an error asking the user to switch to
makes |
This seems like a good idea In the long term, we like to decouple indexes from coordinate, and make something like the following work:
|
Shouldn't we raise a warning instead? There may be relevant use cases like the example above (at least in the long term) where an index is not really needed? |
seems like this allows things to work possibly relevant: pydata/xarray#6607
What happened?
Ok so this one is a bit weird. I'm not sure this is a bug, but code that worked before doesn't anymore, so it is some sort of regression.
I have a dataset with one dimension and one coordinate along that one, but they have different names. I want to transform this so that the coordinate name becomes the dimension name so it becomes are proper dimension-coordinate (I don't know how to call it). After renaming the dim to the coord's name, it all looks good in the repr, but the coord still is missing an
index
for that dimension (crd.indexes
is empty, see MCVE). There was a workaround throughreset_coords
for this, but it doesn't work anymore.Instead, the last line of the MCVE downgrades the variable, the final
lon
doesn't have coords anymore.What did you expect to happen?
In the MCVE below, I show what the old "workaround" was. I expected
lon.indexes
to contain the indexeslon
at the end of the procedure.Minimal Complete Verifiable Example
MVCE confirmation
Relevant log output
No response
Anything else we need to know?
My guess is that this line is causing
reset_coords
to drop the coordinate from itself :xarray/xarray/core/dataarray.py
Line 866 in c34ef8a
It would be nice if the renaming was sufficient for the indexes to appear.
My example is weird I know. The real use case is a script where we receive a 2d coordinate but where all lines are the same, so we take the first line and promote it to a proper coord-dim. But the current code fails on the master on the
lon - lon.diff('lon')
step that happens afterwards.Environment
INSTALLED VERSIONS
commit: None
python: 3.9.12 | packaged by conda-forge | (main, Mar 24 2022, 23:22:55)
[GCC 10.3.0]
python-bits: 64
OS: Linux
OS-release: 5.13.19-2-MANJARO
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: fr_CA.UTF-8
LOCALE: ('fr_CA', 'UTF-8')
libhdf5: None
libnetcdf: None
xarray: 2022.3.1.dev104+gc34ef8a6
pandas: 1.4.2
numpy: 1.22.2
scipy: 1.8.0
netCDF4: None
pydap: installed
h5netcdf: None
h5py: None
Nio: None
zarr: None
cftime: 1.5.2
nc_time_axis: None
PseudoNetCDF: None
rasterio: None
cfgrib: None
iris: None
bottleneck: None
dask: 2022.02.1
distributed: 2022.2.1
matplotlib: None
cartopy: None
seaborn: None
numbagg: None
fsspec: 2022.3.0
cupy: None
pint: None
sparse: 0.13.0
setuptools: 59.8.0
pip: 22.0.3
conda: None
pytest: 7.0.1
IPython: 8.3.0
sphinx: None
The text was updated successfully, but these errors were encountered: