suboptimumg.track.models#

class suboptimumg.track.models.ArcData[source]#

Bases: BaseModel

Data model for arc geometry. Stores parameters needed to render an arc segment of a track.

Fields#

Field

Type

Required

Default

angle

float

Yes

center

Tuple[float, float]

Yes

height

float

Yes

n_points

int

Yes

theta1

float

Yes

theta1_original

float

Yes

theta2

float

Yes

theta2_original

float

Yes

width

float

Yes

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: BaseModel

Fields#

Field

Type

Required

Default

cumulative_dist

ndarray[tuple[Any, …], dtype[float64]]

Yes

distance_step

float

Yes

dx

ndarray[tuple[Any, …], dtype[float64]]

Yes

radius

ndarray[tuple[Any, …], dtype[float64]]

Yes

seed_idx

ndarray[tuple[Any, …], dtype[int32]]

Yes

tck

Any

Yes

x_m

ndarray[tuple[Any, …], dtype[float64]]

Yes

y_m

ndarray[tuple[Any, …], dtype[float64]]

Yes

Parameters:
  • dx (ndarray[tuple[Any, ...], dtype[float64]])

  • radius (ndarray[tuple[Any, ...], dtype[float64]])

  • cumulative_dist (ndarray[tuple[Any, ...], dtype[float64]])

  • x_m (ndarray[tuple[Any, ...], dtype[float64]])

  • y_m (ndarray[tuple[Any, ...], dtype[float64]])

  • distance_step (float)

  • tck (Any)

  • seed_idx (ndarray[tuple[Any, ...], dtype[int32]])

cumulative_dist: ndarray[tuple[Any, ...], dtype[float64]]#
distance_step: float#
dx: ndarray[tuple[Any, ...], dtype[float64]]#
radius: ndarray[tuple[Any, ...], dtype[float64]]#
seed_idx: ndarray[tuple[Any, ...], dtype[int32]]#
tck: Any#
x_m: ndarray[tuple[Any, ...], dtype[float64]]#
y_m: ndarray[tuple[Any, ...], dtype[float64]]#
class suboptimumg.track.models.CornerListInput[source]#

Bases: BaseModel

Strongly-typed class defining a Track based on corners.

Fields#

Field

Type

Required

Default

clean_corners

bool

Yes

corners

List[Annotated[List, FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]]

Yes

distance_step

float

Yes

ideal_rotation_angle

float

Yes

shorten

float

Yes

Validators#

Validator

Mode

Fields

wrap_single_corner

before

corners

Parameters:
  • corners (List[Annotated[List, 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, FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]]#
distance_step: float#
ideal_rotation_angle: float#
shorten: float#
classmethod wrap_single_corner(v)[source]#
class suboptimumg.track.models.DiscreteTrackData[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

arcs

List[ArcData]

Yes

cumulative_dist

ndarray[tuple[Any, …], dtype[float64]]

Yes

distance_step

float

Yes

dx

ndarray[tuple[Any, …], dtype[float64]]

Yes

original_corners

List[List]

Yes

radius

ndarray[tuple[Any, …], dtype[float64]]

Yes

seed_idx

ndarray[tuple[Any, …], dtype[int32]]

Yes

x_m

ndarray[tuple[Any, …], dtype[float64]]

Yes

y_m

ndarray[tuple[Any, …], dtype[float64]]

Yes

Parameters:
  • dx (ndarray[tuple[Any, ...], dtype[float64]])

  • radius (ndarray[tuple[Any, ...], dtype[float64]])

  • cumulative_dist (ndarray[tuple[Any, ...], dtype[float64]])

  • x_m (ndarray[tuple[Any, ...], dtype[float64]])

  • y_m (ndarray[tuple[Any, ...], dtype[float64]])

  • distance_step (float)

  • original_corners (List[List])

  • arcs (List[ArcData])

  • seed_idx (ndarray[tuple[Any, ...], dtype[int32]])

arcs: List[ArcData]#
cumulative_dist: ndarray[tuple[Any, ...], dtype[float64]]#
distance_step: float#
dx: ndarray[tuple[Any, ...], dtype[float64]]#
original_corners: List[List]#
radius: ndarray[tuple[Any, ...], dtype[float64]]#
seed_idx: ndarray[tuple[Any, ...], dtype[int32]]#
x_m: ndarray[tuple[Any, ...], dtype[float64]]#
y_m: ndarray[tuple[Any, ...], dtype[float64]]#
class suboptimumg.track.models.PerdaLogInput[source]#

Bases: BaseModel

Input for building a Track from a PERDA SingleRunData lap segment.

Fields#

Field

Type

Required

Default

Constraints

cutoff_freq_per_meter

float

No

0.18

gt=0.0

data

SingleRunData

Yes

distance_step

float

No

0.1

gt=0.0

filter_order

int

No

4

ge=1

max_radius

float

No

300.0

gt=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#