Skip to main content

Trajectopy - Trajectory Evaluation in Python

Code style: ruff

Trajectopy is a Python package with an optional graphical user interface for empirical trajectory evaluation.

Installation

Windows app: download Trajectopy-<version>-setup.exe from the latest release and run it. No Python installation or administrator rights are needed; .traj files can then be opened by double-click, and the app reports new versions (Help → Check for Updates).

Python package (Python 3.10 or newer):

Command Contents
pip install "trajectopy[gui]" Python package and GUI (recommended)
pip install "trajectopy[plot]" Python package with plotting, without the GUI
pip install trajectopy Python package only

Loading large trajectory files (millions of poses) is several times faster with the fast extra, which can be combined with the others: pip install "trajectopy[gui,fast]".

Quick Start

import trajectopy as tpy

reference = tpy.Trajectory.from_file("./example_data/KITTI_gt.traj")
estimate = tpy.Trajectory.from_file("./example_data/KITTI_ORB.traj")

ate_result = tpy.ate(trajectory=estimate, other=reference)  # aligns the estimate first
print(f"Position ATE: {ate_result.pos_ate:.3f} m")

Or start the GUI with trajectopy (or from the Start menu), drop trajectory files onto it, right-click the ground truth → Set as Reference, then right-click another trajectory → Compare with Reference.

Documentation

https://gereon-t.github.io/trajectopy/

Key Features

  • Interactive GUI: Load, plot, align and compare trajectories without writing code. Every action explains itself in the context menus, and trajectories can be aligned interactively if an automatic alignment is not possible.
  • Alignment: A spatio-temporal least squares alignment that can be tailored to the application: similarity transformation, leverarm and time shift, each of them optional.
  • Comparison: Absolute and relative trajectory error (ATE and RPE), computed with various pose-matching methods.
  • Data Import/Export: ASCII files with configurable columns, time formats and coordinate systems (any EPSG code), and ROS bags.
  • Fast, Interactive Visualization: Powered by pyqtgraph, the same plots are available in the GUI and in Python scripts, stay fluid for large trajectories, and can be exported to PNG, JPG or SVG. Georeferenced trajectories and ATE results can be exported to Google Earth, colored by speed, height or deviations, on the terrain or at their own heights, with playback.

Web Application (Docker)

A simple web application is available at gereon-t/trajectopy-web that allows you to use the core functionality of Trajectopy using Docker.

Citation

If you use this library for any academic work, please cite our original paper.

@article{Tombrink2024,
url = {https://doi.org/10.1515/jag-2024-0040},
title = {Spatio-temporal trajectory alignment for trajectory evaluation},
author = {Gereon Tombrink and Ansgar Dreier and Lasse Klingbeil and Heiner Kuhlmann},
journal = {Journal of Applied Geodesy},
doi = {doi:10.1515/jag-2024-0040},
year = {2024},
codeurl = {https://github.com/gereon-t/trajectopy},
}

Metadata

Release files for trajectopy 5.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for trajectopy 5.0.3
File Size Uploaded
trajectopy-5.0.3.tar.gz 3.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for trajectopy 5.0.3
File Interpreter ABI Platform
trajectopy-5.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 3.6 MB

Release files / trajectopy-5.0.3.tar.gz

Download URL trajectopy-5.0.3.tar.gz
Size 3.1 MB
Tags Source
SHA-256 checksum
How to use checksums
6453b07af7293d7606f55b1a58da7ed4b89f215a87c17030b78b4214c0d40b7f
BLAKE2b-256 checksum
How to use checksums
1375e986f533e0516ae3310f6b46dacfb4700175203d47c5c34a6d04d30a468e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / trajectopy-5.0.3-py3-none-any.whl

Download URL trajectopy-5.0.3-py3-none-any.whl
Size 437.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
877a12de47c5f14288060cc070016249c0e333dd802d0025e4be4a3ffdd66e73
BLAKE2b-256 checksum
How to use checksums
0173da45b4ef5df2b6b931813a6b715aa6462621147eac9bf059f12a9e108786
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

5.1.1

2 release files

This release

5.0.3 This release

2 release files

5.0.2

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.4.0

2 release files

4.3.3

2 release files

4.3.2

2 release files

4.3.1

2 release files

4.3.0

2 release files

4.2.4

2 release files

4.2.3

2 release files

4.2.2

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.9

2 release files

4.0.8

2 release files

4.0.7

2 release files

4.0.6

2 release files

4.0.5

2 release files

4.0.4

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.1.12

2 release files

3.1.9

2 release files

3.1.8

2 release files

3.1.7

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.10

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.5

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.5.5

2 release files

2.5.4

2 release files

2.5.3

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.7

2 release files

2.4.6

2 release files

2.4.5

2 release files

2.4.4

2 release files

2.4.3

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.0.16

2 release files

2.0.15

2 release files

2.0.11

2 release files

2.0.10

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.5

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.4

2 release files

0.9.3

3 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page