What the layer actually measures
It is tempting to call this a jamming map. It is not, and the distinction matters. No part of this layer measures radio energy. There is no spectrum analyzer, no noise floor, no direction finding.
What it measures is what aircraft say about their own navigation quality. Every ADS-B Out installation of version 1 or later broadcasts integrity and accuracy indicators alongside its position. When a GNSS receiver loses confidence in its solution, those indicators fall. This layer counts, for each geographic cell and each hour, the share of distinct aircraft that reported a fallen indicator.
So the honest reading of a red hexagon is: a lot of unrelated aircraft flying through that cell reported degraded navigation accuracy. Interference is an inference from that pattern, not an observation. When many airframes from many operators degrade in the same place at the same time, and recover on leaving it, interference is the most economical explanation. One aircraft reporting zeros is far more likely to be a broken antenna.
The two fields that drive it
Four quality indicators travel with ADS-B. Two of them do the work here.
NIC, Navigation Integrity Category, is an integrity statement: the containment radius Rc inside which the true position lies. It answers "how wrong could this be before the system would have flagged it". NIC is not carried as a single field; a decoder assembles it from the position message type code together with supplement bits, which is why a decoder that ignores the supplements misreports it.
NACp, Navigation Accuracy Category for position, is an accuracy statement: the 95 percent bound on horizontal position error, which is the receiver's own estimate of its uncertainty.
| NIC | Containment radius Rc | NACp | 95% horizontal error |
|---|---|---|---|
| 11 | under 7.5 m | 11 | under 3 m |
| 10 | under 25 m | 10 | under 10 m |
| 9 | under 75 m | 9 | under 30 m |
| 8 | under 0.1 NM (185 m) | 8 | under 0.05 NM (93 m) |
| 7 | under 0.2 NM (370 m) | 7 | under 0.1 NM (185 m) |
| 6 | 0.3, 0.5 or 0.6 NM by supplement | 6 | under 0.3 NM (556 m) |
| 1 | under 20 NM (37 km) | 1 | under 10 NM (18.5 km) |
| 0 | over 20 NM, or unknown | 0 | over 10 NM, or unknown |
Values per RTCA DO-260B. Intermediate rows omitted for space.
An aircraft is counted as degraded when NIC is below 7 or NACp is below 8. Those are not arbitrary cut points. Healthy traffic on a GPS or SBAS source sits at NACp 9 to 11 and NIC 8 or above, so a transponder has to fall several steps before it counts, not one. NACp below 8 is also the level commonly treated as non-compliant for standard ADS-B Out operations under the US equipage rule at 14 CFR 91.227.
Which aircraft are thrown away, and why
Most of the engineering in this layer is exclusion. Count naively and the map fills with false red.
- SIL is never used as a degradation signal. SIL describes the integrity of the installation as designed and certified. It is a configured value that jamming does not change. Using it would not detect interference, it would detect uncertified equipment. We learned this from live data: nearly every aircraft flagged by an early SIL-based test turned out to be light general aviation broadcasting zeros in clear skies over Bavaria. SIL is used the other way round, as an eligibility filter, and only aircraft reporting SIL of 1 or more are counted at all.
- ADS-B version 0 is excluded. Version 0 has no NIC or NACp fields; it carries NUCp instead. Decoded through a version 2 field map it reads as NIC 0 and NACp 0, which looks exactly like total GNSS loss and never recovers.
- TIS-B, MLAT and ADS-R targets are excluded. Those positions are not the aircraft's own GNSS broadcast. MLAT is computed on the ground from time difference of arrival, TIS-B is a ground rebroadcast of radar-derived tracks. Their quality fields describe a ground system, not an airborne receiver. Only directly received ADS-B from a 24-bit ICAO address is counted.
- Gliders, ultralights and UAVs are excluded. These categories are commonly fitted with converters and uncertified devices that have no usable integrity source and report zeros as a matter of course.
- A cell needs a quorum. Nothing is published for a cell until at least 8 distinct aircraft have crossed it in the window, and a single degraded aircraft can never take a cell out of green. At least two degraded airframes are required.
- Counting is by airframe, not by message. Distinct 24-bit addresses per cell per hour. Counting messages would let one loitering aircraft dominate a cell, and would bias toward whichever aircraft the receivers happen to hear most often.
Jamming, spoofing, and why one of them hides
EASA Safety Information Bulletin 2022-02R4 separates the two cleanly. Jamming is intentional radio frequency interference that prevents receivers from locking onto satellite signals, rendering GNSS ineffective or degraded in the affected area. Spoofing is the broadcast of counterfeit satellite signals to deceive receivers into computing incorrect position, navigation and timing.
That difference decides what this layer can see.
Jamming is visible here. Loss of lock raises the receiver's own error estimate or forces a fallback to inertial coasting. NACp and NIC fall, often straight to zero. This is the regime the layer measures well.
Spoofing can be invisible here, and can actively mislead. A spoofer producing a self-consistent constellation leaves the receiver confident. The aircraft then broadcasts a good NACp with a false position, contributing a clean sample. Worse, it contributes that sample to the wrong hexagon, because the cell is assigned from the position the aircraft reported. A convincing spoof can make a cell look greener than reality. Treat this layer as jamming-weighted, not jamming-exclusive, and read it alongside the platform's position-plausibility checks, which is where spoofing is actually caught.
EASA's own observation is worth repeating: there are no specific flight crew alerts that indicate which kind of interference is being experienced, and detection of spoofing may be neither immediate nor easy for a crew.
Why hexagons, and why this size
Cells are H3 cells at resolution 4. H3 is an open hexagonal geospatial index: the globe is projected onto an icosahedron and tiled with hexagons across sixteen resolutions. Because a sphere cannot be tiled with hexagons alone, every resolution also contains exactly twelve pentagons, which H3 places over ocean.
Hexagons beat squares for this job for a specific reason. Every hexagon has exactly six neighbors, all sharing an edge, all at the same center-to-center distance. A square grid has four edge neighbors and four corner neighbors at different distances, which quietly distorts any neighborhood smoothing. Hexagons also approximate a circle better, which is closer to the footprint of a ground transmitter.
Resolution 4 averages about 1,770 km² per cell, roughly 50 km across. That size is a deliberate compromise:
- It matches the scale of the phenomenon. Ground-based interference with aviation-relevant reach affects tens to low hundreds of kilometers for aircraft at altitude.
- It matches the error being reported. An aircraft reporting NIC 0 has a containment radius beyond 20 NM (37 km), comparable to the cell itself. Binning finer would be false precision.
- It yields usable samples. An airliner at 450 kt crosses a cell in three to four minutes, so a moderately busy cell accumulates tens of distinct airframes in six hours. At resolution 5 the cells are seven times smaller and most would fail the eight-aircraft minimum and simply vanish.
The color bands (green below 2 percent, amber 2 to 10 percent, red above 10 percent) and the resolution are the same as gpsjam.org, which has published daily maps by this method since 2022. That is deliberate, so the two are directly comparable, and we would rather say so than imply novelty. Where we differ: our input is our own feed network rather than the full ADS-B Exchange firehose, so coverage is narrower; the default window is 6 hours rather than 24; and the eligibility filtering above is explicit.
What this layer does not tell you
Every data source has an edge. These are the ones that matter for reading this layer correctly.
- It measures reported integrity, not radio interference. Poor satellite geometry, ionospheric scintillation, geomagnetic storms, antenna faults, misconfigured avionics and ordinary inertial coasting all look the same from here.
- It cannot locate a transmitter. Showing where aircraft reported trouble is not the same as geolocating a jammer, which needs direction finding or multi-sensor time difference of arrival.
- A convincing spoof contributes a clean sample, binned by a false position, so it can make a cell look better than it is.
- Blank is not safe. A cell only exists where aircraft fly and where our receivers hear them. Oceans, sparsely covered land and low altitudes are under-observed.
- High-flying traffic is over-represented, and interference effects generally depend on line of sight to the transmitter, so the altitude mix changes what a cell is reporting.
- A shorter window responds faster to an event starting and stopping but has smaller samples and noisier percentages. Six hours is a compromise, not a correct answer.
AeroScope is an situational awareness and research tool. Nothing here is approved for air traffic control, navigation, flight planning or collision avoidance. For operational decisions, use the authoritative source named above.