xarray.DataArray.resample

DataArray.resample(indexer: Optional[Mapping[Hashable, str]] = None, skipna=None, closed: Optional[str] = None, label: Optional[str] = None, base: int = 0, keep_attrs: Optional[bool] = None, loffset=None, restore_coord_dims: Optional[bool] = 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.

skipnabool, 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.

baseint, 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.

loffsettimedelta or str, optional

Offset used to adjust the resampled time labels. Some pandas date offset strings are supported.

keep_attrsbool, 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_dimsbool, 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
resampledsame 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 ...

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