Resultados del observatorio: catálogo retrospectivo de 30 días del Báltico y estudio de sensibilidad
Versión kshana-observatory/adsb/v1 sobre kshana-interference-map/adsb/v2 (parámetros preregistrados en el método base, sin cambios). MODELLED: no hay referencia independiente externa, ni verdad de referencia, ni atribución de causa. Una celda degradada significa que una proporción alta de las aeronaves muestreadas allí informó de baja exactitud de navegación ese día; no dice por qué. Una celda no observada, o ausente, no se evaluó, lo cual no es lo mismo que despejada.
Qué se ejecutó#
- Fuente: historial readsb de adsb.lol (ODbL 1,0), versión de GitHub
v<YYYY>.<MM>.<DD>-planes-readsb-prod-0deadsblol/globe_history_2026, obtenida conscripts/fetch_adsblol_day.shuna parte cada vez (unos 3,4 GB al día, 2 partes). El editor no indica sumas de comprobación, así que el SHA-256 de cada parte queda registrado enback-catalogue/fetch/<tag>.parts.json. - Región y días: el recuadro 53,5, 9,0, 66,0, 31,0 (sur, oeste, norte, este: el mar Báltico y sus costas), 30 días UTC del 2026-09-15 al 2026-10-14, celdas de 0,5 grados, mediante
scripts/observatory_backcatalogue.sh(un día cada vez, con los archivos sin procesar eliminados tras cada día). - Reglas de publicación: el día más reciente (2026-10-14) llevaba más de 24 h desde su final cuando se produjo; el comando lo rechaza en caso contrario. Las ejecuciones regionales calculan la línea base de equipamiento y el fondo del día solo a partir de los informes del recuadro (
method.scope). - Archivos: los 120 archivos de producto (GeoJSON, PNG, JSON de incidentes y un manifiesto por día) no están en git. El hash de cada archivo está en
back-catalogue/MANIFEST.json, y un día puede reconstruirse a partir de su archivo y compararse.
Ejemplo de lo que lee un día: el 2026-09-15 el archivo contenía 110.619.797 filas de posición en 79.826 archivos de traza; 103,0 millones estaban fuera del recuadro, 5,6 millones no eran ADS-B, 1,2 millones estaban en tierra o por debajo de 5.000 ft, 0,6 millones no llevaban campo de exactitud y 212.426 se agregaron (contadores de entrada de manifest.json).
Reproducibilidad#
Tres días (2026-09-18, 2026-09-26, 2026-10-03) se obtuvieron de nuevo del archivo y se ejecutaron por segunda vez: el GeoJSON, el PNG y el archivo de incidentes son idénticos byte a byte a los de la primera ejecución (SHA-256 igual), de modo que el producto es determinista aunque la sal del hash de identificadores es aleatoria en cada ejecución.
Resumen del catálogo retrospectivo#
| día UTC | celdas publicadas | degradadas | no degradadas | no observadas (publicadas) | incidentes |
|---|---|---|---|---|---|
| 2026-09-15 | 643 | 7 | 461 | 175 | 3 |
| 2026-09-16 | 686 | 6 | 472 | 208 | 5 |
| 2026-09-17 | 691 | 5 | 460 | 226 | 2 |
| 2026-09-18 | 694 | 8 | 473 | 213 | 5 |
| 2026-09-19 | 663 | 2 | 416 | 245 | 2 |
| 2026-09-20 | 673 | 1 | 464 | 208 | 1 |
| 2026-09-21 | 674 | 3 | 465 | 206 | 3 |
| 2026-09-22 | 674 | 4 | 455 | 215 | 3 |
| 2026-09-23 | 668 | 2 | 456 | 210 | 2 |
| 2026-09-24 | 683 | 3 | 468 | 212 | 2 |
| 2026-09-25 | 701 | 3 | 469 | 229 | 3 |
| 2026-09-26 | 656 | 1 | 423 | 232 | 1 |
| 2026-09-27 | 682 | 2 | 459 | 221 | 1 |
| 2026-09-28 | 683 | 2 | 472 | 209 | 2 |
| 2026-09-29 | 666 | 3 | 454 | 209 | 2 |
| 2026-09-30 | 687 | 6 | 465 | 216 | 4 |
| 2026-10-01 | 691 | 1 | 476 | 214 | 1 |
| 2026-10-02 | 684 | 4 | 462 | 218 | 3 |
| 2026-10-03 | 650 | 0 | 397 | 253 | 0 |
| 2026-10-04 | 675 | 5 | 458 | 212 | 4 |
| 2026-10-05 | 689 | 2 | 466 | 221 | 1 |
| 2026-10-06 | 662 | 4 | 448 | 210 | 3 |
| 2026-10-07 | 671 | 3 | 458 | 210 | 2 |
| 2026-10-08 | 664 | 4 | 447 | 213 | 4 |
| 2026-10-09 | 687 | 4 | 465 | 218 | 2 |
| 2026-10-10 | 640 | 3 | 402 | 235 | 2 |
| 2026-10-11 | 678 | 3 | 459 | 216 | 2 |
| 2026-10-12 | 688 | 4 | 467 | 217 | 4 |
| 2026-10-13 | 672 | 0 | 457 | 215 | 0 |
| 2026-10-14 | 669 | 1 | 474 | 194 | 1 |
30 días: 96 celdas degradadas en total, 28 de los 30 días con al menos una, 70 incidentes (grupos de celdas degradadas contiguas), ningún día con un efecto en todo el día. La proporción mediana de aeronaves afectadas por celda (el fondo del día) es 0 en 29 días y 0,006 en uno, de modo que la salvaguarda del fondo (una celda debe superar el fondo en 0,15) nunca cambió un dictamen en esta región. El número de celdas degradadas por día va de 0 a 8 (media 3,2). Alrededor de un tercio de las celdas publicadas cada día son not_observed (muy pocas aeronaves muestreadas): la cobertura es el límite de este producto, no el cielo.
Lo que esto no dice: los días con más celdas degradadas no son «peores» en ningún sentido físico, un área afectada persistente se subestimaría (las aeronaves que vuelan solo dentro de ella todo el día no tienen línea base fuera y no se cuentan), y nada de lo aquí expuesto dice quién o qué causó la baja exactitud.
Estudio de sensibilidad (tres días)#
kshana interference-map sensitivity reproduce los informes registrados de un día con cambios de uno en uno de los parámetros registrados (dos valores cada uno, más una cuadrícula de 1,0 grados). Días: 2026-09-18 (el mayor número de celdas degradadas, 8), 2026-09-26 (1 celda degradada) y 2026-10-03 (0). Informes completos: sensitivity/<day>.json (23 variantes cada uno; 2,2, 1,7 y 1,7 millones de filas reproducidas). Celdas degradadas con cada variante (valor registrado entre paréntesis; el resultado registrado es 8, 1 y 0 celdas degradadas):
| parámetro (registrado) | valor | 09-18 (8) | 09-26 (1) | 10-03 (0) |
|---|---|---|---|---|
low_nacp_max (6) |
5 / 7 | 6 / 8 | 1 / 3 | 0 / 2 |
low_nic_max (5) |
4 / 6 | 3 / 16 | 0 / 12 | 0 / 8 |
good_nacp_min (8) |
7 / 9 | 8 / 6 | 1 / 0 | 0 / 1 |
min_alt_ft (5000) |
3000 / 8000 | 6 / 6 | 1 / 1 | 0 / 1 |
affected_report_share (0.5) |
0.4 / 0.6 | 8 / 4 | 2 / 1 | 2 / 0 |
degraded_share (0.30) |
0.2 / 0.4 | 14 / 1 | 5 / 1 | 4 / 0 |
min_aircraft_sampled (10) |
8 / 15 | 8 / 8 | 2 / 0 | 2 / 0 |
min_reports_per_aircraft_in_cell (3) |
2 / 5 | 11 / 2 | 12 / 0 | 6 / 1 |
background_margin (0.15) |
0.10 / 0.20 | 8 / 8 | 1 / 1 | 0 / 0 |
min_baseline_good_reports (5) |
3 / 10 | 8 / 8 | 1 / 1 | 0 / 0 |
day_confound_background (0.15) |
0.10 / 0.25 | 8 / 8 | 1 / 1 | 0 / 0 |
| cuadrícula 0,5 grados | 1.0 | 2 (celdas más gruesas) | 3 | 1 |
Su lectura, sin elegir un ganador:
- Los dictámenes son sensibles a los umbrales de los códigos de exactitud y a las reglas de muestreo, y los recuentos pequeños varían mucho.
low_nic_max,degraded_shareymin_reports_per_aircraft_in_cellcambian cada uno el número de celdas degradadas en un factor de dos o más cada día; relajarlow_nic_maxa 6 convierte 1 celda degradada en 12 el 09-26 (Jaccard con el conjunto registrado 0,08). El 09-18, subirdegraded_sharea 0,4 conserva 1 de las 8 (Jaccard 0,125). Un dictamen de celda cercano a los umbrales es una afirmación sobre los umbrales tanto como sobre los datos. min_aircraft_sampledmueve sobre todo celdas entre no degradadas y no observadas: el 09-18 deja el recuento de degradadas en 8 mientras que entre 21 y 56 celdas cambian de estado.- Tres salvaguardas están inactivas aquí:
background_margin,min_baseline_good_reportsyday_confound_backgroundno cambian nada en ninguno de los tres días (la proporción de fondo es 0), de modo que esta región y este periodo no dicen nada sobre lo bien que funcionan. Importarían donde un efecto regional eleve el fondo. - Una cuadrícula más gruesa (1,0 grado) cambia el panorama (2, 3 y 1 celdas degradadas; las celdas publicadas bajan a cerca de un tercio, 226 frente a 694 el 09-18, porque cada celda es cuatro veces mayor): el tamaño de celda es una decisión de método, y el observatorio lo fija en 0,5 grados.
- Un día sin ninguna celda degradada registrada (10-03) tiene celdas degradadas con 9 de las 22 variantes que no son de cuadrícula (hasta 8 con
low_nic_max6): «ninguna celda degradada» es también una afirmación que depende de los umbrales.
Ninguna variante es una alternativa validada, y este estudio no cambia la regla registrada. El estudio no dice qué valores de los parámetros son los correctos.