# cf.Field.convolution_filter¶

Field.convolution_filter(weights, axis=None, mode=None, cval=None, origin=0, update_bounds=True, inplace=False, i=False, _bounds=True)[source]

Return the field convolved along the given axis with the specified filter.

Can be used to create running means.

Parameters:
weights: sequence of numbers

Specify the window of weights to use for the filter.

Parameter example:

An unweighted 5-point moving average can be computed with weights=[0.2, 0.2, 0.2, 0.2, 02]

Note that the scipy.signal.windows package has suite of window functions for creating weights for filtering.

axis:

Select the domain axis over which the filter is to be applied, defined by that which would be selected by passing the given axis description to a call of the field construct’s domain_axis method. For example, for a value of 'X', the domain axis construct returned by f.domain_axis('X')) is selected.

mode: str, optional

The mode parameter determines how the input array is extended when the filter overlaps a border. The default value is 'constant' or, if the dimension being convolved is cyclic (as ascertained by the iscyclic method), 'wrap'. The valid values and their behaviour is as follows:

mode Description Behaviour
'reflect' The input is extended by reflecting about the edge (d c b a | a b c d | d c b a)
'constant' The input is extended by filling all values beyond the edge with the same constant value, defined by the cval parameter. (k k k k | a b c d | k k k k)
'nearest' The input is extended by replicating the last point. (a a a a | a b c d | d d d d)
'mirror' The input is extended by reflecting about the center of the last point. (d c b | a b c d | c b a)
'wrap' The input is extended by wrapping around to the opposite edge. (a b c d | a b c d | a b c d)

The position of the window can be changed by using the origin parameter.

cval: scalar, optional

Value to fill past the edges of the array if mode is 'constant'. Defaults to None, in which case the edges of the array will be filled with missing data.

Parameter example:

To extend the input by filling all values beyond the edge with zero: cval=0

origin: int, optional

Controls the placement of the filter. Defaults to 0, which is the centre of the window. If the window has an even number weights then then a value of 0 defines the index defined by width/2 -1.

Parameter example:

For a weighted moving average computed with a weights window of [0.1, 0.15, 0.5, 0.15, 0.1], if origin=0 then the average is centred on each point. If origin=-2 then the average is shifted to inclued the previous four points. If origin=1 then the average is shifted to include the previous point and the and the next three points.

update_bounds: bool, optional

If False then the bounds of a dimension coordinate construct that spans the convolved axis are not altered. By default, the bounds of a dimension coordinate construct that spans the convolved axis are updated to reflect the width and origin of the window.

inplace: bool, optional

If True then do the operation in-place and return None.

i: deprecated at version 3.0.0