Trajectools - trajectory data analysis tools for the QGIS Processing toolbox | Previous home: https://github.com/movingpandas/qgis-trajectools
  • QML 93.4%
  • Python 6.6%
Find a file
Anita Graser 4f070e8468
All checks were successful
ci/woodpecker/push/tests/2 Pipeline was successful
ci/woodpecker/push/tests/1 Pipeline was successful
Add more tests (#109)
Reviewed-on: #109
Co-authored-by: Anita Graser <anitagraser@gmx.at>
Co-committed-by: Anita Graser <anitagraser@gmx.at>
2026-01-22 19:30:51 +01:00
.github Address Deprecation warnings and Module not found error (#108) 2025-11-27 19:28:48 +01:00
.woodpecker Address Deprecation warnings and Module not found error (#108) 2025-11-27 19:28:48 +01:00
icons Update icon 2025-01-09 12:30:11 +01:00
qgis_processing Address Deprecation warnings and Module not found error (#108) 2025-11-27 19:28:48 +01:00
sample_data Add alg tests 2025-11-22 23:04:15 +02:00
screenshots Add QGISUC25 presentation (#94) 2025-07-03 19:30:53 +02:00
tests Add more tests (#109) 2026-01-22 19:30:51 +01:00
.gitignore Add CI linting & tests 2025-11-22 19:53:54 +02:00
.pre-commit-config.yaml Remove black step 2025-11-22 21:45:28 +02:00
__init__.py Address Deprecation warnings and Module not found error (#108) 2025-11-27 19:28:48 +01:00
environment.yml Add CI linting & tests 2025-11-22 19:53:54 +02:00
LICENSE Initial commit 2018-12-02 15:35:51 +01:00
metadata.txt Fix NULL value handling, fixes #93 2025-10-27 19:48:22 +01:00
README.md Link to preprint 2025-11-22 22:13:01 +01:00
setup.cfg Add setup.cfg 2025-11-22 20:29:04 +02:00

QGIS Trajectools

Get it on Codeberg

QGIS Plugin Repo Issue Tracker Zenodo badge

The Trajectools plugin adds mobility data analysis algorithms to the QGIS Processing toolbox.

trajectools

Requirements

Trajectools requires MovingPandas >= 0.22.3 and optionally integrates scikit-mobility (for privacy tests), stonesoup (for smoothing), and gtfs_functions (for GTFS data support).

Conda install

The recommended way to install these dependencies is through conda/mamba:

(base) conda create -n qgis -c conda-forge python=3.12 
(base) conda activate qgis
(qgis) mamba install -c conda-forge qgis movingpandas scikit-mobility stonesoup
(qgis) pip install gtfs_functions==2.5 h3==3.7.7

Note: Do not upgrade to Python 3.13 if you want to use the GTFS functions. (See #103 for details.)

Pip install

If you cannot use conda, you may try installing from the QGIS Python Console:

import pip
pip.main(['install', 'movingpandas'])
pip.main(['install', 'scikit-mobility'])
pip.main(['install', 'stonesoup'])
pip.main(['install', 'gtfs_functions'])

Plugin installation

The Trajectools plugin can be installed directly in QGIS using the built-in Plugin Manager:

plugin manager

Figure 1: QGIS Plugin Manager with Trajectools plugin installed.

Trajectools Toolbox

Figure 2: Trajectools (v2.4) algorithms in the QGIS Processing toolbox

Examples

The individual Trajectools algorithms are flexible and modular and can therefore be used on a wide array on input datasets, including, for example, the open Microsoft Geolife dataset a sample of which is included in the plugin repo:

Trajectools Create Trajectory

Trajectools Clip Trajectory

Trajectools Kalman Filter Smoothing

Trajectools GTFS Extract Segments

Presentations

Trajectools: analyzing anything that moves. QGIS User Conference 2025, 2-3 June 2025, Norrköping, Sweden.

Trajectools presentation at QGISUC2025

Citation information

Please cite [0] when using Trajectools in your research and reference the appropriate release version using the Zenodo DOI: https://doi.org/10.5281/zenodo.13847642

[0] Graser, A., & Dragaschnig, M. (2024, June). Trajectools Demo: Towards No-Code Solutions for Movement Data Analytics. In 2024 25th IEEE International Conference on Mobile Data Management (MDM) (pp. 235-238). IEEE.

@inproceedings{graser2024trajectools,
  title = {Trajectools Demo: Towards No-Code Solutions for Movement Data Analytics},
  author = {Graser, Anita and Dragaschnig, Melitta},
  booktitle = {2024 25th IEEE International Conference on Mobile Data Management (MDM)},
  pages = {235--238},
  year = {2024},
  organization = {IEEE},
  doi = {10.1109/MDM61037.2024.00048},
}

Acknowledgements

This work was supported in part by the Horizon Framework Programme of the European Union under grant agreement No. 101093051 (EMERALDS).