TdP-prove-finali / Introduzione

Istruzioni e documentazione per la proposta e lo svolgimento delle prove finali relative al corso di Tecniche di Programmazione.
http://bit.ly/tecn-progr
Apache License 2.0
4 stars 13 forks source link

Proposta tesi s281159 #108

Closed Matteo-Tomatis closed 1 year ago

Matteo-Tomatis commented 1 year ago

Studente proponente

s281159 Tomatis Matteo

Titolo della proposta

Simulazione della Propagazione di un Incendio: una Applicazione Pratica della Percolation Theory

Descrizione del problema proposto

Lo scopo del programma è duplice. In primis, sarà in grado di utilizzare i dati raccolti sugli incendi in Sardegna nel decennio 2009-2019 per simulare nel modo più realistico possibile la propagazione delle fiamme in un'area boschiva fittizia nella quale molte condizioni climatiche saranno liberamente determinabili dall'utente. Inoltre, costruendo l'area interessata sfruttando i grafi dimostrerà uno dei concetti base della Percolation Theory, ovvero l'esistenza di una soglia critica p (rappresentante la probabilità che due vertici siano connessi da un arco) oltre la quale l'effetto "a cascata" di un evento in grado di diffondersi tra vertici connessi risulta significativamente più impattante.

Descrizione della rilevanza gestionale del problema

Uno degli effetti più evidenti e dannosi del cambiamento climatico è stato quello di favorire la nascita e la diffusione di incendi. L'attività di prevenzione e cura delle foreste può limitare i danni causati da questo tipo di evento e pertanto può essere di interesse generale conoscere come si modifichi la propagazione delle fiamme in relazione ad una moltitudine di parametri climatici e ambientali, tra i quali la densità di vegetazione. Inoltre, una foresta può essere considerata come una griglia, le cui celle sono vertici di un grafo e gli archi rappresentino la possibilità che le fiamme si propaghino tra celle connesse. Pertanto lo studio della robustezza di un rete specifica (in questo caso i boschi tipici di una regione italiana) possono essere di interesse per i molteplici altri campi in cui la network science viene applicata.

Descrizione dei data-set per la valutazione

Per valutare l'influenza dei fattori ambientali nella propagazione degli incendi si farà riferimento ad un dataset contenente i dati storici sugli incendi in Sardegna nel decennio 2009-2019 raccolti grazie ai satelliti del Cophernicus Climate Change Service (C3S) e il Cophernicus Atmosphere Monitoring Service (CAMS). L'area interessata si estende per più di 50.000 km^2 e i dati sono stati raggruppati per mese ed anno. Il dataset può essere trovato qui: https://www.kaggle.com/datasets/christianmolliere/wildfires-and-climate-in-sardinia. Per ogni record, oltre alla misura in termini sia assoluti che percentuali di terra bruciata, vengono riportati numerosi fattori climatici tra i quali: le temperature medie, le precipitazioni, la velocità media del vento, la quantità di acqua immagazzinata dal terreno, e la percentuale di terreno ricoperta da vegetazione fitta o bassa.

Descrizione preliminare degli algoritmi coinvolti

Il software sarà realizzato in linguaggio Java con l'ausilio dell'interfaccia grafica in JavaFX, inoltre saranno usati i pattern MVC e DAO. Tra le funzioni coinvolte, le principali riguardano: l'estrazione dei dati dal database SQL, l'elaborazione dei dati mediante la tecnica della Regressione Lineare Multipla al fine di individuare il collegamento tra l'espandersi degli incendi e i dati ambientali, una funzione capace di creare un grafo (rappresentante la "foresta) le cui celle saranno connesse con una probabilità p determinata incrociando i risultati della regressione con i dati inseriti dall'utente, ed infine un algoritmo che simuli il propagarsi di un incendio tra celle connesse. Infine, saranno implementate diverse funzioni per gestire gli input dell'utente (in particolare riguardanti la validazione dei dati) e l'output visualizzato a schermo.

Descrizione preliminare delle funzionalità previste per l’applicazione software

Nell'interfaccia grafica iniziale l'utente potrà inserire i dati ambientali (temperatura, precipitazioni, velocità del vento, ecc...) sui quali avviare la simulazione. Inoltre, sarà mostrata una griglia rappresentante una foresta le cui celle vengono inizialmente mostrate di colore verde (a simboleggiare la presenza di vegetazione). Alla pressione del tasto dedicato all'avvio della simulazione, il programma calcolerà la propagazione di un incendio partendo da una cella casuale e mostrerà all'utente il risultato finale colorando di nero le celle in cui l'incendio è passato.

fulcorno commented 1 year ago

La proposta è valida sia dal punto di vista algoritmico che applicativo.

Prima di procedere ti chiederei però di chiarire 3 dettagli:

Matteo-Tomatis commented 1 year ago

Buongiorno Professore,

Per quanto riguarda la regressione lineare multipla ho trovato il pacchetto Jama (https://math.nist.gov/javanumerics/jama/), il quale contiene le librerie Matrix, per utilizzare le matrici, e QRDecomposition per implementare il metodo dei quadrati minimi. Utilizzandole creerò una classe LinearRegression che implementi tutte le funzioni di cui necessito.

Per quanto riguarda le caratteristiche del territorio sardo, il database contiene il dato "burnable-area" che rappresenta la percentuale di territorio a rischio incendio sul totale. Avendo suddetta informazione non necessito di valutare l'impatto dei singoli elementi paesaggistici (abitazioni, corsi d'acqua ecc...). La mia idea è di creare un'area virtuale formata da sole zone a rischio e di simularne la propagazione dell'incendio (una sorta di studio del worst case).

Infine, non ho ancora trovato uno strumento specifico per creare la mappa su Scene Builder, ma in generale pensavo di trattarla anche in quel caso come una specie di matrice.

fulcorno commented 1 year ago

Scusa per il ritardo, i tuoi chiarimenti vanno bene. La proposta è approvata. Per la mappa, potresti anche vedere la classe WritableImage di JavaFX.