xarray.Dataset.coarsen

Dataset.coarsen(self, dim: Mapping[Hashable, int] = None, boundary: str = 'exact', side: Union[str, Mapping[Hashable, str]] = 'left', coord_func: str = 'mean', **window_kwargs: int)

Coarsen object.

Parameters
  • dim (dict, optional) –

    Mapping from the dimension name to the window size. dim : str

    Name of the dimension to create the rolling iterator along (e.g., time).

    windowint

    Size of the moving window.

  • boundary ('exact' | 'trim' | 'pad') – If ‘exact’, a ValueError will be raised if dimension size is not a multiple of the window size. If ‘trim’, the excess entries are dropped. If ‘pad’, NA will be padded.

  • side ('left' or 'right' or mapping from dimension to 'left' or 'right') –

  • coord_func (function (name) that is applied to the coordintes,) – or a mapping from coordinate name to function (name).

Returns

  • Coarsen object (core.rolling.DataArrayCoarsen for DataArray,

  • core.rolling.DatasetCoarsen for Dataset.)

Examples

Coarsen the long time series by averaging over every four days.

>>> da = xr.DataArray(np.linspace(0, 364, num=364),
...                   dims='time',
...                   coords={'time': pd.date_range(
...                       '15/12/1999', periods=364)})
>>> da
<xarray.DataArray (time: 364)>
array([  0.      ,   1.002755,   2.00551 , ..., 361.99449 , 362.997245,
       364.      ])
Coordinates:
  * time     (time) datetime64[ns] 1999-12-15 1999-12-16 ... 2000-12-12
>>>
>>> da.coarsen(time=3, boundary='trim').mean()
<xarray.DataArray (time: 121)>
array([  1.002755,   4.011019,   7.019284,  ...,  358.986226,
       361.99449 ])
Coordinates:
  * time     (time) datetime64[ns] 1999-12-16 1999-12-19 ... 2000-12-10
>>>

See also

core.rolling.DataArrayCoarsen(), core.rolling.DatasetCoarsen()