Locus reports 650 meters Uphill Elevation on a lake trip!

Started by svartbjorn, June 19, 2011, 20:54:16

0 Members and 2 Guests are viewing this topic.

svartbjorn

I made a canoe trip on a lake and used MyTracks to record the track. In the picture below this MyTracks recorded track is displayed with MyTracks (left) and with Locus (right). I understand there will be noise on the elevation because of inaccuracy of the computed GPS altitude, but MyTracks obviously use a stronger smoothing algorithm, making it more correct. MyTracks reports an accumulated "Elevation Gain" = 137 meters, while Locus reports 649 meters "Uphill Elevation"! This correlates to the way the two applications display the results, but the way Locus computes elevation gain it is not of any interest with results so completely off any meaningful level. I think elevation gain (uphill elevation) is a very interesting number, but Locus has to significantly improve the way it is calculated in order to make it useful and meaningful.

[attachment=0:p6rpi9r6]Both2.jpg[/attachment:p6rpi9r6]
  •  

Menion

may you provide file with data? I should upload it and test it also on another web service, GPSies for example.
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

svartbjorn

gpx file attached
  •  

rijackson741

I think the GPS altitude can be very inaccurate. I went for a hike today, and stopped in a restaurant for lunch. When I went in the altitude was about 150ft. When I came out the altitude was about -630ft, and I don't think the ground subsided that much during lunch  :D . I could upload the track, but I already overwrote the altitude information (this is a new feature I really like!).

Edit: I just realized the location of the track is way off too. It's several hundred feet on the wrong side of a river, with various loops and excursions into the middle of swamps, etc  :D . It looks like the GPS completely lost itself. It was OK when I left the restaurant (the track is accurate), but then a little while later the track goes crazy, and is completely wrong for the next 40 minutes. So forget my comment about the accuracy: the GPS was obviously completely lost. I don't know why, because there is not much to block it and I have recorded a track there before, but it went nuts today.
  •  

svartbjorn

Vertical GPS accuracy is not as good as horizontal - that is a fact. My point here is that because of just that,  some sort of smoothing algorithm is required. And MyTracks obviously does a much better job with that than Locus. I would suggest a smoothing with user selectable smoothing level, e.g. off, weak, fair, strong, very strong. E.g. if you go cayaking from lake to lake, you want a very strong smoothing. If you go hiking, your elevation doesn't chnage abruptly by several meters between sored points and you may want a fair smoothing, but if you go running in a rough terrain, you may want a weak smoothing. And if you go downhill skiing, you may need to turn off smoothing.
  •  

rijackson741

Quote from: "svartbjorn"If you go hiking, your elevation doesn't chnage abruptly by several meters between sored points

Unless you walk off a cliff  :mrgreen:
  •  

Menion

Ok, I'll look at it. Question for you is: do you want to apply some smoothing on recording data itself, this means my smooth algorithm will corrupt recorded data in some way and also exported data will have this or you want to apply these data only to show stats so exported data will be raw recorded data? I expect to use this directly on recording data ...

EDIT: hmm I uploaded your track to GPSies.com and it show same altitude profile as in Locus. I'm not saying it's correct, just that it do not apply any filter on imported data. I'll probably apply simple altitude smoothing (similiar to medium filter applied to orientation) and we'll see what this will do.

Second question are shown values of uphill and downhill. These are values set by me, so no standard. Maybe you can help me a little with this.

I'm counting declivity for every new segment by

declivity = elevation / distance

if declivity is bigger then 0.025, I add this to uphill
if declivity is lower then -0.025, I add this to downhill
else I add it to flat

so border is 2.5% of elevation change. Maybe it's too low values and because of this, to much values are stored in uphill and downhill? What you think?

EDIT2: hmm when I set value to 5% it do not help a lot on your recorded track. As I see I already apply smoothing algorithm on altitude. Only problem here is that I do this on GPS data directly and not on already recorded data. It looks that My Tracks record raw GPS data but when it show altitude profile and some stats, it use some filtering. I on other side, filter altitude a little during recording so my recorded data are already a little bit filtered. So I'm sure, that If you record same track with locus, you'll get at least little bit filtered data also. (because I do not ever see so weird altitude profile on my own recorded tracks :) ) ... but you have still problems with working with locus on your phone right? hmm
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

svartbjorn

I see the dilemma and I was probably a bit too quick to criticize Locus.

I can admit Locus is excused when displaying tracks recorded by another app like MyTracks, since MyTracks obviously store points unfiltered and applies smoothing when analyzing the track afterwards. I looked at a track recorded by Locus during a flight, and it was actually very smooth. Two Locus bike tracks do have some altitude noise that will add more uphill/downhill meters than actually is the case. When I looked at Locus tracks of two walking trips, that charts were quite noisy. So it seems that the lower the speed, the more incorrectly the smoothing works.

When to do smoothing - during recording or as post processing? Well, we know that the raw data are not correct anyway, so why store it unfiltered? If the smoothing algorithm is fixed and not user selectable or speed dependent, then storing raw data and doing post processing should work fine too. But then the smoothing should be applied also when exporting tracks, such that the apps using those data, get meaningful data (my original example with MyTracks show how bad this can turn out when doing it the MyTracks way). If however the smoothing level were user selectable, then the smoothing has to be done during recording I think, otherwise you would need to change the smoothing level from track to track depending upon what kind of trip it was (flying, sailing, running, ..).

I see the challenge of how strong the smoothing should be: too weak will pass through too much altitude noise and hence add too much to uphill/downhill, and too strong will filter out some real up and downs in a rough terrain. So may be the smoothing algorithm Locus is using today during recording is the best compromise after all. Since Locus is supporting display of MyTracks recorded tracks, may be the same Locus smoothing algorithm should be applied before displaying those charts and statistics.

Regarding my phone hang problems with Locus, yes they remain. I even tried more things yesterday, but nothing helped. Locus crashed and killed the phone dead twice during the same 1 1/2 hour trip. But I also can be lucky once in a while and record a trip without issues.
  •  

durian

I don't think the raw data should be smoothed - that should be done by the application using the data, for example the chart drawing part. You never know what kind of smoothing you want anyway, or if there are applications where you don't want your track to be smoothed...
  •  

svartbjorn

Quote from: "menion"so border is 2.5% of elevation change. Maybe it's too low values and because of this, to much values are stored in uphill and downhill? What you think?

To get an idea how steep a 2.5% angle really is, one can look at an airplane coming in for landing: standard descending angle is 3 degrees, which is equal to 5% (tan 3 = 0.05). 2.5% equals 1.4 degrees (arctan 0.025 = 1.4 degrees). So 2.5% (1.4 degrees) may be reasonable is the GPS altitude accuracy were better, but with the accuracies we actually get today from GPS, may be a 5% criteria would work better and rule out more of the small variations due to GPS altitude inaccuracy. But I assume you are using this declivity decision after smoothing? Otherwise it won't make sense at all (refer the raw data example from MyTracks).
  •  

Menion

yes, I use this value after smoothing.

fine. so I'll set there 5%. this should cover all small disturbance. About storing raw data. Filter I apply is really very simple and filter only extreme huge changes so it really do not change values radically. I'll keep actual state and we will see.

whole problem here is thanks to MyTracks data you displayed in Locus. Question is whether this is really some problem that need to be fixed. I in Locus display data that you really get! So data that are stored in database and also data that are stored in My Tracks database. So it should be little weird to apply some filter on data from My Tracks and not on data from Locus (I know, I apply filter on GPS data before saving but no one know what brings next My Tracks version) ...
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

rijackson741

Quote from: "durian"I don't think the raw data should be smoothed

I agree. You can't "unsmooth" it later if you decide it wasn't right!
  •  

Menion

so I'm opening this topic again due to issue here viewtopic.php?f=10&t=757

so firstly:
  - I'll create something similar to sensor filtering ... low/medium/big ... it's ok right?

  - then - apply filtering directly on recording data? YES/NO

     if YES, big advantage is simplicity for basic users and also for me. This can be done during few hours. If I'll not apply filtering on raw data but later for displaying and export, there will be problem how to let user know that there is some filter (if he forgot), also there will be need to compute all stats again during every loading from database and probably I'll have to get all already loaded data and apply changed filter on them again, if something change in settings ...

 so what you think guys?
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •  

rijackson741

This sounds OK to me. If someone doesn't like having filtered data they can turn it off, and it's the same as now. Will the filter be applied only to the altitude data, or also to position?
  •  

Menion

nono only on altitude. I prepared one special filter (Kalman filter) a long time ago (only older J2ME mobiles) but now it's not necessary, so only altitude
- Official help (ideas, questions, problems): help.locusmap.eu
- Advanced topics, sharing of knowledges: you're here!
- LM 4 Beta download, LM 4 Release download
  •