GutenTAG is an extensible tool to generate time series datasets with and without anomalies. A GutenTAG time series consists of a single (univariate) or multiple (multivariate) channels containing a base oscillation with different anomalies at different positions and of different kinds.
-
Install GutenTAG from PyPI:
pip install timeeval-gutenTAG
GutenTAG supports Python 3.7, 3.8, 3.9, 3.10, and 3.11; all other requirements are installed with the pip-call above.
-
Create a generation configuration file
example-config.yaml
with the instructions to generate a single time series with two anomalies: A pattern anomaly in the middle and an amplitude anomaly at the end of the series. You can use the following content:timeseries: - name: demo length: 1000 base-oscillations: - kind: sine frequency: 4.0 amplitude: 1.0 variance: 0.05 anomalies: - position: middle length: 50 kinds: - kind: pattern sinusoid_k: 10.0 - position: end length: 10 kinds: - kind: amplitude amplitude_factor: 1.5
-
Execute GutenTAG with a seed and let it plot the time series:
gutenTAG --config-yaml example-config.yaml --seed 11 --no-save --plot
You should see the following time series:
GutenTAG's documentation can be found here.
If you use GutenTAG in your project or research, please cite our demonstration paper:
Phillip Wenig, Sebastian Schmidl, and Thorsten Papenbrock. TimeEval: A Benchmarking Toolkit for Time Series Anomaly Detection Algorithms. PVLDB, 15(12): 3678 - 3681, 2022. doi:10.14778/3554821.3554873
@article{WenigEtAl2022TimeEval,
title = {TimeEval: {{A}} Benchmarking Toolkit for Time Series Anomaly Detection Algorithms},
author = {Wenig, Phillip and Schmidl, Sebastian and Papenbrock, Thorsten},
date = {2022},
journaltitle = {Proceedings of the {{VLDB Endowment}} ({{PVLDB}})},
volume = {15},
number = {12},
pages = {3678 -- 3681},
doi = {10.14778/3554821.3554873}
}
We welcome contributions to GutenTAG. If you have spotted an issue with GutenTAG or if you want to enhance it, please open an issue first. See Contributing for details.