Tracktable is a cross-platform library for analysis and visualization of the trajectories of moving objects. A moving object can be almost anything from a whale to an airplane to a cruise ship to the point on a screen where a user is looking. In other words, a moving object can be almost anything for which you have a unique ID and a series of coordinates with time stamps.
Our main vehicle for analysis is the feature vector: a collection of numbers that each describe some aspect of a trajectory. We make it easy to create feature vectors for a collection of trajectories, whether using pre-defined features or those of your own devising. Once you have a collection of feature vectors you can apply machine learning algorithms like clustering, similarity computation, range and nearest-neighbor queries — plus anything else you have in your bag of tricks!
Tracktable has built-in support for rendering still images with Cartopy. It can also render movies if you have FFmpeg (https://ffmpeg.org) installed. There is example code included for writing out KML files for Google Earth and friends. We are working on adding support for interactive mapping toolkits like Bokeh and Folium.
Tracktable is written in Python and C++ and runs on Windows (via Visual Studio), Mac OS X and Linux. All of the library’s capabilities are available in Python and most in C++. We envision Jupyter notebooks as the preferred interface for working with the toolkit and will release a complete set of Jupyter examples with version 1.3 of the toolkit.
We distribute Tracktable under a three-clause BSD open source license. Check out the license text for the details.