Skip to content

Repository files navigation

Pneuma_benchmark

Pneuma_benchmark provides runnable benchmark code for aircraft pneumatic-system time-series experiments, including forecasting, classification, and anomaly-detection tasks.

The repository stores code, launch scripts, and small representative examples. Large raw data, generated compact caches, checkpoints, logs, and result workbooks are not tracked in git.

Quick Start

Install Python dependencies:

pip install -r requirements.txt

Download the public data package from Google Drive and extract it under the repository root:

data/
  tsfile_datasets_subset10.zip
  iotdb-2.0.2-lib/

Cache preparation needs a JDK with java and javac on PATH. It does not require installing or starting an IoTDB server; the required TsFile reader jars are included under data/iotdb-2.0.2-lib/.

Run a full smoke test:

bash scripts/reproduce/run_quickstart_smoke.sh

The smoke test builds compact caches from the TsFile subset, then runs one small forecasting task, one classification task, and one anomaly-detection task.

Data Labels

The public data package is anonymized. Original flight filenames, aircraft registrations, flight numbers, routes, and dates are not preserved in the published filenames. Pseudo timestamps keep only the relative order needed for chronological train/validation/test splitting.

Normal and fault samples are identified by directory label:

tsfile_datasets/<dataset>_tsfile/0/*.tsfile  # normal
tsfile_datasets/<dataset>_tsfile/1/*.tsfile  # fault

During cache preparation, these directory labels are stored in each compact .npz file as the labels array. Classification uses labels 0 and 1 directly. One-class anomaly detection trains on normal samples and evaluates normal/fault separation.

Current Forecast Protocol

The current foundation-model forecasting protocol uses:

  • anchors: predict_2_3, predict_4_5, predict_5_6, predict_8_9;
  • history count: 5;
  • input length: 5 * 80 + 60 = 460;
  • prediction length: 20;
  • loss: (MAE + RMSE) / 2;
  • dataset score: average loss over the four anchors;
  • main score: 100 / (1 + dataset_score).

The machine-readable protocol record is examples/qar_context60/protocol_context60.json.

Reproducing Experiments

Build all compact caches for the current protocol:

bash scripts/reproduce/prepare_current_caches.sh

Run the public experiment launchers:

bash scripts/reproduce/run_current_main_forecast.sh
bash scripts/reproduce/run_current_hist_analysis.sh
bash scripts/reproduce/run_current_unimulti.sh
bash scripts/reproduce/run_current_classification.sh
bash scripts/reproduce/run_current_anomaly.sh

See docs/QUICKSTART.md for setup details, scripts/reproduce/README.md for launcher descriptions, and docs/DATASETS.md for dataset scenario names.

Repository Layout

  • run.py: main training and evaluation entry point.
  • requirements.txt: Python dependencies.
  • data_provider/: compact-cache loaders and standard TSLib loaders.
  • exp/: task implementations.
  • models/, layers/, utils/: model definitions and shared utilities.
  • scripts/reproduce/: current protocol launchers.
  • scripts/classification/, scripts/long_term_forecast/, scripts/anomaly_detection/: lower-level task launchers.
  • tools/prepare/: TsFile-to-compact-cache builders.
  • tools/tsfile/: Java TsFile window-dumping helpers.
  • tools/collect/: result table collectors.
  • examples/qar_context60/: tiny representative caches and smoke examples.
  • docs/: setup and dataset notes.

Notes

Generated caches are written under data/compact/, temporary extraction files under data/work/, checkpoints under checkpoints/, logs under logs/, and results under results/.

Some internal loader names, cache filenames, and legacy script names retain their original identifiers for compatibility with existing experiment scripts.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages