Alignment Parameters¶
parameters ¶
Parameter ¶
Parameter(
value: float,
variance: float = 0.0,
default: float = 0.0,
enabled: bool = True,
name: str = "",
unit: Unit = NONE,
)
Class representing a stochastic parameter with variance.
A parameter holds a stochastic value with some variance and can be enabled or disabled. When disabled, the parameter's value equals its default value. The default value should be chosen so the parameter has no effect on computations (e.g., scale=1, rotation/translation=0).
Parameter disabling is used to exclude parameters from least-squares estimation during trajectory alignment.
Attributes:
-
default–Default value used when parameter is disabled
-
enabled–Whether the parameter is active
-
name–Parameter name for identification
-
unit–Unit of measurement for the parameter
Initializes a Parameter instance.
Parameters:
-
value(float) –Initial parameter value
-
variance(float, default:0.0) –Initial parameter variance. Defaults to 0.0.
-
default(float, default:0.0) –Default value when disabled. Defaults to 0.0.
-
enabled(bool, default:True) –Whether parameter is enabled. Defaults to True.
-
name(str, default:'') –Parameter name. Auto-generated if empty. Defaults to "".
-
unit(Unit, default:NONE) –Unit of measurement. Defaults to Unit.NONE.
Source code in trajectopy\processing\lib\alignment\parameters.py
value
property
writable
¶
Gets the parameter value.
Returns:
-
float(float) –Actual value if enabled, default value otherwise
variance
property
writable
¶
Gets the parameter variance.
Returns:
-
float(float) –Actual variance if enabled, 0.0 otherwise
__str__ ¶
Returns formatted string representation of the parameter.
Returns:
-
str(str) –Formatted string with parameter name, value, unit, and standard deviation
Source code in trajectopy\processing\lib\alignment\parameters.py
__sub__ ¶
Subtracts another parameter from this one.
Parameters:
-
other(Parameter) –Parameter to subtract
Returns:
-
Parameter(Parameter) –New parameter with subtracted value and combined variance
Source code in trajectopy\processing\lib\alignment\parameters.py
__add__ ¶
Adds another parameter to this one.
Parameters:
-
other(Parameter) –Parameter to add
Returns:
-
Parameter(Parameter) –New parameter with added value and combined variance
Source code in trajectopy\processing\lib\alignment\parameters.py
__neg__ ¶
__neg__() -> Parameter
Negates the parameter.
Returns:
-
Parameter(Parameter) –New parameter with negated value and default
Source code in trajectopy\processing\lib\alignment\parameters.py
enable ¶
ParameterSet
dataclass
¶
ParameterSet(
enabled: bool = True,
covariance_matrix: ndarray = (
lambda: zeros((0, 0), dtype=float)
)(),
)
Bases: ABC
Abstract base class for grouping related parameters.
Groups related parameters (e.g., 3 parameters for 3D translation) and provides common functionality for managing parameter values, variances, and covariances.
Attributes:
-
enabled(bool) –Whether the entire parameter set is enabled
-
covariance_matrix(ndarray) –Covariance matrix for the parameter set
any_enabled
property
¶
Checks if any parameter in the set is enabled.
Returns:
-
bool(bool) –True if at least one parameter is enabled
num_enabled
property
¶
Gets the number of enabled parameters in the set.
Returns:
-
int(int) –Count of enabled parameters
enabled_bool_list
property
writable
¶
Gets the enabled state of all parameters as a boolean list.
Returns:
-
List[bool]–List[bool]: List of booleans indicating which parameters are enabled
enabled_indices
property
¶
Gets indices of enabled parameters.
Useful for extracting values or variances of only enabled parameters from the full parameter arrays.
Returns:
-
List[int]–List[int]: List of indices where parameters are enabled
__parameter_fields
property
¶
__parameter_fields: List[Parameter]
Gets all Parameter instances from dataclass fields.
Returns:
-
List[Parameter]–List[Parameter]: List of all Parameter objects in the set
values
property
writable
¶
Gets all parameter values as a numpy array.
Returns:
-
ndarray–np.ndarray: Array of all parameter values
values_enabled
property
writable
¶
Gets enabled parameter values as a numpy array.
Returns:
-
ndarray–np.ndarray: Array of enabled parameter values
variances
property
writable
¶
Gets all parameter variances as a numpy array.
Returns:
-
ndarray–np.ndarray: Array of all parameter variances
variances_enabled
property
writable
¶
Gets enabled parameter variances as a numpy array.
Returns:
-
ndarray–np.ndarray: Array of enabled parameter variances
__post_init__ ¶
Initializes covariance matrix after dataclass creation.
Source code in trajectopy\processing\lib\alignment\parameters.py
__len__ ¶
Returns the number of parameters in the set.
Returns:
-
int(int) –Number of parameters
__str__ ¶
Returns formatted string representation of the parameter set.
Returns:
-
str(str) –Boxed string with all parameter information
Source code in trajectopy\processing\lib\alignment\parameters.py
__iter__ ¶
Returns iterator over parameter fields.
Returns:
-
Iterator(iter) –Iterator over Parameter instances
get_covariance_matrix ¶
Returns the covariance matrix of the parameter set
Parameters:
-
enabled_only(bool, default:True) –If True, only the covariance matrix of the enabled parameters is returned. Defaults to True.
Returns:
-
ndarray–np.ndarray: Covariance matrix
Source code in trajectopy\processing\lib\alignment\parameters.py
set_covariance_matrix ¶
Sets the covariance matrix of the parameter set
Parameters:
-
cov_matrix(ndarray) –Covariance matrix
Source code in trajectopy\processing\lib\alignment\parameters.py
validate_covariance ¶
Validates and normalizes the covariance matrix dimensions.
Checks that the covariance matrix is square and matches either all parameters or only enabled parameters. Updates parameter variances from diagonal elements.
Raises:
-
AlignmentParametersError–If covariance matrix dimensions are invalid
Source code in trajectopy\processing\lib\alignment\parameters.py
enable ¶
disable ¶
to_string_list ¶
Returns a list of all parameter strings of the class
Parameters:
-
enabled_only(bool, default:True) –If True, only enabled parameters are included. Defaults to True.
Returns:
-
List[str]–List[str]: List of parameter strings
Source code in trajectopy\processing\lib\alignment\parameters.py
to_name_list ¶
Returns a list of all parameter names of the class
Parameters:
-
enabled_only(bool, default:True) –If True, only enabled parameters are included. Defaults to True.
-
lower_case(bool, default:True) –If True, parameter names are returned in lower case. Defaults to True.
Returns:
-
List[str]–List[str]: List of parameter names
Source code in trajectopy\processing\lib\alignment\parameters.py
to_dict ¶
Returns a dictionary of all parameters of the class
Parameters:
-
enabled_only(bool, default:True) –If True, only enabled parameters are included. Defaults to True.
Returns:
-
Dict[str, List[float]]–Dict[str, List[float]]: Dictionary with parameter names as keys and [value, variance] as values
Source code in trajectopy\processing\lib\alignment\parameters.py
HelmertTransformation
dataclass
¶
HelmertTransformation(
enabled: bool = True,
covariance_matrix: ndarray = (
lambda: zeros((0, 0), dtype=float)
)(),
trans_x: Parameter = (
lambda: Parameter(value=0.0, default=0.0)
)(),
trans_y: Parameter = (
lambda: Parameter(value=0.0, default=0.0)
)(),
trans_z: Parameter = (
lambda: Parameter(value=0.0, default=0.0)
)(),
rot_x: Parameter = (
lambda: Parameter(value=0.0, default=0.0)
)(),
rot_y: Parameter = (
lambda: Parameter(value=0.0, default=0.0)
)(),
rot_z: Parameter = (
lambda: Parameter(value=0.0, default=0.0)
)(),
scale: Parameter = (
lambda: Parameter(value=1.0, default=1.0)
)(),
)
Bases: ParameterSet
Parameter set for a 7-parameter Helmert similarity transformation.
Represents a 3D similarity transformation with translation, rotation, and scale.
Attributes:
-
trans_x(Parameter) –Translation parameter in x-direction
-
trans_y(Parameter) –Translation parameter in y-direction
-
trans_z(Parameter) –Translation parameter in z-direction
-
rot_x(Parameter) –Rotation parameter around x-axis
-
rot_y(Parameter) –Rotation parameter around y-axis
-
rot_z(Parameter) –Rotation parameter around z-axis
-
scale(Parameter) –Scale parameter
translation
property
writable
¶
Gets the 3D translation vector.
Returns:
-
ndarray–np.ndarray: Translation vector [x, y, z]
rotation
property
writable
¶
Gets the Euler rotation angles.
Returns:
-
ndarray–np.ndarray: Rotation angles [rx, ry, rz] in radians (XYZ order)
rotation_set
property
¶
rotation_set: Rotations
Gets the rotation as a Rotations object.
Returns:
-
Rotations(Rotations) –Rotation object from Euler angles
rotation_matrix
property
¶
Gets the 3x3 rotation matrix.
Returns:
-
ndarray–np.ndarray: Rotation matrix (3x3)
apply_to ¶
Applies the Helmert transformation to 3D points.
Parameters:
-
xyz(ndarray) –Input points (Nx3 array)
Returns:
-
ndarray–np.ndarray: Transformed points (Nx3 array)
Source code in trajectopy\processing\lib\alignment\parameters.py
Leverarm
dataclass
¶
Leverarm(
enabled: bool = True,
covariance_matrix: ndarray = (
lambda: zeros((0, 0), dtype=float)
)(),
x: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Leverarm x",
enabled=False,
unit=METER,
)
)(),
y: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Leverarm y",
enabled=False,
unit=METER,
)
)(),
z: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Leverarm z",
enabled=False,
unit=METER,
)
)(),
)
Bases: ParameterSet
Parameter set for a leverarm offset between sensor and body frame.
Represents the 3D offset between a sensor frame and the vehicle body frame.
Attributes:
-
x(Parameter) –Leverarm parameter in x-direction
-
y(Parameter) –Leverarm parameter in y-direction
-
z(Parameter) –Leverarm parameter in z-direction
apply_to ¶
Applies the leverarm to a set of positions using orientations
Parameters:
-
xyz(ndarray) –Positions
-
quat_body(ndarray) –Orientations
Returns:
-
ndarray–np.ndarray: Leverarm applied positions
Source code in trajectopy\processing\lib\alignment\parameters.py
AlignmentParameters
dataclass
¶
AlignmentParameters(
enabled: bool = True,
covariance_matrix: ndarray = (
lambda: zeros((0, 0), dtype=float)
)(),
sim_trans_x: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Translation x",
enabled=False,
unit=METER,
)
)(),
sim_trans_y: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Translation y",
enabled=False,
unit=METER,
)
)(),
sim_trans_z: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Translation z",
enabled=False,
unit=METER,
)
)(),
sim_rot_x: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Rotation x",
enabled=False,
unit=RADIAN,
)
)(),
sim_rot_y: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Rotation y",
enabled=False,
unit=RADIAN,
)
)(),
sim_rot_z: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Rotation z",
enabled=False,
unit=RADIAN,
)
)(),
sim_scale: Parameter = (
lambda: Parameter(
value=1.0,
default=1.0,
name="Scale",
enabled=False,
unit=SCALE,
)
)(),
time_shift: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Time Shift",
enabled=False,
unit=SECOND,
)
)(),
lever_x: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Leverarm x",
enabled=False,
unit=METER,
)
)(),
lever_y: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Leverarm y",
enabled=False,
unit=METER,
)
)(),
lever_z: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Leverarm z",
enabled=False,
unit=METER,
)
)(),
)
Bases: ParameterSet
Parameter set for spatio-temporal trajectory alignment.
Contains all parameters for aligning two trajectories including similarity transformation (translation, rotation, scale), time shift, and leverarm.
Attributes:
-
sim_trans_x(Parameter) –Similarity transformation translation in x
-
sim_trans_y(Parameter) –Similarity transformation translation in y
-
sim_trans_z(Parameter) –Similarity transformation translation in z
-
sim_rot_x(Parameter) –Similarity transformation rotation around x
-
sim_rot_y(Parameter) –Similarity transformation rotation around y
-
sim_rot_z(Parameter) –Similarity transformation rotation around z
-
sim_scale(Parameter) –Similarity transformation scale factor
-
time_shift(Parameter) –Temporal offset between trajectories
-
lever_x(Parameter) –Leverarm offset in x
-
lever_y(Parameter) –Leverarm offset in y
-
lever_z(Parameter) –Leverarm offset in z
sim3_matrix
property
¶
Gets the 4x4 similarity transformation matrix (Sim(3)).
Returns:
-
ndarray–np.ndarray: 4x4 homogeneous transformation matrix
helmert
property
¶
helmert: HelmertTransformation
Gets the Helmert similarity transformation parameters.
Returns:
-
HelmertTransformation(HelmertTransformation) –Transformation parameters (translation, rotation, scale)
leverarm
property
¶
leverarm: Leverarm
Gets the leverarm offset parameters.
Returns:
-
Leverarm(Leverarm) –Leverarm offset parameters (x, y, z)
__add__ ¶
__add__(other: AlignmentParameters) -> AlignmentParameters
Adds parameter values from another alignment parameter set.
Parameters:
-
other(AlignmentParameters) –AlignmentParameters to add
Returns:
-
AlignmentParameters(AlignmentParameters) –Sum of parameter values
Source code in trajectopy\processing\lib\alignment\parameters.py
__sub__ ¶
__sub__(other: AlignmentParameters) -> AlignmentParameters
Subtracts parameter values from another alignment parameter set.
Parameters:
-
other(AlignmentParameters) –AlignmentParameters to subtract
Returns:
-
AlignmentParameters(AlignmentParameters) –Difference of parameter values
Source code in trajectopy\processing\lib\alignment\parameters.py
params_labels ¶
Gets parameter labels/names.
Parameters:
-
enabled_only(bool, default:True) –If True, only include enabled parameters. Defaults to True.
-
lower_case(bool, default:True) –If True, return lowercase labels. Defaults to True.
Returns:
-
List[str]–List[str]: List of parameter labels
Source code in trajectopy\processing\lib\alignment\parameters.py
from_settings
classmethod
¶
from_settings(
settings: AlignmentEstimationSettings,
) -> AlignmentParameters
Creates AlignmentParameters from estimation settings.
Parameters:
-
settings(AlignmentEstimationSettings) –Settings specifying which parameters to enable
Returns:
-
AlignmentParameters(AlignmentParameters) –New instance with parameters enabled per settings
Source code in trajectopy\processing\lib\alignment\parameters.py
apply_settings ¶
apply_settings(
settings: AlignmentEstimationSettings,
) -> None
Applies estimation settings by enabling or disabling parameters.
Parameters:
-
settings(AlignmentEstimationSettings) –Settings specifying which parameters to enable
Source code in trajectopy\processing\lib\alignment\parameters.py
to_file ¶
Writes the alignment parameters to a file
All parameters are written to the file no matter if they are enabled or not. If they are not enabled, the default value is written. Enabled parameters are marked with a 1, disabled with a 0. The order of the parameters is:
- Translation x
- Translation y
- Translation z
- Rotation x
- Rotation y
- Rotation z
- Scale
- Time Shift
- Leverarm x
- Leverarm y
- Leverarm z
Besides the parameters, the covariance matrix is written to the file. The covariance matrix is written row by row next to the parameters.
Parameters:
-
filename(str) –Path to the file
Source code in trajectopy\processing\lib\alignment\parameters.py
to_dataframe ¶
Converts alignment parameters to a pandas DataFrame.
Returns:
-
DataFrame–pd.DataFrame: DataFrame with parameter values, enabled flags, and covariance matrix
Source code in trajectopy\processing\lib\alignment\parameters.py
from_file
classmethod
¶
from_file(filename: str) -> AlignmentParameters
Reads the alignment parameters from a file
Parameters:
-
filename(str) –Path to the file
Returns:
-
AlignmentParameters(AlignmentParameters) –AlignmentParameters instance
Source code in trajectopy\processing\lib\alignment\parameters.py
to_estimation_settings ¶
to_estimation_settings() -> AlignmentEstimationSettings
Converts alignment parameters to estimation settings.
Returns:
-
AlignmentEstimationSettings(AlignmentEstimationSettings) –Settings object with enabled flags from parameters
Source code in trajectopy\processing\lib\alignment\parameters.py
SensorRotationParameters
dataclass
¶
SensorRotationParameters(
enabled: bool = True,
covariance_matrix: ndarray = (
lambda: zeros((0, 0), dtype=float)
)(),
sensor_rot_x: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Sensor Rotation x",
enabled=False,
unit=RADIAN,
)
)(),
sensor_rot_y: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Sensor Rotation y",
enabled=False,
unit=RADIAN,
)
)(),
sensor_rot_z: Parameter = (
lambda: Parameter(
value=0.0,
default=0.0,
name="Sensor Rotation z",
enabled=False,
unit=RADIAN,
)
)(),
)
Bases: ParameterSet
Parameter set for sensor body-frame rotation.
Represents the rotational offset between the sensor frame and body frame.
Attributes:
-
sensor_rot_x(Parameter) –Sensor rotation around x-axis
-
sensor_rot_y(Parameter) –Sensor rotation around y-axis
-
sensor_rot_z(Parameter) –Sensor rotation around z-axis
rotation
property
¶
Gets the sensor rotation Euler angles.
Returns:
-
ndarray–np.ndarray: Rotation angles [rx, ry, rz] in radians (XYZ order)
rotation_set
property
¶
rotation_set: Rotations
Gets the sensor rotation as a Rotations object.
Returns:
-
Rotations(Rotations) –Rotation object from Euler angles
rotation_matrix
property
¶
Gets the 3x3 sensor rotation matrix.
Returns:
-
ndarray–np.ndarray: Rotation matrix (3x3)
from_file
classmethod
¶
from_file(filename: str) -> SensorRotationParameters
Reads sensor rotation parameters from a file.
Parameters:
-
filename(str) –Path to the alignment file (must contain 14 lines)
Returns:
-
SensorRotationParameters(SensorRotationParameters) –Loaded sensor rotation parameters
Raises:
-
ValueError–If file doesn't contain exactly 14 lines
Source code in trajectopy\processing\lib\alignment\parameters.py
to_file ¶
Appends sensor rotation parameters to a file.
Parameters:
-
filename(str) –Path to the file to append to