Skip to main content

Explainable structural similarity for time series and time-series datasets.

Project description

EchoTime

Explainable time-series similarity for humans and agents.

PyPI version Python versions License: MIT Status: Beta Docs: GitHub Pages

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 timestamp column and one or more numeric columns -> profile_dataset(df, domain=...)
  • irregular long table -> rename columns to subject, timestamp, channel, value, then call profile_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-browser
  • echotime --guide quickstart
  • echotime --guide doctor
  • echotime --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

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

echotime-0.17.1.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

echotime-0.17.1-py3-none-any.whl (210.6 kB view details)

Uploaded Python 3

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

Hashes for echotime-0.17.1.tar.gz
Algorithm Hash digest
SHA256 086648de7759de686e2da4309ce7d87517351eb7c303ee5121ba977e5c3ea364
MD5 f83d9b0c2ea518f4cf158fa35bc575b0
BLAKE2b-256 d8d40687f0a764bc812983136ed3601a7ce6cb0db55c6ab59a2d0d6d79781c3f

See more details on using hashes here.

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

Hashes for echotime-0.17.1-py3-none-any.whl
Algorithm Hash digest
SHA256 33b493e1601311e2cc5568382a5554d8966138423194ade8a0f1b03ac04127ca
MD5 80de106c09ea7ba79ae4a80dcd6d8d84
BLAKE2b-256 91e4625d3ce0ef9781d9f3fbc558de1e76415b72e7df0fd8703271ed9b81e6c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page