Skip to content

signal_quality

signal_quality ¤

SignalQualityEvents ¤

SignalQualityEvents(
    dataframe: DataFrame,
    signal_uuid: str,
    *,
    event_uuid: str = "quality:signal",
    value_column: str = "value_double",
    time_column: str = "systime"
)

Bases: Base

Quality: Signal Quality Monitoring

Detect data quality issues in a numeric signal: missing data, irregular sampling, out-of-range values, and data completeness.

Methods: - detect_missing_data: Find gaps exceeding expected sampling frequency. - sampling_regularity: Inter-sample interval statistics per window. - detect_out_of_range: Flag values outside physical/expected bounds. - data_completeness: Percentage of expected samples received per window.

detect_missing_data ¤

detect_missing_data(
    expected_freq: str = "1s", tolerance_factor: float = 2.0
) -> pd.DataFrame

Find gaps where time between samples exceeds expected frequency.

Parameters:

Name Type Description Default
expected_freq str

Expected sampling frequency (e.g. '1s', '100ms').

'1s'
tolerance_factor float

Multiplier on expected_freq to trigger a gap.

2.0

Returns:

Type Description
DataFrame

DataFrame with columns: gap_start, gap_end, gap_duration,

DataFrame

expected_samples_missing.

sampling_regularity ¤

sampling_regularity(window: str = '1h') -> pd.DataFrame

Inter-sample interval statistics per window.

Parameters:

Name Type Description Default
window str

Resample window.

'1h'

Returns:

Type Description
DataFrame

DataFrame with columns: window_start, mean_interval, std_interval,

DataFrame

min_interval, max_interval, regularity_score.

detect_out_of_range ¤

detect_out_of_range(
    min_value: float, max_value: float
) -> pd.DataFrame

Flag intervals where signal is outside expected range.

Parameters:

Name Type Description Default
min_value float

Minimum acceptable value.

required
max_value float

Maximum acceptable value.

required

Returns:

Type Description
DataFrame

DataFrame with columns: start_time, end_time, duration,

DataFrame

min_observed, max_observed, direction.

data_completeness ¤

data_completeness(
    window: str = "1h", expected_freq: str = "1s"
) -> pd.DataFrame

Percentage of expected samples actually received per window.

Parameters:

Name Type Description Default
window str

Resample window.

'1h'
expected_freq str

Expected sampling frequency.

'1s'

Returns:

Type Description
DataFrame

DataFrame with columns: window_start, expected_count,

DataFrame

actual_count, completeness_pct.