Störningsobservatoriet: metodanteckning
Version kshana-observatory/adsb/v1, byggd på kshana-interference-map/adsb/v2. Endast rådgivande: detta är en beskrivning av hur publicerade positionsrapporter såg ut under tidigare dagar, inte en mätning av någon mottagare, en prognos, en bekräftelse av störning eller en tillskrivning av dess orsak.
Vad observatoriet publicerar#
En produkt per UTC-dag och region, från ett öppet arkiv över flygplanspositioner. Varje cell i ett fast latitud-longitudnät på 0.5 grader är i ett av tre tillstånd:
| Tillstånd | Betydelse |
|---|---|
degraded |
En hög andel av flygplanen som provtagits i cellen rapporterade låg navigeringsnoggrannhet den dagen, tydligt över dagens bakgrund. |
not_degraded |
Tillräckligt många flygplan provtogs och andelen nådde inte upp till regeln. |
not_observed |
Data tillät inget avgörande. Detta är inte "klart". Varje sådan publicerad cell har en dataorsak: insufficient_sample, no_day_background eller day_wide_effect. En cell utan någon post alls sågs av färre än 5 olika flygplan och undanhålls. |
Inget annat publiceras: ingen orsak, ingen aktör, ingen post per flygplan. Orsakerna beskriver om dagens data räckte till, aldrig varför noggrannheten var låg.
Tre filer per dag (kshana interference-map daily):
observatory-adsb-<dataset>-<day>.geojson: cellerna, medschemakshana-observatory-day/1, metoden och dess förhandsregistrerade parametrar, licensen och källhänvisningen, utlämningsregeln och ett meddelande.observatory-adsb-<dataset>-<day>.png: samma celler som en bild (försämrade, inte försämrade, ej observerade streckade; tomma celler observerades inte). Textstycken i filen upprepar meddelandet och licensen.observatory-adsb-<dataset>-<day>.incidents.json:schemakshana-incident-report/1. Angränsande försämrade celler (diagonaler inkluderade) bildar en incident med en begränsningsruta och sina celler.causeär den fasta textennot attributed. Filen är en indata till en cykel av rapportera, bekräfta och meddela (flygets rapporteringscykel som slutar i en NOTAM); den är inte en bekräftelse och inte en NOTAM.
och en .manifest.json med antalet byte och SHA-256 för de tre filerna, metodens id, indataräknarna (rader lästa och uteslutna) och dataset-blocket, så att en produkt kan kontrolleras och återskapas.
Utlämningsregler (upprätthålls av kommandot)#
- Minst 24 h fördröjning. En dags produkt släpps tidigast vid slutet av den UTC-dagen plus
--delay-hours(24 eller mer; ett mindre värde avvisas). Kommandot avvisar en dag som ännu inte kan publiceras och anger den tidigaste tidpunkten. Det finns ingen omkopplare för att förkorta den. - Grova celler.
--cell-degunder 0,5 avvisas. - Undertryckning. En cell som setts av färre än 5 olika flygplan publiceras inte; ett antal under 5 är
null(noll inkluderat), som i basmetoden. - Ingen orsaksangivelse. Vokabulären för tillstånd och skäl saknar orsak; ett test kontrollerar det.
- Källor. Endast adsb.lol (ODbL 1,0) eller en användardatamängd med egen licens. Data från OpenSky Network avvisas (licensen tillåter inte kommersiell användning eller vidaredistribution av härledda kartor). ADS-B och AIS kombineras aldrig.
- Produktens licens. En ADS-B-fil per cell som tagits fram ur adsb.lol är en härledd databas (Derived Database) och bär ODbL 1,0 och adsb.lol:s källhänvisning i filen. Kshanas kod förblir AGPL-3.0.
Det som observeras och grundmetoden#
Ett ADS-B-flygplan rapporterar hur noggrann det själv anser att dess GNSS-position är: NACp (Navigation Accuracy Category for Position, en horisontell gräns på 95 % från 10 NM ner till under 3 m) och NIC (Navigation Integrity Category, en inneslutningsradie). Grundmetoden (kshana-interference-map/adsb/v2, docs/INTERFERENCE-MAP.md) räknar, per cell och dag, andelen distinkta flygplan vars rapporter i cellen mestadels hade låg noggrannhet, med skyddsregler: endast höjd över 5 000 ft; ett flygplan räknas bara om det rapporterade god noggrannhet någon annanstans samma dag (en utrustningsbaslinje); cellens andel måste överstiga dagens mediancellandel med en marginal; en dag vars median i sig är hög markeras som förväxlad och ingen cell förklaras försämrad. Parametrarna fastställdes utifrån fältens definitioner och sekretessregeln innan några data granskades, och de skrivs in i varje utdatafil. Observatoriet lägger till vokabulären med tre tillstånd, frisläppningsreglerna och filerna ovan, och ändrar ingen parameter.
Regionala körningar. Med --bbox läses bara rapporter inom rutan. Utrustningsbaslinjen och dagens bakgrund beräknas då enbart ur rutans rapporter, och filen anger det (method.scope). En regional produkt är därför en produkt av den regionens data, inte ett utsnitt av en global.
Förhållande till metoden NACp mot almanack-HDOP#
Pleninger, Topkova och Steiner, "GNSS interference detection: Methodology utilising ADS-B NACp indicator and GPS almanac data", The Aeronautical Journal 129 (1331), 206 till 223 (2025), doi 10.1017/aer.2024.67, jämför det positionsfel som ett flygplans NACp antyder med HDOP (horisontell geometrisk försämring av precisionen) för GPS-konstellationen utifrån almanackdata, och flaggar ett flygplan som påverkat när de två inte stämmer överens; artikeln utvärderar metoden på avsiktliga GPS-jamming-experiment.
Vad vi använde. Endast det publicerade sammandraget och den bibliografiska posten. Fulltexten fanns inte tillgänglig för oss (bakom betalvägg), så vi känner varken till dess avbildning från NACp till en felskattning, dess HDOP-beräkning eller dess trösklar, och vi hävdar inte att vi återskapar dem.
Vad observatoriet gör i stället. Frågan som almanackjämförelsen besvarar är: "kan konstellationens geometri ensam förklara den här låga noggrannheten?". Grundmetoden besvarar en närliggande fråga utan almanacka: en låg andel måste sticka ut mot samma dags bakgrund i regionen och mot flygplanets egna goda rapporter någon annanstans. Det är en annan och svagare ersättning: den kan inte säga att en timme med lugn geometri var försämrad där dagens bakgrund också är låg. En almanack-HDOP-bedömare är inte implementerad. Det är en öppen punkt, som ska byggas utifrån artikelns fulltext och den offentliga GPS-almanackan och förhandsregistreras innan den körs; tills dess citeras den, men hävdas inte.
Återskapa en produkt#
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/
Pipelinen är deterministisk i allt den publicerar (saltet för identifierare per körning ändrar bara interna hashvärden som aldrig skrivs ut). Manifestets SHA-256-värden gör att en andra körning kan jämföras byte för byte.
Känslighetsstudie#
kshana interference-map sensitivity <input> --dataset adsb-lol --day <day> --out report.json spelar upp en dags rapporter igen under ändringar av en förhandsregistrerad parameter i taget (två värden vardera, plus ett gitter på 1,0 grad) och redovisar, per variant, antalet försämrade, inte försämrade och inte observerade celler, Jaccard-index för den försämrade mängden jämfört med den registrerade, de celler vars tillstånd ändrades och den försämrade arean. Den ändrar ingenting i den registrerade regeln: en variant är inget validerat alternativ, och en stor förändring under en parameter säger hur mycket bedömningen beror på den parametern, inte vilket värde som är rätt. Resultaten för bakåtkatalogen finns i docs/observatory/RESULTS.md.
Begränsningar#
- Täckning. adsb.lol följer frivilliga mottagare; öppet hav och glest täckt luftrum är glesa, och
not_observedär vanligt där. En karta visar täckningen hos sin källa. - Vad låg noggrannhet betyder. NACp och NIC sjunker av andra skäl än störning: bortfall av satelliter eller förstärkningssystem, rymdväder, fel i mottagare eller transpondrar, och geometri. Inget tillstånd antyder en orsak.
- Flygplan som stannar i en påverkad region hela dagen har ingen baslinje utanför den och räknas inte, så metoden underskattar en bestående regional effekt. Känslighetsstudien visar baslinjeskyddets effekt.
- Dygnsgränserna är UTC; en händelse som korsar midnatt delas upp mellan två dagar.
- Ingen referens. Observatoriet har ingen extern oberoende referens: varje siffra är MODELLED, och ingen rad i verifieringsmatrisen vilar på den.
- Ämnets känslighet. Kartor av det här slaget är politiska. Observatoriet anger en metod, en fördröjning och en vokabulär, och inget annat; det namnger inga stater eller aktörer och publicerar inte i realtid.