Home/ Guida/ Guida operatore/ Ricerca scientifica e risultati

10 — Ricerca scientifica e risultati

Questo articolo raccoglie la scienza alla base di Karst Firewall 5.0: il modello fisico su cui gira il simulatore, il Karst Fire Weather Index e i miglioramenti misurati che introduce, come il motore è calibrato e validato su incendi reali e lo stato di implementazione attuale di ciascun filone di ricerca.

È il complemento di lettura di 04 — Come eseguire una simulazione ⭐: quell'articolo spiega come pilotare il motore, questo spiega perché produce i numeri che produce e quanto ciascuna funzionalità sia stata dimostrata.

Da dove vengono i numeri. Le cifre di rilevamento e accuratezza riportate sotto provengono dai componenti di ricerca a monte — il servizio Karst Fire Weather Index (kf50-kfwi-api) e il motore di propagazione PyroWISE — e sono registrate nel README.md di questo progetto e in docs/IMPLEMENTATION_STATUS.md. Sono risultati di ricerca, non garanzie certificate sul campo: l'output del simulatore resta un supporto alle decisioni, mai un sostituto del giudizio operativo.


Il modello fisico

Quando avvii un run, il cruscotto invia i tuoi input al motore esterno PyroWISE, che fa avanzare un perimetro di incendio sul terreno e sui combustibili reali del Carso. Due modelli peer-reviewed svolgono il lavoro principale:

  • Velocità di propagazione superficiale FBP. Il sistema canadese Fire Behavior Prediction (FBP) (FCFDG 1992) stima quanto velocemente il fronte di fiamma si muove nel combustibile di superficie a partire dal tipo di combustibile, dall'umidità del combustibile (tramite i codici FWI più sotto), dalla velocità del vento e dalla pendenza — una velocità e una direzione di propagazione locali in ogni punto del fronte. (PyroWISE usa il sistema FBP canadese, non il modello statunitense di Rothermel; gli strumenti della famiglia Rothermel — FARSITE / FlamMap / BehavePlus — servono solo da comparatori esterni.)
  • Propagazione del fronte d'onda secondo Huygens. Il perimetro avanza come un fronte d'onda: ogni punto del bordo attuale dell'incendio si espande come una piccola onda ellittica (allungata sottovento e in salita) e il perimetro successivo è l'inviluppo di tutte queste onde. Ripetendo l'operazione su brevi passi temporali si forma una geometria di incendio realistica, modellata da terreno e vento, anziché un semplice cerchio in espansione.

Le policy di barriera (es. soft_roads_v1, soft_with_highways_v1) modulano il fronte d'onda dove incontra strade, autostrade, ferrovie, fasce tagliafuoco e muretti a secco — rallentando o bloccando la propagazione senza tagliare di netto il fronte.

PyroWISE Fire Growth Simulation

Il motore è PyroWISE (infordata-kf50-firegrowth), un servizio di propagazione del fuoco in puro Python, GIS-native, che alimenta il digital twin di KF5. KF5 lo integra via HTTP e un piano dati condiviso — mai tramite codice condiviso (ADR-005, "dati, non codice"): il cruscotto invia una richiesta di run; PyroWISE risolve la propagazione e conserva gli artefatti (perimetri, inviluppi, COG di tempo di arrivo, manifest) nel proprio object store, che il cruscotto rilegge.

È una reimplementazione clean-room dello stack scientifico peer-reviewed CFFDRS / WISE in Python moderno, con le fondamenta esplicite e citabili:

  • Sistema FWI — Fire Weather Index forestale canadese (Van Wagner 1987; aggiornamento NRCan FWI2025).
  • Sistema FBP — Fire Behavior Prediction sui 16 tipi di combustibile canonici (FCFDG 1992; errata Wotton et al. 2009). È questo il modello di propagazione superficiale — non Rothermel.
  • Propagazione vettoriale di Huygens — il modello di crescita a fronte d'onda di Prometheus / WISE (Tymstra et al. 2010, NOR-X-417).

Sopra i 16 tipi canonici PyroWISE aggiunge un set di envelope del Carso a 9 classi (K01–K09) con un resolver di combustibile a 5 griglie (specie × struttura × età × umidità × continuità). Circa 4 000+ test passano nell'intera codebase.

Due solver. Ogni run — o ogni membro dell'ensemble — è fatto avanzare da uno di questi:

SolverMetodoVelocitàUso
huygensfronte d'onda ellittico quasi-statico (predefinito, calibrato)riferimentoreplica di perimetro autorevole; p10/p50/p90 + probabilità di combustione puliti
arrival_fieldcampo eikonale vettorizzato di tempo di arrivo~41× più veloce (~5,8× su un orizzonte di 6 h)uno screening rapido del rischio per superfici di velocità del fronte / tempo di arrivo dell'ensemble — non una replica autorevole; fallisce la fedeltà del perimetro completo per meccanismo (F-221)

Ensemble. Un ensemble di scenario esegue la stessa ignizione / orizzonte / combustibile come N membri (predefinito 16, fino a 256) con input perturbati lungo tre assi — meteo + ignizione + stato del combustibile — e li impila in burn_probability.tif (0–1), arrival_time_p{10,50,90}.tif, envelope_p{10,50,90}.geojson, front_speed_{mean,p90}.tif e un sidecar ensemble_summary_v1 (seed di base deterministico, specifica di perturbazione, estrazioni per membro, accordo p10/p90).

Risultati scientifici lato motore

  • Accuratezza calibrata, in dominio. Con priors del Carso calibrati le coorti di produzione raggiungono un IoU medio di coorte ≈ 0,39–0,41 — Carso K04 (IT / FVG, karst_priors_v13) 0,385–0,408 e il plateau FVG (fvg_priors_v1) 0,413; i migliori fit per-evento SLO arrivano a 0,61–0,68. Lo ~0,39–0,41 è un limite strutturale di calibrazione (un conflitto di Pareto tra regimi estivo-convettivo / stagione fredda / wind-driven, F-093), non un limite dell'ottimizzatore.
  • Confine di onestà. Quel valore calibrato ~0,39–0,41 è l'accuratezza di produzione; la baseline senza calibrazione a libera combustione (IoU ~0,25–0,27) non è l'accuratezza di PyroWISE — è una base deliberatamente non ottimizzata per il confronto con motori esterni (Cell2Fire, WISE, FARSITE) a un confine di file.
  • Il fuoco di chioma è inerte alla propagazione realistica del Carso. Con l'altezza di base della chioma ricostruita dal CHM bilaterale, la ROS di testa (p50 2–7 m/min su entrambi gli eventi calibrati di pino nero) resta sotto la soglia di innesco di chioma FCFDG-92 di ~12 m/min, quindi l'aumento di ROS di chioma è inerte ed è rilasciato solo come diagnostico (OFF di default). Il Carso è dominato dalla superficie a intensità realistica (F-225 → F-237).
  • Stato dinamico del combustibile — NO-GO a runtime. Una leva offline limitata (rsi_scalar) aumenta gli eventi O1 di +0,10–0,13 IoU, ma la forma a runtime è NO-GO: sia il canale LFMC Stage-1C (F-220) sia l'A/B in hindcast con NDVI a runtime (F-222, ΔIoU medio −0,179) falliscono i loro gate, quindi PYROWISE_FUEL_STATE_FORM resta static_v0 — un feed NDVI/LFMC live non migliora oggi l'accuratezza di produzione; il prossimo candidato è un proxy NDMI / LFMC.
  • NO-GO ben caratterizzati (bloccati dall'evidenza — non ritentare senza nuovi dati): ignizione multi-focus per EMSR601 (F-212), l'AOI nazionale SLO senza substrato di simulazione (F-173), edifici-come-barriera (F-190) e una replica a piena fedeltà del megaincendio Dixie con Cell2Fire (computazionalmente infattibile, F-175).

Stato di implementazione lato motore (al 2026-06-20)

  • Superfici di rischio dell'ensemble — probabilità di combustione, tempo di arrivo + inviluppo p10/p50/p90, COG di velocità del fronte media / p90 e un sidecar ensemble_summary_v1.
  • Narratore AI dei run — ogni run emette narrator_{it,sl,en}.md (Anthropic Sonnet 4.6, con un template di fallback deterministico sempre attivo).
  • Policy di barrierasoft_with_railways_v1 (predefinita), soft_roads_v1, soft_with_highways_v1 (tier autostrade), soft_railways_only_v1, …
  • Confidenza della calibrazione + provenienza per run impressa nel manifest.
  • Overlay di supporto alle decisioni (opt-in, che non toccano il kernel) — correlatore di ignizione OSINT, nowcast con assimilazione di evidenze, filtro a particelle di assimilazione dati, ingest sensori (LDT / LoRa-MIP / naso elettronico).
  • 🟡 TerraWise multi-hazard (terremoto / alluvione / ondata di calore) — solo dati e spento di default; un lint AST gli vieta di importare il kernel incendi.
  • 🟡 Stato dinamico del combustibile — codice completo ma static_v0 per il NO-GO sopra.
  • ⚠️ Dispersione del fumosmoke_concentration.tif resta NON CALIBRATO: il modello di trasporto è valido, il vincolo è l'osservazione, non il codice (F-092).

Legenda: ✅ attivo · 🟡 soggetto a gate / spento di default · ⚠️ limitazione nota.

Forzante meteorologico — FWI → KFWI

Il segnale di pericolo deriva dal sistema Fire Weather Index (FWI) forestale canadese, la stessa famiglia usata in tutta Europa. Concatena cinque sotto-codici derivati da temperatura, umidità, vento e pioggia:

CodiceNomeCosa misura
FFMCFine Fuel Moisture Codeumidità della lettiera superficiale a rapida asciugatura — facilità di innesco
DMCDuff Moisture Codeumidità degli strati organici poco compatti
DCDrought Codemateria organica compatta profonda e ad asciugatura lenta — siccità stagionale
ISIInitial Spread Indexvelocità di propagazione attesa (FFMC + vento)
BUIBuildup Indexcombustibile totale disponibile alla combustione (DMC + DC)

Karst Firewall ricalibra questo sistema generico nel Karst Fire Weather Index (KFWI) — combinando un modello di innesco di machine learning spazio-temporale con una severità FWI tarata sul Carso, perché le soglie europee generiche sottostimano gravemente il rischio in questo territorio.

Risultati scientifici

L'analisi KFWI a monte riporta, per il Carso:

  • 77,5 % di rilevamento degli incendi con il KFWI rispetto a un baseline del 29 % con il solo FWI — la calibrazione locale più che raddoppia la quota di incendi reali segnalati dall'indice.
  • Un modello di innesco Random Forest con AUC 0,934, basato su feature di densità degli hotspot e distanza dalle infrastrutture e su un campionamento stagionale corretto.
  • Il 97,3 % degli incendi si verifica al di sotto della soglia FWI "High" europea generica — il motivo principale per cui un indice specifico per il Carso e una probabilità di innesco esplicita sono essenziali, anziché riusare classi di pericolo preconfezionate.
  • Le previsioni di severità sono supportate dai prodotti FWI di Copernicus e lo stato di vegetazione / combustibile è letto dal verde satellitare (NDVI, Copernicus Sentinel-2).

Output di insieme (ensemble) e probabilistico

Un singolo run è un unico "what-if" deterministico. In modalità ensemble il motore esegue più membri con input perturbati e li aggrega in prodotti probabilistici:

  • una mappa di probabilità di combustione (0–1) che mostra con quale coerenza i membri bruciano ciascuna cella, e
  • bande di tempo di arrivo p10 / p50 / p90 e inviluppi di perimetro — una visione ottimistica, centrale e pessimistica della propagazione.

Così una singola linea sulla mappa diventa una distribuzione calibrata di esiti per la pianificazione in condizioni di incertezza.

Calibrazione e validazione

Il motore è calibrato su incendi reali e documentati — gli eventi Copernicus EMS del Carso 2022 (EMSR601, EMSR604) e gli eventi sul versante sloveno — con un livello di confidenza della calibrazione per classe di combustibile che indica quanto un run sia vicino a un evento di calibrazione. L'accuratezza è misurata come Intersection-over-Union (IoU) tra perimetri simulati e osservati, esposta nel benchmark di accuratezza in-app (vedi 07 — Analisi & dati).

Stato di implementazione

Dove si trova oggi ciascun filone di ricerca (sintesi da docs/IMPLEMENTATION_STATUS.md):

  • Ensemble: probabilità di combustione + bande p10/p50/p90 — rilasciato e validato dal vivo end-to-end.
  • Karst Fire Weather Index — attivo come livello operativo di pericolo.
  • Livello di confidenza della calibrazione — attivo; emette una nota di confidenza per ogni run.
  • Trigger automatico da incendio attivo — attivo (rilevamento FIRMS → nowcast con gating → un solo allarme per cluster), promosso a auto non presidiato per i cluster corroborati.
  • Modalità esercitazione "Fire Drill" — riproduce un incendio storico attraverso il vero ciclo trigger → nowcast → scorecard post-azione, in modo completamente isolato.
  • 🟡 Stato dinamico del combustibile (guidato da NDVI) — codice completo ma tenuto OFF: l'A/B in hindcast sugli eventi del Carso 2022 ha mostrato che il proxy NDVI riduceva l'accuratezza (ΔIoU medio −0,179), quindi il prossimo candidato è un proxy basato su NDMI.
  • 🟡 Dispersione del fumo v2 — opzionale e non calibrata; un ausilio visivo, non un modello quantitativo di pennacchio.

Legenda: ✅ attivo · 🟡 sperimentale / soggetto a gate.

Approfondisci. La scienza a livello di progetto e i partner sono sul portale pubblico (Informazioni sul progetto, Ricerca e risultati, Osservazione della Terra). Il record tecnico completo è nel README.md del repository, in docs/IMPLEMENTATION_STATUS.md e nelle note di ingegneria in docs/pyrowise/ e docs/karst/.