piel.tools.virtuoso.simulation.data.time#

Functions#

dataframe_to_multi_time_signal_data(...)

Converts a DataFrame containing time and data columns into a list of DataTimeSignalData objects.

extract_signals_from_csv(→ piel.types.MultiDataTimeSignal)

Reads a CSV file and extracts time-series signals as a list of DataTimeSignalData objects.

Module Contents#

dataframe_to_multi_time_signal_data(df) piel.types.MultiDataTimeSignal[source]#

Converts a DataFrame containing time and data columns into a list of DataTimeSignalData objects.

This function processes a DataFrame where each signal is represented by a pair of columns: one for time (ending with “ X”) and one for the corresponding data values (ending with “ Y”). It constructs DataTimeSignalData objects for each valid pair and returns them as a list.

Parameters:

df (pd.DataFrame) – A DataFrame with columns representing time (‘X’) and data (‘Y’) pairs.

Returns:

A list of DataTimeSignalData objects, where each object represents a signal.

Return type:

MultiDataTimeSignal

Example

Input DataFrame:

Signal1 X | Signal1 Y | Signal2 X | Signal2 Y ——— | ——— | ——— | ——— 0.0 | 10.0 | 0.0 | 20.0 1.0 | 15.0 | 1.0 | 25.0

Output:
[

DataTimeSignalData(time_s=[0.0, 1.0], data=[10.0, 15.0], data_name=”Signal1”), DataTimeSignalData(time_s=[0.0, 1.0], data=[20.0, 25.0], data_name=”Signal2”)

]

extract_signals_from_csv(file_path: str) piel.types.MultiDataTimeSignal[source]#

Reads a CSV file and extracts time-series signals as a list of DataTimeSignalData objects.

This function reads the contents of a CSV file into a pandas DataFrame, then converts the DataFrame into a list of DataTimeSignalData objects using the dataframe_to_multi_time_signal_data function.

Parameters:

file_path (str) – The path to the CSV file.

Returns:

A list of DataTimeSignalData objects, where each object represents a time-series signal.

Return type:

MultiDataTimeSignal

Example

If the CSV contains:

Signal1 X,Signal1 Y,Signal2 X,Signal2 Y 0.0,10.0,0.0,20.0 1.0,15.0,1.0,25.0

The output will be:
[

DataTimeSignalData(time_s=[0.0, 1.0], data=[10.0, 15.0], data_name=”Signal1”), DataTimeSignalData(time_s=[0.0, 1.0], data=[20.0, 25.0], data_name=”Signal2”)

]