Hi!


Is it intended behaviour that attributes are not preserved when calling the function geo.spatial_average()? A snippet of my code:



print(data_nuts) 
print(data_nuts.attrs)

data_nuts_mean = ct.geo.spatial_average(data_nuts)

print(data_nuts_mean)
print(data_nuts_mean.attrs)


This gives me the following output:


<xarray.DataArray 'index' (time: 6, lat: 366, lon: 591, nuts_level0: 37)>
dask.array<xarray-index, shape=(6, 366, 591, 37), dtype=float32, chunksize=(6, 366, 591, 37), chunktype=numpy.ndarray>
Coordinates:
    height       float64 ...
  * lat          (lat) float64 34.6 34.7 34.8 34.9 35.0 ... 70.8 70.9 71.0 71.1
  * lon          (lon) float64 -24.1 -24.0 -23.9 -23.8 ... 34.6 34.7 34.8 34.9
  * time         (time) datetime64[ns] 2018-01-01 2019-01-01 ... 2023-01-01
  * nuts_level0  (nuts_level0) object 'ES' 'FI' 'IS' 'FR' ... 'MT' 'NL' 'NO'
Attributes:
    units:        1
    long_name:    Index
    Conventions:  CF-1.6
    source:       SIS-URBAN
    institution:  ECMWF
    comment:      General index variable for flag/index type data

{'Conventions': 'CF-1.6', 'comment': 'General index variable for flag/index type data', 'institution': 'ECMWF', 'long_name': 'Index', 'source': 'SIS-URBAN', 'units': '1'}

<xarray.DataArray 'data' (time: 6, nuts_level0: 37)>
dask.array<xarray-data, shape=(6, 37), dtype=float64, chunksize=(6, 37), chunktype=numpy.ndarray>
Coordinates:
height float64 ...
* time (time) datetime64[ns] 2018-01-01 2019-01-01 ... 2023-01-01
* nuts_level0 (nuts_level0) object 'ES' 'FI' 'IS' 'FR' ... 'MT' 'NL' 'NO'

{}


This gave me no joy later in my script where I was trying to plot some data, as the attribute 'units' had disappeared, and I had to figure out where this had happened - it was in this step.


Thanks

Rutger