How it works
Three methods are built and tested. Each has a fuller write-up in the repository; this page is the short version.
GNSS degradation from aircraft (ADS-B)
Aircraft broadcast their own position quality: NACp (accuracy) and NIC (integrity). When GNSS is jammed, spoofed or degraded by space weather, those numbers drop. The processor reads a full day of worldwide ADS-B and works out, for each H3 cell (resolution 4, about 1,770 km²), the share of aircraft whose accuracy degraded.
| Measure | Threshold | What it's for |
|---|---|---|
| Gross | NACp below 8: uncertainty of 93 m or worse | Severe GPS error; directly comparable with GPSJam |
| Accuracy | NACp below 10, counted only for aircraft that showed 10 m capability that day | Finer degradation, including space weather and SBAS problems |
What's kept, and what's filtered out
- Only the aircraft's own GNSS: version-2 reports of type
adsb_icao. Multilateration, TIS-B and rebroadcast positions are dropped. - Airborne only (1,000 ft or more), sampled at most every 30 s per aircraft, so fast and slow reporters weigh alike.
- Faulty avionics: an aircraft bad where its peers are fine is dropped for the day. A jammed flight is bad among bad neighbours and stays in.
- Post-exposure: after an aircraft's first genuinely jammed cell-hour, later degraded reports 300 km or more away, among healthy peers, are tagged as downstream effects rather than new interference.
- Small samples: the cell score subtracts one bad aircraft (the formula GPSJam publishes), and maps colour only cells with 5 or more aircraft.
Derived signals
- SBAS flag: hours when 60% of 10 m-capable aircraft across an SBAS service area fall below 10 m. Kp labels them storm or probable service problem. Flagged hours drop out of the 10 m anomaly search for that area; the 93 m measure is unaffected. Over India (GAGAN) and Australia/New Zealand (SouthPAN) the flag fires on most days (162 and 229 of the first 344 days), because most aircraft there don't use those services. The map lists those two apart as routine.
- Anomalies: each region-hour against the median of the same hour over up to 14 earlier days.
- Minute bursts: aircraft counts per minute, to time short events.
- Announced tests: US GPS interference tests from the FAA's public flight advisories (window, centre and radius by altitude), read every morning. An anomaly or burst inside a test's window and widest radius is tagged as consistent with that test instead of counted as an incident. It matched the White Sands test of October 2025 day by day, and the Point Mugu test behind the 22 Sep 2026 Bay Area GPS loss.
Known biases
- Aircraft that go dark drop out. In strong jamming many aircraft stop sending positions at all, so the degraded share understates how bad it is. The map's "Fewer aircraft than usual" view shows the gap.
- A350s and A380s over-report. They keep sending positions flagged as poor where other types go dark, and their degraded spells last 4–8 times longer. Australia reported to ICAO in 2025 that these types flag their accuracy as zero when a single satellite is marked degraded. Their reports can dominate shares and minute bursts far from any jammer, especially in the overnight long-haul wave. They also carry many real detections inside jammed areas, where they keep reporting while other types go dark, so they aren't removed. Instead, from 25 Oct 2026 every burst and anomaly event on the map shows the share of its degraded aircraft that were A350s or A380s; an event resting mostly on them is weaker evidence on its own. The aircraft-type chart on Trends shows them apart.
See it on the map · Full method card: every parameter, and what the numbers can't tell you.
L-band emitters from NISAR radar
NASA-ISRO's NISAR radar listens at L-band. Over most land it uses two slices: 1219–1239 MHz, which contains GPS L2, and 1291–1296 MHz. Anything transmitting there leaks into its data. Since June 2026, NASA's processor filters that interference out of the images, but first it records what it found in tables inside each product.
- Why one pass gives a position: the radar's receive beam limits interference to part of the swath, and its azimuth beam to a few seconds along track.
- Why broadband needs its own detector: the processor's tone detector flags loud narrowband lines. A noise jammer raises the whole spectrum instead, which shows up as extra power, most clearly in the channel where ground echo is weak.
- Limits: GPS L1 is out of band. Positions are block-scale (a few km). Horizontally polarized sources are under-detected. Radars that hop frequency are seen only part of the time.
- Why every pass is read: until 28 Oct 2026 a pass was read only if the processor's score was high. Passes with a low score that were read anyway had a solid detection 40% of the time, against 48% for high scores, so the score was hiding emitters.
On the map
The map's "L-band emitters (NISAR radar)" layer shows repeat sites: places with solid (medium or high confidence) detections on at least two different passes. Frame-wide detections, which have no usable position, never count. Each dot is a lead, not attribution: something transmitted there inside NISAR's receive slices. Many will be air-surveillance radars, which share the band.
- Dots and rings: a filled dot has a GPS L2 signature: a signal at the L2 centre (1227.6 MHz, within 1 MHz), or raised power across 1219–1239 MHz with no single tone, the pattern of a noise jammer. An open dot is any other L-band signal. Most of those are probably air-surveillance radars: the same 1221 MHz tone recurs at US radar sites. The ring shows how far the site's detections spread (at least 10 km), and a tooltip's row of boxes shows which passes saw the site.
- Aircraft cross-check: for each day NISAR passed over a site, the tooltip asks the aircraft data whether any cell within 150 km (with 5 or more aircraft) had GPS errors at jamming scale, the same 10% mark as the map. It compares days NISAR saw the site with days it passed over without seeing it. Aircraft measure GPS L1 and NISAR sees L2, so agreement is two sensors on two signals, not proof of one emitter. Few aircraft fly over some areas (Novaya Zemlya), so there it says nothing.
- Declared activity: a tooltip lists navigational warnings for missile, rocket, firing or GNSS activity with an area corner within 400 km of the site, issued while the site was active (a week either side). They come from NGA's HYDROARC and HYDROLANT broadcasts (US government, public domain), archived daily from 28 Oct 2026; NGA's own archive is reliable only from late July 2026. These are NGA's relays of national warnings, so a closure can exist without appearing here.
- Seen counts: a site's "seen" count includes only passes that could pick up its signal. Over the Arctic NISAR often records in a 5 MHz mode that listens at 1218.5–1224.5 MHz in one polarization (read from the processor's own frequency axis, 29 Oct 2026). Those passes can't hear a signal at the GPS L2 centre or raised broadband power, so for such sites they are listed apart rather than counted as passes that missed it.
- Time: the layer shows sites with a detection in the 30 days up to the selected day. NISAR revisits each spot every few days. NASA usually posts its data about two days after it's taken (a median of 1.9 days for passes on 18–23 Oct 2026), but postings can pause: on 29 Oct 2026 the newest posted pass was from 23 Oct.
- Coverage: NISAR is processed over eleven areas, drawn as dashed boxes: the Baltic and Nordic region and the Novaya Zemlya test sites (from June and September 2026), and from 28 Oct 2026 the Kola Peninsula and Barents coast, the Ukraine front and western Russia, the Black Sea and Crimea, the Caucasus, the Eastern Mediterranean, the Persian Gulf and Strait of Hormuz, the Red Sea and Bab el-Mandeb, the Korean peninsula and the Taiwan Strait (with 30 days of history). The layer note lists each area's start date. An empty map elsewhere means nobody looked.
- Data: the daily file is in the nisar-data release, with every detection's NISAR granule so anyone can check it against NASA's archive.
Sun-outage windows
Twice a year the sun passes behind each geostationary satellite as seen from a given receiver, and dishes lose the signal for a few minutes a day at times that can be predicted to the minute. The calculator uses a solar ephemeris accurate to about 0.01°. It counts an outage when the sun is within 1.2° of the satellite, which suits a 0.9 m Ku-band dish. A reported loss inside a window is natural; one outside it, much longer, or hitting only some channels deserves a second look.
How data is handled
- Licence registry: 151 sources, each with its licence, whether commercial use is allowed, and how it may be used. A source can't feed a public layer without a recorded licence. Browse it.
- Raw data stays where it is: adsb.lol keeps the aircraft archive, and NASA keeps NISAR. Noisefloor keeps megabytes of derived output, not terabytes.
- Times: stored in UTC; shown in UTC with each visitor's own time zone alongside, always named. The Time button changes the zone (Zulu, major zones or any other) and the 12- or 24-hour clock.
- Public and private: a check on every commit blocks private terms from the public repository.