five

appleparan/telemanom

收藏
Hugging Face2026-04-09 更新2026-04-12 收录
下载链接:
https://hf-mirror.com/datasets/appleparan/telemanom
下载链接
链接失效反馈
官方服务:
资源简介:
--- license: bsd-3-clause task_categories: - other tags: - timeseries - anomaly-detection - spacecraft - telemetry - NASA - SMAP - MSL pretty_name: "NASA SMAP and MSL Spacecraft Anomaly Detection Dataset" size_categories: - 100K<n<1M configs: - config_name: "A-1" data_files: - split: train path: "data/train/A-1.parquet" - split: test path: "data/test/A-1.parquet" - config_name: "A-2" data_files: - split: train path: "data/train/A-2.parquet" - split: test path: "data/test/A-2.parquet" - config_name: "A-3" data_files: - split: train path: "data/train/A-3.parquet" - split: test path: "data/test/A-3.parquet" - config_name: "A-4" data_files: - split: train path: "data/train/A-4.parquet" - split: test path: "data/test/A-4.parquet" - config_name: "A-5" data_files: - split: train path: "data/train/A-5.parquet" - split: test path: "data/test/A-5.parquet" - config_name: "A-6" data_files: - split: train path: "data/train/A-6.parquet" - split: test path: "data/test/A-6.parquet" - config_name: "A-7" data_files: - split: train path: "data/train/A-7.parquet" - split: test path: "data/test/A-7.parquet" - config_name: "A-8" data_files: - split: train path: "data/train/A-8.parquet" - split: test path: "data/test/A-8.parquet" - config_name: "A-9" data_files: - split: train path: "data/train/A-9.parquet" - split: test path: "data/test/A-9.parquet" - config_name: "B-1" data_files: - split: train path: "data/train/B-1.parquet" - split: test path: "data/test/B-1.parquet" - config_name: "C-1" data_files: - split: train path: "data/train/C-1.parquet" - split: test path: "data/test/C-1.parquet" - config_name: "C-2" data_files: - split: train path: "data/train/C-2.parquet" - split: test path: "data/test/C-2.parquet" - config_name: "D-1" data_files: - split: train path: "data/train/D-1.parquet" - split: test path: "data/test/D-1.parquet" - config_name: "D-11" data_files: - split: train path: "data/train/D-11.parquet" - split: test path: "data/test/D-11.parquet" - config_name: "D-12" data_files: - split: train path: "data/train/D-12.parquet" - split: test path: "data/test/D-12.parquet" - config_name: "D-13" data_files: - split: train path: "data/train/D-13.parquet" - split: test path: "data/test/D-13.parquet" - config_name: "D-14" data_files: - split: train path: "data/train/D-14.parquet" - split: test path: "data/test/D-14.parquet" - config_name: "D-15" data_files: - split: train path: "data/train/D-15.parquet" - split: test path: "data/test/D-15.parquet" - config_name: "D-16" data_files: - split: train path: "data/train/D-16.parquet" - split: test path: "data/test/D-16.parquet" - config_name: "D-2" data_files: - split: train path: "data/train/D-2.parquet" - split: test path: "data/test/D-2.parquet" - config_name: "D-3" data_files: - split: train path: "data/train/D-3.parquet" - split: test path: "data/test/D-3.parquet" - config_name: "D-4" data_files: - split: train path: "data/train/D-4.parquet" - split: test path: "data/test/D-4.parquet" - config_name: "D-5" data_files: - split: train path: "data/train/D-5.parquet" - split: test path: "data/test/D-5.parquet" - config_name: "D-6" data_files: - split: train path: "data/train/D-6.parquet" - split: test path: "data/test/D-6.parquet" - config_name: "D-7" data_files: - split: train path: "data/train/D-7.parquet" - split: test path: "data/test/D-7.parquet" - config_name: "D-8" data_files: - split: train path: "data/train/D-8.parquet" - split: test path: "data/test/D-8.parquet" - config_name: "D-9" data_files: - split: train path: "data/train/D-9.parquet" - split: test path: "data/test/D-9.parquet" - config_name: "E-1" data_files: - split: train path: "data/train/E-1.parquet" - split: test path: "data/test/E-1.parquet" - config_name: "E-10" data_files: - split: train path: "data/train/E-10.parquet" - split: test path: "data/test/E-10.parquet" - config_name: "E-11" data_files: - split: train path: "data/train/E-11.parquet" - split: test path: "data/test/E-11.parquet" - config_name: "E-12" data_files: - split: train path: "data/train/E-12.parquet" - split: test path: "data/test/E-12.parquet" - config_name: "E-13" data_files: - split: train path: "data/train/E-13.parquet" - split: test path: "data/test/E-13.parquet" - config_name: "E-2" data_files: - split: train path: "data/train/E-2.parquet" - split: test path: "data/test/E-2.parquet" - config_name: "E-3" data_files: - split: train path: "data/train/E-3.parquet" - split: test path: "data/test/E-3.parquet" - config_name: "E-4" data_files: - split: train path: "data/train/E-4.parquet" - split: test path: "data/test/E-4.parquet" - config_name: "E-5" data_files: - split: train path: "data/train/E-5.parquet" - split: test path: "data/test/E-5.parquet" - config_name: "E-6" data_files: - split: train path: "data/train/E-6.parquet" - split: test path: "data/test/E-6.parquet" - config_name: "E-7" data_files: - split: train path: "data/train/E-7.parquet" - split: test path: "data/test/E-7.parquet" - config_name: "E-8" data_files: - split: train path: "data/train/E-8.parquet" - split: test path: "data/test/E-8.parquet" - config_name: "E-9" data_files: - split: train path: "data/train/E-9.parquet" - split: test path: "data/test/E-9.parquet" - config_name: "F-1" data_files: - split: train path: "data/train/F-1.parquet" - split: test path: "data/test/F-1.parquet" - config_name: "F-2" data_files: - split: train path: "data/train/F-2.parquet" - split: test path: "data/test/F-2.parquet" - config_name: "F-3" data_files: - split: train path: "data/train/F-3.parquet" - split: test path: "data/test/F-3.parquet" - config_name: "F-4" data_files: - split: train path: "data/train/F-4.parquet" - split: test path: "data/test/F-4.parquet" - config_name: "F-5" data_files: - split: train path: "data/train/F-5.parquet" - split: test path: "data/test/F-5.parquet" - config_name: "F-7" data_files: - split: train path: "data/train/F-7.parquet" - split: test path: "data/test/F-7.parquet" - config_name: "F-8" data_files: - split: train path: "data/train/F-8.parquet" - split: test path: "data/test/F-8.parquet" - config_name: "G-1" data_files: - split: train path: "data/train/G-1.parquet" - split: test path: "data/test/G-1.parquet" - config_name: "G-2" data_files: - split: train path: "data/train/G-2.parquet" - split: test path: "data/test/G-2.parquet" - config_name: "G-3" data_files: - split: train path: "data/train/G-3.parquet" - split: test path: "data/test/G-3.parquet" - config_name: "G-4" data_files: - split: train path: "data/train/G-4.parquet" - split: test path: "data/test/G-4.parquet" - config_name: "G-6" data_files: - split: train path: "data/train/G-6.parquet" - split: test path: "data/test/G-6.parquet" - config_name: "G-7" data_files: - split: train path: "data/train/G-7.parquet" - split: test path: "data/test/G-7.parquet" - config_name: "M-1" data_files: - split: train path: "data/train/M-1.parquet" - split: test path: "data/test/M-1.parquet" - config_name: "M-2" data_files: - split: train path: "data/train/M-2.parquet" - split: test path: "data/test/M-2.parquet" - config_name: "M-3" data_files: - split: train path: "data/train/M-3.parquet" - split: test path: "data/test/M-3.parquet" - config_name: "M-4" data_files: - split: train path: "data/train/M-4.parquet" - split: test path: "data/test/M-4.parquet" - config_name: "M-5" data_files: - split: train path: "data/train/M-5.parquet" - split: test path: "data/test/M-5.parquet" - config_name: "M-6" data_files: - split: train path: "data/train/M-6.parquet" - split: test path: "data/test/M-6.parquet" - config_name: "M-7" data_files: - split: train path: "data/train/M-7.parquet" - split: test path: "data/test/M-7.parquet" - config_name: "P-1" data_files: - split: train path: "data/train/P-1.parquet" - split: test path: "data/test/P-1.parquet" - config_name: "P-10" data_files: - split: train path: "data/train/P-10.parquet" - split: test path: "data/test/P-10.parquet" - config_name: "P-11" data_files: - split: train path: "data/train/P-11.parquet" - split: test path: "data/test/P-11.parquet" - config_name: "P-14" data_files: - split: train path: "data/train/P-14.parquet" - split: test path: "data/test/P-14.parquet" - config_name: "P-15" data_files: - split: train path: "data/train/P-15.parquet" - split: test path: "data/test/P-15.parquet" - config_name: "P-2" data_files: - split: train path: "data/train/P-2.parquet" - split: test path: "data/test/P-2.parquet" - config_name: "P-3" data_files: - split: train path: "data/train/P-3.parquet" - split: test path: "data/test/P-3.parquet" - config_name: "P-4" data_files: - split: train path: "data/train/P-4.parquet" - split: test path: "data/test/P-4.parquet" - config_name: "P-7" data_files: - split: train path: "data/train/P-7.parquet" - split: test path: "data/test/P-7.parquet" - config_name: "R-1" data_files: - split: train path: "data/train/R-1.parquet" - split: test path: "data/test/R-1.parquet" - config_name: "S-1" data_files: - split: train path: "data/train/S-1.parquet" - split: test path: "data/test/S-1.parquet" - config_name: "S-2" data_files: - split: train path: "data/train/S-2.parquet" - split: test path: "data/test/S-2.parquet" - config_name: "T-1" data_files: - split: train path: "data/train/T-1.parquet" - split: test path: "data/test/T-1.parquet" - config_name: "T-10" data_files: - split: train path: "data/train/T-10.parquet" - split: test path: "data/test/T-10.parquet" - config_name: "T-12" data_files: - split: train path: "data/train/T-12.parquet" - split: test path: "data/test/T-12.parquet" - config_name: "T-13" data_files: - split: train path: "data/train/T-13.parquet" - split: test path: "data/test/T-13.parquet" - config_name: "T-2" data_files: - split: train path: "data/train/T-2.parquet" - split: test path: "data/test/T-2.parquet" - config_name: "T-3" data_files: - split: train path: "data/train/T-3.parquet" - split: test path: "data/test/T-3.parquet" - config_name: "T-4" data_files: - split: train path: "data/train/T-4.parquet" - split: test path: "data/test/T-4.parquet" - config_name: "T-5" data_files: - split: train path: "data/train/T-5.parquet" - split: test path: "data/test/T-5.parquet" - config_name: "T-8" data_files: - split: train path: "data/train/T-8.parquet" - split: test path: "data/test/T-8.parquet" - config_name: "T-9" data_files: - split: train path: "data/train/T-9.parquet" - split: test path: "data/test/T-9.parquet" default_config_name: "A-1" --- # 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](https://arxiv.org/abs/1802.04431) and released via the [telemanom](https://github.com/khundman/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: | Column | Description | |---|---| | `timestep` | Integer index of the time step | | `value` | Target telemetry value being monitored | | `cmd_0` ... `cmd_N` | One-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`) | Column | Description | |---|---| | `chan_id` | Anonymized channel ID | | `spacecraft` | `SMAP` or `MSL` | | `anomaly_sequences` | Start and end indices of anomalies in the test set | | `class` | Anomaly type: `point` or `contextual` | | `num_values` | Number of telemetry values in the test stream | ## Dataset Statistics | | SMAP | MSL | Total | |---|:---:|:---:|:---:| | Total anomaly sequences | 69 | 36 | 105 | | Point anomalies (%) | 43 (62%) | 19 (53%) | 62 (59%) | | Contextual anomalies (%) | 26 (38%) | 17 (47%) | 43 (41%) | | Unique telemetry channels | 55 | 27 | 82 | | Telemetry values evaluated | 429,735 | 66,709 | 496,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](https://github.com/khundman/telemanom) - **Paper**: [arXiv:1802.04431](https://arxiv.org/abs/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](LICENSE.txt) (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.
提供机构:
appleparan
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作