3

I'm writing an app (both android and ios) that rely highly on the precision but not accuracy of user's altitude. This means that I'd just like to make sure that whatever device would read the same i.e. consistent altitude values (be it from ellipsoid or sealevel or any fixed layer around the Earth) at one certain horizontal position at any time. I read some articles claiming that the error for altitude readings from GPS is +/-15 meters 95% (and the other 5% even worse i.e. out of range). This has made me realize that it's not a trivial task at all.

I've heard that android and ios devices both use barometers to convert the altitude, and I also find values of altitude from GPS readouts. Some even say there are also readouts from/calculated by mobile towers. But while programming, I'm only familiar with the final converted 3-tuple values of altitude, longitude and latitude.

In any case, I guess I'd need to rule out the barometer one because the air pressure may change over time, yet I'm not sure about the GPS one, especially since to my knowledge, one cannot get raw GPS readouts but instead only converted ones (and that even in different ways). I know nothing about functions to get the values calculated by mobile towers (if ever possible) either.

So could someone explain to me whether it's feasible with those converted values and if yes, which values I should consider?

PS: also, the longitude and latitude don't need to be accurate either but just precise. So is it true that ideally, I would just need the very raw readings from GPS satellites, which in reality isn't possible on either Android or iOS devices?

Thanks in advance!

andrew
  • 129
  • 1
  • 10
  • 1
    As far as I know, mobile devices determine altitude purely from GPS satellites; barometer sensors are mainly used to determine elevation *change* (e.g. stairs climbed). A fix on 4 or more satellites is required to determine altitude. Unfortunately, vertical accuracy is much lower than horizontal accuracy for the reasons described here - http://gpsinformation.net/main/altitude.htm. I don't know what you mean by the "raw readings" from GPS; how would any math you do be different to the math performed by the GPS receiver and presented via the location services API? – Paulw11 Feb 12 '17 at 22:51
  • What I meant by "raw readings" is e.g. the position of each satellite and the distance from the satellite to the device. Since I only need a relatively unchanging reading from one certain point in a 3D coordinate, the coordinate itself doesn't matter. The conversion from those values to altitude, longitude and latitude might involve more numerical evaluation and might cause larger errors. I got the idea of barometer from here [http://stackoverflow.com/questions/8749719/how-can-i-capture-altitude-on-an-android-phone] – andrew Feb 12 '17 at 23:02
  • Ok. iOS is different than Android; you can only get a stream of relative altitude changes and the measured pressure, not an absolute altitude given a reference pressure (although I guess you could write that code yourself). I can't see how the raw data will help you; The distance from the satellite to the device is computed using time variations and will be subject to the same precision as the determined location You would simply be performing the same calculation that the GPS receiver does for you; solving equations to determine a location given distances from known points (the SVs) – Paulw11 Feb 12 '17 at 23:10
  • What are you really trying to do? Over how long a time period do you need high precision ? What sort of precision are you after? – Ifor Feb 13 '17 at 15:36
  • @Ifor Just for one instant, when the user is ideally standing still. A precision that could be within +/- 1 meter. I'm trying to tell if the user is back at the exact same position again. – andrew Feb 13 '17 at 17:25
  • Pressure based you can hold the phone and tell it put it above your head or not. 15 minutes latter the weather change may of drifted it by that sort amount though. So it all depends on precision against timescale. You may be able to do some filtering if you wanted to know the user had gone up a set of steps for instance. no chance of anything like this with a phone gps. – Ifor Feb 16 '17 at 15:33

0 Answers0