# how accurate are your smartphone based GPS tracks?



## GbrNole (Feb 13, 2008)

I have a blackberry tour that i always carry in my pack so i have been using it recently to plot my tracks on my local trail.

the true trail length is just a hair over 10.5 miles for one complete lap of all trail sections (Caloosahatchee Regional Park in Alva, FL) but i have been getting some interesting results so far. I assume part of the variance in results is the tree canopy affecting the GPS signal strength the rest i assume is the software itself?

I have 3 separate programs installed on my phone: (each available on the BB ap store)

endomondo

AllSport GPS

GPSpeedOMeter


my current default program is GPSpeedOMeter. it has auto rest function which is not available in endomondo and a slightly more simple UI than AllSport GPS.

the program with the worst results (and it's not even close) is endomondo. the UI is very pretty but the results have been, well, crap. consistent lap distances have been measured approximately 2 miles less than actual lap distance even though the plot showed no signal drop.

GPSpeedOMeter has been doing ok. it uploads its results to ridewithgps.com and i can manually edit those as necessary. the gps ride tracks plot well but the distance still comes up a little short typically registering a little bit under 10 miles for the 10.5 mile trip.

AllSport GPS i have only used on the road thus far and it seems to do a fine job with distance but does seem to very briefly lose signal from time to time in odd spots where you wouldn't expect it to. i will be using that on the trail this weekend to see if it is any improvement on GPSpeedOMeter or if the half mile inconsistency is more related to the phone signal being interrupted by the trees?

i know that garmins etc. can also be interrupted by tree canopies so i was intrigued by how much other phone and bike gps users generally see?

thanks!


----------



## Harold (Dec 23, 2003)

GbrNole said:


> i know that garmins etc. can also be interrupted by tree canopies


This is rare nowadays with the current crop of high sensitivity receivers. I haven't lost a signal in the trees since the SirfStarIII chip came out several years ago.


----------



## edubfromktown (Sep 7, 2010)

I use CycleMeter on the iPhone. Mileage is typically ~5-8% lower as compared to cycling computers.


----------



## fishbum (Aug 8, 2007)

The GPS chip likely produces a position message once per second, so regardless of the software you use the raw track data is the same.


----------



## RobMoore (Feb 18, 2011)

I checked my recorded track on the satellite image, using mytracks on my droidx, and it kept an accurate distance but strayed from the actual path by 10-15 yards in some places.


----------



## TwoWheelMan (Jan 5, 2009)

Distances on my HTC Desire HD (android) with MyTracks are virtually identical to my calibrated Garmin FR60+wheelsensor. 

Last Sunday's ride: 84.84 km for HTC, 84.74 km for Garmin.

The HTC's track is sometimes 5-10 m laterally from the true track, but that goes for any dedicated handheld GPS too.


----------



## markcronin (Apr 20, 2011)

GbrNole said:


> GPSpeedOMeter has been doing ok. it uploads its results to ridewithgps.com and i can manually edit those as necessary. the gps ride tracks plot well but the distance still comes up a little short typically registering a little bit under 10 miles for the 10.5 mile trip.


Hello there, I'm the developer of GPSpeedOMeter, i usually do a google every week or so to see if anything like this come up like this. So first of all thanks for downloading the app.

To be honest i couldn't give you a definite answer as to why GPSpeedOMeter would be coming up half a mile short over a 10 mile spin. I use it a lot myself (on the road over 20 - 70 mile distances) and it usually varies on distance for the same route to about +/- 1% which is about as good as your going to get really but i think your talking more 5% difference. Being under trees will have an effect on the gps signal tho but usually the effect isnt really enough to put it off too much.

Basically the way GPSpeedOMeter works is every second it asks the gps receiver were am i, what speed am i doing and whats my altitude. it will then calculate the speed in mph/kmph from the meters per second value returned, and use the ellipsoid correction table to correct the altitude reading. For the distance it will calculate the distance between the current position and the previous position (recorded 1 second earlier) from the latitude and longitude values returned from the query to the gps receiver. This is then added to the total distance value. Heres an explanation as to why the distance on some other apps is "crap", I've seen the code for some apps that calculate the distance between points by using the speed and time (1 second) (a quick sample app in the blackberry developer kit does it this way, so its just a copy and paste), this way just doesnt work.
The reason why being under trees might effect the distance on GPSpeedOMeter is that when your under trees and the signal is effected you get alot of bad readings from the gps receiver, GPSpeedOMeter filters out alot of bad readings so if say in a 5 second period the first reading is ok, the next 3 are bad and the next one is ok again, GPSpeedOMeter throws away the 3 bad ones and draws a straight line between point 1 and 5. This I think is the best solution (cant think of another one), but if that just happens to be on a downhill where your going fast and theres alot of turns you can miss out on a couple of meters.

A feature in the app can cause a similar effect tho. That being the auto start/stop/pause function you mentioned. By default the app is set to start once you go over about 3.5 mph and stop when you go under about 2.5mph (1.5m/s and 1m/s), these values can be set in the settings screen. so if your mountain biking your probably going over alot of hills and if your like me you might drop under the 2.5mph for a second or so and have to get over 3.5 for it to start again. This will do a similar thing to the bad gps data and draw a straight line from where you stop to where you start again, maybe missing a couple of meters.

Another reason for bad distance data is speed vs horizontal accuracy, not quite sure how to explain this one but basically the faster you go the more accurate gps will be. if you check your phone settings and location theres a horizontal accuracy value. this basically means that everytime you ask the gps receiver for your location it can be out by this number of meters (once you start moving this value generally gets smaller and smaller). and at higher speeds this value will be a smaller percentage of the distance traveled compared to at lower speeds.

No doubt some GPS guru will come and correct me on some of this. I'm not an expert on GPS and i develop GPSpeedOMeter as a hobby more than anything else, so i could very well be wrong on some of what i just said.

One question i would have tho (not sure if you said already) but how did you calibrate the distance to 10.5 miles in the first place. Cyclo computers with the magnet on the wheel can be out by alot too if they're not set up 100% and google maps isnt always 100% either.

Anyway sorry if this post was a bit long, feel free to email me with anymore questions (theres an "email the developer" menu option in the app)


----------



## GbrNole (Feb 13, 2008)

Hi Mark,

thank you for the very thorough response! i'm a purchased user of your program (though i have to say the price is so unbelievably reasonable that it barely even feels like a donation!) and have really enjoyed using it thus far.

i haven't really played with the internal settings as of yet but i have a sneaking suspicion that it is one or two areas on the trail that are far more technical than all of the others and average speeds drop significantly (generally from approx 13mph down to approx 7mph)

the trail has been measured a large number of times (as is the case with most any trail it goes through revision so the distances do tend to change) but most notably the IMBA measured the trail with the current setup as being 10.5 miles.

it could very well be the very random way i have the phone stuffed in my pack too basically shoehorned in there next to my multi-tool and co2 inflater with a spare tube in the bungies directly outside if the pocket the phone and tools are stuffed in.

the only other oddity i have experienced is that one time when i rode laps of the trail i stopped to take a look at the results after the first lap back at the trail head - put the phone back in the pack and carried on riding and when i got back to the finish of the second lap it had added the two lap combined distances (as it should) and then doubled them for some odd reason?

Thanks!
Nick.


----------



## markcronin (Apr 20, 2011)

GbrNole said:


> the only other oddity i have experienced is that one time when i rode laps of the trail i stopped to take a look at the results after the first lap back at the trail head - put the phone back in the pack and carried on riding and when i got back to the finish of the second lap it had added the two lap combined distances (as it should) and then doubled them for some odd reason?
> 
> Nick.


I'm really not sure about that one, I've seen something similar once before, a user sent me a trip that they recorded and the track was the right shape but it was all about 1000miles off course to the east if you know what i mean. The distance that time was about 1.5 times what it should have been. I did track that down to a verison problem (google searched it) and a battery pull sorted that one out, but i think that was a more regular thing.

If you still have that trip saved id be happy to take a look at it if you goto the history screen highlight the trip and click send to theres an option to email it. best email to send it to is [email protected] or the [email protected] one.

The problem with debugging issues like this is that by default the app takes a reading every 1 second but only saves every 5th to the GPX file thats emailed or sent to ridewithgps as it saves on file size when sending over the internet and the every 1 second isn't really needed for the mapping anyway. I would imagine whats happened there for the distance to double is that one rogue location got past the bad data filter and got added to the distance. if thats the case and only every 5th location is saved theres only a 1 in 5 chance of it being in the gpx file. And that rogue location just happened to be more or less the same distance away from reality as your actual trip distance.

But do feel free to email the gpx file anyway and i can take a look at it later. I'm not saying the app is 100% bug proof so maybe you've found something there.

p.s are you sure you werent just going really well that day and it just felt like two laps but you really did 4?


----------



## GbrNole (Feb 13, 2008)

hahaha i really wish it would have been 4! my 11 year old was riding with me and he's still not quite ripe for anything much beyond 20 miles but hopefully he will get there soon enough!

i will send you the gpx file to take a quick look.


----------



## SWriverstone (Sep 3, 2009)

Kudos to you Mark for monitoring Google for any discussion of your app, and getting in here to comment on it. Far too few developers do this kind of thing, and it makes for fanatically loyal users!

I'm always amazed more developers—as well as manufacturers of bike parts, etc. don't monitor at least the big forums like this one...so thanks! 

Scott


----------



## GbrNole (Feb 13, 2008)

SWriverstone said:


> Kudos to you Mark for monitoring Google for any discussion of your app, and getting in here to comment on it. Far too few developers do this kind of thing, and it makes for fanatically loyal users!
> 
> I'm always amazed more developers-as well as manufacturers of bike parts, etc. don't monitor at least the big forums like this one...so thanks!
> 
> Scott


I just want to clarify as well that beyond the one time niggle with the doubling distance ridden the ap has been flawless and graphically the UI is very clear to the point where i almost want to strap the phone to my handlebars!


----------



## thatdrewguy (Jul 28, 2009)

NateHawk said:


> This is rare nowadays with the current crop of high sensitivity receivers. I haven't lost a signal in the trees since the SirfStarIII chip came out several years ago.


I can't believe you said that. (Usually anyone that says that loses all credibility in my book but I've followed your threads and comments and believe you are quite an expert on GPS and signals). So how do you explain tracks where I'm under tree cover and instead of following the trail I'm on I get a straight line? I use an Edge 500, maybe that doesn't have the chip you are referring to?


----------



## crimecrusher (Feb 27, 2009)

edubfromktown said:


> I use CycleMeter on the iPhone. Mileage is typically ~5-8% lower as compared to cycling computers.


Me too. But nice app for the $.


----------



## Harold (Dec 23, 2003)

thatdrewguy said:


> I can't believe you said that. (Usually anyone that says that loses all credibility in my book but I've followed your threads and comments and believe you are quite an expert on GPS and signals). So how do you explain tracks where I'm under tree cover and instead of following the trail I'm on I get a straight line? I use an Edge 500, maybe that doesn't have the chip you are referring to?


1. You actually have not lost the signal in the first place
2. Yes, the Edge 500 uses a different chip, but there are other issues at play
3. The Edge 500 lacks 1sec recording unless it's affixed to a power meter (or, as I just read, you update to the newest firmware which adds the feature)
4. Being such a small receiver, the Edge 500 is going to have a VERY small antenna as compared to handheld models, and even other Edge models. The antenna size is going to be more comparable to (or even bigger than in some cases) the Forerunner models.
5. Do you know for certain how accurate the trail data you have is? I know from comparing tracks from one ride to the next on my local trails, there are some sections that rarely line up well. There's a lot of variability in GPS signal that depends on local weather, solar weather, the satellite constellation, hill aspect, vegetation condition, and a lot more sources.

I have noticed a quirk of my Oregon that if I turn it on in the woods, it takes awhile before it pins my location accurately. I've seen this when geocaching and I'm hunting for the cache. The GPS will be off by 50' or more for some time, and then I will notice the pointer drift rather suddenly, and it will settle right where I need to be. This happens often, to the point that I now turn the GPS on a good 5-15 minutes before I know I'm going to need precise locations. But I have still not lost a signal in the woods (defined as the GPS telling me that my signal has been lost) since around 2005 or so when I bought my first GPS with a high sensitivity receiver. I even rode with an Edge 705 in the rainforests in Hawaii last summer...doesn't get more dense canopy than that, and the GPS maintained a signal the whole time.


----------



## thatdrewguy (Jul 28, 2009)

NateHawk, thanks for your thorough response, I'm downloading the new firmware with the 1 sec interval, I'll see if my results are better with it.


----------



## Mtn-Rider (May 21, 2010)

I haven't found my Android track logs any less accurate than my Vista Cx logs, in fact, they're nearly identical. What surprises me is the altitude accuracy from my phone track log. It is based on the gps signal without a barometric altitude sensor as in the Vista Cx. Altitude logs match incredibly close.

Various software and website will process track logs differently, some filter out obvious data glitches, some do overly heavy data averaging, others don't filter anything at all. I've compared some 10 different software/websites looking at total milage and climb figures. So far, I like Strava.com for the most consistent results compared to what my Vista Cx shows.


----------



## fishbum (Aug 8, 2007)

The GPS chip itself generally does all the filtering, I'm not convinced that any of the track processing software is really doing any significant filtering, except grossly bad data points... My assumption would be that some track processing software is more sophisticated than others, actually making the calculations correctly in 3-D while consider the earth curvature in every calculation... it's not just a simple distance between points calculation, over long distances the "Haversine" Method is most accurate, and over shorter distances the "Equi-Rectangular Projection" method is better. I assume that the differences between different software packages is likely just differences in the real accuracy and calculation method. It is, after all , the same track data you probably tested amongst the various packages....


----------



## mayonays (Oct 22, 2010)

I've been using the 'My Tracks' Android app for about 6 or 7 months with pretty good success. A couple other guys I ride with use it to and sometimes well have different distances, but its never more than +/- 5% off. I can live with this as I'm more just trying to keep track of my rides as a whole, not break it down and analyze them. One somewhat annoying "bug" I've found is the max speed will sometimes be wayyyy off. I once went 118mph on my bike according to the app. I'm not sure what caused this, but I didn't really pay much attention to it. My favorite feature is the ability to upload to Google Maps, so I can then view the ride from a web browser and show other people. 
In summation, 'My Tracks' is a great app especially since its free. If you're looking for near perfect accuracy though, this isn't the one for you.

Big thanks to markcronin, I don't have a BB but if you get an Android version out I will be purchasing it.


----------



## Harold (Dec 23, 2003)

fishbum said:


> The GPS chip itself generally does all the filtering, I'm not convinced that any of the track processing software is really doing any significant filtering, except grossly bad data points... My assumption would be that some track processing software is more sophisticated than others, actually making the calculations correctly in 3-D while consider the earth curvature in every calculation... it's not just a simple distance between points calculation, over long distances the "Haversine" Method is most accurate, and over shorter distances the "Equi-Rectangular Projection" method is better. I assume that the differences between different software packages is likely just differences in the real accuracy and calculation method. It is, after all , the same track data you probably tested amongst the various packages....


Yes, the signals the GPS chip reports are all going to be the same. There's a lot of under-the-hood processing going on to filter out really bad points, correct the points that can be corrected, and whatnot. If folks remember the early days of GPS, you'd be collecting points doing something, and you'd get a number of bad points that would jump sometimes miles away from where the rest of the points were displaying. Back then, there wasn't much signal processing going on behind the scenes.

What I've noticed is that some websites and standalone programs will further process GPS data beyond what the GPS did with it when correcting for bad points. Sometimes it's just elevation corrections, but sometimes it seems they're doing more to it.

Since there's so much that happens behind-the-scenes, I'd like a little more transparency about what's actually going on. Granted, I'm not exactly the typical consumer.


----------



## VTSession (Aug 18, 2005)

I just used the Allsport GPS app for my Android for the first time. It seems accurate. Elevations gains spot on, as was all the speed averages, etc. The only thing that seemed off was the calorie burner - I rode for 12 miles and it said I only burned 750 calories.

Overall, a fun app for riding.


----------

