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 given the provided time interval.
Combine multiple models into a single model by stacking them.
The assumption is that all models are Gaussian, and must be combination of
LinearModel and NonLinearModel models. They must all
expect the same dimension state vector (i.e. have the same
ndim_state), using model mapping as appropriate.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
This class combines the MeasurementModel, NonLinearModel and GaussianModel classes. It is not meant to be instantiated directly but subclasses should be derived from this class.
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
This is a class implementation of a time-invariant measurement model, where measurements are assumed to be received in the form of bearing (\(\phi\)), elevation (\(\theta\)) and range (\(r\)), with Gaussian noise in each dimension.
The model is described by the following equations:
\[\vec{y}_t = h(\vec{x}_t, \vec{v}_t)\]
where:
\(\vec{y}_t\) is a measurement vector of the form:
\[\begin{split}\vec{y}_t = \begin{bmatrix}
\theta \\
\phi \\
r
\end{bmatrix}\end{split}\]
The mapping property of the model is a 3 element vector, whose first (i.e. mapping[0]), second (i.e. mapping[1]) and third (i.e. mapping[2]) elements contain the state index of the \(x\), \(y\) and \(z\) coordinates, respectively.
Note
The current implementation of this class assumes a 3D Cartesian plane.
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
translation_offset (StateVector, optional) – A 3x1 array specifying the Cartesian origin offset in terms of \(x,y,z\) coordinates.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
This is a class implementation of a time-invariant measurement model, where measurements are assumed to be received in the form of bearing (\(\phi\)) and range (\(r\)), with Gaussian noise in each dimension.
The model is described by the following equations:
\[\vec{y}_t = h(\vec{x}_t, \vec{v}_t)\]
where:
\(\vec{y}_t\) is a measurement vector of the form:
\[\begin{split}\vec{y}_t = \begin{bmatrix}
\phi \\
r
\end{bmatrix}\end{split}\]
The mapping property of the model is a 2 element vector, whose first (i.e. mapping[0]) and second (i.e. mapping[1]) elements contain the state index of the \(x\) and \(y\) coordinates, respectively.
Note
The current implementation of this class assumes a 2D Cartesian plane.
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
translation_offset (StateVector, optional) – A 2x1 array specifying the origin offset in terms of \(x,y\) coordinates.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
This is a class implementation of a time-invariant measurement model, where measurements are assumed to be received in the form of bearing (\(\phi\)) and elevation (\(\theta\)) and with Gaussian noise in each dimension.
The model is described by the following equations:
\[\vec{y}_t = h(\vec{x}_t, \vec{v}_t)\]
where:
\(\vec{y}_t\) is a measurement vector of the form:
The mapping property of the model is a 3 element vector, whose first (i.e. mapping[0]), second (i.e. mapping[1]) and third (i.e. mapping[2]) elements contain the state index of the \(x\), \(y\) and \(z\) coordinates, respectively.
Note
The current implementation of this class assumes a 3D Cartesian plane.
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
translation_offset (StateVector, optional) – A 3x1 array specifying the origin offset in terms of \(x,y,z\) coordinates.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
This is a class implementation of a time-invariant measurement model, where measurements are assumed to be received in the form of bearing (\(\phi\)) with Gaussian noise.
The model is described by the following equations:
\(v_t\) is Gaussian distributed with covariance \(R\), i.e.:
\[v_t \sim \mathcal{N}(0,\sigma_{\phi}^2)\]
The mapping property of the model is a 2 element vector, whose first (i.e. mapping[0]) and second (i.e. mapping[1]) elements contain the state index of the \(x\) and \(y\) coordinates, respectively.
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
translation_offset (StateVector, optional) – A 2x1 array specifying the origin offset in terms of \(x,y\) coordinates.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
This is a class implementation of a time-invariant measurement model, where measurements are assumed to be received in the form of bearing (\(\phi\)), range (\(r\)) and range-rate (\(\dot{r}\)),
with Gaussian noise in each dimension.
The model is described by the following equations:
\[\vec{y}_t = h(\vec{x}_t, \vec{v}_t)\]
where:
\(\vec{y}_t\) is a measurement vector of the form:
\[\begin{split}\vec{y}_t = \begin{bmatrix}
\phi \\
r \\
\dot{r}
\end{bmatrix}\end{split}\]
The mapping property of the model is a 3 element vector, whose first (i.e. mapping[0]), second (i.e. mapping[1]) and third (i.e. mapping[2]) elements contain the state index of the \(x\), \(y\) and \(z\) coordinates, respectively.
Note
This class implementation assuming at 3D cartesian space, it therefore expects a 6D state space.
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
translation_offset (StateVector, optional) – A 3x1 array specifying the origin offset in terms of \(x,y\) coordinates.
velocity_mapping (tuple, optional) – Mapping to the targets velocity within its state space
velocity (StateVector, optional) – A 3x1 array specifying the sensor velocity in terms of \(x,y,z\) coordinates.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
This is a class implementation of a time-invariant measurement model, where measurements are assumed to be received in the form of bearing (\(\phi\)), range (\(r\)) and range-rate (\(\dot{r}\)),
with Gaussian noise in each dimension.
The model is described by the following equations:
\[\vec{y}_t = h(\vec{x}_t, \vec{v}_t)\]
where:
\(\vec{y}_t\) is a measurement vector of the form:
\[\begin{split}\vec{y}_t = \begin{bmatrix}
\phi \\
r \\
\dot{r}
\end{bmatrix}\end{split}\]
The mapping property of the model is a 2 element vector, whose first (i.e. mapping[0]) and second (i.e. mapping[1]) elements contain the state index of the \(x\) and \(y\) coordinates, respectively.
Note
This class implementation assuming a 2D cartesian space, it therefore expects a 4D state space.
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
translation_offset (StateVector, optional) – A 2x1 array specifying the origin offset in terms of \(x,y\) coordinates.
velocity_mapping (tuple, optional) – Mapping to the targets velocity within its state space
velocity (StateVector, optional) – A 2x1 array specifying the sensor velocity in terms of \(x,y\) coordinates.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
This is a class implementation of a time-invariant measurement model, where measurements are assumed to be received in the form of elevation (\(\theta\)), bearing (\(\phi\)), range (\(r\)) and
range-rate (\(\dot{r}\)), with Gaussian noise in each dimension.
The model is described by the following equations:
\[\vec{y}_t = h(\vec{x}_t, \vec{v}_t)\]
where:
\(\vec{y}_t\) is a measurement vector of the form:
The mapping property of the model is a 3 element vector, whose first (i.e. mapping[0]), second (i.e. mapping[1]) and third (i.e. mapping[2]) elements contain the state index of the \(x\), \(y\) and \(z\) coordinates, respectively.
Note
This class implementation assuming at 3D cartesian space, it therefore expects a 6D or 9D state space.
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
translation_offset (StateVector, optional) – A 3x1 array specifying the origin offset in terms of \(x,y,z\) coordinates.
velocity_mapping (tuple, optional) – Mapping to the targets velocity within its state space
velocity (StateVector, optional) – A 3x1 array specifying the sensor velocity in terms of \(x,y,z\) coordinates.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
This is a class implementation of a time-invariant measurement model, where measurements are assumed to be received in the form of elevation (\(\theta\)), bearing (\(\phi\)), range (\(r\)) and
elevation-rate (\(\dot{\theta}\)), bearing-rate (\(\dot{\phi}\)), and
range-rate (\(\dot{r}\)), with Gaussian noise in each dimension.
The model is described by the following equations:
\[\vec{y}_t = h(\vec{x}_t, \vec{v}_t)\]
where:
\(\vec{y}_t\) is a measurement vector of the form:
The mapping property of the model is a 3 element vector, whose first (i.e. mapping[0]), second (i.e. mapping[1]) and third (i.e. mapping[2]) elements contain the state index of the \(x\), \(y\) and \(z\) coordinates, respectively.
Note
This class implementation assumes a 3D cartesian space, it therefore expects a 6D state space.
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
translation_offset (StateVector, optional) – A 3x1 array specifying the origin offset in terms of \(x,y,z\) coordinates.
velocity_mapping (tuple, optional) – Mapping to the targets velocity within its state space
velocity (StateVector, optional) – A 3x1 array specifying the sensor velocity in terms of \(x,y,z\) coordinates.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
This is a class implementation of a time-invariant measurement model, where measurements are assumed to be in the form of elevation (\(\theta\)), bearing (\(\phi\)), range (\(r\)) and
range-rate (\(\dot{r}\)), with Gaussian noise in each dimension and the
range and range-rate are binned based on the
range resolution and range-rate resolution respectively.
The model is described by the following equations:
\[\vec{y}_t = h(\vec{x}_t, \vec{v}_t)\]
where:
\(\vec{y}_t\) is a measurement vector of the form:
The covariances for radar are determined by different factors. The angle error
is affected by the radar beam width. Range error is affected by the SNR and pulse bandwidth.
The error for the range rate is dependent on the dwell time.
The range and range rate are binned to the centre of the cell using
\[x = \textrm{floor}(x/\Delta x)*\Delta x + \frac{\Delta x}{2}\]
The mapping property of the model is a 3 element vector, whose first (i.e. mapping[0]), second (i.e. mapping[1]) and third (i.e. mapping[2]) elements contain the state index of the \(x\), \(y\) and \(z\) coordinates, respectively.
The velocity_mapping property of the model is a 3 element vector, whose first (i.e. velocity_mapping[0]), second (i.e. velocity_mapping[1]) and third (i.e. velocity_mapping[2]) elements contain the state index of the \(\dot{x}\), \(\dot{y}\) and \(\dot{z}\) coordinates, respectively.
Note
This class implementation assumes a 3D cartesian space, it therefore expects a 6D state space.
range_rate_res (float) – Size of the velocity bins in m/s
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
translation_offset (StateVector, optional) – A 3x1 array specifying the origin offset in terms of \(x,y,z\) coordinates.
velocity_mapping (tuple, optional) – Mapping to the targets velocity within its state space
velocity (StateVector, optional) – A 3x1 array specifying the sensor velocity in terms of \(x,y,z\) coordinates.
state (StateVector) – An input state vector for the target
noise (numpy.ndarray or bool) – An externally generated random process noise sample (the default is
False, in which case no noise will be added and no binning takes place
if True, the output of rvs is added and the
range and range rate are binned)
Returns:
The model function evaluated given the provided time interval.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
This is a class implementation of a time-invariant measurement model, where measurements are assumed to be received in the form of azimuth (\(\phi\)), elevation (\(\theta\)), and range (\(r\)), with Gaussian noise in each dimension.
For this model, the Azimuth is defined as the angle of the measurement from the YZ plan to the YX plane and the Elevation is the angle from the XY plan to the XZ plane. The z axis is the direction the radar is pointing (broadside) and is only defined in the positive z. The x axis is generally the direction of travel for an airborne radar and the y axis is orthogonal to both the x and z.
Measurements are only correctly defined for +z (measurements must be in front of the sensor.
The model is described by the following equations:
\[\vec{y}_t = h(\vec{x}_t, \vec{v}_t)\]
where:
\(\vec{y}_t\) is a measurement vector of the form:
\[\begin{split}\vec{y}_t = \begin{bmatrix}
\phi \\
\theta \\
r
\end{bmatrix}\end{split}\]
The mapping property of the model is a 3 element vector, whose first (i.e. mapping[0]), second (i.e. mapping[1]) and third (i.e. mapping[2]) elements contain the state index of the \(x\), \(y\) and \(z\) coordinates, respectively.
Note
The current implementation of this class assumes a 3D Cartesian plane.
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
translation_offset (StateVector, optional) – A 3x1 array specifying the Cartesian origin offset in terms of \(x,y,z\) coordinates.
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 used)
Returns:
The StateVector(s) with the model function evaluated.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
This is a time invariant, measurement model of a hidden Markov process.
A measurement can take one of a finite number of observable categories
\(Z = \{\zeta^n|n\in \mathbf{N}, n\le N\}\) (for some finite \(N\)). A measurement
vector represents a categorical distribution over \(Z\).
\[\mathbf{y}_t^i = P(\zeta_t^i)\]
A state space vector takes the form \(\alpha_t^i = P(\phi_t^i)\), representing a
categorical distribution over a discrete, finite set of possible categories
\(\Phi = \{\phi^m|m\in \mathbf{N}, m\le M\}\) (for some finite \(M\)).
It is assumed that a measurement is independent of everything but the true state of a target.
Intended to be used in conjunction with the CategoricalState type.
Parameters:
emission_matrix (Matrix) – Matrix of emission/output probabilities \(E_t^{ij} = E^{ij} = P(\zeta_t^i | \phi_t^j)\), determining the conditional probability that a measurement is category \(\zeta^i\) at ‘time’ \(t\) given that the true state category is \(\phi^j\) at ‘time’ \(t\). Columns will be normalised.
measurement_categories (collections.abc.Sequence, optional) – Sequence of measurement category names. Defaults to a list of integers
Matrix of emission/output probabilities \(E_t^{ij} = E^{ij} = P(\zeta_t^i | \phi_t^j)\), determining the conditional probability that a measurement is category \(\zeta^i\) at ‘time’ \(t\) given that the true state category is \(\phi^j\) at ‘time’ \(t\). Columns will be normalised.
This is a class implementing the isotropic plume model for
approximating the resulting plume from gas release. Mathematical
formulation of the algorithm can be seen in [1] and [2].
The model assumes isotropic diffusivity and mean wind velocity,
source strength and turbulent conditions.
The model calculates the concentration level at a given location
based on the provided source term. The model employs a sensing
threshold for deciding if gas has been detected or if the reading
is just sensor noise and turbulent conditions are accounted for
using a missed detection probability. The source term if formed
according to the following:
\[\begin{split}\mathbf{S} = \left[\begin{array}{c}
x \\
y \\
z \\
Q \\
u \\
\phi \\
\zeta_1 \\
\zeta_2
\end{array}\right],\end{split}\]
where \(x, y\) and \(z\) are the source position in 3D Cartesian
space, \(Q\) is the emission rate/strength in g/s, \(u\) is the
wind speed in m/s, \(\phi\) is the wind direction in radians,
\(\zeta_1\) is the diffusivity of the gas in the environment and
\(\zeta_2\) is the lifetime of the gas.
where \(\vec{x}_k\) is the position of the sensor in 3D Cartesian space
(\([x_k\quad y_k\quad z_k]^\intercal\)), \(\vec{p}^s\) is the source location
(\([x\quad y\quad z]^\intercal\)) and
state (StateVector) – An input source term state vector
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). If False,
then the model also does not consider the sensing_threshold
and missed_detection_probability
Returns:
The model function evaluated with the provided source term
where \(z_k\) = state1, \(\Theta_k\) = state2,
\(\hat{z}_k\) = function() on state2
and \(\sigma_d\) is the measurement standard deviation
assuming the measurement arose from a true gas detection.
This is given by
where \(\sigma_{\text{percentage}}\) = standard_deviation_percentage
and \(\nu_{\text{min}}\) = noise. In the
event that a measurement is below the sensor threshold or
missed, a different likelihood function is used. This is
given by
where \(P_m\) = missed_detection_probability,
\(\sigma_m\) is the missed detection standard deviation
which is implemented as equal to sensing_threshold
and \(\text{erf}()\) is the error function.
This is a measurement model that projects the target’s position on the road network to a 2D
position, via a non-linear transformation function \(h(x)\), which parameterizes the
likelihood of the measurement given the target’s state. This is a generalised implementation
of the measurement model described in [3].
The positional measurement noise is modelled as a zero-mean Gaussian distribution with
covariance \(R\), such that:
where the state vector \(x_k\) is assumed to take the form:
\[x_k = \left[r_k, \cdots, e_k, d_k, s_k\right]\]
and \(e_k\) denotes the edge the target is currently on, \(r_k\) is the distance
travelled along the edge, \(d_k\) is the destination node, and \(s_k\) is
the source node. The notation \(\cdots\) denotes additional state variables that are not
used in this model (e.g. velocity).
The likelihood function is defined in either of two ways, depending on the value of
use_indicator:
If use_indicator is False, then the likelihood function is defined as:
\[p(y_k|x_k) = \mathcal{N}(y_k; h(x_k), R)\]
If use_indicator is True, then the likelihood function is defined as:
where \(\text{shortest_path}(s_k, d_k)\) is the shortest path between the source node
\(s_k\) and destination node \(d_k\) on the road network. The indicator function
implements Eq. (26) in [3].
graph (RoadNetwork) – The road network that the target is moving on
seed (Optional[int], optional) – Seed for random number generation
rotation_offset (StateVector, optional) – A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.
use_indicator (bool, optional) – Whether to use the indicator function in the evaluation of the likelihood
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 used)
Returns:
The StateVector(s) with the model function evaluated.
A 3x1 array of angles (rad), specifying the clockwise rotation around each Cartesian axis in the order \(x,y,z\). The rotation angles are positive if the rotation is in the counter-clockwise direction when viewed by an observer looking along the respective rotation axis, towards the origin.