xarray.Dataset.rolling

Dataset.rolling(self, dim: Mapping[Hashable, int] = None, min_periods: int = None, center: bool = False, **window_kwargs: int)

Rolling window object.

Parameters
  • dim (dict, optional) – Mapping from the dimension name to create the rolling iterator along (e.g. time) to its moving window size.

  • min_periods (int, default None) – Minimum number of observations in window required to have a value (otherwise result is NA). The default, None, is equivalent to setting min_periods equal to the size of the window.

  • center (boolean, default False) – Set the labels at the center of the window.

  • **window_kwargs (optional) – The keyword arguments form of dim. One of dim or window_kwargs must be provided.

Returns

  • Rolling object (core.rolling.DataArrayRolling for DataArray,

  • core.rolling.DatasetRolling for Dataset.)

Examples

Create rolling seasonal average of monthly data e.g. DJF, JFM, …, SON:

>>> da = xr.DataArray(np.linspace(0, 11, num=12),
...                   coords=[pd.date_range('15/12/1999',
...                           periods=12, freq=pd.DateOffset(months=1))],
...                   dims='time')
>>> da
<xarray.DataArray (time: 12)>
array([  0.,   1.,   2.,   3.,   4.,   5.,   6.,   7., 8.,   9.,  10.,  11.])
Coordinates:
  * time     (time) datetime64[ns] 1999-12-15 2000-01-15 2000-02-15 ...
>>> da.rolling(time=3, center=True).mean()
<xarray.DataArray (time: 12)>
array([nan,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10., nan])
Coordinates:
  * time     (time) datetime64[ns] 1999-12-15 2000-01-15 2000-02-15 ...

Remove the NaNs using dropna():

>>> da.rolling(time=3, center=True).mean().dropna('time')
<xarray.DataArray (time: 10)>
array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])
Coordinates:
  * time     (time) datetime64[ns] 2000-01-15 2000-02-15 2000-03-15 ...