Skip to main content

Human mobility and movement analysis framework.

Project description

The trackintel Framework

PyPI version Actions Status Documentation Status codecov.io Code style: black

trackintel is a library for the analysis of spatio-temporal tracking data with a focus on human mobility. The core of trackintel is the hierachical data model for movement data that is used in GIS, transport planning and related fields [1]. 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

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)
  • activities (Staypoints with a purpose and a semantic label, e.g., meeting to drink a coffee as opposed to waiting for the bus)
  • 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 activities)
  • 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.file.read_positionfixes_csv(".\examples\data\pfs.csv", sep=";", index_col="id")
# or with predefined dataset readers (here geolife) 
pfs, _ = ti.io.dataset_reader.read_geolife(".\tests\data\geolife_long")

[2.] Data model generation.

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

[3.] Visualization.

# plot the generated tripleg result
tpls.as_triplegs.plot(positionfixes=pfs,staypoints=stps, staypoints_radius=10)

[4.] Analysis.

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

[5.] Save results.

# save the generated results as csv file 
stps.as_staypoints.to_csv('.\examples\data\stps.csv')
tpls.as_triplegs.to_csv('.\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, you can install it 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
  • Pint
  • NetworkX
  • 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.

References

[1] Axhausen, K. W. (2007). Definition Of Movement and Activity For Transport Modelling. In Handbook of Transport Modelling. Emerald Group Publishing Limited.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trackintel-1.1.1.tar.gz (81.4 kB view details)

Uploaded Source

Built Distribution

trackintel-1.1.1-py3-none-any.whl (110.2 kB view details)

Uploaded Python 3

File details

Details for the file trackintel-1.1.1.tar.gz.

File metadata

  • Download URL: trackintel-1.1.1.tar.gz
  • Upload date:
  • Size: 81.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for trackintel-1.1.1.tar.gz
Algorithm Hash digest
SHA256 4a9535486d913b9a9bd6dced3b041bbc2d1d55d6273eb5e8d2cee856dd9ab0a8
MD5 f646648a59541ce870b61d663fb111fa
BLAKE2b-256 6eee67b6a33bb182d5a2649549f2e130a923e15947ba2f873c708aa817eea8aa

See more details on using hashes here.

File details

Details for the file trackintel-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: trackintel-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 110.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for trackintel-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6b78b93a834bdedd455a0f2cfa3bc3d4546fc1144a5bcca06dd52f96243e18c0
MD5 427c4eedf7eb8d0a632e0b3ed80c4a0e
BLAKE2b-256 6f620e3c416d14248931a3afd2e611003e477d6fd06719811446310dc3c6be37

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page