Introduction
Collecting GNSS data is only the beginning. The true value lies in analysing that data - understanding what the receiver actually observed, how accurately it performed, and where errors originated. Systematic GNSS data analysis reveals performance characteristics that are invisible from a single-position snapshot, enabling informed decisions about receiver selection, deployment methodology, and data quality. This lesson covers the key methods and metrics for rigorous GNSS performance analysis.
Position Time Series Analysis
The most fundamental analysis technique is plotting position error as a time series - the sequence of position estimates over time compared to a known reference. For a receiver stationary at a known survey point, each position epoch can be compared to the ground truth, revealing:
- The magnitude and distribution of positioning errors over time
- Systematic biases that persist over time (e.g., a consistent northward offset indicating an unresolved multipath effect)
- Short-period oscillations related to multipath from specific satellites passing through their orbits
- Sudden jumps indicating cycle slips, satellite changes, or fix-type transitions (RTK float to fixed)
- Correlation between error magnitude and time of day (ionospheric activity, satellite geometry changes)
East-North-Up Decomposition
Position errors are best analysed in a local coordinate frame decomposed into East, North, and Up components. This decomposition separates horizontal from vertical errors, which have different physical causes and different application impacts. Horizontal errors are dominated by satellite geometry and multipath; vertical errors are additionally affected by tropospheric modelling errors.
Scatter Plots and Error Ellipses
A horizontal scatter plot shows the distribution of position estimates (or errors) in the East-North plane. From this distribution, an error ellipse can be fitted - an ellipse that encloses a specified fraction (typically 95%) of the observations. The ellipse orientation reveals the direction of maximum uncertainty, which is typically aligned with the direction of weakest satellite geometry (often north-south at mid-latitudes due to the inclination of GPS satellite orbits).
Fixed-Point Testing Methodology
Reliable fixed-point testing - testing a stationary receiver at a precisely surveyed point - is the gold standard for evaluating GNSS performance. The protocol requires:
- Establishing a reference position using a long-occupation RTK session (several hours) or published survey control coordinates
- Collecting test data at the same point for a representative duration - at minimum several hours, ideally 24 hours to capture a full satellite geometry repeat cycle
- Comparing each position epoch to the reference using an appropriate processing method (standalone, DGNSS, RTK, or PPP)
- Computing statistical performance metrics from the resulting error series
Statistical Metrics: RMS vs 95th Percentile
The choice of statistical metric profoundly affects how performance is characterised and compared:
| Metric | Definition | When to Use | Limitation |
|---|---|---|---|
| RMS (Root Mean Square) | √(mean of squared errors) | General performance characterisation | Sensitive to outliers; not intuitive for non-specialists |
| CEP (Circular Error Probable) | Radius enclosing 50% of positions | Military and aviation specifications | Ignores the worst 50% of errors |
| 95th percentile (R95) | Radius enclosing 95% of positions | Safety-critical accuracy requirements | 5% of errors may be much larger |
| Mean ± 2σ | Mean plus two standard deviations | Gaussian error assumption testing | GNSS errors are often non-Gaussian |
| Max error | Largest single error observed | Worst-case analysis, integrity | Highly sensitive to test duration |
Comparing GNSS Solution Types
A well-designed analysis compares the same raw data processed by different methods - standalone, DGNSS, RTK float, RTK fixed, and PPP - to quantify the accuracy gain from each technique. RTKLIB''s RTKPOST application supports all of these processing modes and can process RINEX observation files against reference station data or precise products to produce position solutions for comparison.
Analysis with Python and MATLAB
Python has become the dominant language for GNSS data analysis. The georinex library reads RINEX files into xarray DataArrays. pandas DataFrames handle time series manipulation. matplotlib and plotly create publication-quality error plots, scatter plots, and error ellipses. numpy and scipy provide the statistical functions needed for RMS, percentile, and ellipse fitting calculations. MATLAB provides similar capabilities through its Navigation Toolbox and Satellite Communications Toolbox.
Benchmark Testing Against Known Coordinates
Where published survey control points exist - national geodetic network marks, IGS reference station coordinates, or independently surveyed control - they provide ideal reference positions for benchmark testing. The horizontal position of an IGS reference station is typically known to the sub-millimetre level, making it an almost perfect reference for evaluating even the highest-precision GNSS receivers.