Source code for stonesoup.types.update

# -*- coding: utf-8 -*-
from typing import Sequence

from .base import Type
from .hypothesis import Hypothesis, CompositeHypothesis
from .mixture import GaussianMixture
from .state import CreatableFromState, CompositeState
from .state import State, GaussianState, ParticleState, SqrtGaussianState, \
    InformationState, CategoricalState
from ..base import Property

[docs]class Update(Type, CreatableFromState): """ Update type The base update class. Updates are returned by :class:'~.Updater' objects and contain the information that was used to perform the updating""" hypothesis: Hypothesis = Property(doc="Hypothesis used for updating")
[docs]class StateUpdate(Update, State): """ StateUpdate type Most simple state update type, where everything only has time and a state vector. Requires a prior state that was updated, and the hypothesis used to update the prior. """
[docs]class GaussianStateUpdate(Update, GaussianState): """ GaussianStateUpdate type This is a simple Gaussian state update object, which, as the name suggests, is described by a Gaussian distribution. """
[docs]class SqrtGaussianStateUpdate(Update, SqrtGaussianState): """ SqrtGaussianStateUpdate type This is equivalent to a Gaussian state update object, but with the covariance of the Gaussian distribution stored in matrix square root form. """
[docs]class GaussianMixtureUpdate(Update, GaussianMixture): """ GaussianMixtureUpdate type This is a Gaussian mixture update object, which, as the name suggests, is described by a Gaussian mixture. """
[docs]class ParticleStateUpdate(Update, ParticleState): """ParticleStateUpdate type This is a simple Particle state update object. """
[docs]class InformationStateUpdate(Update, InformationState): """ InformationUpdate type This is a simple Information state update object, which, as the name suggests, is described by a precision matrix and its corresponding state vector. """
[docs]class CategoricalStateUpdate(Update, CategoricalState): """Categorical state prediction type"""
[docs]class CompositeUpdate(Update, CompositeState): """Composite update type Composition of :class:`~.Update`. """ sub_states: Sequence[Update] = Property( doc="Sequence of sub-updates comprising the composite update. All sub-updates must have " "matching timestamp. Must not be empty.") hypothesis: CompositeHypothesis = Property(doc="Hypothesis used for updating")