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.0

  • 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.0.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.0-py3-none-any.whl (210.6 kB view details)

Uploaded Python 3

File details

Details for the file echotime-0.17.0.tar.gz.

File metadata

  • Download URL: echotime-0.17.0.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.0.tar.gz
Algorithm Hash digest
SHA256 bb71395c6eda358b18b30c86aeea9a67422dc90cf523ac943802b048579b3e5d
MD5 fb8f3f9e00a26c2191ffa71d548928bf
BLAKE2b-256 2aaf246a61ccad13adad12d1044f96bba1608deb5fec204230dea968b27a5919

See more details on using hashes here.

File details

Details for the file echotime-0.17.0-py3-none-any.whl.

File metadata

  • Download URL: echotime-0.17.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d45e03059c2fb519be4cee07fd5a33ae5950002ea8e20c4559d5ef3130d2855d
MD5 0be9f49e6cfee0075ae0365def604710
BLAKE2b-256 d7fa3524bb65d7daf2b5dc6d0a51e36d9a0b80b404216346f9db283ac1bc65f4

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