I have GPS data collected with a smartphone app for all travel modes (e.g., car, bike, walking, transit). Trips were detected by the app (so I have trip_id in the data). In theory, each point is collected every 5 seconds; it varies in reality (5-15 seconds). The accuracy is pretty low (from 4 to around 70, some points are completely off with accuracy of ~150). This accuracy was measured in meters, I think 4 means that the point has 68% chance to fall inside a buffer of 4m.

My goals are to clean this dataset and use it to determine speed, travel distance, and evaluate the routes. With that, I'll snap it into the road network (with a map matching tool such as nearest_osm in R or similar).

What accuracy threshold should I use to filter out "bad" points before I can snap these points to the network?

  • The problem is that, in this case, error is a function of time and distance. Since the data is related to a route, you have to incorporate time into the evaluation along with the error distance threshold. That is to say the the distance error is not linear but, conditioned on time intervals. If you have a point that is 2 minutes apart you may have a different tolerance than if the observations are 10 minutes apart. Commented Mar 2, 2018 at 22:40
  • I've added that theoretically we collected each point every ~5 seconds. In reality the points were returned every 5-15 seconds. Which threshold would you suggest?
    – GGT
    Commented Mar 3, 2018 at 2:13


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.