NDVar.smooth(self, dim, window_size=None, window='hamming', mode='center', window_samples=None, fix_edges=False, name=None)

Smooth data by convolving it with a window

dim : str

Dimension along which to smooth.

window_size : scalar

Size of the window (in dimension units, i.e., for time in seconds). For finite windows this is the full size of the window, for a gaussian window it is the standard deviation.

window : str | tuple

Window type, input to scipy.signal.get_window(). For example ‘boxcar’, ‘triang’, ‘hamming’ (default). For dimensions with irregular spacing, such as SourceSpace, only gaussian is implemented.

mode : ‘left’ | ‘center’ | ‘right’ | ‘full’

Alignment of the output to the input relative to the window:

  • left: sample in the output corresponds to the left edge of the window.
  • center: sample in the output corresponds to the center of the window.
  • right: sample in the output corresponds to the right edge of the window.
  • full: return the full convolution. This is only implemented for smoothing time axis.
window_samples : scalar

Size of the window in samples (this parameter is used to specify window size in array elements rather than in units of the dimension; it is mutually exclusive with window_size).

fix_edges : bool

Standard convolution smears values around the edges resulting in some data loss. The fix_edges option renormalizes the smoothing window when it overlaps an edge to make sure that x.smooth('time').sum('time') == x.sum('time'). Only implemented for mode='center').

name : str

Name for the smoothed NDVar.

smoothed_ndvar : NDVar

NDVar with identical dimensions containing the smoothed data.


To perform Gaussian smoothing with a given full width at half maximum, the standard deviation can be calculated with the following conversion:

>>> std = fwhm / (2 * (sqrt(2 * log(2))))