GPS Tracklogs – How to Calculate Stop Points from GPS Tracklog Data

gpsmovement-dataspatial statisticsspatio-temporal-datatracklog

I have a set of GPS tracks pertaining to a cycling event that happened in the same day. I don't have much geographical information about the event itself, except for the tracklogs I downloaded from a site as GPX.

Along the route, there were some predefined stops that can be clearly seen at the map. These stops have some characteristics spatial and temporal properties (points of speed near zero, segments at random directions, large gaps in the time/distance plot), and is very easy to spot those points visually.

What I like to devise is a way to "detect" those points algorithmically having only the GPX files as input.

Below there is a sample stop point, plotted using Python:

enter image description here

Also included is a very interesting picture taken from 22.2.5 Mining for Movement Patterns in 22.2 Scientiļ¬c Fundamentals of Computational Movement Analysis in Springer Handbook of Geographic Information. What I am looking for is the "meeting place" pattern. The book just mentions the conceptual framework for that, not how to extract it algorithmically. It is important to note, though, that although every cyclist stopped at the meeting places, the didn't do so necessarily at the same time, so the meeting place is spatial mostly, instead of spatio-temporal.

enter image description here

Best Answer

The MovingPandas library provides stop detection tools. To find the "meeting place", you could afterwards run density-based clustering (e.g. DBSCAN) on the extracted stops.

enter image description here