Interferentieobservatorium: methodenotitie
Versie kshana-observatory/adsb/v1, gebouwd op kshana-interference-map/adsb/v2. Alleen adviserend: dit is een beschrijving van hoe gepubliceerde positiemeldingen er op eerdere dagen uitzagen, geen meting van enige ontvanger, geen voorspelling, geen bevestiging van interferentie en geen toewijzing van de oorzaak ervan.
Wat het observatorium publiceert#
Eén product per UTC-dag en regio, uit één open archief van vliegtuigposities. Elke cel van een vast breedte-lengteraster van 0.5 graad bevindt zich in één van drie toestanden:
| Toestand | Betekenis |
|---|---|
degraded |
Een groot aandeel van de in de cel bemonsterde vliegtuigen meldde die dag een lage navigatienauwkeurigheid, duidelijk boven de achtergrond van die dag. |
not_degraded |
Er waren genoeg vliegtuigen bemonsterd en het aandeel voldeed niet aan de regel. |
not_observed |
De data lieten geen oordeel toe. Dit is niet "schoon". Elke zo gepubliceerde cel draagt een gegevensreden: insufficient_sample, no_day_background of day_wide_effect. Een cel zonder enige vermelding is door minder dan 5 verschillende vliegtuigen gezien en wordt achtergehouden. |
Verder wordt niets gepubliceerd: geen oorzaak, geen actor, geen record per vliegtuig. De redenen beschrijven of de data van die dag voldoende was, nooit waarom de nauwkeurigheid laag was.
Drie bestanden per dag (kshana interference-map daily):
observatory-adsb-<dataset>-<day>.geojson: de cellen, metschemakshana-observatory-day/1, de methode en haar vooraf vastgelegde parameters, de licentie en naamsvermelding, de vrijgaveregel en een kennisgeving.observatory-adsb-<dataset>-<day>.png: dezelfde cellen als afbeelding (verslechterd, niet verslechterd, niet waargenomen gearceerd; lege cellen zijn niet waargenomen). Tekstblokken in het bestand herhalen de kennisgeving en de licentie.observatory-adsb-<dataset>-<day>.incidents.json:schemakshana-incident-report/1. Aaneengrenzende verslechterde cellen (diagonalen inbegrepen) vormen één incident met een omsluitende rechthoek en zijn cellen.causeis de vaste tekstnot attributed. Het bestand is een invoer voor een rapporteer-, bevestig- en meldcyclus (de luchtvaartmeldcyclus die eindigt in een NOTAM); het is geen bevestiging en geen NOTAM.
en een .manifest.json met het aantal bytes en de SHA-256 van de drie bestanden, het methode-id, de invoertellers (gelezen en uitgesloten rijen) en het datasetblok, zodat een product kan worden gecontroleerd en gereproduceerd.
Vrijgaveregels (afgedwongen door de opdracht)#
- Minstens 24 uur vertraging. Het product van een dag wordt niet eerder vrijgegeven dan het einde van die UTC-dag plus
--delay-hours(24 of meer; een kleinere waarde wordt geweigerd). De opdracht weigert een dag die nog niet publiceerbaar is en noemt het vroegste tijdstip. Er is geen schakelaar om dit te verkorten. - Grove cellen.
--cell-degonder 0,5 wordt geweigerd. - Onderdrukking. Een cel die door minder dan 5 verschillende vliegtuigen is gezien, wordt niet gepubliceerd; een aantal onder 5 is
null(nul inbegrepen), zoals in de basismethode. - Geen toewijzing. Het vocabulaire van toestanden en redenen kent geen oorzaak; een test dwingt dat af.
- Bronnen. Uitsluitend adsb.lol (ODbL 1,0), of een eigen dataset van de gebruiker met een eigen licentie. Data van het OpenSky Network wordt geweigerd (de licentie staat commercieel gebruik of herdistributie van afgeleide kaarten niet toe). ADS-B en AIS worden nooit gecombineerd.
- Licentie van het product. Een ADS-B-bestand per cel, gemaakt uit adsb.lol, is een Derived Database en draagt ODbL 1,0 en de naamsvermelding van adsb.lol in het bestand. De code van Kshana blijft AGPL-3.0.
De waarneembare grootheid en de basismethode#
Een ADS-B-vliegtuig meldt hoe nauwkeurig het zijn eigen GNSS-positie acht: NACp (Navigation Accuracy Category for Position, een horizontale grens van 95 % van 10 NM tot onder 3 m) en NIC (Navigation Integrity Category, een insluitingsstraal). De basismethode (kshana-interference-map/adsb/v2, docs/INTERFERENCE-MAP.md) telt, per cel en dag, het aandeel verschillende vliegtuigen waarvan de meldingen in de cel meestal een lage nauwkeurigheid hadden, met waarborgen: alleen hoogte boven 5.000 ft; een vliegtuig telt alleen mee als het diezelfde dag elders een goede nauwkeurigheid meldde (een basislijn voor de apparatuur); het aandeel van de cel moet het mediane celaandeel van de dag met een marge overschrijden; een dag waarvan de mediaan zelf hoog is, wordt als verstoord gemarkeerd en geen cel wordt als verslechterd verklaard. De parameters zijn vastgelegd op grond van de definities van de velden en van de privacyregel voordat enige data is onderzocht, en zijn in elk uitvoerbestand opgenomen. Het observatorium voegt het vocabulaire met drie toestanden, de vrijgaveregels en de bovenstaande bestanden toe, en wijzigt geen parameter.
Regionale runs. Met --bbox worden alleen meldingen binnen de rechthoek gelezen. De basislijn voor de apparatuur en de achtergrond van de dag worden dan uitsluitend uit de meldingen van de rechthoek berekend, en het bestand zegt dat (method.scope). Een regionaal product is dus een product van de data van die regio, geen uitsnede van een wereldwijd product.
Verband met de methode NACp tegenover almanak-HDOP#
Pleninger, Topkova en Steiner, "GNSS interference detection: Methodology utilising ADS-B NACp indicator and GPS almanac data", The Aeronautical Journal 129 (1331), 206 tot 223 (2025), doi 10.1017/aer.2024.67, vergelijken de positiefout die uit de NACp van een vliegtuig volgt met de HDOP (horizontal dilution of precision) van de GPS-constellatie uit almanakdata, en markeren een vliegtuig als getroffen wanneer beide verschillen; het artikel evalueert de methode op opzettelijke GPS-jammingexperimenten.
Wat wij hebben gebruikt. Alleen de gepubliceerde samenvatting en het bibliografische record. De volledige tekst was voor ons niet beschikbaar (achter een betaalmuur), dus wij kennen noch haar afbeelding van NACp naar een foutschatting, noch haar HDOP-berekening, noch haar drempels, en wij beweren niet ze te reproduceren.
Wat het observatorium in plaats daarvan doet. De vraag die de almanakvergelijking beantwoordt is "kan de constellatiegeometrie alleen deze lage nauwkeurigheid verklaren?". De basismethode beantwoordt een verwante vraag zonder almanak: een laag aandeel moet opvallen tegenover de achtergrond van dezelfde dag in de regio en tegenover de eigen goede meldingen van het vliegtuig elders. Dat is een ander en zwakker substituut: het kan niet zeggen dat een uur met rustige geometrie verslechterd was waar ook de achtergrond van de dag laag is. Een almanak-HDOP-scorer is niet geïmplementeerd. Het is een openstaand punt, te bouwen uit de volledige tekst van het artikel en de openbare GPS-almanak en vooraf vast te leggen voordat het wordt uitgevoerd; tot die tijd wordt het aangehaald, niet geclaimd.
Een product reproduceren#
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/
De pijplijn is deterministisch in alles wat ze publiceert (de salt van de identificator per run wijzigt alleen interne hashes die nooit worden geschreven). Met de SHA-256-waarden van het manifest kan een tweede run byte voor byte worden vergeleken.
Gevoeligheidsstudie#
kshana interference-map sensitivity <input> --dataset adsb-lol --day <day> --out report.json speelt de meldingen van één dag opnieuw af onder wijzigingen van elke vooraf vastgelegde parameter, één per keer (telkens twee waarden, plus een raster van 1,0 graad) en rapporteert, per variant, het aantal verslechterde, niet verslechterde en niet waargenomen cellen, de Jaccard-index van de verslechterde verzameling met de vastgelegde, de cellen waarvan de toestand veranderde, en de verslechterde oppervlakte. Het verandert niets aan de vastgelegde regel: een variant is geen getoetst alternatief, en een grote verandering onder een parameter zegt hoezeer het oordeel van die parameter afhangt, niet welke waarde juist is. De resultaten voor de back-catalogus staan in docs/observatory/RESULTS.md.
Beperkingen#
- Dekking. adsb.lol volgt vrijwilligersontvangers; open zee en dun bedekt luchtruim zijn schaars, en
not_observedkomt daar vaak voor. Een kaart toont de dekking van zijn bron. - Wat lage nauwkeurigheid betekent. NACp en NIC dalen om andere redenen dan interferentie: uitval van satellieten of augmentatie, ruimteweer, storingen van ontvanger of transponder, en geometrie. Geen enkele toestand impliceert een oorzaak.
- Vliegtuigen die de hele dag in een getroffen regio blijven hebben daarbuiten geen basislijn en worden niet meegeteld, dus de methode onderschat een aanhoudend regionaal effect. De gevoeligheidsstudie toont het effect van de basislijnwaarborg.
- Daggrenzen zijn UTC; een gebeurtenis die over middernacht gaat, wordt over twee dagen verdeeld.
- Geen grondwaarheid. Het observatorium heeft geen externe onafhankelijke referentie: elk cijfer is MODELLED, en geen rij van de verificatiematrix berust erop.
- Gevoeligheid van het onderwerp. Kaarten van dit soort zijn politiek. Het observatorium noemt een methode, een vertraging en een vocabulaire, en niets anders; het noemt geen staten of actoren, en het publiceert niet in realtime.