question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Changed behavior for replacing coordinates on dataset.

See original GitHub issue

MCVE Code Sample

We noticed a change in behavior in xarray that broke a test in xgcm.

Consider this code example:

import xarray as xr
import numpy as np
x = np.arange(5)
data = xr.DataArray(np.random.rand(5), coords={'x':x
}, dims=['x'])
x_c = np.arange(5) + 0.5
data_c = xr.DataArray(np.random.rand(5), coords={'x_c':x_c
}, dims=['x_c'])
ds = xr.Dataset({'data':data, 'data_c':data_c})
del ds['data_c']

ds['x_c'] = ds['x_c'][:3]
ds

Expected Output

In previous versions of xarray this resulted in

<xarray.Dataset>
Dimensions:  (x: 5, x_c: 3)
Coordinates:
  * x_c      (x_c) float64 0.5 1.5 2.5
  * x        (x) int64 0 1 2 3 4
Data variables:
    data     (x) float64 0.3828 0.6016 0.3603 0.414 0.35

(I tested right now with an older v0.11.3 but this works with v0.13 as well.

In the current master branch instead the coordinate gets padded with nans:

<xarray.Dataset>
Dimensions:  (x: 5, x_c: 5)
Coordinates:
  * x_c      (x_c) float64 0.5 1.5 2.5 nan nan
  * x        (x) int64 0 1 2 3 4
Data variables:
    data     (x) float64 0.8369 0.4197 0.3058 0.7419 0.8126

Problem Description

We fixed the test in a new PR, but @dcherian encouraged me to submit this.

Output of xr.show_versions()

INSTALLED VERSIONS ------------------ commit: None python: 3.7.4 (default, Aug 13 2019, 15:17:50) [Clang 4.0.1 (tags/RELEASE_401/final)] python-bits: 64 OS: Darwin OS-release: 18.6.0 machine: x86_64 processor: i386 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: en_US.UTF-8 libhdf5: None libnetcdf: None

xarray: 0.13.0+24.g4254b4af pandas: 0.25.1 numpy: 1.17.2 scipy: None netCDF4: None pydap: None h5netcdf: None h5py: None Nio: None zarr: None cftime: None nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: None dask: 2.5.0 distributed: 2.5.1 matplotlib: None cartopy: None seaborn: None numbagg: None setuptools: 41.2.0 pip: 19.2.3 conda: None pytest: 5.2.0 IPython: 7.8.0 sphinx: None

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:5 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
shoyercommented, Oct 11, 2019

@jbusecke kudos to you for catching this so early, before we even made a release!

https://github.com/pydata/xarray/pull/3393 should fix the immediate issue, though it’s a pretty awkward fix.

0reactions
jbuseckecommented, Oct 11, 2019

Glad that this orphaned test (we ended up removing it, because the function was not called anymore) was still useful!

And many thanks to @dcherian for suggesting to test xgxm with the upstream master!

Sent with GitHawk

Read more comments on GitHub >

github_iconTop Results From Across the Web

Attributes of Dataset coordinates are dropped/replaced when ...
The following code shows the behaviour by adding new data variables to a Dataset using a tuple , a DataArray (dimension without coordinates), ......
Read more >
Reshaping and reorganizing data - Xarray
Reshaping and reorganizing data#. These methods allow you to reorganize your data by changing dimensions, array shape, order of values, or indexes.
Read more >
Why does assigning `xr.ones_like` to a DataSet variable ...
The short answer is that this behavior looks like a bug. Assigning variables definitely shouldn't modify existing coordinates, without some ...
Read more >
Error: One or more of the added layers has an extent that is ...
Cause. This is caused by features in the dataset that fall outside the extent of the feature class. This warning occurs if the...
Read more >
Export or convert raster datasets—ArcGIS Pro | Documentation
If you want to change the coordinate system, click the Coordinate System button Coordinate System to open the Spatial Reference dialog box.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found