[Simon Aubury] owns a cat. Or perhaps it is the other way around, we can never really tell. One morning around 6AM, the cat — we don’t know its name — heard a low-flying aircraft and to signal its displeasure at the event, decided to jump onto [Simon’s] face as he slept. Thanks to the well-known mind control abilities of cats, [Simon] decided he had to know what plane was causing this scenario to recur. So he did what any of us what do. He used a Raspberry Pi and a software defined radio dongle to decode the ADS-B signals coming from nearby aircraft.
Picking up the signals and capturing them is easy thanks to the wide availability of USB radios and a program called Dump1090. However, the data is somewhat jumbled and not in a cat-friendly format. [Simon] turned to Apache Kafka — a tool for building real-time data pipelines — to process the data.
Using Python and SQL, [Simon] populated a callsign database (which drives a topic in Kafka) and a location database. He also found existing data sources that could relate the airplane code to the type of plane and also the carrier and route information.
Kafka can take the steady stream of aircraft data and rapidly match it with the static databases to provide a meaningful data feed. Armed with that feed a dashboard system called Elastic Kibana, provides a great interface for letting the cat monitor local airspace. You can also query the databases to find out exactly what plane disturbed your slumber. In this case, it was an A383 going to Dubai.