tsod: Anomaly Detection for time series data.
Sensors often provide faulty or missing observations. These anomalies must be detected automatically and replaced with more feasible values before feeding the data to numerical simulation engines as boundary conditions or real time decision systems.
This package aims to provide examples and algorithms for detecting anomalies in time series data specifically tailored to DHI users and the water domain. It is simple to install and deploy operationally and is accessible to everyone (open-source).
Getting Started
Installation
tsod is a pure Python library and runs on Windows, Linux and Mac.
From PyPI:
pip install tsod
Or development version:
pip install https://github.com/DHI/tsod/archive/main.zip
Vision
- A simple and consistent API for anomaly detection of timeseries
- The computational speed will be good for typical timeseries data found in the water domain, to support realtime detection
- It will have a suite of different algorithms ranging from simple rule-based to more advanced based on e.g. neural networks
Definitions
Note that we distinguish between two types of anomaly detection
-
Outlier detection (unsupervised anomaly detection) The training data may contain outliers, i.e. observations far from most other observations. Outlier detectors try to concentrate on the observations in the training data that similar and close together, and ignores observations further away.
-
Novelty detection (semi-supervised anomaly detection) The training data is considered "normal" and is not polluted by outliers. New test data observations can be categorized as an outlier and is in this context called a novelty.
Contribute to tsod
-
Follow PEP8 code style. This is automatically checked during Pull Requests.
-
If citing or re-using other code please make sure their license is also consistent with our policy.
Metadata
Release files for tsod 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tsod-0.3.0.tar.gz | 8.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tsod-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.7 kB
Release files / tsod-0.3.0.tar.gz
| Download URL | tsod-0.3.0.tar.gz |
|---|---|
| Size | 8.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
14019b934c93b287b05c6ec05a6de1278487533eecd8e66267ca0bb46807dc40
|
|
BLAKE2b-256 checksum How to use checksums |
9aab594cb41a1ff5a9cf4de630ca840b28381e5da590876c5a719b6732d599ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 4, 2026.
Transparency logRelease files / tsod-0.3.0-py3-none-any.whl
| Download URL | tsod-0.3.0-py3-none-any.whl |
|---|---|
| Size | 9.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
54d47d3b12962dfbff3a9b44472c9865062bd7ab48f180dc4ee1dab3c558ab1e
|
|
BLAKE2b-256 checksum How to use checksums |
9ef54cd23f631c9633408317904d70db0a70be66e6eafbc6b4034ea57089b2f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 4, 2026.
Transparency log