saftig.filtering.common¶
Shared functionality for all other modules
Attributes¶
Classes¶
common interface definition for Filter implementations |
Functions¶
add a dimension to 1D arrays and leave 2D arrays as they are |
|
|
A decorator for the init functions of classes derived from FilterBase |
Module Contents¶
- saftig.filtering.common.FilterTypeT¶
- saftig.filtering.common.make_2d_array(A)¶
add a dimension to 1D arrays and leave 2D arrays as they are This is intended to allow 1D array input for single channel application
- Parameters:
A (collections.abc.Sequence | collections.abc.Sequence[collections.abc.Sequence] | numpy.typing.NDArray) – input array
- Returns:
exteneded array
- Raises:
ValueError if the input shape is not compatible
- Return type:
numpy.typing.NDArray
>>> make_2d_array([1, 2]) array([[1, 2]])
>>> make_2d_array([[1, 2], [3, 4]]) array([[1, 2], [3, 4]])
- saftig.filtering.common.handle_from_dict(init_func)¶
A decorator for the init functions of classes derived from FilterBase
If the _from_dict keyword argument is passed, the __init__() function is ignored and the class is initialized based on the passed dictionary. Otherwise, the constructor is called the usual way.
- class saftig.filtering.common.FilterBase(n_filter, idx_target, n_channel=1)¶
common interface definition for Filter implementations
- Parameters:
n_filter (int) – Length of the FIR filter (how many samples are in the input window per output sample)
idx_target (int) – Position of the prediction
n_channel (int) – Number of witness sensor channels
- requires_apply_target: bool¶
- n_filter: int¶
- n_channel: int¶
- idx_target: int¶
- filter_name: str¶
- static supports_saving_loading()¶
Indicates whether saving and loading is supported Due to the way dataclasses work with inheritance, class values with default values don’t work in the parent dataclass. Thus, this is a function
- abstract condition(witness, target)¶
Use an input dataset to condition the filter
- Parameters:
witness (collections.abc.Sequence | collections.abc.Sequence[collections.abc.Sequence]) – Witness sensor data
target (collections.abc.Sequence) – Target sensor data
- Return type:
None
- abstract apply(witness, target, pad=True, update_state=False)¶
Apply the filter to input data
- Parameters:
witness (collections.abc.Sequence | numpy.typing.NDArray) – Witness sensor data (1D or 2D array)
target (collections.abc.Sequence | numpy.typing.NDArray) – Target sensor data (1D array)
pad (bool) – if True, apply padding zeros so that the length matches the target signal
update_state (bool) – if True, the filter state will be changed. If false, the filter state will remain
- Returns:
prediction
- Return type:
numpy.typing.NDArray
- check_data_dimensions(witness, target=None)¶
Check the dimensions of the provided input data and apply make_2d_array()
- Parameters:
witness (collections.abc.Sequence | numpy.typing.NDArray) – Witness sensor data
target (Optional[collections.abc.Sequence | numpy.typing.NDArray]) – Target sensor data
- Returns:
data as (target, witness)
- Raises:
AssertionError
- Return type:
tuple[numpy.typing.NDArray, numpy.typing.NDArray]
- as_dict()¶
Returns a dictionary that represents the state of this filter.
- Return type:
dict
- classmethod from_dict(input_dict)¶
Create a filter instance from a dictionary that was created from as_dict()
- Return type:
FilterTypeT
- classmethod _make_filename(filename)¶
- save(filename, warn_incompatible=False)¶
Save the filter state as a numpy file
The given filename will be autocompleted with a “.<filter_name>.npz” filename extension, unless a matching extension is detected.
- warn_incompatible: set to True to warn for object types might not
compatible with np.save(allow_pickle=False) during developement
- classmethod load(filename)¶
Load a filter state from the supplied filename.
The given filename will be autocompleted with a “.<filter_name>.npz” filename extension, unless a matching extension is detected.
- Return type:
FilterTypeT