How julioanzaldo/telemetry-anomdet works
telemetry-anomdet is a spacecraft-telemetry anomaly detection toolkit. Its principal workflow loads telemetry, cleans and windows it, scores nominally trained detectors, and flags unusual windows using a learned or operator-supplied threshold. It also combines detector scores, supports event-aware evaluation, and can distill KANGDN into C for embedded deployment. The graph reflects the documented pipeline and sampled implementation; some subsystem wiring, especially unsampled deep-model internals and deployment handoff, is documented but not directly verified in the excerpts.
Main entry points: deep Graph deep detectors · evaluation.py Event evaluation · ensemble.py Score ensemble · unsupervised Classical detectors
Components 18
Telemetry Data
- SMAP / MSL loader
src/telemetry_anomdet/ingest/smap.py - CSV loader
src/telemetry_anomdet/ingest/csv_loader.py - CCSDS loader
src/telemetry_anomdet/ingest/ccsds_loader.py - Telemetry dataset
src/telemetry_anomdet/ingest/dataset.py - Cleaning and resampling
src/telemetry_anomdet/preprocessing/preprocessing.py - Windowing and features
src/telemetry_anomdet/feature_extraction/features.py
Detection
- Detector interface
src/telemetry_anomdet/models/base.py - Classical detectors
src/telemetry_anomdet/models/unsupervised - Graph deep detectors
src/telemetry_anomdet/models/deep - Score ensemble
src/telemetry_anomdet/models/ensemble.py
Alarms and Evaluation
- Alarm thresholds
src/telemetry_anomdet/thresholding.py - Event evaluation
src/telemetry_anomdet/evaluation.py
Flight Deployment
- KANGDN distillation
src/telemetry_anomdet/models/deep/distill.py - C code generation
src/telemetry_anomdet/models/deep/codegen.py - Host C target
targets/host/main.c - ESP32-S3 target
targets/esp32s3/main/main.c
Other components
- Toolkit user
- Benchmark labels
Connections 30
- Toolkit user → SMAP / MSL loader: loads benchmark data
- Toolkit user → CSV loader: loads telemetry
- Toolkit user → CCSDS loader: loads packets
- SMAP / MSL loader → Telemetry dataset: creates dataset
- CSV loader → Telemetry dataset: creates dataset
- CCSDS loader → Telemetry dataset: creates dataset
- Toolkit user → Cleaning and resampling: applies cleaning
- Telemetry dataset → Cleaning and resampling: provides telemetry
- Cleaning and resampling → Windowing and features: prepares series
- Toolkit user → Windowing and features: requests windows
- Windowing and features → Detector interface: provides windows
- Classical detectors → Detector interface: implements interface
- Graph deep detectors → Detector interface: implements interface
- Toolkit user → Score ensemble: fits and scores
- Score ensemble → Classical detectors: calls detectors
- Score ensemble → Graph deep detectors: calls detectors
- Toolkit user → Classical detectors: fits or scores
- Toolkit user → Graph deep detectors: fits or scores
- Detector interface → Alarm thresholds: selects alarm cutoff
- Toolkit user → Alarm thresholds: sets operating point
- Toolkit user → Event evaluation: evaluates scores
- Score ensemble → Event evaluation: provides scores
- Classical detectors → Event evaluation: provides scores
- Graph deep detectors → Event evaluation: provides scores
- Benchmark labels → Event evaluation: provides ground truth
- Toolkit user → KANGDN distillation: distills fitted model
- Graph deep detectors → KANGDN distillation: provides KANGDN model
- KANGDN distillation → C code generation: provides specification
- C code generation → Host C target: emits C detector
- C code generation → ESP32-S3 target: emits C detector