LockerGnomeTech news and nostalgia for today's technology professionals
Subscribe

Search

Securityosintgeolocationaudiodopplerads-b

DOPPLERGEIST Tries to Place a Recording on a Map by Matching the Pitch of Passing Planes to Flight Records, and Its README Lists Where It Falls Short

The tool needs a trustworthy recording time, can spend hours and tens of gigabytes fetching flight data, and ships under a noncommercial license. Its own validation includes field recordings where the answer landed more than a kilometer off, or nowhere.

Chris raising a recorder as plane contrails converge above him
Illustration: LockerGnome

A plane crossing the sky in the background of a recording has a pitch that slides down as it passes, and that slide depends on where the listener is standing. DOPPLERGEIST bets that the slide is a fingerprint. The README’s one-line description is plain: “DOPPLERGEIST uses aircraft Doppler signatures in audio recordings and ADS-B flight data to geolocate recordings.” A sound you recorded for something else, an interview or a street video, becomes a clue about where you were.

The method runs in four steps, per the README. It detects moving spectral tracks in the audio and groups related harmonics. It retrieves or loads aircraft trajectories for the recording’s time window and notes the gaps. It models the Doppler shifts and sound-arrival delays that those flight paths would produce at a given spot. Then it ranks candidate locations against what it heard across multiple flyovers. The flight data comes from ADS-B.lol archives, indexed and cached, and the tool downloads public aircraft and terrain data only when --online is set. There’s a command line and a local browser interface, and a discover mode that finds acoustic events without any flight data.

The example that gets attention is a historical run, and the README is careful about it: “The first candidate was 476 m from reference in a constrained geographic search and clock window.” In that Livermore run, “automatic MP3 analysis selected 466 aircraft and ranked 105 candidate locations.” The README says the reference point is inferred, not a surveyed microphone position, and notes that the run predates “the current aircraft-type policy” and used an earlier approach that considered all aircraft. So the 476 meters is an experiment, not a benchmark.

The README is blunter than most. Its own words on validation: “no independently accepted blind real-recording localization has yet been established.” In its public field recordings, “three returned rankings, with no retained candidate within 1 km of the publisher-reported sites,” and two returned no candidate at all. Recorder clocks and exact microphone positions weren’t confirmed for those, which makes them development results rather than a calibrated accuracy score. In a batch of 40 smartphone recordings, automatic discovery “produced candidate acoustic groups in 36 of 40 files,” and the README treats these as acoustic proposals, not confirmed aircraft detections. Ranked scores aren’t calibrated probabilities either.

Time is the hard requirement. “Without a reliable recording time, the job returns needs_input.” The tool still analyzes the audio, but historical flight matching and the geographic search need a defensible UTC time, or a window, for the first sample. Get the clock wrong by enough and the planes you’re matching against are the wrong planes.

The cost is real too. “Initial online acquisition may take hours and tens of gigabytes of disk space,” the README says, depending on the recording’s time and region. The default job limit is one hour, with examples that raise it, and there’s no automatic disk-space cap. It needs Python 3.11 or newer and FFmpeg. The full workflow runs on Linux and macOS, and native Windows supports only discover. Country profiles include the US by default, plus Germany, Spain, France and Italy.

The license is the PolyForm Noncommercial License 1.0.0: “DOPPLERGEIST is distributed under the PolyForm Noncommercial License 1.0.0.” Commercial users need separate authorization, and the recordings and third-party datasets keep their own licenses.

An independently accepted blind test is the bar, and by the README’s own count nobody has cleared it yet.

Not every plane overhead is a fingerprint.

More Security

Every Security story →