Teetool is a Python package which models and visualises motion patterns found in two- and three-dimensional trajectory data. It models the trajectories as a Gaussian process and uses the mean and covariance of the trajectory data to produce a confidence region, an area (or volume) through which a given percentage of trajectories travel. The confidence region is useful in obtaining an understanding of, or quantifying, dispersion in trajectory data. Furthermore, by modelling the trajectories as a Gaussian process, missing data can be recovered and noisy measurements can be corrected. Teetool is available as a Python package on GitHub, and includes Jupyter Notebooks, showing examples for two- and three-dimensional trajectory data.

In recent years, researchers have been focusing on the analysis of large scale trajectory data sets obtained from surveillance devices, which contains motion patterns of objects [

When analysing road traffic or pedestrian environments, trajectory data are generally visualised in two dimensions (usually a planar projection). Makris and Ellis [

An example of a route model, capturing the main axis and borders of a specific route [

Motion patterns found in three-dimensional aircraft trajectory data have been visualised as flight corridors, where the data were clustered according to the flightpath [

In terms of software tools for trajectory data analysis, there is a Python package named Flowtracks [

Teetool is a Python package that learns the motion patterns found in trajectory data by modelling the motion patterns found in trajectory data via Gaussian processes. This approach enables the recovery of missing data and the handling of noisy measurements. The package takes as input both two- and three-dimensional trajectory data as a function of another value (e.g. time or absolute distance covered). However, as an output the statistical modelling only concerns itself with the spatial characteristics and by default considers the complete range of this value. Furthermore, the package assists in visualising the patterns in two and three dimensions. The modelling methods are

The remainder of this paper covers the implementation and architecture, quality control, the availability, and reuse potential of the software.

The package is written in Python and consists of seven classes. An overview how these classes communicate with the user is available in Figure

A sequence diagram visualising the chain of events following the initialization of a

A schematic representation of the seven classes found within Teetool, and the interaction with the user.

An example using two-dimensional trajectory is visible in Figure

Gaussian distributed artificially generated trajectory data

Rocket flight trajectory data (lines) as produced by a stochastic rocket simulator in uncertain launch- and atmospheric conditions, including the corresponding one standard deviation confidence region (shaded volume).

Aircraft trajectory data of approaching aircraft as measured by a ground-based radar at the Dallas/Fort Worth (DFW) airport, bundled in five common flightpaths.

Confidence regions (i.e. flight corridors) at a constant altitude (i.e. a horizontal plane intersection of the flight corridors), and mean trajectories (dashed lines), as generated from the trajectory data seen in Figure

Unit tests with an overall coverage of 87% are available and executed using

where

Teetool is able to function on any operating system that supports a standard Python installation, which includes Linux, Windows, and macOS.

Python == 2.7

No special requirements.

The following Python libraries are a required dependency:

NumPy ≥ 1.11

SciPy ≥ 0.18.1

The following Python library is a requirement for

Matplotlib ≥ 1.5.1

The following Python library is a requirement for

Mayavi ≥ 4.5.0

The following Python library is a requirement for handling the data used in the Jupyter Notebook examples:

Pandas ≥ 0.19.2

Willem Eerland (developer)

English.

The software is capable of modelling (i.e. create a statistical model of where they may be located in space) and visualising the motion trend of any kind of trajectory data. It has already been applied to model the motion patterns of three-dimensional trajectory data in two applications. The first application is to visualise the flight corridors as found in trajectory data as measured by a ground-based radar. In the second application the software has been used to visualise the behaviour of the output trajectory data from a stochastic rocket simulator. Furthermore, examples have been included to analyse two-dimensional trajectories, which are often seen in the field of road traffic analysis.

The modelling methods are accessible via the

The authors declare that Hans Fanghor is an Associate Editor of the Journal of Open Research Software.