Back to portfolio

Satellite Telemetry Anomaly Detection System

Using LSTM autoencoders to catch satellite failures before they happen

Motivation

Satellites generate thousands of telemetry channels — temperature, voltage, reaction wheel speeds, solar panel current. When something goes wrong, the anomaly often shows up as a subtle deviation in these signals long before a full system failure. The question: can we build a model that learns what "normal" looks like and automatically flags deviations?

The Dataset

I'm using NASA's SMAP (Soil Moisture Active Passive) and MSL (Mars Science Laboratory) anomaly benchmark datasets. These contain real telemetry data with labeled anomaly windows, making them ideal for training and evaluating detection systems.

Why these datasets matter: Unlike synthetic benchmarks, SMAP/MSL data comes from actual spacecraft operations. The anomalies are real failures that mission operators had to deal with, not artificially injected noise.

Architecture: LSTM Autoencoder

The core idea is unsupervised: train an LSTM autoencoder on normal telemetry data, then measure reconstruction error on new data. High reconstruction error means the model hasn't seen this pattern before — likely an anomaly.

The encoder compresses a sliding window of telemetry into a latent representation, and the decoder reconstructs the original signal. During inference, the reconstruction error at each timestep serves as an anomaly score.

Dynamic Thresholding

A fixed threshold for anomaly detection doesn't work — different telemetry channels have different noise characteristics, and the definition of "abnormal" changes with operational mode. I'm developing a dynamic thresholding system that adapts based on:

The goal is maximizing detection of critical subsystem failures while keeping false positive rates low enough for operational use.

Current Progress

The LSTM autoencoder is trained and achieving strong reconstruction on nominal data. Currently tuning the dynamic thresholding logic and evaluating performance across different anomaly types in the SMAP/MSL benchmark.

Back to all projects