Машинный перевод, не проверенный носителем языка. Эталоном служит английская версия.

Доверие к приёмнику и морская отрасльПравить на GitHubИсточник: docs/observatory/METHOD.md

Обсерватория помех: описание метода

Версия 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: ячейки, с schema kshana-observatory-day/1, метод и его предварительно зарегистрированные параметры, лицензия и указание авторства, правило публикации и уведомление.
  • observatory-adsb-<dataset>-<day>.png: те же ячейки в виде изображения (ухудшенные, не ухудшенные, ненаблюдавшиеся — штриховкой; пустые ячейки не наблюдались). Текстовые блоки в файле повторяют уведомление и лицензию.
  • observatory-adsb-<dataset>-<day>.incidents.json: schema kshana-incident-report/1. Соприкасающиеся ухудшенные ячейки (включая диагональные) образуют один инцидент с ограничивающим прямоугольником и его ячейками. cause — это фиксированный текст not attributed. Файл служит входными данными для цикла «сообщить, подтвердить, уведомить» (авиационный цикл донесений, оканчивающийся NOTAM); он не является подтверждением и не является NOTAM.

и .manifest.json с числом байт и SHA-256 трёх файлов, идентификатором метода, счётчиками входных данных (прочитанные и исключённые строки) и блоком набора данных, чтобы продукт можно было проверить и воспроизвести.

Правила публикации (обеспечиваются командой)#

  1. Задержка не менее 24 ч. Продукт за сутки публикуется не раньше конца этих суток UTC плюс --delay-hours (24 или больше; меньшее значение отклоняется). Команда отклоняет сутки, которые ещё нельзя публиковать, и называет самое раннее время. Переключателя, сокращающего задержку, нет.
  2. Крупные ячейки. --cell-deg ниже 0,5 отклоняется.
  3. Подавление данных. Ячейка, наблюдавшаяся менее чем 5 различными воздушными судами, не публикуется; счётчик ниже 5 равен null (включая ноль), как в базовом методе.
  4. Без указания причины. В словаре состояний и причин нет понятия причины; это подтверждает тест.
  5. Источники. Только adsb.lol (ODbL 1,0) или пользовательский набор данных со своей лицензией. Данные OpenSky Network отклоняются (их лицензия не допускает коммерческого использования или распространения производных карт). ADS-B и AIS никогда не объединяются.
  6. Лицензия продукта. Файл 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, и ни одна строка матрицы верификации на нём не основана.
  • Чувствительность темы. Карты такого рода политически окрашены. Обсерватория излагает метод, задержку и словарь и ничего больше; она не называет государства или действующих лиц и не публикует в реальном времени.