Обсерватория помех: описание метода
Версия 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 сообщает, насколько точной оно считает собственную позицию ГНСС: NACp (категория точности навигации по положению, горизонтальная граница 95 % от 10 NM до менее 3 м) и NIC (категория целостности навигации, радиус ограничения). Базовый метод (kshana-interference-map/adsb/v2, docs/INTERFERENCE-MAP.md) считает для каждой ячейки и суток долю различных воздушных судов, чьи сообщения в ячейке в основном имели низкую точность, с ограничениями: только высота выше 5 000 фт; воздушное судно учитывается, только если в тот же день где-то ещё сообщало хорошую точность (базовый уровень оборудования); доля в ячейке должна превышать медианную долю ячеек за сутки на некоторую величину; сутки, у которых сама медиана высока, помечаются как искажённые, и ни одна ячейка не объявляется ухудшенной. Параметры были зафиксированы по определениям полей и по правилу конфиденциальности до изучения каких-либо данных и записываются в каждый выходной файл. Обсерватория добавляет трёхсостоянный словарь, правила публикации и перечисленные выше файлы и не меняет ни одного параметра.
Региональные прогоны. При --bbox читаются только сообщения внутри прямоугольника. Базовый уровень оборудования и фон суток вычисляются затем только по сообщениям из прямоугольника, и файл говорит об этом (method.scope). Региональный продукт — поэтому продукт данных этого региона, а не вырезка из глобального.
Связь с методом NACp в сопоставлении с HDOP по альманаху#
Pleninger, Topkova and 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, и ни одна строка матрицы верификации на нём не основана.
- Чувствительность темы. Карты такого рода политически окрашены. Обсерватория излагает метод, задержку и словарь и ничего больше; она не называет государства или действующих лиц и не публикует в реальном времени.