Measurement Models¶
Built-in measurement models for GPS-like observations in inertial and ECEF frames.
Inertial Frame Models¶
InertialPositionMeasurementModel ¶
InertialPositionMeasurementModel(sigma: Any)
Inertial position measurement model (3D ECI position).
Directly observes [x, y, z] from the state vector with Gaussian noise.
Initialize instance.
from_covariance staticmethod ¶
from_covariance(noise_cov: ndarray) -> InertialPositionMeasurementModel
Create from a full 3x3 noise covariance matrix.
Allows specifying correlated measurement noise (off-diagonal terms).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
noise_cov | ndarray | 3x3 noise covariance matrix (meters²). | required |
Returns:
| Name | Type | Description |
|---|---|---|
InertialPositionMeasurementModel | InertialPositionMeasurementModel | New model instance. |
from_upper_triangular staticmethod ¶
from_upper_triangular(upper: ndarray) -> InertialPositionMeasurementModel
Create from upper-triangular covariance elements.
Elements in row-major packed order: [c00, c01, c02, c11, c12, c22].
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
upper | ndarray | Upper-triangular elements (6 for 3x3). | required |
Returns:
| Name | Type | Description |
|---|---|---|
InertialPositionMeasurementModel | InertialPositionMeasurementModel | New model instance. |
jacobian method descriptor ¶
noise_covariance method descriptor ¶
noise_covariance() -> ndarray
Get the measurement noise covariance matrix R.
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Noise covariance matrix (m x m). |
per_axis staticmethod ¶
per_axis(sigma_x: float, sigma_y: float, sigma_z: float) -> InertialPositionMeasurementModel
Create with per-axis noise.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sigma_x | float | X-axis position noise (meters). | required |
sigma_y | float | Y-axis position noise (meters). | required |
sigma_z | float | Z-axis position noise (meters). | required |
Returns:
| Name | Type | Description |
|---|---|---|
InertialPositionMeasurementModel | InertialPositionMeasurementModel | New model instance. |
predict method descriptor ¶
InertialVelocityMeasurementModel ¶
InertialVelocityMeasurementModel(sigma: Any)
Inertial velocity measurement model (3D ECI velocity).
Directly observes [vx, vy, vz] from the state vector with Gaussian noise.
Initialize instance.
from_covariance staticmethod ¶
from_covariance(noise_cov: ndarray) -> InertialVelocityMeasurementModel
Create from a full 3x3 noise covariance matrix.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
noise_cov | ndarray | 3x3 noise covariance matrix ((m/s)²). | required |
Returns:
| Name | Type | Description |
|---|---|---|
InertialVelocityMeasurementModel | InertialVelocityMeasurementModel | New model instance. |
from_upper_triangular staticmethod ¶
from_upper_triangular(upper: ndarray) -> InertialVelocityMeasurementModel
Create from upper-triangular covariance elements.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
upper | ndarray | Upper-triangular elements (6 for 3x3). | required |
Returns:
| Name | Type | Description |
|---|---|---|
InertialVelocityMeasurementModel | InertialVelocityMeasurementModel | New model instance. |
jacobian method descriptor ¶
noise_covariance method descriptor ¶
noise_covariance() -> ndarray
Get the measurement noise covariance matrix R.
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Noise covariance matrix (m x m). |
per_axis staticmethod ¶
per_axis(sigma_x: float, sigma_y: float, sigma_z: float) -> InertialVelocityMeasurementModel
Create with per-axis noise.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sigma_x | float | X-axis velocity noise (m/s). | required |
sigma_y | float | Y-axis velocity noise (m/s). | required |
sigma_z | float | Z-axis velocity noise (m/s). | required |
Returns:
| Name | Type | Description |
|---|---|---|
InertialVelocityMeasurementModel | InertialVelocityMeasurementModel | New model instance. |
predict method descriptor ¶
InertialStateMeasurementModel ¶
Inertial state measurement model (6D ECI state).
Directly observes [x, y, z, vx, vy, vz] from the state vector with Gaussian noise.
Initialize instance.
from_covariance staticmethod ¶
from_covariance(noise_cov: ndarray) -> InertialStateMeasurementModel
Create from a full 6x6 noise covariance matrix.
Allows specifying correlated noise including position-velocity cross-correlations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
noise_cov | ndarray | 6x6 noise covariance matrix. | required |
Returns:
| Name | Type | Description |
|---|---|---|
InertialStateMeasurementModel | InertialStateMeasurementModel | New model instance. |
from_upper_triangular staticmethod ¶
from_upper_triangular(upper: ndarray) -> InertialStateMeasurementModel
Create from upper-triangular covariance elements.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
upper | ndarray | Upper-triangular elements (21 for 6x6). | required |
Returns:
| Name | Type | Description |
|---|---|---|
InertialStateMeasurementModel | InertialStateMeasurementModel | New model instance. |
jacobian method descriptor ¶
noise_covariance method descriptor ¶
noise_covariance() -> ndarray
Get the measurement noise covariance matrix R.
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Noise covariance matrix (m x m). |
per_axis staticmethod ¶
per_axis(pos_sigma_x: float, pos_sigma_y: float, pos_sigma_z: float, vel_sigma_x: float, vel_sigma_y: float, vel_sigma_z: float) -> InertialStateMeasurementModel
Create with per-axis noise.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pos_sigma_x | float | X position noise (meters). | required |
pos_sigma_y | float | Y position noise (meters). | required |
pos_sigma_z | float | Z position noise (meters). | required |
vel_sigma_x | float | X velocity noise (m/s). | required |
vel_sigma_y | float | Y velocity noise (m/s). | required |
vel_sigma_z | float | Z velocity noise (m/s). | required |
Returns:
| Name | Type | Description |
|---|---|---|
InertialStateMeasurementModel | InertialStateMeasurementModel | New model instance. |
predict method descriptor ¶
ECEF Frame Models¶
ECEFPositionMeasurementModel ¶
ECEFPositionMeasurementModel(sigma: Any)
ECEF position measurement model (3D ECEF position from GNSS).
Internally converts ECI state to ECEF position.
Initialize instance.
from_covariance staticmethod ¶
from_covariance(noise_cov: ndarray) -> ECEFPositionMeasurementModel
Create from a full 3x3 noise covariance matrix.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
noise_cov | ndarray | 3x3 noise covariance matrix (meters²). | required |
Returns:
| Name | Type | Description |
|---|---|---|
ECEFPositionMeasurementModel | ECEFPositionMeasurementModel | New model instance. |
from_upper_triangular staticmethod ¶
from_upper_triangular(upper: ndarray) -> ECEFPositionMeasurementModel
Create from upper-triangular covariance elements.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
upper | ndarray | Upper-triangular elements (6 for 3x3). | required |
Returns:
| Name | Type | Description |
|---|---|---|
ECEFPositionMeasurementModel | ECEFPositionMeasurementModel | New model instance. |
jacobian method descriptor ¶
noise_covariance method descriptor ¶
noise_covariance() -> ndarray
Get the measurement noise covariance matrix R.
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Noise covariance matrix (m x m). |
per_axis staticmethod ¶
Create with per-axis noise.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sigma_x | float | X-axis position noise (meters). | required |
sigma_y | float | Y-axis position noise (meters). | required |
sigma_z | float | Z-axis position noise (meters). | required |
Returns:
| Name | Type | Description |
|---|---|---|
EcefPositionMeasurementModel | EcefPositionMeasurementModel | New model instance. |
predict method descriptor ¶
ECEFVelocityMeasurementModel ¶
ECEFVelocityMeasurementModel(sigma: Any)
ECEF velocity measurement model (3D ECEF velocity from GNSS).
Internally converts ECI state to ECEF velocity.
Initialize instance.
from_covariance staticmethod ¶
from_covariance(noise_cov: ndarray) -> ECEFVelocityMeasurementModel
Create from a full 3x3 noise covariance matrix.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
noise_cov | ndarray | 3x3 noise covariance matrix ((m/s)²). | required |
Returns:
| Name | Type | Description |
|---|---|---|
ECEFVelocityMeasurementModel | ECEFVelocityMeasurementModel | New model instance. |
from_upper_triangular staticmethod ¶
from_upper_triangular(upper: ndarray) -> ECEFVelocityMeasurementModel
Create from upper-triangular covariance elements.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
upper | ndarray | Upper-triangular elements (6 for 3x3). | required |
Returns:
| Name | Type | Description |
|---|---|---|
ECEFVelocityMeasurementModel | ECEFVelocityMeasurementModel | New model instance. |
jacobian method descriptor ¶
noise_covariance method descriptor ¶
noise_covariance() -> ndarray
Get the measurement noise covariance matrix R.
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Noise covariance matrix (m x m). |
per_axis staticmethod ¶
Create with per-axis noise.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sigma_x | float | X-axis velocity noise (m/s). | required |
sigma_y | float | Y-axis velocity noise (m/s). | required |
sigma_z | float | Z-axis velocity noise (m/s). | required |
Returns:
| Name | Type | Description |
|---|---|---|
EcefVelocityMeasurementModel | EcefVelocityMeasurementModel | New model instance. |
predict method descriptor ¶
ECEFStateMeasurementModel ¶
ECEF state measurement model (6D ECEF state from GNSS).
Internally converts ECI state to ECEF state.
Initialize instance.
from_covariance staticmethod ¶
from_covariance(noise_cov: ndarray) -> ECEFStateMeasurementModel
Create from a full 6x6 noise covariance matrix.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
noise_cov | ndarray | 6x6 noise covariance matrix. | required |
Returns:
| Name | Type | Description |
|---|---|---|
ECEFStateMeasurementModel | ECEFStateMeasurementModel | New model instance. |
from_upper_triangular staticmethod ¶
from_upper_triangular(upper: ndarray) -> ECEFStateMeasurementModel
Create from upper-triangular covariance elements.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
upper | ndarray | Upper-triangular elements (21 for 6x6). | required |
Returns:
| Name | Type | Description |
|---|---|---|
ECEFStateMeasurementModel | ECEFStateMeasurementModel | New model instance. |
jacobian method descriptor ¶
noise_covariance method descriptor ¶
noise_covariance() -> ndarray
Get the measurement noise covariance matrix R.
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Noise covariance matrix (m x m). |
per_axis staticmethod ¶
per_axis(pos_sigma_x: float, pos_sigma_y: float, pos_sigma_z: float, vel_sigma_x: float, vel_sigma_y: float, vel_sigma_z: float) -> EcefStateMeasurementModel
Create with per-axis noise.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pos_sigma_x | float | X position noise (meters). | required |
pos_sigma_y | float | Y position noise (meters). | required |
pos_sigma_z | float | Z position noise (meters). | required |
vel_sigma_x | float | X velocity noise (m/s). | required |
vel_sigma_y | float | Y velocity noise (m/s). | required |
vel_sigma_z | float | Z velocity noise (m/s). | required |
Returns:
| Name | Type | Description |
|---|---|---|
EcefStateMeasurementModel | EcefStateMeasurementModel | New model instance. |
predict method descriptor ¶
Covariance Matrix Helpers¶
Utility functions for constructing noise covariance matrices, usable with both built-in and custom measurement models.
isotropic_covariance builtin ¶
Create an isotropic covariance matrix: sigma^2 * I.
Builds a dim x dim diagonal matrix where every diagonal element is sigma^2.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dim | int | Matrix dimension. | required |
sigma | float | Standard deviation applied to all axes. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: dim x dim diagonal covariance matrix. |
diagonal_covariance builtin ¶
Create a diagonal covariance matrix from per-axis standard deviations.
Each sigma value is squared to produce the corresponding diagonal element.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sigmas | ndarray | Array of standard deviations, one per axis. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: n x n diagonal covariance matrix. |
See Also¶
- Measurement Models Guide - Usage guidance and model selection
- Custom Models Guide - Defining custom models in Python
- Covariance Matrix Utilities - Full covariance utility reference