Test data generators and Visualization for Apache Otava change point detection
Project description
Otava Test Data
Test data generators and Visualization for Apache Otava change point detection.
Web Visualizer
The package includes an interactive web visualizer for exploring test patterns and comparing change point detection results against ground truth.
Features:
- Generate and visualize 17 different test patterns
- Compare three analysis methods: Otava (statistical), Moving Average, and Boundary detection
- View accuracy metrics (precision, recall, F1 score)
- Adjust parameters in real-time and see results instantly
Multiple Change Points
Detect multiple successive changes in your data:
Variance Changes
Detect changes in data volatility even when the mean stays constant:
Starting the Visualizer
pip install otava-test-data[web]
# Start the web server
otava-web
# Or with invoke tasks
inv web-start
Then open http://127.0.0.1:8100 in your browser.
Installation
pip install otava-test-data
Or with all optional dependencies:
pip install otava-test-data[all]
Quick Start
from otava_test_data import step_function, noise_normal, combine
# Generate a step function (single change point) with realistic noise
step = step_function(length=500, value_before=100, value_after=120)
noise = noise_normal(length=500, mean=0, sigma=5)
combined = combine(step, noise)
# Export to CSV for Otava analysis
combined.to_csv("test_data.csv")
# Access ground truth change point information
for cp in combined.change_points:
print(f"Change at index {cp.index}: {cp.description}")
Available Generators
Basic Building Blocks
| Generator | Description |
|---|---|
constant |
Constant value: S = x, x, x, x... |
noise_normal |
Normal distribution: S ~ N(mean, sigma) |
noise_uniform |
Uniform distribution: S ~ U(min, max) |
outlier |
Single anomaly: S = x, x, x', x, x... |
step_function |
Single change point: S = x1, x1, x2, x2... |
regression_fix |
Temporary regression: S = x1, x2, x1... |
Advanced Patterns
| Generator | Description |
|---|---|
banding |
Oscillation between two values |
variance_change |
Constant mean, changing variance |
phase_change |
Phase shift in periodic signal |
multiple_changes |
Multiple consecutive step changes |
CLI Tool
# Generate test suite
otava-gen generate --output-dir ./test_data --lengths 50 500 --seed 42
# List available generators
otava-gen list
# Get info about a generator
otava-gen info step_function
Documentation
Full documentation available at Read the Docs.
License
Apache License 2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file otava_test_data-0.1.9.tar.gz.
File metadata
- Download URL: otava_test_data-0.1.9.tar.gz
- Upload date:
- Size: 16.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad8d981dd13f4f8549f8a258b8120bc8a7412faadf658e0e1074b20c4d9a1bb2
|
|
| MD5 |
7271878fed7e9440de319d4d6e6a864c
|
|
| BLAKE2b-256 |
a8026bafec44d3854e08eb5f125206f6d36f1197442ee02c8cb802e9ab9e921a
|
Provenance
The following attestation bundles were made for otava_test_data-0.1.9.tar.gz:
Publisher:
publish.yml on jdrumgoole/otava-test-data
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
otava_test_data-0.1.9.tar.gz -
Subject digest:
ad8d981dd13f4f8549f8a258b8120bc8a7412faadf658e0e1074b20c4d9a1bb2 - Sigstore transparency entry: 857646408
- Sigstore integration time:
-
Permalink:
jdrumgoole/otava-test-data@4172647df22d8629c2b81968c536a90802bdd973 -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/jdrumgoole
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4172647df22d8629c2b81968c536a90802bdd973 -
Trigger Event:
release
-
Statement type:
File details
Details for the file otava_test_data-0.1.9-py3-none-any.whl.
File metadata
- Download URL: otava_test_data-0.1.9-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf535f0126013f40ca721a53b9ad359a616b279ffde42da1c5a4fb663f0b2a36
|
|
| MD5 |
bca3a4d0d399da5e799db36c67b967bd
|
|
| BLAKE2b-256 |
a2089d25215c9579f64a7122d6792f028fc66be1082836600cc4e71731d0e820
|
Provenance
The following attestation bundles were made for otava_test_data-0.1.9-py3-none-any.whl:
Publisher:
publish.yml on jdrumgoole/otava-test-data
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
otava_test_data-0.1.9-py3-none-any.whl -
Subject digest:
cf535f0126013f40ca721a53b9ad359a616b279ffde42da1c5a4fb663f0b2a36 - Sigstore transparency entry: 857646460
- Sigstore integration time:
-
Permalink:
jdrumgoole/otava-test-data@4172647df22d8629c2b81968c536a90802bdd973 -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/jdrumgoole
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4172647df22d8629c2b81968c536a90802bdd973 -
Trigger Event:
release
-
Statement type: