suboptimumg.track.track_factory#

suboptimumg.track.track_factory.from_corners(corner_input)[source]#

Factory method to generate a Track class from a list of corners. Compatible with tracks saved in YAML.

Parameters:

corner_input (CornerListInput) – Corner list input containing corners and track parameters

Returns:

Track instance created from corner list

Return type:

Track

suboptimumg.track.track_factory.from_data(data)[source]#

Factory method to create a Track from a TrackData model.

Parameters:

data (ContinuousTrackData | DiscreteTrackData) – A TrackData instance containing all track fields including pre-computed seed indices

Returns:

A new Track instance with all fields populated from the data model

Return type:

Track

suboptimumg.track.track_factory.from_perda_logs(log_input)[source]#

Build a QSS-compatible Track from a PERDA lap segment.

Parameters:

log_input (PerdaLogInput) – Validated input holding a SingleRunData lap segment with required fields (body.curvature, groundSpeed, posN, posE) and filter/resample parameters.

Returns:

Continuous Track instance with precomputed radius and B-spline.

Return type:

Track

Notes

Pipeline:
  1. Align body.curvature and posE onto posN timestamp grid.

  2. Compute cumulative arc-length distance DataInstance from posN/posE.

  3. Apply PERDA spatial lowpass filter on aligned curvature.

  4. Resample filtered curvature, posN, posE onto uniform distance grid.

  5. Convert curvature to radius, clamped at max_radius.

  6. Fit B-spline to uniformly-resampled XY.