ryanbinns / ttwatch

Linux TomTom GPS Watch Utilities
MIT License
205 stars 66 forks source link

Intervals wildly off #159

Closed typhoon2099 closed 4 years ago

typhoon2099 commented 5 years ago

Some of my downloaded runs have crazy distances attributed to each lap in an interval run:

<DistanceMeters>-296816.00</DistanceMeters> and the like. As an example, here's a link to a Strava activity. As you can see, I've been to the sun and back!

All the other data about the run is fine, just the distances per lap is wrong (sometimes majorly in the negative, or 0m).

scubajorgen commented 5 years ago

Fwiw:  I notice sometimes the TomTom ttbin files log a coordinate (0, 0) which lies in the sea west of Africa. You have to filter these out when processing, eg. when calculating distance. Otherwise you might get surprising results.

⁣Sent from BlueMail ​

On 25 Apr 2019, 20:50, at 20:50, Matthew Simpson notifications@github.com wrote:

Some of my downloaded runs have crazy distances attributed to each lap in an interval run:

<DistanceMeters>-296816.00</DistanceMeters> and the like. As an example, here's a link to a Strava activity. As you can see, I've been to the sun and back!

All the other data about the run is fine, just the distances per lap is wrong (sometimes majorly in the negative, or 0m).

-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/ryanbinns/ttwatch/issues/159

typhoon2099 commented 5 years ago

Interesting. I'll have a look through the TCX file but it went onto Strava and didn't have any unusual points on it. That said, Strava does a pretty good job of tidying up uploaded data (just not interval distances it seems).

UPDATE: The TCX file doen't have any unusual points on it, so either my watch is messing up its interval distances, or the conversion code is doing something funny. I'm going to dig through the code and see what I can find.

typhoon2099 commented 5 years ago

Oh, I forgot to post the files for the run when I made opened this issue. Here's one from today.

ttwatch.zip

typhoon2099 commented 5 years ago

I've been digging into this issue today and I've found that in parse_ttbin_data if I look at p.record->interval_finish.total_distance then I get the crazy distances. However, I have been unable to track the issue back any further. Going by what I've read in the code I have to assume that the ttbin data itself is incorrect, as I can't find anywhere else where this value can be broken (or indeed where it was created in the first place). Whether or not ttwatch did something to the data or not I can't tell, nor do I want to try and debug this one run at a time (unless there's somewhere I can prevent the run from being removed from my watch). C++ is not my first language, so I could easily be missing something obvious here.

As an addendum I will point out that I have uploaded runs using the (absolutely awful) TomTom Sports app, and the intervals are correct there. They may just be ignoring the total_distance and calculating it using the difference in cumulative distances at the start and end of an interval.