perda.units#

class perda.units.Timescale(*values)[source]#

Bases: Enum

Supported timestamp units for time-series data.

Notes

Every log stores raw timestamps in one native unit, given by SingleRunData.timestamp_unit. Current logs use Timescale.US. Helpers that take a source_time_unit or timestamp_unit argument require it; pass data.timestamp_unit.

Examples

>>> from perda.units import Timescale
>>> aly.data.timestamp_unit
<Timescale.US: 'us'>
MS = 'ms'#
S = 's'#
US = 'us'#
perda.units.convert_time(timestamp, source_time_unit, target_time_unit)[source]#

Convert a timestamp between two timescale units.

Parameters:
  • timestamp (float | NDArray[Float64]) – Timestamp(s) to convert.

  • source_time_unit (Timescale) – Unit of the input timestamp. Pass aly.data.timestamp_unit.

  • target_time_unit (Timescale) – Desired output unit.

Returns:

Timestamp(s) in the target unit.

Return type:

float | NDArray[Float64]

Examples

>>> from perda.units import Timescale, convert_time
>>> convert_time(5000.0, Timescale.MS, Timescale.S)
5.0
perda.units.from_seconds(timestamp_s, target_time_unit)[source]#

Convert a timestamp from seconds to the given unit.

Parameters:
  • timestamp_s (float | NDArray[Float64]) – Timestamp(s) in seconds.

  • target_time_unit (Timescale) – Desired output unit.

Returns:

Timestamp(s) in the target unit.

Return type:

float | NDArray[Float64]

Examples

>>> from perda.units import from_seconds
>>> ts_start = aly.data.data_start_time + from_seconds(10.0, aly.data.timestamp_unit)
perda.units.in_to_m(value)[source]#

Convert a length value from inches to meters.

Parameters:

value (float | NDArray[Float64]) – Length in inches.

Returns:

Length in meters.

Return type:

float | NDArray[Float64]

Examples

>>> from perda.units import in_to_m
>>> in_to_m(1.0)
0.0254
perda.units.mph_to_m_per_s(value)[source]#

Convert a speed value from miles per hour to meters per second.

Parameters:

value (float | NDArray[Float64]) – Speed in mph.

Returns:

Speed in m/s.

Return type:

float | NDArray[Float64]

Examples

>>> from perda.units import mph_to_m_per_s
>>> mph_to_m_per_s(1.0)
0.44704
perda.units.to_seconds(timestamp, source_time_unit)[source]#

Convert a timestamp from the given unit to seconds.

Parameters:
  • timestamp (float | NDArray[Float64]) – Timestamp(s) to convert.

  • source_time_unit (Timescale) – Unit of the input timestamp. Pass aly.data.timestamp_unit.

Returns:

Timestamp(s) in seconds.

Return type:

float | NDArray[Float64]

Examples

>>> from perda.units import to_seconds
>>> di = aly.data["pcm.wheelSpeeds.frontRight"]
>>> time_s = to_seconds(di.timestamp_np, aly.data.timestamp_unit)