Description
The Problem
When I have two DataArrays and I use a standard operation ( +, - ,*, /
) the attributes vanish. I think that should not be the case. Even when using as suggested the set_options
import numpy as np
import xarray as xr
a = xr.DataArray(np.random.randn(3,3), dims=('x','y'), name='temp', attrs={'units':'K'})
b = xr.DataArray(np.random.randn(3,3), dims=('x','y'), name='temp', attrs={'units':'K'})
print(a)
<xarray.DataArray 'temp' (x: 3, y: 3)>
array([[ 1.207407, -1.9429 , 3.168454],
[-0.773912, -0.121835, -0.139538],
[ 1.823002, 0.185846, 0.53569 ]])
Dimensions without coordinates: x, y
Attributes:
units: K
print(a-b)
<xarray.DataArray 'temp' (x: 3, y: 3)>
array([[ 1.280892, -1.097781, 2.150318],
[-0.208202, -0.03856 , 0.805856],
[ 2.192506, 1.049181, 2.277078]])
Dimensions without coordinates: x, y
with xr.set_options(keep_attrs=True):
print(a-b)
<xarray.DataArray 'temp' (x: 3, y: 3)>
array([[ 1.280892, -1.097781, 2.150318],
[-0.208202, -0.03856 , 0.805856],
[ 2.192506, 1.049181, 2.277078]])
Dimensions without coordinates: x, y
Problem description
Attributes vanish when a normal operation is applied!
From docs of set_options:
keep_attrs
: rule for whether to keep attributes on xarray
Datasets/dataarrays after operations. Either True
to always keep
attrs, False
to always discard them, or 'default'
to use original
logic that attrs should only be kept in unambiguous circumstances.
Default: 'default'
.
Expected Output
The Attributes should remain. Maybe keep only attributes from the left Array ?
Please adjust or advise me.
Output of xr.show_versions()
xarray: 0.11.0
pandas: 0.23.4
numpy: 1.15.4
scipy: 1.1.0
netCDF4: 1.4.2
h5netcdf: None
h5py: 2.8.0
Nio: None
zarr: None
cftime: 1.0.2.1
PseudonetCDF: None
rasterio: None
iris: None
bottleneck: 1.2.1
cyordereddict: None
dask: 0.20.2
distributed: 1.24.2
matplotlib: 3.0.1
cartopy: 0.16.0
seaborn: 0.9.0
setuptools: 40.6.2
pip: 18.1
conda: 4.5.11
pytest: 4.0.0
IPython: 7.1.1
sphinx: 1.8.2
``