set_metadata#

set_metadata(naked_xda: xarray.core.dataarray.DataArray, mtd_xda: xarray.core.dataarray.DataArray, new_name=None) xarray.core.dataarray.DataArray[source]#

Set metadata from a xr.DataArray to another (including rioxarray metadata such as encoded_nodata and crs).

Useful when performing operations on xarray that result in metadata loss such as sums.

>>> # xda: some xr.DataArray
>>> sum = xda + xda  # Sum loses its metadata here
<xarray.DataArray 'xda' (band: 1, y: 322, x: 464)>
array([[[nan, nan, nan, ..., nan, nan, nan],
        [nan, nan, nan, ..., nan, nan, nan],
        [nan, nan, nan, ..., nan, nan, nan],
        ...,
        [nan, nan, nan, ...,  2., nan, nan],
        [nan, nan, nan, ...,  2., nan, nan],
        [nan, nan, nan, ...,  2., nan, nan]]])
Coordinates:
  * band         (band) int32 1
  * y            (y) float64 4.798e+06 4.798e+06 ... 4.788e+06 4.788e+06
  * x            (x) float64 5.411e+05 5.411e+05 ... 5.549e+05 5.55e+05

>>> # We need to set the metadata back (and we can set a new name)
>>> sum = set_metadata(sum, xda, new_name="sum")
<xarray.DataArray 'sum' (band: 1, y: 322, x: 464)>
array([[[nan, nan, nan, ..., nan, nan, nan],
        [nan, nan, nan, ..., nan, nan, nan],
        [nan, nan, nan, ..., nan, nan, nan],
        ...,
        [nan, nan, nan, ...,  2., nan, nan],
        [nan, nan, nan, ...,  2., nan, nan],
        [nan, nan, nan, ...,  2., nan, nan]]])
Coordinates:
  * band         (band) int32 1
  * y            (y) float64 4.798e+06 4.798e+06 ... 4.788e+06 4.788e+06
  * x            (x) float64 5.411e+05 5.411e+05 ... 5.549e+05 5.55e+05
    spatial_ref  int32 0
Attributes: (12/13)
    grid_mapping:              spatial_ref
    BandName:                  Band_1
    RepresentationType:        ATHEMATIC
    STATISTICS_COVARIANCES:    0.2358157950609785
    STATISTICS_MAXIMUM:        2
    STATISTICS_MEAN:           1.3808942647686
    ...                        ...
    STATISTICS_SKIPFACTORX:    1
    STATISTICS_SKIPFACTORY:    1
    STATISTICS_STDDEV:         0.48560665546817
    STATISTICS_VALID_PERCENT:  80.07
    original_dtype:            uint8
Parameters
  • naked_xda (xr.DataArray) – DataArray to complete

  • mtd_xda (xr.DataArray) – DataArray with the correct metadata

  • new_name (str) – New name for naked DataArray

Returns

Complete DataArray

Return type

xr.DataArray