Radar-Daten analysieren
Analyse von Radardaten unter Linux: Filterung, Echtzeit-Auswertung und Flugplan-Updates effizient prüfen.
Manchmal muss man sich mit Protokollen befassen, die im Internet weniger verbreitet sind. Radardaten stellen eine wesentliche Informationsquelle in der Luftfahrt und Luftüberwachung dar. Sie sind vor allem in professionellen und forschungsorientierten Netzwerken zu finden, die sich mit der Übertragung und Verarbeitung von Flugdaten beschäftigen. Auch Webseiten wie Flightradar24 nutzen diese Daten.
Ein wichtiger Standard für die Beschreibung und Übertragung von Radardaten ist ASTERIX (All Purpose Structured Eurocontrol Surveillance Information Exchange), der häufig über das Protokoll UDP/8600 übertragen wird. Im Folgenden werde ich erläutern, welche Informationen diese Daten enthalten und wie man sie analysieren kann.
Überblick
Radardaten werden beispielsweise verwendet, um Aktualisierungen von Flugplänen im Rahmen von A-CDM (Airport Collaborative Decision Making) zu ermöglichen. Dabei wird berechnet, wie ein Flugzeug ohne Verzögerungen oder Konflikte vom Start bis zum Ziel gelangen kann. Diese Informationen werden auch in der ACDM-App öffentlich bereitgestellt, wo wichtige Parameter wie die Target Off-Block Time (TOBT) und die Target Start-Up Approval Time (TSAT) präzise ermittelt werden. So können Passagiere bequem nachvollziehen, wann ihr Flugzeug planmäßig die Fahrwerksblöcke entfernt bekommt (Estimated Off-Block Time, EOBT).
Datenbeschaffung
Um die korrekte Funktion eines Systems zu überprüfen, das für Flugstatusänderungen verantwortlich ist, könnte man beispielsweise in einer Testumgebung auf der Firewall untersuchen, welche Ortungsdaten in die Umgebung eingespeist werden. Allerdings verfügen Firewalls oder Router nur selten über die Fähigkeit, Radardaten in Echtzeit zu analysieren. An dieser Stelle kommen die vielseitigen Möglichkeiten von Linux ins Spiel, die eine detaillierte und effiziente Analyse ermöglichen:
ssh user@firewall "tcpdump -i any -s 0 -w - port 8600" | tshark -r - -d udp.port==8600,asterix -Y "asterix.category == 62" -V
Um die Daten auf Port 8600 zu überprüfen, wurde der Befehl tcpdump direkt auf der Firewall ausgeführt. Die erfassten Daten wurden anschließend an einen lokalen Linux-Rechner gepiped. Im Gegensatz zur Firewall bietet dieser Rechner Zugriff auf eine vollständige Sammlung von Analysewerkzeugen, die eine umfassende Auswertung der Daten ermöglichen.
Analyse
Die Daten, die auf diese Weise beschafft wurden, sehen grundsätzlich so aus:
Die Radardaten sind, der Suche entsprechend, von der Kategorie 62 und man erfährt auch, woher die Daten stammen (also normalerweise aus SIC und SAC).
Weitere Daten sind in den Paketen zu finden:
- Der Transponder-Code. Diese wird, für eine bessere Lesbarkeit am Lotsenbildschirm, der Flugnummer zugewiesen. Der Fluglotse sieht auf seinem Schirm also nicht 4675 sondern z.B. DLH123.
- Aus mehreren Radar-Erfassungen wird eine Richtung errechnet. Hier ungefähr 100°.
- Die Geschwindigkeit über Grund. Hier ungefähr 830 km/h.
Neben vielen Informationen findet man in den Daten auch die Höhe des Flugzeugs:
Möchte ich wissen, welche Daten im Netzwerk zu einem bestimmten Flugzeug verfügbar sind, kann ich die Pakete gezielt nach dem Callsign filtern, das üblicherweise der Flugnummer entspricht. Dazu lässt sich ein einfacher Filter einsetzen, wie beispielsweise asterix.AI == "DLH123"
. Auf diese Weise werden nur die Pakete angezeigt, die Informationen zu diesem spezifischen Flug enthalten.
Fazit
Die Analyse solcher Daten mag zwar nicht weit verbreitet sein, ist jedoch keineswegs weniger interessant. Mit entsprechenden Linux-Kenntnissen lässt sich eine Umgebung schaffen, die es ermöglicht, in Echtzeit präzise Details zu erhalten. Das zeigt, wie leistungsfähig und flexibel Linux-Tools in solchen Spezialfällen sein können.