Precise Point Positioning

Precise Point Positioning (PPP) is a global navigation satellite system (GNSS) positioning method that calculates very precise positions, with errors as small as a few centimeters under good conditions. PPP is a combination of several relatively sophisticated GNSS position refinement techniques that can be used with near-consumer-grade hardware to yield near-survey-grade results. PPP uses a single GNSS receiver, unlike standard RTK methods, which use a temporarily fixed base receiver in the field as well as a relatively nearby mobile receiver. PPP methods overlap somewhat with DGNSS positioning methods, which use permanent reference stations to quantify systemic errors.

Methods
PPP relies on two general sources of information: direct observables and ephemerides.

Direct observables are data that the GPS receiver can measure on its own. One direct observable for PPP is carrier phase, i.e., not only the timing message encoded in the GNSS signal, but also whether the wave of that signal is going "up" or "down" at a given moment. Loosely speaking, phase can be thought of as the digits after the decimal point in the number of waves between a given GNSS satellite and the receiver. By itself, phase measurement cannot yield even an approximate position, but once other methods have narrowed down the position estimate to within a diameter corresponding to a single wavelength (roughly 20 cm), phase information can refine the estimate.

Another important direct observable is the differential delay between GNSS signals of different frequencies. This is useful because a major source of position error is variability in how GNSS signals are slowed in the ionosphere, which is affected relatively unpredictably by space weather. The ionosphere is dispersive, meaning that signals of different frequency are slowed by different amounts. By measuring the difference in the delays between signals of different frequencies, the receiver software (or later post-processing) can model and remove the delay at any frequency. This process is only approximate, and non-dispersive sources of delay remain (notably from water vapor moving around in the troposphere), but it improves accuracy significantly.

Ephemerides are precise measurements of the GNSS satellites' orbits, made by the geodetic community (the International GNSS Service and other public and private organizations) with global networks of ground stations. Satellite navigation works on the principle that the satellites' positions at any given time are known, but in practice, micrometeoroid impacts, variation in solar radiation pressure, and so on mean that orbits are not perfectly predictable. The ephemerides that the satellites broadcast are earlier forecasts, up to a few hours old, and are less accurate (by up to a few meters) than carefully processed observations of where the satellites actually were. Therefore, if a GNSS receiver system stores raw observations, they can be processed later against a more accurate ephemeris than what was in the GNSS messages, yielding more accurate position estimates than what would be possible with standard realtime calculations. This post-processing technique has long been standard for GNSS applications that need high accuracy. More recently, projects such as APPS, the Automatic Precise Positioning Service of NASA JPL, have begun publishing improved ephemerides over the internet with very low latency. PPP uses these streams to apply in near realtime the same kind of correction that used to be done in post-processing.

Applications
Precise positioning is increasingly used in the fields including robotics, autonomous navigation, agriculture, construction, and mining.

The major weaknesses of PPP, compared with conventional consumer GNSS methods, are that it takes more processing power, it requires an outside ephemeris correction stream, and it takes some time (up to tens of minutes) to converge to full accuracy. This makes it relatively unappealing for applications such as fleet tracking, where centimeter-scale precision is generally not worth the extra complexity, and more useful in areas like robotics, where there may already be an assumption of onboard processing power and frequent data transfer.