xarray.DataArray.resample

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

Returns a Resample object for performing resampling operations.

Handles both downsampling and upsampling. 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.

skipna : bool, optional

Whether to skip missing values when aggregating in downsampling.

closed : ‘left’ or ‘right’, optional

Side of each interval to treat as closed.

label : ‘left or ‘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.

**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.

References

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

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-02-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')
<xarray.DataArray (time: 337)>
array([ 0.      ,  0.032258,  0.064516, ..., 10.935484, 10.967742, 11.      ])
Coordinates:
  * time     (time) datetime64[ns] 1999-12-15 1999-12-16 1999-12-17 ...