perda.utils.data_summary#

pydantic model perda.utils.data_summary.DataInstanceSummary[source]#

Bases: BaseModel

Summary statistics for a single DataInstance.

Fields:
field header: str [Required]#

Label / ID / C++ name line of the source DataInstance

field count: int [Required]#

Number of data points

field time_unit: Timescale [Required]#

Time unit that all timestamps below are expressed in

field first_timestamp: float = 0.0#

Timestamp of the first data point

field last_timestamp: float = 0.0#

Timestamp of the last data point

field min_value: float = 0.0#

Smallest value

field min_timestamp: float = 0.0#

Timestamp at which the minimum occurs

field max_value: float = 0.0#

Largest value

field max_timestamp: float = 0.0#

Timestamp at which the maximum occurs

field average: float = 0.0#

Time-weighted average over the full range

perda.utils.data_summary.data_instance_summary(data_instance, source_time_unit, target_time_unit=Timescale.S)[source]#

Summarize a DataInstance.

Parameters:
  • data_instance (DataInstance) – The DataInstance to summarize

  • source_time_unit (Timescale) – Time unit of data instance. Pass aly.data.timestamp_unit.

  • target_time_unit (Timescale, optional) – Time unit used by the summary. Default is Timescale.S.

Returns:

Statistics for the DataInstance. Printing is left to the caller.

Return type:

DataInstanceSummary

Examples

>>> from perda.utils import data_instance_summary
>>> summary = data_instance_summary(
...     aly.data["bms.pack.current"], source_time_unit=aly.data.timestamp_unit
... )
>>> str(summary)
>>> summary.max_value
perda.utils.data_summary.single_run_summary(data, time_unit=Timescale.S)[source]#

Print overall information about the SingleRunData.

Parameters:
  • data (SingleRunData) – Data structure containing CSV file data

  • time_unit (Timescale, optional) – Time unit used by the summary. Default is Timescale.S.

Return type:

None

Notes

This only prints. To keep the text, capture stdout with contextlib.redirect_stdout.

Examples

>>> import io
>>> from contextlib import redirect_stdout
>>> from perda.utils import single_run_summary
>>> buffer = io.StringIO()
>>> with redirect_stdout(buffer):
...     single_run_summary(aly.data)
>>> summary_text = buffer.getvalue()