Skip to main content

The trackintel framework

PyPI version Conda Version Actions Status Documentation Status codecov.io Code style: black asv Downloads

trackintel is a library for the analysis of spatio-temporal tracking data with a focus on human mobility. The core of trackintel is the hierarchical data model for movement data that is used in GIS, transport planning and related fields. We provide functionalities for the full life-cycle of human mobility data analysis: import and export of tracking data of different types (e.g, trackpoints, check-ins, trajectories), preprocessing, data quality assessment, semantic enrichment, quantitative analysis and mining tasks, and visualization of data and results. Trackintel is based on Pandas and GeoPandas.

You can find the documentation on the trackintel documentation page.

Try trackintel online in a MyBinder notebook: Binder

Please star this repo and cite our paper if you find our work is helpful for you.

Data model

An overview of the data model of trackintel:

  • positionfixes (Raw tracking points, e.g., GPS recordings or check-ins)
  • staypoints (Locations where a user spent time without moving, e.g., aggregations of positionfixes or check-ins). Staypoints can be classified into the following categories:
    • activity staypoints. Staypoints with a purpose and a semantic label, e.g., stopping at a cafe to meet with friends or staying at the workplace.
    • non-activity staypoints. Staypoints without an explicit purpose, e.g., waiting for a bus or stopping in a traffic jam.
  • locations (Important places that are visited more than once, e.g., home or work location)
  • triplegs (or stages) (Continuous movement without changing mode, vehicle or stopping for too long, e.g., a taxi trip between pick-up and drop-off)
  • trips (The sequence of all triplegs between two consecutive activity staypoints)
  • tours (A collection of sequential trips that return to the same location)

An example plot showing the hierarchy of the trackintel data model can be found below:

The image below explicitly shows the definition of locations as clustered staypoints, generated by one or several users.

You can enter the trackintel framework if your data corresponds to any of the above mentioned movement data representation. Here are some of the functionalities that we provide:

  • Import: Import from the following data formats is supported: geopandas dataframes (recommended), csv files in a specified format, postGIS databases. We also provide specific dataset readers for popular public datasets (e.g, geolife).
  • Aggregation: We provide functionalities to aggregate into the next level of our data model. E.g., positionfixes→staypoints; positionfixes→triplegs; staypoints→locations; staypoints+triplegs→trips; trips→tours
  • Enrichment: Activity semantics for staypoints; Mode of transport semantics for triplegs; High level semantics for locations

How it works

trackintel provides support for the full life-cycle of human mobility data analysis.

[1.] Import data.

import geopandas as gpd
import trackintel as ti

# read pfs from csv file
pfs = ti.io.read_positionfixes_csv(".\examples\data\pfs.csv", sep=";", index_col="id")
# or with predefined dataset readers (here geolife) 
pfs, _ = ti.io.read_geolife(".\tests\data\geolife_long")

[2.] Data model generation.

# generate staypoints and triplegs
pfs, sp = pfs.generate_staypoints(method='sliding')
pfs, tpls = pfs.generate_triplegs(sp, method='between_staypoints')

[3.] Visualization.

# plot the generated tripleg result
ti.plot(positionfixes=pfs, staypoints=sp, triplegs=tpls, radius_sp=10)

[4.] Analysis.

# e.g., predict travel mode labels based on travel speed
tpls = tpls.predict_transport_mode()
# or calculate the temporal tracking coverage of users
tracking_coverage = ti.analysis.temporal_tracking_quality(tpls, granularity='all')

[5.] Save results.

# save the generated results as csv file 
sp.to_csv(r'.\examples\data\sp.csv')
tpls.to_csv(r'.\examples\data\tpls.csv')

For example, the plot below shows the generated staypoints and triplegs from the imported raw positionfix data.

Installation and Usage

trackintel is on pypi.org and conda-forge. We recommend installing trackintel via conda-forge:

conda install -c conda-forge trackintel

Alternatively, you can install it with pip in a GeoPandas available environment using:

pip install trackintel

You should then be able to run the examples in the examples folder or import trackintel using:

import trackintel as ti

ti.print_version() 

Requirements and dependencies

  • Numpy
  • GeoPandas
  • Matplotlib
  • GeoAlchemy2
  • scikit-learn
  • tqdm
  • OSMnx
  • similaritymeasures

Development

You can find the development roadmap under ROADMAP.md and further development guidelines under CONTRIBUTING.md.

Contributors

trackintel is primarily maintained by the Mobility Information Engineering Lab at ETH Zurich (mie-lab.ethz.ch). If you want to contribute, send a pull request and put yourself in the AUTHORS.md file.

Citation

If you find this code useful for your work or use it in your project, please consider citing:

Martin, H., Hong, Y., Wiedemann, N., Bucher, D., & Raubal, M. (2023). Trackintel: An open-source Python library for human mobility analysis. Computers, Environment and Urban Systems, 101, 101938.

@article{Martin_2023_trackintel,
  doi = {10.1016/j.compenvurbsys.2023.101938},
  volume = {101},
  pages = {101938},
  author = {Henry Martin and Ye Hong and Nina Wiedemann and Dominik Bucher and Martin Raubal},
  keywords = {Human mobility analysis, Open-source software, Transport planning, Data mining, Python, Tracking studies},
  title = {Trackintel: An open-source Python library for human mobility analysis},
  journal = {Computers, Environment and Urban Systems},
  year = {2023},
}

Metadata

Release files for trackintel 1.4.2

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

Source distribution (sdist)

Source distribution for trackintel 1.4.2
File Size Uploaded
trackintel-1.4.2.tar.gz 127.4 kB Details

Built distribution (wheel)

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

Total release size: 284.0 kB

Release files / trackintel-1.4.2.tar.gz

Download URL trackintel-1.4.2.tar.gz
Size 127.4 kB
Tags Source
SHA-256 checksum
How to use checksums
fbcefdc0421c7ff6e52b162946e1e9566c26fa5aeba0022414e77341836eeddd
BLAKE2b-256 checksum
How to use checksums
389cef39d12b9f4a1a0edebc4c693c518a5c5b2bcc9a9f997b1ff565b6cb070a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.24

Release files / trackintel-1.4.2-py3-none-any.whl

Download URL trackintel-1.4.2-py3-none-any.whl
Size 156.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fd791fc86784d7957df921c18c2e92f4ffc4bc64e68aab7417a49301efdf3228
BLAKE2b-256 checksum
How to use checksums
f97ca3b2a0fde922c68d32c28a7868c580ee6303d876e3b58d15a4d7bfce03ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.24

Release history Release notifications | RSS feed

This release

1.4.2 This release

2 release files

1.4.1

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.1.13

2 release files

1.1.12

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

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.0

2 release files

0.6.0

2 release files

0.5.3

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.2.0

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