'Python script showing GPS tracks different from smartwatch apps

I'm building a Python script to draw a heatmap of running activities recorded with a smartwatch, that are actually an athlete's movimentation during a soccer match.

So far it's all pretty basic, I've just created an image of the GPS track with PIL and overlayed it on a screenshot of a satellite image of the field. I took the GPS coordinates of the upper left and the lower right points of the image to set the track position (kind of) correctly.

I'm working on finding the best way to smoothly put the heatmap over the image. In the future, I will also search for a better way to take the satellite field image, if possible making the process automatic for any field (the way it is now, I have to set the UL and LR coodinates and take another screenshot if the match is played in another field).

But this is not for today.

By now, what I need to know is another thing: when comparing the route my script create with the route of the same track shown by Strava (and another 2 apps I use), they are quite different.

I've drawn my route by taking each point, from the first one to the (n-1), and linking it to the next with a line, using PIL's im.line(). Here are 2 images of the same run (my script on the left, Strava on the right; the one on strava had the first minute or so removed):

comparison of the 2 tracks

I've pointed some spots I believe are the same GPS point.

Why does this happen? The GPS coordinates must be handled differently then just linking one to the next?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source