machine_state
machine_state ¤
MachineStateEvents ¤
MachineStateEvents(
dataframe: DataFrame,
run_state_uuid: str,
*,
event_uuid: str = "prod:run_idle",
value_column: str = "value_bool",
time_column: str = "systime"
)
Bases: Base
Production: Machine State
Detect run/idle transitions and intervals from a boolean state signal.
- MachineStateEvents: Run/idle state intervals and transitions.
- detect_run_idle: Intervalize run/idle states with optional min duration filter.
- transition_events: Point events on state changes (idle->run, run->idle).
detect_run_idle ¤
detect_run_idle(min_duration: str = '0s') -> pd.DataFrame
Return intervals labeled as 'run' or 'idle'.
- min_duration: discard intervals shorter than this duration. Columns: start, end, uuid, source_uuid, is_delta, state, duration_seconds
transition_events ¤
transition_events() -> pd.DataFrame
Return point events at state transitions.
Columns: systime, uuid, source_uuid, is_delta, transition ('idle_to_run'|'run_to_idle'), time_since_last_transition_seconds
detect_rapid_transitions ¤
detect_rapid_transitions(
threshold: str = "5s", min_count: int = 3
) -> pd.DataFrame
Identify suspicious rapid state changes.
- threshold: time window to look for rapid transitions
- min_count: minimum number of transitions within threshold to be considered rapid Returns: DataFrame with start_time, end_time, transition_count, duration_seconds
state_quality_metrics ¤
state_quality_metrics() -> Dict[str, Any]
Return quality metrics for the state data.
Returns dictionary with: - total_transitions: total number of state transitions - avg_run_duration: average duration of run states in seconds - avg_idle_duration: average duration of idle states in seconds - run_idle_ratio: ratio of run time to idle time - data_gaps_detected: number of data gaps found - rapid_transitions_detected: number of rapid transition events