Maschinelle Übersetzung, nicht von einem Muttersprachler geprüft. Englisch ist die maßgebliche Fassung.

Empfängervertrauen und SeefahrtAuf GitHub bearbeitenQuelle: docs/observatory/METHOD.md

Störungsobservatorium: Methodenhinweis

Version kshana-observatory/adsb/v1, aufbauend auf kshana-interference-map/adsb/v2. Nur beratend: Dies ist eine Beschreibung dessen, wie veröffentlichte Positionsmeldungen an vergangenen Tagen aussahen, keine Messung eines Empfängers, keine Prognose, keine Bestätigung einer Störung und keine Zuschreibung ihrer Ursache.

Was das Observatorium veröffentlicht#

Ein Produkt pro UTC-Tag und Region, aus einem offenen Archiv von Flugzeugpositionen. Jede Zelle eines festen Breiten-Längen-Gitters von 0.5 Grad befindet sich in einem von drei Zuständen:

Zustand Bedeutung
degraded Ein hoher Anteil der in der Zelle erfassten Flugzeuge meldete an diesem Tag eine geringe Navigationsgenauigkeit, deutlich über dem Hintergrund dieses Tages.
not_degraded Es wurden genügend Flugzeuge erfasst, und der Anteil erfüllte die Regel nicht.
not_observed Die Daten erlaubten keine Aussage. Das ist nicht „unauffällig“. Jede so veröffentlichte Zelle trägt einen Datengrund: insufficient_sample, no_day_background oder day_wide_effect. Eine Zelle ganz ohne Eintrag wurde von weniger als 5 verschiedenen Flugzeugen gesehen und wird zurückgehalten.

Sonst wird nichts veröffentlicht: keine Ursache, kein Akteur, kein Datensatz je Flugzeug. Die Gründe beschreiben, ob die Daten des Tages ausreichten, nie, warum die Genauigkeit gering war.

Drei Dateien pro Tag (kshana interference-map daily):

  • observatory-adsb-<dataset>-<day>.geojson: die Zellen, mit schema kshana-observatory-day/1, die Methode und ihre vorregistrierten Parameter, die Lizenz und Namensnennung, die Freigaberegel und ein Hinweis.
  • observatory-adsb-<dataset>-<day>.png: dieselben Zellen als Bild (degraded, not degraded, not observed schraffiert; leere Zellen wurden nicht beobachtet). Textblöcke in der Datei wiederholen den Hinweis und die Lizenz.
  • observatory-adsb-<dataset>-<day>.incidents.json: schema kshana-incident-report/1. Aneinandergrenzende degraded-Zellen (Diagonalen eingeschlossen) bilden einen Vorfall mit einem Begrenzungsrahmen und seinen Zellen. cause ist der feste Text not attributed. Die Datei ist eine Eingabe für einen Zyklus aus Melden, Bestätigen und Benachrichtigen (der Meldezyklus der Luftfahrt, der in einem NOTAM endet); sie ist weder eine Bestätigung noch ein NOTAM.

und eine .manifest.json mit der Byte-Anzahl und dem SHA-256 der drei Dateien, der Methoden-ID, den Eingabezählern (gelesene und ausgeschlossene Zeilen) und dem Datensatzblock, damit ein Produkt geprüft und reproduziert werden kann.

Freigaberegeln (vom Befehl durchgesetzt)#

  1. Mindestens 24 h Verzögerung. Das Produkt eines Tages wird frühestens zum Ende dieses UTC-Tages plus --delay-hours freigegeben (24 oder mehr; ein kleinerer Wert wird abgelehnt). Der Befehl lehnt einen Tag ab, der noch nicht veröffentlicht werden kann, und nennt den frühesten Zeitpunkt. Es gibt keinen Schalter, um das zu verkürzen.
  2. Grobe Zellen. --cell-deg unter 0,5 wird abgelehnt.
  3. Unterdrückung. Eine Zelle, die von weniger als 5 verschiedenen Flugzeugen gesehen wurde, wird nicht veröffentlicht; eine Anzahl unter 5 ist null (null eingeschlossen), wie in der Basismethode.
  4. Keine Zuschreibung. Das Vokabular der Zustände und Gründe enthält keine Ursache; ein Test stellt das sicher.
  5. Quellen. Nur adsb.lol (ODbL 1,0) oder ein Nutzerdatensatz mit eigener Lizenz. Daten des OpenSky Network werden abgelehnt (seine Lizenz erlaubt weder die kommerzielle Nutzung noch die Weitergabe abgeleiteter Karten). ADS-B und AIS werden nie kombiniert.
  6. Lizenz des Produkts. Eine ADS-B-Datei je Zelle, die aus adsb.lol erstellt wurde, ist eine abgeleitete Datenbank (Derived Database) und trägt in der Datei ODbL 1,0 und die Namensnennung von adsb.lol. Der Code von Kshana bleibt unter AGPL-3.0.

Die Observable und die Basismethode#

Ein ADS-B-Flugzeug meldet, wie genau es seine eigene GNSS-Position einschätzt: NACp (Navigation Accuracy Category for Position, eine horizontale 95-%-Schranke von 10 NM bis unter 3 m) und NIC (Navigation Integrity Category, ein Eingrenzungsradius). Die Basismethode (kshana-interference-map/adsb/v2, docs/INTERFERENCE-MAP.md) zählt je Zelle und Tag den Anteil der verschiedenen Flugzeuge, deren Meldungen in der Zelle überwiegend geringe Genauigkeit zeigten, mit Schutzbedingungen: nur Höhen über 5.000 ft; ein Flugzeug zählt nur, wenn es am selben Tag anderswo gute Genauigkeit gemeldet hat (eine Geräte-Basislinie); der Zellenanteil muss den Median der Zellenanteile des Tages um eine Marge übersteigen; ein Tag, dessen Median selbst hoch ist, wird als verfälscht (confounded) markiert, und keine Zelle wird als degraded erklärt. Die Parameter wurden aus den Definitionen der Felder und aus der Datenschutzregel festgelegt, bevor irgendwelche Daten untersucht wurden, und sind in jede Ausgabedatei geschrieben. Das Observatorium fügt das Drei-Zustands-Vokabular, die Freigaberegeln und die oben genannten Dateien hinzu und ändert keinen Parameter.

Regionale Läufe. Mit --bbox werden nur Meldungen innerhalb des Rahmens gelesen. Die Geräte-Basislinie und der Hintergrund des Tages werden dann allein aus den Meldungen des Rahmens berechnet, und die Datei sagt das (method.scope). Ein regionales Produkt ist daher ein Produkt der Daten dieser Region, kein Ausschnitt eines globalen.

Beziehung zur Methode NACp gegen Almanach-HDOP#

Pleninger, Topkova und Steiner, „GNSS interference detection: Methodology utilising ADS-B NACp indicator and GPS almanac data“, The Aeronautical Journal 129 (1331), 206 bis 223 (2025), doi 10.1017/aer.2024.67, vergleichen den aus dem NACp eines Flugzeugs folgenden Positionsfehler mit dem HDOP (horizontal dilution of precision) der GPS-Konstellation aus Almanachdaten und markieren ein Flugzeug als betroffen, wenn beide nicht übereinstimmen; die Arbeit bewertet die Methode an gezielten GPS-Jamming-Experimenten.

Was wir genutzt haben. Nur den veröffentlichten Abstract und den bibliographischen Eintrag. Der Volltext stand uns nicht zur Verfügung (hinter einer Bezahlschranke), daher kennen wir weder seine Abbildung von NACp auf eine Fehlerschätzung noch seine HDOP-Berechnung noch seine Schwellenwerte, und wir behaupten nicht, sie zu reproduzieren.

Was das Observatorium stattdessen tut. Die Frage, die der Almanach-Vergleich beantwortet, lautet: „Könnte die Konstellationsgeometrie allein diese geringe Genauigkeit erklären?“ Die Basismethode beantwortet eine verwandte Frage ohne Almanach: Ein geringer Anteil muss sich gegen den Hintergrund desselben Tages in der Region und gegen die eigenen guten Meldungen des Flugzeugs anderswo abheben. Das ist ein anderer und schwächerer Ersatz: Er kann nicht sagen, dass eine Stunde mit ruhiger Geometrie degraded war, wenn der Hintergrund des Tages ebenfalls niedrig ist. Ein Almanach-HDOP-Bewerter ist nicht implementiert. Das ist ein offener Punkt, der aus dem Volltext der Arbeit und dem öffentlichen GPS-Almanach gebaut und vor dem Lauf vorregistriert werden soll; bis dahin wird sie zitiert, nicht beansprucht.

Ein Produkt reproduzieren#

scripts/fetch_adsblol_day.sh 2026-09-15 /path/to/cache      # fetch and extract one day, hashes recorded
kshana interference-map daily /path/to/cache/extracted/2026-09-15 \
    --dataset adsb-lol --day 2026-09-15 --bbox 53.5,9.0,66.0,31.0 --out products/

Die Pipeline ist in allem, was sie veröffentlicht, deterministisch (das Salz der Kennung je Lauf ändert nur interne Hashes, die nie geschrieben werden). Die SHA-256-Werte des Manifests erlauben es, einen zweiten Lauf Byte für Byte zu vergleichen.

Sensitivitätsstudie#

kshana interference-map sensitivity <input> --dataset adsb-lol --day <day> --out report.json spielt die Meldungen eines Tages unter Änderungen jedes vorregistrierten Parameters, jeweils einzeln (je zwei Werte, dazu ein Gitter von 1,0 Grad), erneut ab und berichtet je Variante die Anzahl der degraded, not degraded und not observed Zellen, den Jaccard-Index der degraded-Menge mit der registrierten, die Zellen, deren Zustand sich geändert hat, und die degraded-Fläche. Sie ändert nichts an der registrierten Regel: Eine Variante ist keine validierte Alternative, und eine große Änderung unter einem Parameter sagt, wie stark die Aussage von diesem Parameter abhängt, nicht, welcher Wert richtig ist. Die Ergebnisse für den Rückkatalog stehen in docs/observatory/RESULTS.md.

Grenzen#

  • Abdeckung. adsb.lol folgt Empfängern von Freiwilligen; die offene See und dünn abgedeckter Luftraum sind spärlich, und not_observed ist dort häufig. Eine Karte zeigt die Abdeckung ihrer Quelle.
  • Was geringe Genauigkeit bedeutet. NACp und NIC sinken aus anderen Gründen als Störungen: Ausfälle von Satelliten oder Augmentation, Weltraumwetter, Fehler von Empfänger oder Transponder und Geometrie. Kein Zustand impliziert eine Ursache.
  • Flugzeuge, die den ganzen Tag in einer betroffenen Region bleiben, haben außerhalb keine Basislinie und werden nicht gezählt; die Methode unterschätzt daher einen anhaltenden regionalen Effekt. Die Sensitivitätsstudie zeigt die Wirkung der Basislinien-Schutzbedingung.
  • Tagesgrenzen sind UTC; ein Ereignis, das Mitternacht überschreitet, wird auf zwei Tage aufgeteilt.
  • Keine Referenzwahrheit. Das Observatorium hat keine externe unabhängige Referenz: Jede Größe ist MODELLED, und keine Zeile der Verifikationsmatrix stützt sich darauf.
  • Sensibilität des Themas. Karten dieser Art sind politisch. Das Observatorium nennt eine Methode, eine Verzögerung und ein Vokabular, sonst nichts; es nennt keine Staaten oder Akteure, und es veröffentlicht nicht in Echtzeit.