Skip to main content

A Python toolkit and CLI for processing, analyzing, and reporting on location data.

Project description

locdatakit

A Python toolkit and CLI for processing, analyzing, and reporting on location data.

⚠️ This is in early-stage development. Expect API and config changes in future versions.

What It Does

  • Loads one GPX file, a directory, or a glob of GPX files
  • Applies the current prototype trip separation heuristics
  • Writes a CSV report with trip start/end, distance, duration, and speed stats
  • Optionally labels trip endpoints using a local places file

Quickstart

Install from PyPI:

pip install locdatakit
locdatakit --help

Install with optional HERE SDK support:

pip install "locdatakit[here]"

Run on your GPX file:

locdatakit trip-log --gpx /path/to/file-or-glob.gpx

Install from source (development):

git clone https://github.com/tensegrity-labs/locdatakit.git
cd locdatakit
pip install -e .[dev]
locdatakit trip-log --gpx examples/example.gpx --places examples/places.yaml

If the package is not published yet, use the source install flow above. After publishing to PyPI, prefer pip install locdatakit (or pip install "locdatakit[here]" for HERE support).

CLI

See help for usage

locdatakit --help
locdatakit <command> --help

If --out is omitted, output defaults to CSV and is written next to the input source:

  • file input: <input_stem>_trip_log.csv
  • directory/glob input: trip_log.csv in the source directory

Dependency Notes

Current runtime dependencies are: click, gpxpy, pint, geopy, scipy, pytz, and PyYAML.

HERE lookup is optional and disabled by default.

Optional HERE Lookup

To enable remote lookup of unknown places, pass --here. The HERE Python SDK manages credentials/configuration (including config-file based setup). If initialization fails, the CLI shows an error with setup docs:

CI/tests do not require HERE credentials.

Known Limitations

  • Trip segmentation heuristics are prototype-quality and may over/under-segment in some data sets.
  • CSV schema and CLI flags are expected to evolve in upcoming releases.

Contributing

Set up a dev environment:

pip install -e .[dev]

Run tests:

pytest -q

Bump version with bump-my-version:

# patch: 0.0.1 -> 0.0.2
bump-my-version bump patch

# minor: 0.0.1 -> 0.1.0
bump-my-version bump minor

# major: 0.0.1 -> 1.0.0
bump-my-version bump major

The bump command updates both pyproject.toml and locdatakit/__init__.py.

General contribution guidelines:

  • Keep changes focused and scoped to a single concern when possible.
  • Add or update tests for behavior changes.
  • Keep CLI behavior backward compatible unless a breaking change is documented.
  • Avoid committing personal data (real GPX traces, real addresses, API keys, credential files).
  • Use synthetic/redacted data in examples, tests, and issue discussions.

Before opening a PR:

  • Run tests locally: pytest -q
  • Run a build check: python -m build
  • Update docs/changelog when user-facing behavior changes

Filing Issues

When filing an issue, include:

  • What you expected to happen
  • What happened instead (full error output if possible)
  • Exact command used
  • OS and Python version
  • locdatakit version (locdatakit --version)
  • Whether --here was enabled

If relevant, include a minimal reproducible input (synthetic GPX/places file preferred). Do not share private location data, API keys, or credential files in issues.

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

locdatakit-0.0.2.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

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

locdatakit-0.0.2-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file locdatakit-0.0.2.tar.gz.

File metadata

  • Download URL: locdatakit-0.0.2.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for locdatakit-0.0.2.tar.gz
Algorithm Hash digest
SHA256 debbf019818b318986d940368e2d12443b54ee3d64b16f516b80c3407b6093c9
MD5 f6f1ba9a10fc17787d7e2a4375d351d8
BLAKE2b-256 39fc7449085c7fe921ea7262985a5df86096cb43e43bd8d6cc069590ac95e93f

See more details on using hashes here.

Provenance

The following attestation bundles were made for locdatakit-0.0.2.tar.gz:

Publisher: python-publish.yml on tensegrity-labs/locdatakit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file locdatakit-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: locdatakit-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for locdatakit-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ba1303c8bcb0d6f4c43e19b35b271ef64166e85de691b43d81db81f14cedc37a
MD5 4a8c15019908045bb165ba2d2a95e44d
BLAKE2b-256 314e329d91d644d554fb738b02feebaa73f279580caadea566245b26f99ce055

See more details on using hashes here.

Provenance

The following attestation bundles were made for locdatakit-0.0.2-py3-none-any.whl:

Publisher: python-publish.yml on tensegrity-labs/locdatakit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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