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 = true

Multi-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)

Raw Data (NaN positions marked)

Cleaned (NaN points removed)