xarray.DataArray.resample

DataArray.resample(indexer=None, skipna=None, closed=None, label=None, base=0, keep_attrs=None, loffset=None, restore_coord_dims=None, **indexer_kwargs)[source]

Returns a Resample object for performing resampling operations.

Handles both downsampling and upsampling. The resampled dimension must be a datetime-like coordinate. If any intervals contain no values from the original object, they will be given the value NaN.

Parameters
  • indexer ({dim: freq}, optional) – Mapping from the dimension name to resample frequency 1. The dimension must be datetime-like.

  • skipna (bool, optional) – Whether to skip missing values when aggregating in downsampling.

  • closed ({"left", "right"}, optional) – Side of each interval to treat as closed.

  • label ({"left", "right"}, optional) – Side of each interval to use for labeling.

  • base (int, optional) – For frequencies that evenly subdivide 1 day, the “origin” of the aggregated intervals. For example, for “24H” frequency, base could range from 0 through 23.

  • loffset (timedelta or str, optional) – Offset used to adjust the resampled time labels. Some pandas date offset strings are supported.

  • keep_attrs (bool, optional) – If True, the object’s attributes (attrs) will be copied from the original object to the new one. If False (default), the new object will be returned without attributes.

  • restore_coord_dims (bool, optional) – If True, also restore the dimension order of multi-dimensional coordinates.

  • **indexer_kwargs ({dim: freq}) – The keyword arguments form of indexer. One of indexer or indexer_kwargs must be provided.

Returns

resampled (same type as caller) – This object resampled.

Examples

Downsample monthly time-series data to seasonal data:

>>> 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-11-15
>>> da.resample(time="QS-DEC").mean()
<xarray.DataArray (time: 4)>
array([ 1.,  4.,  7., 10.])
Coordinates:
  * time     (time) datetime64[ns] 1999-12-01 2000-03-01 2000-06-01 2000-09-01

Upsample monthly time-series data to daily data:

>>> da.resample(time="1D").interpolate("linear")  # +doctest: ELLIPSIS
<xarray.DataArray (time: 337)>
array([ 0.        ,  0.03225806,  0.06451613,  0.09677419,  0.12903226,
        0.16129032,  0.19354839,  0.22580645,  0.25806452,  0.29032258,
        0.32258065,  0.35483871,  0.38709677,  0.41935484,  0.4516129 ,
...
       10.80645161, 10.83870968, 10.87096774, 10.90322581, 10.93548387,
       10.96774194, 11.        ])
Coordinates:
  * time     (time) datetime64[ns] 1999-12-15 1999-12-16 ... 2000-11-15

Limit scope of upsampling method

>>> da.resample(time="1D").nearest(tolerance="1D")
<xarray.DataArray (time: 337)>
array([ 0.,  0., nan, ..., nan, 11., 11.])
Coordinates:
  * time     (time) datetime64[ns] 1999-12-15 1999-12-16 ... 2000-11-15

References

1

http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases