Skip to content

Repository files navigation

🛰️ SATSentinel-X

AI-Assisted Spacecraft Telemetry Intelligence Platform

Explainable anomaly detection, real-time monitoring, and predictive failure forecasting for spacecraft mission reliability

Python FastAPI PyTorch scikit-learn License


Overview

SATSentinel-X is an end-to-end AI platform for spacecraft health monitoring and autonomous fault diagnosis. It ingests simulated real-time telemetry from six spacecraft subsystems, runs a three-layer ensemble anomaly detection pipeline, localizes faults to specific subsystems, generates explainable diagnostics with SHAP attribution, and forecasts failure probability up to 5 seconds ahead — all served through a FastAPI backend with WebSocket streaming and a mission-control-style React dashboard.

Framing: This is not a standard anomaly detection project. It is an AI operations platform for mission-critical environments, combining streaming data engineering, interpretable ML, temporal forecasting, and operational intelligence into a single deployable system.


Results

Metric Value
F1 Score 0.767
AUC-ROC 0.943
Precision (Anomaly) 0.70
Recall (Anomaly) 0.85
Overall Accuracy 0.88
Detection Latency < 1s (real-time)
Subsystems Monitored 6
Telemetry Channels 26
Fault Scenarios 5

Threshold calibrated via Precision-Recall curve targeting ≥ 70% precision.


Architecture

┌─────────────────────────────────────────────────────────────┐
│                    SATSentinel-X Pipeline                   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Telemetry Simulator                                        │
│  ├── 26-channel correlated spacecraft telemetry             │
│  ├── Physics-inspired orbital eclipse/sunlight cycles       │
│  ├── 5 fault scenarios with cascading subsystem effects     │
│  └── 1 Hz streaming generator                              │
│            │                                                │
│            ▼                                                │
│  Feature Engineering                                        │
│  └── RobustScaler normalization per channel                 │
│            │                                                │
│            ▼                                                │
│  Anomaly Detection Ensemble                                 │
│  ├── Layer 1: Isolation Forest (300 trees, nominal-trained) │
│  ├── Layer 2: LSTM Autoencoder (seq_len=30, recon error)    │
│  └── Layer 3: Per-subsystem Z-Score (6 subsystems × N feat)│
│            │                                                │
│            ▼                                                │
│  Explainability + Root Cause Layer                          │
│  ├── SHAP TreeExplainer (feature-level attribution)         │
│  ├── Subsystem Z-Score ranking (fault localization)         │
│  └── Rule-based downstream risk + operator action           │
│            │                                                │
│            ▼                                                │
│  Failure Forecaster                                         │
│  └── Attention-LSTM → P(failure) for t+1 to t+5 steps      │
│            │                                                │
│            ▼                                                │
│  FastAPI Backend                                            │
│  ├── REST endpoints + WebSocket push (1 Hz)                 │
│  ├── Fault injection API                                    │
│  └── SHAP / forecast / metrics endpoints                    │
│            │                                                │
│            ▼                                                │
│  Mission Control Dashboard (React + Recharts)               │
│  ├── Live telemetry charts (6 channels)                     │
│  ├── Subsystem health radar                                 │
│  ├── Anomaly confidence bar + alert log                     │
│  └── Real-time fault injection controls                     │
└─────────────────────────────────────────────────────────────┘

Telemetry Channels

Subsystem Channels Fault Scenario
POWER Battery voltage, current, SoC, solar output, power draw power_degradation
THERMAL OBC temp, battery temp, solar panel temp, thruster temp thermal_runaway
COMMS Signal strength, BER, downlink latency, uplink SNR comms_link_degradation
ADCS Gyro X/Y/Z, attitude error, reaction wheel RPM attitude_drift
PROPULSION Tank pressure, thruster pulse, delta-V remaining —
PAYLOAD Payload temp, power draw, data buffer % sensor_noise_spike

Fault Cascade Example

power_degradation injected
  → battery_voltage drops 1.5–4V
  → power_consumption spikes 8–12W
  → signal_strength degrades (comm dropout risk)
  → payload_power reduced (instrument safe mode)

Anomaly Detection Design

Why Three Layers?

Each layer catches different failure modes:

Layer Method Catches
Global Isolation Forest Multivariate outliers across all 26 features
Temporal LSTM Autoencoder Pattern deviations over 30-step sequences
Subsystem Z-Score Single-channel threshold exceedances

Threshold Calibration: Rather than using the default Isolation Forest decision boundary, SATSentinel-X calibrates the threshold using the Precision-Recall curve on the full labeled dataset, targeting ≥ 70% precision. This yields a principled operating point rather than an arbitrary cutoff.

Explainability Output (per detection)

{
  "is_anomaly": true,
  "severity": "HIGH",
  "confidence": 0.731,
  "most_anomalous_subsystem": "THERMAL",
  "probable_fault": "thermal_runaway",
  "top_contributing_signals": [
    {"feature": "obc_temp_c",     "z_score": 8.42, "value": 47.3},
    {"feature": "battery_temp_c", "z_score": 6.11, "value": 38.7}
  ],
  "shap_attribution": [
    {"feature": "obc_temp_c",     "shap": 0.0821},
    {"feature": "battery_temp_c", "shap": 0.0612}
  ],
  "failure_forecast_probs": [0.71, 0.74, 0.78, 0.82, 0.85],
  "predicted_downstream_risk": [
    "Component damage above 85°C",
    "Battery capacity degradation"
  ],
  "recommended_action": "Activate thermal control. Reduce power load. Alert thermal team."
}

Quickstart

1. Clone and install

git clone https://github.com/YOUR_USERNAME/SATSentinel-X
cd SATSentinel-X
pip install "numpy<2.0"
pip install -r requirements.txt
pip install shap matplotlib

2. Generate dataset + train

python simulator/telemetry_engine.py   # → data/telemetry_dataset.csv
python retrain.py                      # → models/ (IF + LSTM AE + Forecaster)

3. Run evaluation

python evaluate.py                     # → plots/ (6 publication-quality figures)

4. Start API

uvicorn api.api_v2:app --host 0.0.0.0 --port 8000 --reload

5. API endpoints

Endpoint Method Description
/telemetry/latest GET Latest frame + full detection report
/telemetry/history?n=100 GET Last N frames
/alerts GET Anomaly alert log
/health/subsystems GET Per-subsystem health status
/forecast GET Failure forecast for next 5 steps
/shap/latest GET SHAP attribution for latest frame
/fault/inject?fault_name=X POST Inject fault scenario
/fault/clear POST Return to nominal
/metrics/summary GET Rolling 60-frame anomaly stats
/ws/stream WebSocket Live 1 Hz telemetry push

6. Docker

docker-compose up

Project Structure

SATSentinel-X/
├── simulator/
│   └── telemetry_engine.py       # Correlated telemetry simulator + fault injection
├── ml/
│   └── anomaly_detector_v2.py    # Ensemble detector: IF + LSTM AE + Z-Score + SHAP
├── api/
│   └── api_v2.py                 # FastAPI: REST + WebSocket + SSE + forecasting
├── dashboard/
│   └── SATSentinelDashboard.jsx  # React mission control UI
├── data/
│   └── telemetry_dataset.csv     # 6500 labeled frames (5000 nominal, 1500 fault)
├── models/
│   ├── iso_forest.pkl            # Trained Isolation Forest
│   ├── scaler.pkl                # RobustScaler
│   ├── nominal_stats.pkl         # Per-feature mean/std for Z-score
│   ├── iso_threshold.pkl         # PR-calibrated decision threshold
│   ├── lstm_ae.pt                # LSTM Autoencoder weights
│   ├── lstm_ae_threshold.pkl     # 95th percentile reconstruction threshold
│   └── forecaster.pt             # Attention-LSTM forecaster weights
├── plots/                        # Evaluation figures
├── evaluate.py                   # Full evaluation + visualization suite
├── retrain.py                    # One-command retrain script
├── requirements.txt
├── Dockerfile
└── docker-compose.yml

Roadmap

  • Phase 1 — Telemetry simulation, ensemble detection, FastAPI, dashboard
  • Phase 2 — SHAP explainability, LSTM AE, attention forecaster, calibrated threshold
  • Phase 3 — Kafka streaming, TimescaleDB persistence, Docker production stack
  • Phase 4 — Adaptive thresholds (online learning), causal graph reasoning
  • Phase 5 — LLM-assisted telemetry summaries (FinVerify-style verification layer)
  • Phase 6 — Paper submission: IEEE Aerospace / IACAS 2026

Resume Bullet

SATSentinel-X | Spacecraft Telemetry Intelligence Platform
Python FastAPI PyTorch scikit-learn SHAP React WebSocket Docker

Designed and implemented an end-to-end AI platform for real-time spacecraft health monitoring targeting ISRO-class mission operations. Built a physics-inspired telemetry simulator with 26 correlated channels across 6 subsystems and 5 cascading fault scenarios. Developed a three-layer ensemble anomaly detector (Isolation Forest + LSTM Autoencoder + Z-Score) with PR-curve threshold calibration achieving F1=0.77 and AUC-ROC=0.94. Integrated SHAP explainability for per-detection feature attribution, an attention-LSTM failure forecaster predicting fault probability up to 5 steps ahead, and a FastAPI backend with WebSocket streaming deployed via Docker. Visualized via a mission-control-style React dashboard with live telemetry charts and subsystem health radar.


Author

Aaditya | B.E. Data Engineering, Universal College of Engineering, Mumbai
IEEE Published · Google Developer Groups Lead · E-Cell IIT Bombay
**

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages