{"id":37667586,"url":"https://github.com/timeeval/gutentag","last_synced_at":"2026-01-16T12:00:21.584Z","repository":{"id":37745430,"uuid":"436643094","full_name":"TimeEval/GutenTAG","owner":"TimeEval","description":"GutenTAG is an extensible tool to generate time series datasets with and without anomalies; integrated with TimeEval.","archived":false,"fork":false,"pushed_at":"2025-12-23T15:13:57.000Z","size":1834,"stargazers_count":92,"open_issues_count":9,"forks_count":15,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-12-25T05:14:21.836Z","etag":null,"topics":["anomaly-detection","dataset-generation","datasets","multivariate-timeseries","time-series","time-series-anomaly-detection","univariate-timeseries"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TimeEval.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-12-09T14:17:26.000Z","updated_at":"2025-12-23T15:13:00.000Z","dependencies_parsed_at":"2023-01-27T21:01:33.970Z","dependency_job_id":"c47b4e2f-ccd4-4772-9c29-8c1ce821194a","html_url":"https://github.com/TimeEval/GutenTAG","commit_stats":{"total_commits":226,"total_committers":8,"mean_commits":28.25,"dds":0.6371681415929203,"last_synced_commit":"b6d2ed48c1b66fd73ca76f986fdcefd082f70030"},"previous_names":["timeeval/gutentag","hpi-information-systems/gutentag"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/TimeEval/GutenTAG","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimeEval%2FGutenTAG","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimeEval%2FGutenTAG/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimeEval%2FGutenTAG/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimeEval%2FGutenTAG/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TimeEval","download_url":"https://codeload.github.com/TimeEval/GutenTAG/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimeEval%2FGutenTAG/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anomaly-detection","dataset-generation","datasets","multivariate-timeseries","time-series","time-series-anomaly-detection","univariate-timeseries"],"created_at":"2026-01-16T12:00:17.517Z","updated_at":"2026-01-16T12:00:21.515Z","avatar_url":"https://github.com/TimeEval.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg width=\"400px\" src=\"https://github.com/TimeEval/gutentag/raw/main/logo_transparent.png\" alt=\"TimeEval logo\"/\u003e\n    \u003cp\u003e\n    A good \u003cstrong\u003eT\u003c/strong\u003eimeseries \u003cstrong\u003eA\u003c/strong\u003enomaly \u003cstrong\u003eG\u003c/strong\u003eenerator.\n    \u003c/p\u003e\n\n[![CI](https://github.com/TimeEval/gutentag/actions/workflows/build.yml/badge.svg)](https://github.com/TimeEval/gutentag/actions/workflows/build.yml)\n[![codecov](https://codecov.io/gh/TimeEval/gutentag/branch/main/graph/badge.svg?token=6QXOCY4TS2)](https://codecov.io/gh/TimeEval/gutentag)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![PyPI package](https://badge.fury.io/py/timeeval-gutenTAG.svg)](https://badge.fury.io/py/timeeval-gutenTAG)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n![python version 3.9|3.10|3.11|3.12|3.13](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue)\n[![Downloads](https://pepy.tech/badge/timeeval-gutentag)](https://pepy.tech/project/timeeval-gutentag)\n\n\u003c/div\u003e\n\nGutenTAG is an extensible tool to generate time series datasets with and without anomalies.\nA 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.\n\n[![base-oscillations](https://img.shields.io/badge/base_oscillations-11-3a4750?style=for-the-badge)](./doc/introduction/base-oscillations.md)\n[![base-oscillations](https://img.shields.io/badge/anomaly_types-10-f6c90b?style=for-the-badge)](./doc/introduction/anomaly-types.md)\n[![base-oscillations](https://img.shields.io/badge/add--ons-1-f64e8b?style=for-the-badge)](./doc/advanced-features.md)\n\n[![base-oscillations](https://img.shields.io/badge/easy_config-YAML-3a4750?style=for-the-badge)](./doc/usage.md)\n\n## tl;dr\n\n1. Install GutenTAG from [PyPI](https://pypi.org/project/timeeval-gutenTAG/):\n\n   ```sh\n   pip install timeeval-gutenTAG\n   ```\n\n   GutenTAG supports Python 3.9, 3.10, 3.11, 3.12, and 3.13; all other [requirements](./requirements.txt) are installed with the pip-call above.\n\n2. Create a generation configuration file [`example-config.yaml`](./generation_configs/example-config.yaml) with the instructions to generate a single time series with two anomalies:\n   A _pattern_ anomaly in the middle and an _amplitude_ anomaly at the end of the series.\n   You can use the following content:\n\n   ```yaml\n   timeseries:\n   - name: demo\n     length: 1000\n     base-oscillations:\n     - kind: sine\n       frequency: 4.0\n       amplitude: 1.0\n       variance: 0.05\n     anomalies:\n     - position: middle\n       length: 50\n       kinds:\n       - kind: pattern\n         sinusoid_k: 10.0\n     - position: end\n       length: 10\n       kinds:\n       - kind: amplitude\n         amplitude_factor: 1.5\n   ```\n\n3. Execute GutenTAG with a seed and let it plot the time series:\n\n   ```bash\n   gutenTAG --config-yaml example-config.yaml --seed 11 --no-save --plot\n   ```\n\n   You should see the following time series:\n\n   ![Example unsupervised time series with two anomalies](https://github.com/TimeEval/gutentag/raw/main/example-ts.png)\n\n## Documentation\n\nGutenTAG's documentation can be found [here](doc/index.md).\n\n## Citation\n\nIf you use GutenTAG in your project or research, please cite our demonstration paper:\n\n\u003e Phillip Wenig, Sebastian Schmidl, and Thorsten Papenbrock.\n\u003e TimeEval: A Benchmarking Toolkit for Time Series Anomaly Detection Algorithms. PVLDB, 15(12): 3678 - 3681, 2022.\n\u003e doi:[10.14778/3554821.3554873](https://doi.org/10.14778/3554821.3554873)\n\n```bibtex\n@article{WenigEtAl2022TimeEval,\n  title = {TimeEval: {{A}} Benchmarking Toolkit for Time Series Anomaly Detection Algorithms},\n  author = {Wenig, Phillip and Schmidl, Sebastian and Papenbrock, Thorsten},\n  date = {2022},\n  journaltitle = {Proceedings of the {{VLDB Endowment}} ({{PVLDB}})},\n  volume = {15},\n  number = {12},\n  pages = {3678 -- 3681},\n  doi = {10.14778/3554821.3554873}\n}\n```\n\n## Contributing\n\nWe welcome contributions to GutenTAG.\nIf you have spotted an issue with GutenTAG or if you want to enhance it, please open an issue first.\nSee [Contributing](CONTRIBUTING.md) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimeeval%2Fgutentag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimeeval%2Fgutentag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimeeval%2Fgutentag/lists"}