Traducción automática, no revisada por un hablante nativo. El inglés es la referencia.

Confianza del receptor y ámbito marítimoEditar en GitHubFuente: docs/observatory/METHOD.md

Observatorio de interferencias: nota de método

Versión kshana-observatory/adsb/v1, construida sobre kshana-interference-map/adsb/v2. Solo consultivo: esto es una descripción de cómo se veían los informes de posición publicados en días pasados, no una medición de ningún receptor, ni un pronóstico, ni una confirmación de interferencia, ni una atribución de su causa.

Qué publica el observatorio#

Un producto por día UTC y región, a partir de un archivo abierto de posiciones de aeronaves. Cada celda de una cuadrícula fija de latitud y longitud de 0.5 grados está en uno de tres estados:

Estado Significado
degraded Una proporción alta de las aeronaves muestreadas en la celda informó de una exactitud de navegación baja ese día, claramente por encima del fondo de ese día.
not_degraded Se muestrearon suficientes aeronaves y la proporción no alcanzó la regla.
not_observed Los datos no permitieron un dictamen. Esto no es «despejado». Cada celda publicada de este tipo lleva un motivo de datos: insufficient_sample, no_day_background o day_wide_effect. Una celda sin ninguna entrada fue vista por menos de 5 aeronaves distintas y se retiene.

No se publica nada más: ni causa, ni actor, ni registro por aeronave. Los motivos describen si los datos del día eran suficientes, nunca por qué la exactitud era baja.

Tres archivos por día (kshana interference-map daily):

  • observatory-adsb-<dataset>-<day>.geojson: las celdas, con schema kshana-observatory-day/1, el método y sus parámetros preregistrados, la licencia y la atribución, la regla de publicación y un aviso.
  • observatory-adsb-<dataset>-<day>.png: las mismas celdas como imagen (degradada, no degradada, no observada rayada; las celdas vacías no se observaron). Los fragmentos de texto del archivo repiten el aviso y la licencia.
  • observatory-adsb-<dataset>-<day>.incidents.json: schema kshana-incident-report/1. Las celdas degradadas contiguas (diagonales incluidas) forman un incidente con un cuadro delimitador y sus celdas. cause es el texto fijo not attributed. El archivo es una entrada para un ciclo de informar, confirmar y notificar (el ciclo de notificación de aviación que termina en un NOTAM); no es una confirmación ni un NOTAM.

y un .manifest.json con el recuento de bytes y el SHA-256 de los tres archivos, el identificador del método, los contadores de entrada (filas leídas y excluidas) y el bloque del conjunto de datos, de modo que un producto pueda comprobarse y reproducirse.

Reglas de publicación (impuestas por el comando)#

  1. Retraso de al menos 24 h. El producto de un día se publica no antes del final de ese día UTC más --delay-hours (24 o más; un valor menor se rechaza). El comando rechaza un día que aún no se puede publicar e indica la hora más temprana. No hay ningún interruptor para acortarlo.
  2. Celdas gruesas. --cell-deg por debajo de 0,5 se rechaza.
  3. Supresión. Una celda vista por menos de 5 aeronaves distintas no se publica; un recuento inferior a 5 es null (cero incluido), como en el método base.
  4. Sin atribución. El vocabulario de estados y motivos no contiene ninguna causa; una prueba lo garantiza.
  5. Fuentes. Solo adsb.lol (ODbL 1,0), o un conjunto de datos del usuario con su propia licencia. Se rechazan los datos de OpenSky Network (su licencia no permite el uso comercial ni la redistribución de mapas derivados). ADS-B y AIS nunca se combinan.
  6. Licencia del producto. Un archivo ADS-B por celda elaborado a partir de adsb.lol es una Base de Datos Derivada y lleva ODbL 1,0 y la atribución a adsb.lol en el archivo. El código de Kshana sigue siendo AGPL-3.0.

La observable y el método base#

Una aeronave ADS-B informa de cuán exacta cree que es su propia posición GNSS: NACp (Navigation Accuracy Category for Position, una cota horizontal del 95 % desde 10 NM hasta menos de 3 m) y NIC (Navigation Integrity Category, un radio de contención). El método base (kshana-interference-map/adsb/v2, docs/INTERFERENCE-MAP.md) cuenta, por celda y día, la proporción de aeronaves distintas cuyos informes dentro de la celda fueron mayoritariamente de baja exactitud, con salvaguardas: solo altitud por encima de 5.000 ft; una aeronave cuenta solo si informó de buena exactitud en otro lugar el mismo día (una línea base de equipamiento); la proporción de la celda debe superar la proporción mediana de las celdas del día en un margen; un día cuya mediana es ya alta se marca como confundido y ninguna celda se declara degradada. Los parámetros se fijaron a partir de las definiciones de los campos y de la regla de privacidad antes de examinar dato alguno, y se escriben en cada archivo de salida. El observatorio añade el vocabulario de tres estados, las reglas de publicación y los archivos anteriores, y no cambia ningún parámetro.

Ejecuciones regionales. Con --bbox, solo se leen los informes dentro del recuadro. La línea base de equipamiento y el fondo del día se calculan entonces solo a partir de los informes del recuadro, y el archivo lo indica (method.scope). Un producto regional es, por tanto, un producto de los datos de esa región, no un recorte de uno global.

Relación con el método de NACp frente a HDOP de almanaque#

Pleninger, Topkova y Steiner, "GNSS interference detection: Methodology utilising ADS-B NACp indicator and GPS almanac data", The Aeronautical Journal 129 (1331), 206 a 223 (2025), doi 10.1017/aer.2024.67, comparan el error de posición implícito en el NACp de una aeronave con el HDOP (dilución horizontal de la precisión) de la constelación GPS a partir de datos de almanaque, y marcan una aeronave como afectada cuando ambos discrepan; el artículo evalúa el método con experimentos de jamming deliberado de GPS.

Lo que usamos. Solo el resumen publicado y el registro bibliográfico. El texto completo no estaba a nuestro alcance (de pago), de modo que no conocemos ni su correspondencia entre NACp y una estimación de error, ni su cálculo del HDOP, ni sus umbrales, y no afirmamos reproducirlos.

Lo que hace el observatorio en su lugar. La pregunta a la que responde la comparación con el almanaque es «¿podría la sola geometría de la constelación explicar esta baja exactitud?». El método base responde a una pregunta relacionada sin almanaque: una proporción baja debe destacar frente al fondo del mismo día en toda la región y frente a los buenos informes de la propia aeronave en otros lugares. Es un sustituto distinto y más débil: no puede decir que una hora de geometría tranquila estuvo degradada allí donde el fondo del día también es bajo. Un evaluador de HDOP de almanaque no está implementado. Es un asunto abierto, que se construirá a partir del texto completo del artículo y del almanaque público de GPS y se preregistrará antes de ejecutarse; hasta entonces se cita, no se afirma.

Reproducir un producto#

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/

El proceso es determinista en todo lo que publica (la sal del identificador de cada ejecución solo cambia hashes internos que nunca se escriben). Los valores SHA-256 del manifiesto permiten comparar una segunda ejecución byte a byte.

Estudio de sensibilidad#

kshana interference-map sensitivity <input> --dataset adsb-lol --day <day> --out report.json reproduce los informes de un día con cambios de uno en uno de cada parámetro preregistrado (dos valores cada uno, más una cuadrícula de 1,0 grados) e informa, por variante, del número de celdas degradadas, no degradadas y no observadas, del índice de Jaccard del conjunto degradado con el registrado, de las celdas cuyo estado cambió y del área degradada. No cambia nada de la regla registrada: una variante no es una alternativa validada, y un cambio grande bajo un parámetro indica cuánto depende el dictamen de ese parámetro, no qué valor es el correcto. Los resultados del catálogo retrospectivo están en docs/observatory/RESULTS.md.

Límites#

  • Cobertura. adsb.lol sigue a receptores voluntarios; el mar abierto y el espacio aéreo con poca cobertura son escasos, y not_observed es frecuente allí. Un mapa muestra la cobertura de su fuente.
  • Qué significa una exactitud baja. NACp y NIC bajan por motivos distintos de la interferencia: caídas de satélites o de aumentación, meteorología espacial, fallos de receptor o de transpondedor, y geometría. Ningún estado implica una causa.
  • Las aeronaves que permanecen todo el día en una región afectada no tienen línea base fuera de ella y no se cuentan, de modo que el método subestima un efecto regional persistente. El estudio de sensibilidad muestra el efecto de la salvaguarda de la línea base.
  • Los límites de día son UTC; un evento que cruza la medianoche se reparte entre dos días.
  • Sin verdad de referencia. El observatorio no tiene referencia independiente externa: toda cifra es MODELLED, y ninguna fila de la matriz de verificación se apoya en él.
  • Sensibilidad del asunto. Los mapas de este tipo son políticos. El observatorio declara un método, un retraso y un vocabulario, y nada más; no nombra estados ni actores, y no publica en tiempo real.