suboptimumg.track.models#
- class suboptimumg.track.models.ArcData[source]#
Bases:
BaseModelData model for arc geometry. Stores parameters needed to render an arc segment of a track.
Fields# Field
Type
Required
Default
floatYes
tuple[float,float]Yes
floatYes
intYes
floatYes
floatYes
floatYes
floatYes
floatYes
- Parameters:
center (tuple[float, float])
width (float)
height (float)
angle (float)
theta1 (float)
theta2 (float)
theta1_original (float)
theta2_original (float)
n_points (int)
- angle: float#
- center: tuple[float, float]#
- height: float#
- n_points: int#
- theta1: float#
- theta1_original: float#
- theta2: float#
- theta2_original: float#
- width: float#
- class suboptimumg.track.models.ContinuousTrackData[source]#
Bases:
BaseModelSerializable data for a continuous (B-spline based) Track.
Fields# Field
Type
Required
Default
NDArray[float64]Yes
floatYes
NDArray[float64]Yes
NDArray[float64]Yes
NDArray[int32]Yes
tuple[NDArray[float64],list[NDArray[float64]],int]Yes
NDArray[float64]Yes
NDArray[float64]Yes
- Parameters:
dx (NDArray[float64])
radius (NDArray[float64])
cumulative_dist (NDArray[float64])
x_m (NDArray[float64])
y_m (NDArray[float64])
distance_step (float)
tck (tuple[NDArray[float64], list[NDArray[float64]], int])
seed_idx (NDArray[int32])
- cumulative_dist: NDArray[np.float64]#
- distance_step: float#
- dx: NDArray[np.float64]#
- radius: NDArray[np.float64]#
- seed_idx: NDArray[np.int32]#
- tck: tuple[NDArray[np.float64], list[NDArray[np.float64]], int]#
- x_m: NDArray[np.float64]#
- y_m: NDArray[np.float64]#
- class suboptimumg.track.models.CornerListInput[source]#
Bases:
BaseModelStrongly-typed class defining a Track based on corners.
Fields# Field
Type
Required
Default
boolYes
list[Annotated[list[float], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]]Yes
floatYes
floatYes
floatYes
Validators# Validator
Mode
Fields
before
- Parameters:
corners (list[Annotated[list[float], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]])
shorten (float)
distance_step (float)
clean_corners (bool)
ideal_rotation_angle (float)
- clean_corners: bool#
- corners: list[Annotated[list[float], Field(min_length=2, max_length=2)]]#
- distance_step: float#
- ideal_rotation_angle: float#
- shorten: float#
- classmethod wrap_single_corner(v)[source]#
Nest a single unnested corner into a one-element list of corners.
- Parameters:
v (object) – Raw input before validation: either one corner [radius, length], or a list of corners.
- Returns:
The corners, guaranteed to be a list of [radius, length] pairs.
- Return type:
object
- class suboptimumg.track.models.DiscreteTrackData[source]#
Bases:
BaseModelSerializable data for a discrete (corner based) Track.
Fields# Field
Type
Required
Default
list[ArcData]Yes
NDArray[float64]Yes
floatYes
NDArray[float64]Yes
list[list[float]]Yes
NDArray[float64]Yes
NDArray[int32]Yes
NDArray[float64]Yes
NDArray[float64]Yes
- Parameters:
dx (NDArray[float64])
radius (NDArray[float64])
cumulative_dist (NDArray[float64])
x_m (NDArray[float64])
y_m (NDArray[float64])
distance_step (float)
original_corners (list[list[float]])
arcs (list[ArcData])
seed_idx (NDArray[int32])
- cumulative_dist: NDArray[np.float64]#
- distance_step: float#
- dx: NDArray[np.float64]#
- original_corners: list[list[float]]#
- radius: NDArray[np.float64]#
- seed_idx: NDArray[np.int32]#
- x_m: NDArray[np.float64]#
- y_m: NDArray[np.float64]#
- class suboptimumg.track.models.PerdaLogInput[source]#
Bases:
BaseModelInput for building a Track from a PERDA SingleRunData lap segment.
Fields# Field
Type
Required
Default
Constraints
floatNo
0.18gt=0.0
SingleRunDataYes
floatNo
0.1gt=0.0
intNo
4ge=1
floatNo
300.0gt=0.0
- Parameters:
data (SingleRunData)
distance_step (Annotated[float, Gt(gt=0)])
cutoff_freq_per_meter (Annotated[float, Gt(gt=0)])
max_radius (Annotated[float, Gt(gt=0)])
filter_order (Annotated[int, Ge(ge=1)])
- cutoff_freq_per_meter: float#
- data: SingleRunData#
- distance_step: float#
- filter_order: int#
- max_radius: float#