Обсерваторія завад: опис методу
Версія kshana-observatory/adsb/v1, побудована на kshana-interference-map/adsb/v2. Лише консультативно: це опис того, як виглядали опубліковані повідомлення про позицію в минулі дні, а не вимірювання будь-якого приймача, не прогноз, не підтвердження завад і не визначення їхньої причини.
Що публікує обсерваторія#
Один продукт на добу UTC і регіон, з одного відкритого архіву позицій літаків. Кожна комірка фіксованої сітки широта-довгота 0,5 градуса перебуває в одному з трьох станів:
| Стан | Значення |
|---|---|
degraded |
Висока частка літаків, вибраних у комірці, того дня повідомила про низьку навігаційну точність, виразно вище за фон цього дня. |
not_degraded |
Літаків було вибрано достатньо, і частка не відповідала правилу. |
not_observed |
Дані не дозволили винести висновок. Це не «чисто». Кожна така опублікована комірка має причину щодо даних: insufficient_sample, no_day_background або day_wide_effect. Комірка зовсім без запису була помічена менш ніж 5 різними літаками і не публікується. |
Більше нічого не публікується: ні причини, ні виконавця, ні запису по окремому літаку. Причини описують, чи було даних того дня достатньо, але ніколи — чому точність була низькою.
Три файли на добу (kshana interference-map daily):
observatory-adsb-<dataset>-<day>.geojson: комірки зschemakshana-observatory-day/1, метод і його попередньо зареєстровані параметри, ліцензія та атрибуція, правило оприлюднення і примітка.observatory-adsb-<dataset>-<day>.png: ті самі комірки як зображення (деградовані, не деградовані, не спостережувані зі штрихуванням; порожні комірки не спостерігалися). Текстові блоки у файлі повторюють примітку та ліцензію.observatory-adsb-<dataset>-<day>.incidents.json:schemakshana-incident-report/1. Деградовані комірки, що торкаються (разом із діагональними), утворюють один інцидент з обмежувальним прямокутником і своїми комірками.cause— це фіксований текстnot attributed. Файл є вхідними даними для циклу «повідомити, підтвердити, сповістити» (авіаційний цикл звітування, що закінчується NOTAM); він не є підтвердженням і не є NOTAM.
і .manifest.json із кількістю байтів і SHA-256 трьох файлів, ідентифікатором методу, лічильниками входу (прочитані та виключені рядки) і блоком набору даних, щоб продукт можна було перевірити й відтворити.
Правила оприлюднення (забезпечуються командою)#
- Затримка щонайменше 24 год. Продукт доби оприлюднюється не раніше кінця цієї доби UTC плюс
--delay-hours(24 або більше; менше значення відхиляється). Команда відхиляє добу, яку ще не можна публікувати, і повідомляє найраніший час. Перемикача для скорочення немає. - Грубі комірки.
--cell-degменше за 0,5 відхиляється. - Придушення. Комірка, помічена менш ніж 5 різними літаками, не публікується; кількість менше 5 подається як
null(включно з нулем), як і в базовому методі. - Без атрибуції. Словник станів і причин не містить причини; тест це перевіряє.
- Джерела. Лише adsb.lol (ODbL 1,0) або користувацький набір даних із власною ліцензією. Дані OpenSky Network відхиляються (їхня ліцензія не дозволяє комерційного використання чи поширення похідних карт). ADS-B і AIS ніколи не поєднуються.
- Ліцензія продукту. Файл ADS-B по комірках, створений із adsb.lol, є похідною базою даних (Derived Database) і несе ODbL 1,0 та атрибуцію adsb.lol у файлі. Код Kshana залишається під AGPL-3.0.
Спостережувана величина та базовий метод#
Літак ADS-B повідомляє, наскільки точною він вважає власну позицію GNSS: NACp (Navigation Accuracy Category for Position, горизонтальна межа 95 % від 10 NM до менш ніж 3 м) і NIC (Navigation Integrity Category, радіус обмеження). Базовий метод (kshana-interference-map/adsb/v2, docs/INTERFERENCE-MAP.md) підраховує для кожної комірки й доби частку різних літаків, чиї повідомлення в комірці були здебільшого низької точності, із запобіжниками: лише висота понад 5 000 фт; літак враховується, лише якщо того ж дня він повідомляв добру точність деінде (базовий рівень обладнання); частка в комірці має перевищувати медіанну частку комірок цієї доби на певний запас; доба, медіана якої сама висока, позначається як заплутана, і жодна комірка не оголошується деградованою. Параметри було зафіксовано за визначеннями полів і правилом приватності до розгляду будь-яких даних і записано в кожен вихідний файл. Обсерваторія додає триступеневий словник, правила оприлюднення та файли вище і не змінює жодного параметра.
Регіональні прогони. З --bbox читаються лише повідомлення всередині прямокутника. Базовий рівень обладнання та фон доби тоді обчислюються лише за повідомленнями цього прямокутника, і файл про це повідомляє (method.scope). Тому регіональний продукт — це продукт даних того регіону, а не вирізка з глобального.
Зв'язок із методом NACp проти HDOP з альманаху#
Pleninger, Topkova і Steiner, «GNSS interference detection: Methodology utilising ADS-B NACp indicator and GPS almanac data», The Aeronautical Journal 129 (1331), 206 – 223 (2025), doi 10.1017/aer.2024.67, порівнюють похибку позиції, що випливає з NACp літака, з HDOP (горизонтальним геометричним чинником погіршення точності) орбітального угруповання GPS за даними альманаху та позначають літак як уражений, коли обидві величини розходяться; стаття оцінює метод на навмисних експериментах із глушіння GPS.
Що ми використали. Лише опубліковану анотацію та бібліографічний запис. Повний текст нам був недоступний (платний), тож ми не знаємо ні його відображення від NACp до оцінки похибки, ні обчислення HDOP, ні порогів і не стверджуємо, що відтворюємо їх.
Що натомість робить обсерваторія. Питання, на яке відповідає порівняння з альманахом: «чи може геометрія орбітального угруповання сама пояснити цю низьку точність?». Базовий метод відповідає на близьке питання без альманаху: низька частка має виділятися на тлі фону тієї самої доби по регіону та на тлі добрих повідомлень цього ж літака деінде. Це інший і слабший замінник: він не може сказати, що година зі спокійною геометрією була деградованою там, де й фон доби низький. Оцінювач за HDOP з альманаху не реалізовано. Це відкритий пункт, який слід побудувати за повним текстом статті та публічним альманахом GPS і попередньо зареєструвати до запуску; доти його цитують, але не заявляють.
Відтворення продукту#
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/
Конвеєр детермінований у всьому, що він публікує (сіль ідентифікатора для кожного прогону змінює лише внутрішні геші, які ніколи не записуються). Значення SHA-256 у маніфесті дозволяють порівняти другий прогін побайтово.
Дослідження чутливості#
kshana interference-map sensitivity <input> --dataset adsb-lol --day <day> --out report.json відтворює повідомлення однієї доби за змін кожного попередньо зареєстрованого параметра по одному (по два значення, плюс сітка 1,0 градус) і повідомляє для кожного варіанта кількість деградованих, не деградованих і не спостережуваних комірок, індекс Жаккара деградованого набору із зареєстрованим, комірки, у яких стан змінився, і деградовану площу. Воно нічого не змінює в зареєстрованому правилі: варіант не є перевіреним альтернативним варіантом, а велика зміна за параметром показує, наскільки висновок залежить від цього параметра, а не яке значення правильне. Результати для архіву — у docs/observatory/RESULTS.md.
Обмеження#
- Покриття. adsb.lol спирається на приймачі волонтерів; відкрите море та слабо покритий повітряний простір розріджені, і
not_observedтам поширений. Карта показує покриття свого джерела. - Що означає низька точність. NACp і NIC знижуються з причин, відмінних від завад: відмови супутників чи засобів доповнення, космічна погода, несправності приймача чи транспондера та геометрія. Жоден стан не передбачає причини.
- Літаки, що цілий день залишаються в ураженому регіоні, не мають базового рівня поза ним і не враховуються, тож метод занижує стійкий регіональний ефект. Дослідження чутливості показує дію запобіжника базового рівня.
- Межі діб — за UTC; подія, що перетинає північ, розділяється між двома добами.
- Немає еталонної істини. Обсерваторія не має зовнішнього оракула: кожен показник — MODELLED, і жоден рядок матриці верифікації на ній не ґрунтується.
- Чутливість предмета. Карти такого роду політичні. Обсерваторія викладає метод, затримку та словник, і нічого більше; вона не називає держав чи виконавців і не публікує в реальному часі.