GPSJam: Daily Maps of GPS Interference
I made this site.<p>Copying a comment I made on HN a few weeks ago:<p>The ADS-B signals that many aircraft broadcast include not just the aircraft's GPS positions, but also a measure of GPS accuracy (strictly speaking, ADS-B doesn't talk about GPS specifically and can handle any sort of navigation technology; I'm sure there are some planes out there reporting positions based on inertial navigation systems, with correspondingly low accuracy, or GLONASS-derived positions, or whatever, but my understanding is that right now something on the order of 99% of aircraft with ADS-B are using good old GPS so I'll just keep using the term GPS in this description). If you go to <a href="https://globe.adsbexchange.com" rel="nofollow">https://globe.adsbexchange.com</a> and click on just about any aircraft, you'll see an info sidebar on the left of the screen. Scroll down until you see the ACCURACY section, and you'll see values labeled NACp, SIL, NACv, NICbaro, and Rc. Those are all self-reported measures of the accuracy of the data being sent by the aircraft[1]. NACp is "Navigation Accuracy Category for position", and is a good measure of whether the aircraft's GPS is working well. (A somewhat obscure feature of ADS-B Exchange lets you see a map of all aircraft that are currently reporting poor navigation accuracy for their GPS: <a href="https://globe.adsbexchange.com/?badgps" rel="nofollow">https://globe.adsbexchange.com/?badgps</a>)<p>To make the maps, I process a day's worth of data from ADS-B Exchange to find all the aircraft reporting poor navigation accuracy and then I color map hexes (using H3 hexes) according to the proportion of aircraft passing through that hex that reported bad GPS accuracy. Specifically, I'm counting an aircraft as experiencing "interference" if it at some point reported good navigation accuracy and then reported low accuracy. Doing this helps filter out aircraft that just have an ongoing issue with their GPS equipment, or don't even have GPS.<p>When I do that, areas where there is systematic interference—almost always jamming by military systems—become obvious. There are a few conflict zones (Syria, Cyprus, Israel) that have been experiencing jamming for years, and the U.S. often has smaller scale military testing, especially in the West and Southwest. You can also see the jammers that are apparently setup around Moscow to prevent drones from flying near Oligarch dachas[2].<p>I started making these maps in February before Russia invaded Ukraine because I thought it might provide an early warning of an invasion. I didn't see that, and in fact this technique doesn't do a very good job of mapping GPS jamming around the actual war zones because civil aviation stopped over Ukraine, so there are zero or few aircraft with ADS-B reporting their GPS accuracy[3]. Without that data, I can't make a map.<p>Sometimes I do see changes, like when Russia suddenly started jamming around Kaliningrad in March 2022, causing interference in many Baltic states and leading to Finland to cancel some flights[4]. Then a few days later, they just stopped.<p>I don't think too many people have realized yet what an amazing source of GPS interference data is available using ADS-B! It's like having thousands of sensors roaming the planet, broadcasting GPS accuracy data every few seconds. I sometimes wonder if I would disrupt someone's nascent business model if I started publishing my maps regularly.<p>1. <a href="https://twitter.com/lemonodor/status/1493789598077440000" rel="nofollow">https://twitter.com/lemonodor/status/1493789598077440000</a>
2. <a href="https://www.gpsworld.com/jammers-at-dachas-add-to-russias-ability-to-silence-gps/" rel="nofollow">https://www.gpsworld.com/jammers-at-dachas-add-to-russias-ab...</a>
3. <a href="https://twitter.com/lemonodor/status/1497295859196649475" rel="nofollow">https://twitter.com/lemonodor/status/1497295859196649475</a>
4. <a href="https://twitter.com/lemonodor/status/1500719113185816577" rel="nofollow">https://twitter.com/lemonodor/status/1500719113185816577</a>