Explainable structural similarity for time series and time-series datasets.
Project description
EchoTime
Explainable time-series similarity for humans and agents.
EchoTime compares time series and time-series datasets, explains why they match or differ, and emits compact JSON plus shareable HTML reports.
Why this package exists
Most time-series tooling helps after you decide what to model. EchoTime helps one step earlier: compare two signals clearly, compare two datasets structurally, and emit a result that a human or an agent can actually act on.
Quickstart
pip install echotime
python -c "import numpy as np; from echotime import compare_series; x=np.sin(np.linspace(0,8*np.pi,128)); y=np.sin(np.linspace(0,8*np.pi,128)+0.2); print(compare_series(x,y).to_summary_card_markdown())"
Expected output starts like this:
# EchoTime similarity summary
overall similarity: ...
top components: shape similarity, trend similarity, spectral similarity
Use your own data
EchoTime is meant to run on real files, not just toy arrays.
- single numeric column ->
profile_series(...) - wide table with one
timestampcolumn and one or more numeric columns ->profile_dataset(df, domain=...) - irregular long table -> rename columns to
subject,timestamp,channel,value, then callprofile_dataset(...) - two columns to compare ->
compare_series(df["left"], df["right"])
Tabular inputs are auto-detected from names such as timestamp / time, value / measurement, channel / sensor / metric, and subject / patient / participant.
from pathlib import Path
import pandas as pd
from echotime import profile_dataset
df = pd.read_csv("my_timeseries.csv").rename(columns={"date": "timestamp"})
profile = profile_dataset(df, domain="energy")
print(profile.to_summary_card_markdown())
Path("my_dataset_report.html").write_text(profile.to_html_report(), encoding="utf-8")
What ships in v0.17.1
- compare-first public package surface
- agent-ready JSON wrappers with stable envelopes
- GitHub Pages-ready docs bundle
- local live demo for pasted arrays
- starter datasets, notebooks, and flagship demos
- compatibility presets and environment doctor guidance for mixed scientific stacks
Common entry points
echotime-demo --open-browserechotime --guide quickstartechotime --guide doctorechotime --export-pages docs
Links
- README:
README.md - Start here:
START_HERE.md - Compatibility:
COMPATIBILITY.md - Local live demo:
LIVE_DEMO.md - Agent input contract:
AGENT_INPUT_CONTRACT.md
Maintainer
- Zipeng Wu
- The University of Birmingham
- zxw365@student.bham.ac.uk
- https://github.com/ZipengWu365/EchoTime
Project details
Release history Release notifications | RSS feed
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 echotime-0.17.1.tar.gz.
File metadata
- Download URL: echotime-0.17.1.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
086648de7759de686e2da4309ce7d87517351eb7c303ee5121ba977e5c3ea364
|
|
| MD5 |
f83d9b0c2ea518f4cf158fa35bc575b0
|
|
| BLAKE2b-256 |
d8d40687f0a764bc812983136ed3601a7ce6cb0db55c6ab59a2d0d6d79781c3f
|
File details
Details for the file echotime-0.17.1-py3-none-any.whl.
File metadata
- Download URL: echotime-0.17.1-py3-none-any.whl
- Upload date:
- Size: 210.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33b493e1601311e2cc5568382a5554d8966138423194ade8a0f1b03ac04127ca
|
|
| MD5 |
80de106c09ea7ba79ae4a80dcd6d8d84
|
|
| BLAKE2b-256 |
91e4625d3ce0ef9781d9f3fbc558de1e76415b72e7df0fd8703271ed9b81e6c1
|