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 nelREADME.mddi questo progetto e indocs/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:
| Solver | Metodo | Velocità | Uso |
|---|---|---|---|
huygens | fronte d'onda ellittico quasi-statico (predefinito, calibrato) | riferimento | replica di perimetro autorevole; p10/p50/p90 + probabilità di combustione puliti |
arrival_field | campo 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, quindiPYROWISE_FUEL_STATE_FORMrestastatic_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 barriera —
soft_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_v0per il NO-GO sopra. - ⚠️ Dispersione del fumo —
smoke_concentration.tifresta 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:
| Codice | Nome | Cosa misura |
|---|---|---|
| FFMC | Fine Fuel Moisture Code | umidità della lettiera superficiale a rapida asciugatura — facilità di innesco |
| DMC | Duff Moisture Code | umidità degli strati organici poco compatti |
| DC | Drought Code | materia organica compatta profonda e ad asciugatura lenta — siccità stagionale |
| ISI | Initial Spread Index | velocità di propagazione attesa (FFMC + vento) |
| BUI | Buildup Index | combustibile 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
autonon 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.mddel repository, indocs/IMPLEMENTATION_STATUS.mde nelle note di ingegneria indocs/pyrowise/edocs/karst/.