CoolFace
Datasetpublic

appleparan/telemanom

NASA SMAP and MSL Spacecraft Anomaly Detection Dataset Dataset Description This dataset contains real spacecraft telemetry data and labeled anomalies from two NASA missions: SMAP (Soil Moisture Active Passive satellite) MSL (Mars Science Laboratory / Curiosity Rover) The data was originally used in the 2018 KDD paper Detecting Spacecraft Anomalies Using LSTMs and Nonparametric Dynamic Thresholding and released via the telemanom repository. Dataset… See the full description on the dataset page: https://huggingface.co/datasets/appleparan/telemanom.

sourceHugging Facebsd-3-clauseupdated 6mo agoView on Hugging Face
0likes2.2kdownloads
Dataset Card

NASA SMAP and MSL Spacecraft Anomaly Detection Dataset

Dataset Description

This dataset contains real spacecraft telemetry data and labeled anomalies from two NASA missions:

  • SMAP (Soil Moisture Active Passive satellite)
  • MSL (Mars Science Laboratory / Curiosity Rover)

The data was originally used in the 2018 KDD paper Detecting Spacecraft Anomalies Using LSTMs and Nonparametric Dynamic Thresholding and released via the telemanom repository.

Dataset Structure

data/
  train/       # 82 Parquet files (one per channel)
  test/        # 82 Parquet files (one per channel)
  data/
    train/     # 82 .npy files (original format)
    test/      # 82 .npy files (original format)
labeled_anomalies.csv

Each channel is available as a separate config (e.g., A-1, P-1, M-1) that can be selected in the dataset viewer or loaded programmatically.

Data Files

Each Parquet file contains the following columns:

ColumnDescription
timestepInteger index of the time step
valueTarget telemetry value being monitored
cmd_0 ... cmd_NOne-hot encoded command information (24 or 54 columns depending on channel)
  • All telemetry values are anonymized and normalized to [-1, 1] based on min/max in the test set.
  • Channel IDs are anonymized; the first letter indicates channel type (P = power, R = radiation, etc.).
  • SMAP channels have 24 command columns; MSL channels have 54 command columns.

Anomaly Labels (labeled_anomalies.csv)

ColumnDescription
chan_idAnonymized channel ID
spacecraftSMAP or MSL
anomaly_sequencesStart and end indices of anomalies in the test set
classAnomaly type: point or contextual
num_valuesNumber of telemetry values in the test stream

Dataset Statistics

SMAPMSLTotal
Total anomaly sequences6936105
Point anomalies (%)43 (62%)19 (53%)62 (59%)
Contextual anomalies (%)26 (38%)17 (47%)43 (41%)
Unique telemetry channels552782
Telemetry values evaluated429,73566,709496,444

Usage

Using datasets library (recommended)

python
from datasets import load_dataset

# Load a specific channel (e.g., P-1)
ds = load_dataset("appleparan/telemanom", name="P-1")
print(ds)
# DatasetDict({
#     train: Dataset({features: ['timestep', 'value', 'cmd_0', ...], num_rows: ...})
#     test:  Dataset({features: ['timestep', 'value', 'cmd_0', ...], num_rows: ...})
# })

# Access train/test splits
train_df = ds["train"].to_pandas()
test_df = ds["test"].to_pandas()

Using numpy (original .npy format)

python
import numpy as np
from huggingface_hub import hf_hub_download

path = hf_hub_download(
    repo_id="appleparan/telemanom",
    filename="data/data/test/P-1.npy",
    repo_type="dataset",
)
data = np.load(path)
print(data.shape)  # (n_timesteps, n_inputs)

Source

  • Original repository: khundman/telemanom
  • Paper: arXiv:1802.04431
  • Contributors: Kyle Hundman, Valentinos Constantinou, Christopher Laporte, Ian Colwell, Tom Soderstrom (NASA JPL)

Citation

bibtex
@inproceedings{hundman2018detecting,
  title     = {Detecting Spacecraft Anomalies Using LSTMs and Nonparametric Dynamic Thresholding},
  author    = {Hundman, Kyle and Constantinou, Valentino and Laporte, Christopher and Colwell, Ian and Soderstrom, Tom},
  booktitle = {Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
  year      = {2018}
}

License

This dataset is distributed under the BSD 3-Clause License (Copyright (c) 2018, California Institute of Technology).

Note: The original repository's README states Apache 2.0, but the actual LICENSE.txt file contains a BSD 3-Clause license from Caltech/JPL. This dataset card follows the license file.