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_scorewith 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-shapedcsv,tsv, andparquetsources with YAML mapping and unit conversion
Benchmark/demo adapters
ronin: clean inertial odometry benchmark sessionsoxiod: clean handheld / phone inertial odometry benchmark sessionswisdm: 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
- Architecture
- Datasets
- Trust Score
- Trust-Score Validation
- Schema Compatibility
- Release Checklist
- Contributing
Public Alpha Notes
- This repo is a truthful alpha, not a commercial deployment claim.
- Reports support
--redact-source-pathand--redact-subject-idfor safer sharing. - Output quality is strongest for tabular customer data and fixture/demo benchmark layouts.
License
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c2fb6c70b6729bf417cc72fc4169e0bad3d52e4c254faebd28a12a80405ccc9
|
|
| MD5 |
f1e4edec6986b569bcfe6eefe3ae22e5
|
|
| BLAKE2b-256 |
80582c66eb3e2b1a4745de0c99fe5fda5cd34922e112f4f72f0673814d67b5c1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2800c94a6841f17c5c31d6a9b2f6dc8720b569120db8544bd0140e2c67f3613b
|
|
| MD5 |
a295a0d28b09616bf1ff4244c5bf44de
|
|
| BLAKE2b-256 |
23849f6a6e22d1a82ccf6ac826b6df55cd700f24709cf65dd8c143b41bd66e63
|