ssaring / sportstracker

SportsTracker is a desktop application for people who want to record and analyze their sporting activities.
148 stars 55 forks source link

Cap speed graph in Exercise viewer diagram #144

Open elgaard opened 8 years ago

elgaard commented 8 years ago

GPS measurements are not perfect. Sometimes when I e.g., pass under a bridge, I get crazy values like running at 200 Km/h. This makes the speed graph almost useless as everything except the wrong measurement is at the bottom.

It is not trivial to edit the GPX files.

It would be nice if there was a way to set a maximum sensible speed per sports type. (I would be happy with just a global setting too, I do not do both running and motor sports).

ssaring commented 8 years ago

I often had similar problems with my Polar watches, since I switched to Garmin this not happens anymore. The problem is not only with speed data, the recorded heartrate was often above 200 bpm.

The question is: how can these watch / device errors be corrected? Remove all values above a configurable threshold? Which value display instead? The last recorded value before the threshold was reached? This would not solve the problem, because my Polar watch recorded rising invalid data, so the values before the threshold were invalid too. So we could lower the threshold, but this can invalidate proper data.

elgaard commented 8 years ago

In my experience there is not much we can do about hear rate. When it is wrong it is usually either way too low (low battery, poor skin contact) or exactly twice the correct number. And a HR above 200 bpm is possible. OTOH even if the scale is off by a factor two it is still possible to read the graph.

Speed is another matter. If the GPS get a bad signal when I go indoor after the exercise or if I forget to stop it when I get into the car, it can be off by a factor 10 og 20.

I know that for rowing in inriggers I can do maybe 12 km/h. In a short all-out I can do 14 or 15 km/h. I rarely row in rivers, but then I would do a bit more downstream. So I would set my limit at 20 km/h.

I do not care about the few invalid rising data points. If I was rowing on a normal day, and saw a few datapoints rising towards the 20 km/h threshold I would know they were wrong and just ignore them. The important thing is that I could study the real values in the 9-13 km/h interval.

I think we should let the users set the threshold. If someone is really going 125 km/h downhill on a bicycle they just have to increase their limit. The more timid of us can set the limit to 50 km/h.

ssaring commented 8 years ago

The threshold idea is not that simple, the problem is which values to use instead when the threshold is exceeded. The simple way would be the use of the threshold value instead, but this is not valid too. We could also use the average value of the complete exercise, but this makes the graph confusing when it rises to the threshold and drops immediately to the average value and then it jumps back to the threshold when the real value decreases.

If your problem is, that you want to see only the range from e.g. 0 to 20 instead of 0 to 200 in the graph: you can zoom the graph as you want by selecting a section. This makes it easier to analyze the exercise.

rander80 commented 2 months ago

As I was reading this thread, I was thinking of some way in which to estimate the speed in that. From what I could think of, the best thing was to use some sort of acceleration tracker to be able to estimate the speed on that interval. We can use the handy foundations of calculus to tell us that acceleration is going to be a linear model of velocity. So, if there is a rapid change in velocity (ex. ~20 km/h to 0 or to a speed exceeding a set threshold), then we can turn to the acceleration tracker to give us a good estimation of the speed in that interval. How exactly to implement the switch between these two modes of tracking speed is a different story and undoubtedly easier said than done. But these are just some thoughts that I had :)

ssaring commented 2 months ago

@rander80 To be honest, this will become quite complicated in the end and comes which a lot of corner-cases to be considered as well. IMHO there's not that much need for such solutions anymore, as the GPS watches / devices are way more precise nowadays. Especially with multiband GPS enabled (or e.g. Garmin SatIQ).