geotrace-sdk
Python bindings for the GeoTrace SDK: read and write .gtd GNSS/GPS navigation
data files.
.gtd is the open binary recording format used by
GeoTrace, a desktop application for
visualizing GPS/GNSS navigation data: position traces on a map, satellite signal
quality, event markers, and filtering.
MIT licensed. Requires Python 3.12+.
Install
uv add geotrace-sdk
Or
pip install geotrace-sdk
Distributed as abi3 wheels (one cp312-abi3 wheel per platform,
forward-compatible with newer CPython) for Linux (manylinux and musllinux),
macOS, and Windows. A platform without a matching wheel builds from the source
distribution, which requires a Rust toolchain.
Write a track
from datetime import datetime, timezone
from geotrace_sdk import NavFileBuilder, NavFix
builder = NavFileBuilder()
builder.add(
NavFix(
lat=51.5074,
lon=-0.1278,
gps_time=datetime(2024, 1, 15, 9, 0, 0, tzinfo=timezone.utc),
heading=90.0,
)
)
builder.finish().write_to_file("track.gtd")
add() also accepts satellite reports, map annotations, and event markers.
A satellite's elevation, azimuth and SNR are stored as 32-bit floats: a value read back can differ from the value written in its eighth significant digit.
Read a file
from geotrace_sdk import NavFile
nav_file = NavFile.open("track.gtd")
print(len(nav_file.points), "points,", len(nav_file.markers), "markers")
for point in nav_file.points:
print(point.lat, point.lon, point.gps_time)
points has a method per field that returns the value of every fix as a list, for plotting and analysis:
lons = nav_file.points.longitudes()
lats = nav_file.points.latitudes()
speeds = nav_file.points.speeds_mps() # None for a fix without one
Logging
The SDK does not raise on unexpected data.
It accepts the value and logs what it saw.
It keeps an unknown travel_mode as it read it.
It also accepts a satellite SNR of 99 dB-Hz: a receiver writes that value when it has no reading.
In both cases the call succeeds and the SDK writes a logging record saying what it did.
Each record goes to a logger named after the module that wrote it, such as geotrace_sdk.builder.
All of them sit under geotrace_sdk, so a single handler there receives every one.
import logging
logging.basicConfig()
logging.getLogger("geotrace_sdk").setLevel(logging.DEBUG)
Examples
Runnable examples are in
sdk/python/geotrace-py/examples:
write_basic: minimal write workflow.read_file: read a.gtdfile and print a content summary.with_satellites: pair each fix with a satellite visibility report.event_markers: write and read hierarchical event markers.from_csv: convert CSV rows into a.gtdfile.from_multiple_sources: merge fixes and events from separate sources.gold_dataset: build the cross-SDK reference file and verify the round-trip.
Full list and per-platform notes:
docs/sdk/python.md.
Links
- Source and issues: https://github.com/CramBL/geotrace
- Changelog: https://github.com/CramBL/geotrace/blob/trunk/CHANGELOG_SDK.md
Metadata
Release files for geotrace-sdk 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| geotrace_sdk-0.7.0.tar.gz | 183.9 kB | Details |
Built distributions (wheels)
Total release size: 15.9 MB
Release files / geotrace_sdk-0.7.0.tar.gz
| Download URL | geotrace_sdk-0.7.0.tar.gz |
|---|---|
| Size | 183.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
992f6031ae1845304c9af79b6d0a2f0eab78f5fedc8676fdee0eb5a62ae50e79
|
|
BLAKE2b-256 checksum How to use checksums |
29dd9f3daba3bb1382d2caaee60819f8d52194511d14623f9c57b73f5456dd17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-win_arm64.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-win_arm64.whl |
|---|---|
| Size | 906.7 kB |
| Tags | CPython 3.12 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
cd53a9b183072aec60bf135daf6205e4dde4fdce9b5b6f5ec717b9505e146db5
|
|
BLAKE2b-256 checksum How to use checksums |
923bcdfe6537cf358d660a732bebd89b0fbaaa6d3fcce39f7acafab220a89f46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-win_amd64.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 955.7 kB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
93da3266577bf6cf014529842496cb24edcb01f4b88f1199b637fbfb0da6d894
|
|
BLAKE2b-256 checksum How to use checksums |
d3395780ba51d9a826ec7de3e0a5803b59eab6c6f7fc52ea79cc76667d0412b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-win32.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-win32.whl |
|---|---|
| Size | 918.7 kB |
| Tags | CPython 3.12 Windows x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
de419cd88e11e640cff93eab414fa952e34984ccdb76d3f9e659f4ecf7e1d3a4
|
|
BLAKE2b-256 checksum How to use checksums |
b5de545e997e39d9f84b2d8064baaade44620bbfc4c888c2a20dd8bdf98bf3de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-musllinux_1_2_x86_64.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
708033e0636fecd00040ba2147c0f7ae903822f4fe7c142bbdcd4dea78eb7751
|
|
BLAKE2b-256 checksum How to use checksums |
933faea8faf2d6d69c16bf41c9cd151cc0fe88aaf0ab3eb51cb0a0932eb19c63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-musllinux_1_2_i686.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-musllinux_1_2_i686.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
777828ca8de87e83438153b706455fe097231bb63e2f839a0b299dbfe4446828
|
|
BLAKE2b-256 checksum How to use checksums |
1d31369ddc2610a38d44353b90470b03032f377c44e7deccdde854782a8ce273
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-musllinux_1_2_armv7l.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.12 Linux musl 1.2+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
9df2190ce0e9eabbceefd85c7a410b0bf548949a5780277623c9c446b7b64ec8
|
|
BLAKE2b-256 checksum How to use checksums |
b2971ac8f61a70548c1217986449f575682300a5db70376bdceadf37295faa27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-musllinux_1_2_aarch64.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
ae76e8af647822a712dc461eaca6cd025d533ff839b743a16675133f9a2b509c
|
|
BLAKE2b-256 checksum How to use checksums |
c1295a0b79cff8b40cce9817e7d111eaecb5394ee78c71782b54dff391c2a69c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 994.8 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
a5ba59821592e17a70cdd7114869fe1063d52ccad8792748c1004a2972dfe4dd
|
|
BLAKE2b-256 checksum How to use checksums |
3dae7390cb1732e51c0faeb51d0e53cd112d5697877175160819ca3f49583020
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ IBM System/390x abi3 |
|
SHA-256 checksum How to use checksums |
fa315f4c5fcfb6e9884028472708c4e21f9b8dea63dee750bb644d2a5e38684b
|
|
BLAKE2b-256 checksum How to use checksums |
962abf18054f95ba59bb96b3a22f8ea8799c4aa567b737499833262a735a914d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ PowerPC 64-le abi3 |
|
SHA-256 checksum How to use checksums |
b3feda240ba44d5aa3c27c5979414428bb76326c4fc362c7308fa518ccaa1618
|
|
BLAKE2b-256 checksum How to use checksums |
28db36be67cdac448b8f9a354d4871ce52e28f30b1291d43e20082e58fe61e20
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl |
|---|---|
| Size | 988.6 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
317b362729d5ee56738022bbf4ef6942b28109a04705691953773b517e995a08
|
|
BLAKE2b-256 checksum How to use checksums |
7b8e8459b6192ca64db7732443fdaa1813c39bf223188262ebe7060e6127237f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 933.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
c97635c3ffb1a2d378720bda4828ef70de7a65a12ec8f255a907d8e0d8415572
|
|
BLAKE2b-256 checksum How to use checksums |
d4155d1a11695aafecbd920e6724eaf198947243e3c380d57fdb0170553e842c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_5_i686.manylinux1_i686.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-manylinux_2_5_i686.manylinux1_i686.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux glibc 2.5+ x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
b6f2ae220b0b90400f3dc6eb8209d48270f5fa417fb00f2edca315631f3376bf
|
|
BLAKE2b-256 checksum How to use checksums |
b8d8d3c19966dc51f0bb328d7df4c9e1164240cc5de0041373c5a9db03ad6cb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 906.7 kB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
272feada35c54d357a63aea8a58095d5df867a26765f4d755f65319d371622c4
|
|
BLAKE2b-256 checksum How to use checksums |
3f23114ac7385337e3561b11c579e2d139de700f68dd06d33659f4e0d54543bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / geotrace_sdk-0.7.0-cp312-abi3-macosx_10_12_x86_64.whl
| Download URL | geotrace_sdk-0.7.0-cp312-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 965.2 kB |
| Tags | CPython 3.12 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
54a7349001678023934640afcb60254fff45a66c5bf85fae6ba77cb2ed668cb7
|
|
BLAKE2b-256 checksum How to use checksums |
91ea624efe5e1b6dbe6b51aa5e01dc160b176013e7a8531ecaadcdec14531262
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency log