Skip to content

Assign values to DataArray after interpolating Dataset produces an error #2854

@dalonsoa

Description

@dalonsoa

Code Sample, a copy-pastable example if possible

import numpy as np
import xarray as xr

da = xr.DataArray(
    np.random.random((3, 4)),
    dims=["assets", "year"],
    coords={"year": range(2010, 2018, 2)}
)

# Interpolate directly the DataArray
new_da = da.interp(year=[2011, 2015])
new_da.loc[{"year": 2015}] = 42    # WORKS!
print(new_da)

# Interpolate DataArray as part of a Dataset
dset = xr.Dataset({"my_array": da.copy()}).interp(year=[2011, 2015])
new_da = dset.my_array
new_da.loc[{"year": 2015}] = 42    # DOESN'T WORK!
print(new_da)

Problem description

Assigning a value to some locations of a DataArray after it has been interpolated raises an IndexError. This does not occur when the DataArray is interpolated independently, only occurs when the DataArray has been interpolated as part of a Dataset.

This problem is not present in xarray<0.12.0

Expected Output

The above example should print new_da in both cases, with the values corresponding to year 2015 replaced by 42. That works in the first case, but fails in the second raising IndexError.

Although I am not sure if it is the cause of this error, I have found that in the first case the array indexes are present and contain [2011, 2015], but they are an empty OrderDict in the second case.

Output of xr.show_versions()

INSTALLED VERSIONS ------------------ commit: None python: 3.7.1 (default, Nov 6 2018, 18:46:03) [Clang 10.0.0 (clang-1000.11.45.5)] python-bits: 64 OS: Darwin OS-release: 18.2.0 machine: x86_64 processor: i386 byteorder: little LC_ALL: None LANG: None LOCALE: en_GB.UTF-8 libhdf5: 1.10.2 libnetcdf: 4.4.1.1 xarray: 0.12.0 pandas: 0.23.4 numpy: 1.15.4 scipy: 1.1.0 netCDF4: 1.4.2 pydap: None h5netcdf: None h5py: None Nio: None zarr: None cftime: 1.0.3.4 nc_time_axis: None PseudonetCDF: None rasterio: None cfgrib: None iris: None bottleneck: 1.2.1 dask: None distributed: None matplotlib: 3.0.2 cartopy: None seaborn: 0.9.0 setuptools: 40.5.0 pip: 18.1 conda: None pytest: 4.0.2 IPython: 7.1.1 sphinx: None

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions