We have about 11,000 total users (half are active) and are VERY excited that the Nexus 4 and 10 both have barometers. We're looking to improve short-term, local weather prediction asap. The project is open source at http://cumulonimbus.ca
But the real reason it is there is that it speeds up getting an initial GPS fix. It provides a quick way to guess altitude, which lets it calculate where satellites should be better.
How does knowing the altitude help figure out which satellite to look for? (Are GPS receivers "directional", anyway??) GPS satellites orbit at ~20,000km; for the initial acquisition I'm surprised that receivers would care if they're 0km or 1.5km from sea level.
GPS positions you using very accurate clocks. GPS satellites are continuously broadcasting messages, where each message contains:
1) their position when the message was sent
2) the exact time when the message was sent.
With enough satellite signals (4, given that you're locating in 4 dimensions --- 3 spacial and 1 time. Note that if the GPS receiver had a very expensive clock you could locate with 3 satellites, or if you knew your exact altitude to a high level of precision as well, you can locate with just 2 satellite signals).
Now notice that if you're solving a 4 dimensional equation, you can't have two of the spatial coordinates have precisions of less than 10 meters while one of them is inaccurate to the kilometer!
In practice, if you have a "good enough" clock and a "good enough" barometer, you can hone into the approximate city, or 100 meter radius circle much faster --- after picking up just two GPS signals. And for a lot of apps, this lets them begin the initial computations quicker.
The one part I'm not sure about is whether the long time is computational, or in actually waiting until you find 4 or more signals. Maybe somebody with more experience with GPS can clarify?
The time is effectively the time to find 4 signals.
> 4, given that you're locating in 4 dimensions --- 3 spacial and 1 time.
I think your understanding is a little flawed. The time is necessary to determine the precise distance, since both you and the satellite are in motion. After the correction for that, the problem becomes locating a body in 3 dimensions based on its distance from N points. A single point gives you a sphere, and you may be located anywhere on that sphere. Two points gives you two spheres. You might be located anywhere at the intersection of those spheres (a circle.) Three points gives you three spheres. I haven't studied the geometry extensively, but Wikipedia says three spheres usually narrows it down to two points you might be at. Knowing your altitude allows you to rule out one of those two points.
"The primary purpose of the barometer is (at least, I've been told) to make GPS lockons faster. Locking on to a GPS involves numerically solving a 4-dimensional set of linear equations -- 3 dimensions in space, and time. ...
The barometer gives you a reasonable first-cut estimate for altitude."
The last Nexus phone had the same- I remember someone on HN showing off a crowd-sourced weather app they'd made. Basically, everyone added their phone to a sensor array that picked up barometric changes across the city and worked out what that meant.
Sadly, I didn't have a Nexus so I couldn't try it, but the tech is fascinating.