Source code for piel.analysis.signals.dc.utils

import numpy as np
from typing import Optional
from piel.types import SignalDC, Unit
import logging

logger = logging.getLogger(__name__)


[docs] def get_trace_values_by_datum( signal_dc: SignalDC, desired_datum: str ) -> Optional[np.ndarray]: """ Retrieves the values of a trace from a SignalDC instance based on the unit's datum. Args: signal_dc (SignalDC): The SignalDC instance containing the traces. desired_datum (str): The datum type to filter traces (e.g., 'voltage', 'ampere') See unit definitions. Returns: Optional[np.ndarray]: The numpy array of trace values if found, else None. """ for trace in signal_dc.trace_list: logger.debug(f"Trace unit: {trace.unit.datum}") if trace.unit.datum.lower() == desired_datum.lower(): return np.array(trace.values) return None
[docs] def get_trace_values_by_unit( signal_dc: SignalDC, desired_unit: Unit ) -> Optional[np.ndarray]: """ Retrieves the values of a trace from a SignalDC instance based on the exact unit. Args: signal_dc (SignalDC): The SignalDC instance containing the traces. desired_unit (Unit): The Unit instance to filter traces. Returns: Optional[np.ndarray]: The numpy array of trace values if found, else None. """ for trace in signal_dc.trace_list: if trace.unit.name.lower() == desired_unit.name.lower(): return np.array(trace.values) return None