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, clamp radius and fit the B-spline via _build_continuous_track.

suboptimumg.track.track_factory.from_sampled(sampled, distance_step)[source]#

Factory method to rebuild a continuous Track from uniformly spaced samples saved in YAML.

Parameters:
  • sampled (SampledTrackInput) – Radius and position samples, spaced by sampled.distance_step.

  • distance_step (float) – Spacing to resample the track onto, in meters.

Returns:

Continuous Track instance with precomputed radius and B-spline.

Return type:

Track