Models

class stonesoup.models.base.Model[source]

Bases: stonesoup.base.Base

Model type

Base/Abstract class for all models.

abstract property ndim

Number of dimensions of model

abstract function(state, noise=False)[source]

Model function

abstract rvs(num_samples=1)[source]

Model noise/sample generation method

abstract pdf(state1, state2)[source]

Model pdf/likelihood evaluator method

class stonesoup.models.base.LinearModel[source]

Bases: stonesoup.models.base.Model

LinearModel class

Base/Abstract class for all linear models

abstract matrix()[source]

Model matrix

function(state, noise=False, **kwargs)[source]

Model linear function \(f_k(x(k),w(k)) = F_k(x_k) + w_k\)

Parameters
  • state (State) – An input state

  • noise (numpy.ndarray or bool) – An externally generated random process noise sample (the default is False, in which case no noise will be added if ‘True’, the output of rvs() is added)

Returns

The updated State with the model function evaluated.

Return type

State

class stonesoup.models.base.NonLinearModel[source]

Bases: stonesoup.models.base.Model

NonLinearModel class

Base/Abstract class for all non-linear models

jacobian(state, **kwargs)[source]

Model jacobian matrix \(H_{jac}\)

Parameters

state (State) – An input state

Returns

The model jacobian matrix evaluated around the given state vector.

Return type

numpy.ndarray of shape (ndim_meas, ndim_state)

abstract function(state, noise=False, **kwargs)[source]

Model function \(f(t,x(t),w(t))\)

Parameters
  • state (State) – An input state

  • noise (numpy.ndarray or bool) – An externally generated random process noise sample (the default is False, in which case no noise will be added if ‘True’, the output of rvs() is added)

Returns

The model function evaluated.

Return type

numpy.ndarray

class stonesoup.models.base.ReversibleModel[source]

Bases: stonesoup.models.base.NonLinearModel

Non-linear model containing sufficient co-ordinate information such that the linear co-ordinate conversions can be calculated from the non-linear counterparts.

Contains an inverse function which computes the reverse of the relevant linear-to-non-linear function

abstract inverse_function(detection, **kwargs)[source]

Takes in the result of the function and computes the inverse function, returning the initial input of the function.

Parameters

detection (Detection) – Input state (non-linear format)

Returns

The linear co-ordinates

Return type

numpy.ndarray

class stonesoup.models.base.TimeVariantModel[source]

Bases: stonesoup.models.base.Model

TimeVariantModel class

Base/Abstract class for all time-variant models

class stonesoup.models.base.TimeInvariantModel[source]

Bases: stonesoup.models.base.Model

TimeInvariantModel class

Base/Abstract class for all time-invariant models

class stonesoup.models.base.GaussianModel[source]

Bases: stonesoup.models.base.Model

GaussianModel class

Base/Abstract class for all Gaussian models

rvs(num_samples=1, **kwargs)[source]

Model noise/sample generation function

Generates noise samples from the model.

In mathematical terms, this can be written as:

\[v_t \sim \mathcal{N}(0,Q)\]

where \(v_t =\) noise and \(Q\) = covar.

Parameters

num_samples (scalar, optional) – The number of samples to be generated (the default is 1)

Returns

noise – A set of Np samples, generated from the model’s noise distribution.

Return type

2-D array of shape (ndim, num_samples)

pdf(state1, state2, **kwargs)[source]

Model pdf/likelihood evaluation function

Evaluates the pdf/likelihood of state1, given the state state2 which is passed to function().

In mathematical terms, this can be written as:

\[p = p(y_t | x_t) = \mathcal{N}(y_t; x_t, Q)\]

where \(y_t\) = state_vector1, \(x_t\) = state_vector2 and \(Q\) = covar.

Parameters
Returns

The likelihood of state1, given state2

Return type

Probability

abstract covar()[source]

Model covariance