Data Cleaning Demo
Data Generation
Cleaning Options
detect_instability combines derivative variance, amplitude growth, and
sign-change frequency over window_size; oscillation_threshold applies
to the derivative and combined scores.
Single Series Cleaning
Quality Report: 25 removed, oscillation detected (80 → 55 points) ⚠️ Instability at x=55 (score:
0.72)
import { clean_series } from '$lib/plot'
import type { DataSeries, CleaningConfig } from '$lib/plot'
const series: DataSeries = {
x: [0, 1, 2, 3, 4, ...],
y: [10.0, 10.5, 11.0, 11.5, 12.0, ...],
}
const config: CleaningConfig = {
invalid_values: 'remove',
oscillation_threshold: 2.5,
window_size: 5,
truncation_mode: 'hard_cut',
in_place: false,
}
const { series: cleaned, quality } = clean_series(series, config)
// Result: 55 points (25 removed)
// quality.invalid_values_found = 0
// quality.oscillation_detected = trueMulti-Series Cleaning (Correlated Data)
Synchronized filtering removes a row from every series when any value is invalid.
Result: 50 → 46 timesteps (Temp: 2 glitches, Pressure: 2 glitches)
Raw Data (NaN positions marked)
Cleaned (series aligned)
Trajectory Alignment
Invalid coordinates remove the corresponding point from every trajectory array.
Result: 50 → 47 points (3 invalid values removed from all coordinates)