Skip to main content

IMU data QA, reliability scoring, and reproducibility tooling

Project description

imuops

imuops is a public alpha for IMU data QA, reliability scoring, and reproducibility.

It is built around one core question:

Is this IMU data trustworthy, why is it failing, and how does that affect baseline algorithms?

The product is intentionally tabular-first. The main path is customer-shaped csv, tsv, or parquet data plus a small YAML mapping file. Benchmark adapters stay in the repo for reproducibility demos, but they are secondary to the tabular workflow.

Status

  • alpha / preview release
  • main product path: tabular
  • benchmark/demo adapters: ronin, oxiod, wisdm
  • local-only contrib adapter: legacy_arduino

Benchmark adapters are validated on fixtures and demo flows. They are not guaranteed across every upstream packaging or layout variant.

Install

Requires Python 3.11+.

Primary public path:

python3.12 -m venv .venv
source .venv/bin/activate
pip install .

Use any Python 3.11+ interpreter available on your machine.

Optional uv path:

uv venv
source .venv/bin/activate
uv pip install .

imuops is prepared for PyPI publication, but this alpha does not claim a live PyPI package yet.

Quickstart

After install, the offline first-run path is exactly three commands:

imuops ingest tabular examples/sample_tabular_imu.csv --config examples/sample_tabular_config.yaml --out output/sample_tabular_demo
imuops audit output/sample_tabular_demo --summary-format markdown
imuops report output/sample_tabular_demo --out output/sample_tabular_demo/report.html

You can also use the bundled demo wrapper:

bash examples/run_tabular_demo.sh

What It Does

  • normalizes messy IMU tables into one canonical session format
  • audits timing, clipping, dropout, magnetic disturbance, bias drift, and related issues
  • computes a versioned trust_score with explicit penalties, weights, and thresholds
  • replays conservative baseline algorithms for orientation and PDR reproducibility
  • benchmarks task-aware baselines where labels or trajectories exist
  • compares clean vs corrupted or before vs after sessions
  • batches QA over many sessions and writes machine-readable summaries for CI use

Core Commands

imuops ingest tabular /path/to/session.csv --config /path/to/mapping.yaml --out output/session_a
imuops audit output/session_a --fail-below 0.80 --summary-format markdown
imuops export output/session_a --profile qa_filtered --format parquet --out output/session_a_clean
imuops compare output/session_a output/session_b --out output/compare.html
imuops batch audit output --out output/batch_artifacts

Included Adapters

Market-facing default

  • tabular: customer-shaped csv, tsv, and parquet sources with YAML mapping and unit conversion

Benchmark/demo adapters

  • ronin: clean inertial odometry benchmark sessions
  • oxiod: clean handheld / phone inertial odometry benchmark sessions
  • wisdm: lightweight HAR benchmark sessions

Contrib/local regression

  • legacy_arduino: historical Arduino/MPU9255 adapter kept only for local regression and examples

Trust Score

imuops publishes the trust-score contract directly into artifacts and reports:

  • per-window formula
  • session aggregation formula
  • penalty totals
  • weight profile
  • thresholds

That is documented in docs/trustscore.md, and the current validation tranche is in docs/trustscore_validation.md.

Docs

Public Alpha Notes

  • This repo is a truthful alpha, not a commercial deployment claim.
  • Reports support --redact-source-path and --redact-subject-id for safer sharing.
  • Output quality is strongest for tabular customer data and fixture/demo benchmark layouts.

License

MIT

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

imuops-0.3.1.tar.gz (60.0 kB view details)

Uploaded Source

Built Distribution

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

imuops-0.3.1-py3-none-any.whl (50.0 kB view details)

Uploaded Python 3

File details

Details for the file imuops-0.3.1.tar.gz.

File metadata

  • Download URL: imuops-0.3.1.tar.gz
  • Upload date:
  • Size: 60.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for imuops-0.3.1.tar.gz
Algorithm Hash digest
SHA256 2c2fb6c70b6729bf417cc72fc4169e0bad3d52e4c254faebd28a12a80405ccc9
MD5 f1e4edec6986b569bcfe6eefe3ae22e5
BLAKE2b-256 80582c66eb3e2b1a4745de0c99fe5fda5cd34922e112f4f72f0673814d67b5c1

See more details on using hashes here.

File details

Details for the file imuops-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: imuops-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 50.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for imuops-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2800c94a6841f17c5c31d6a9b2f6dc8720b569120db8544bd0140e2c67f3613b
MD5 a295a0d28b09616bf1ff4244c5bf44de
BLAKE2b-256 23849f6a6e22d1a82ccf6ac826b6df55cd700f24709cf65dd8c143b41bd66e63

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