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.csvin 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:
- https://www.here.com/docs/bundle/data-sdk-for-python-developer-guide-v2/page/topics/credentials.html
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
locdatakitversion (locdatakit --version)- Whether
--herewas 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
debbf019818b318986d940368e2d12443b54ee3d64b16f516b80c3407b6093c9
|
|
| MD5 |
f6f1ba9a10fc17787d7e2a4375d351d8
|
|
| BLAKE2b-256 |
39fc7449085c7fe921ea7262985a5df86096cb43e43bd8d6cc069590ac95e93f
|
Provenance
The following attestation bundles were made for locdatakit-0.0.2.tar.gz:
Publisher:
python-publish.yml on tensegrity-labs/locdatakit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
locdatakit-0.0.2.tar.gz -
Subject digest:
debbf019818b318986d940368e2d12443b54ee3d64b16f516b80c3407b6093c9 - Sigstore transparency entry: 1000215333
- Sigstore integration time:
-
Permalink:
tensegrity-labs/locdatakit@b8725c63dc14c63d214b6d73854abfb8e05ef7b6 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/tensegrity-labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@b8725c63dc14c63d214b6d73854abfb8e05ef7b6 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba1303c8bcb0d6f4c43e19b35b271ef64166e85de691b43d81db81f14cedc37a
|
|
| MD5 |
4a8c15019908045bb165ba2d2a95e44d
|
|
| BLAKE2b-256 |
314e329d91d644d554fb738b02feebaa73f279580caadea566245b26f99ce055
|
Provenance
The following attestation bundles were made for locdatakit-0.0.2-py3-none-any.whl:
Publisher:
python-publish.yml on tensegrity-labs/locdatakit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
locdatakit-0.0.2-py3-none-any.whl -
Subject digest:
ba1303c8bcb0d6f4c43e19b35b271ef64166e85de691b43d81db81f14cedc37a - Sigstore transparency entry: 1000215386
- Sigstore integration time:
-
Permalink:
tensegrity-labs/locdatakit@b8725c63dc14c63d214b6d73854abfb8e05ef7b6 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/tensegrity-labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@b8725c63dc14c63d214b6d73854abfb8e05ef7b6 -
Trigger Event:
release
-
Statement type: