Progetto Etna

Un framework sperimentale per esplorare il monitoraggio vulcanico in tempo reale, l'analisi e l'allertamento, basato su dati pubblici e software libero.

⚠️ Disclaimer Importante

Etna è un software sperimentale, valido principalmente a fini di ricerca. I dati e le analisi prodotte sono il risultato di elaborazioni automatiche e non sono validati da personale esperto. Questo strumento non è in alcun modo pensato per prendere decisioni critiche o per la sicurezza personale. Per tali finalità, si rimanda sempre e comunque alle fonti ufficiali ed autoritative come l'Istituto Nazionale di Geofisica e Vulcanologia (INGV) e il Dipartimento della Protezione Civile.

Il codice sorgente non è pubblico. Per un suo uso effettivo, per una collaborazione o per un suo ulteriore sviluppo, l'autore è contattabile attraverso i recapiti presenti nella sezione Autore.

Un Esperimento di Progettazione

Il progetto ETNA va inteso come un esperimento di progettazione, sviluppo e deployment. Il suo scopo è esplorare l'integrazione della cosiddetta intelligenza artificiale sia nel ciclo di sviluppo software (DevOps) sia nel ciclo di vita del prodotto finale. La piattaforma risultante espone componenti di IA (come modelli di anomaly detection e LLM per il reporting) e si rende a sua volta disponibile tramite API per alimentare ulteriori sistemi di elaborazione, consentendo nuovi livelli di astrazione e deduzione.

Conclusioni

ETNA si propone come uno strumento per il monitoraggio vulcanico, che prova a combinare tecniche geofisiche con approcci di intelligenza artificiale. I suoi aspetti caratterizzanti sono l'integrazione tra analisi dati e machine learning, l'automazione dei processi, l'accessibilità tramite dashboard web e l'esplorazione di approcci innovativi come l'uso di agenti LLM per il reporting.

Quick Start Guide

Questa guida fornisce i passaggi essenziali per avviare il progetto ETNA in un ambiente locale. Per istruzioni più dettagliate, fare riferimento alla documentazione fornita con il codice sorgente.

1. Prerequisiti

Assicurarsi di avere installato Docker e Docker Compose sul proprio sistema.

2. Ottenere il Codice Sorgente

Una volta ottenuto il pacchetto del progetto (previo contatto con l'autore), decomprimerlo e navigare nella directory principale.

3. Configurazione

Creare un file .env per le variabili d'ambiente (es. token di Telegram) e, se necessario, personalizzare il file config/stations.yaml per definire le stazioni di monitoraggio.

4. Avviare i Servizi

Lanciare l'intera architettura con un singolo comando dalla directory principale del progetto.

docker-compose up -d

Dopo l'avvio, la dashboard sarà accessibile all'indirizzo http://localhost:8501.

Architettura Dettagliata

L'architettura del sistema ETNA è modulare e segue un flusso di elaborazione dati ben definito. Cliccare su un blocco per visualizzarne la descrizione e capire il suo ruolo nel processo.

Orchestrazione: Scheduler

Avvia i task periodici

Fonti Dati

Reti FDSN
Dati Gas

Acquisizione

fetch
infrasound
gas

Elaborazione

ssam
polarization
correlation
rms_processing

Analisi & Modelli

autoencoder
embeddings

Output & Delivery

api_server
streamlit_app
reporting
alerts

Seleziona un componente

Clicca su uno dei blocchi a sinistra per vedere i dettagli.

Diagrammi UML

Per descrivere formalmente la struttura e il comportamento del sistema, sono stati realizzati alcuni diagrammi UML. Per maggiori dettagli, consultare il file UML.md.

Diagramma dei Componenti

Mostra i principali componenti software del sistema e le loro interdipendenze.

etna-scheduler
Orchestra i task
etna-api
Fornisce i dati
etna-app
Dashboard
ollama
Servizio LLM

Diagramma dei Casi d'Uso

Descrive le interazioni principali tra l'attore (Vulcanologo) e il sistema.

🧑‍🔬
Vulcanologo
Visualizza Dati
Genera Report
Ricevi Notifiche

Diagramma di Sequenza (Generazione Report)

Illustra la sequenza di chiamate tra i componenti per generare un report giornaliero.

Scheduler
1. triggerReport() →
ReportingAgent
2. getData() →
API
ReportingAgent
3. generateText() →
Ollama
ReportingAgent
4. sendAlert() →
Telegram

Sviluppo & CI/CD

Il progetto adotta pratiche di sviluppo moderne, con un flusso di Integrazione e Deployment Continuo (CI/CD) automatizzato. Questo garantisce che ogni modifica al codice venga testata e rilasciata in modo efficiente e affidabile.

Pipeline di Deployment

Il workflow di deployment si attiva ad ogni aggiornamento del codice e segue questi passaggi:

📤
Push del Codice
🏃
Trigger Pipeline CI/CD
🐳
Build & Push Docker Image
🚀
Deploy su Server

Visione Futura & Roadmap

Questo progetto nasce come uno scheletro funzionale, ma se ulteriormente sviluppato potrebbe diventare uno strumento completo e adottabile. Questa sezione delinea i prossimi passi e la visione a lungo termine.

Roadmap di Sviluppo

🎯

Fase 1: Consolidamento e Validazione

Stabilizzare l'architettura attuale, migliorare l'affidabilità dei modelli di ML e validare i risultati con dati storici e il confronto con esperti vulcanologi.

📈

Fase 2: Espansione Fonti Dati

Integrare nuove tipologie di dati: geochimici (CO₂, SO₂), deformazioni del suolo (GNSS, InSAR) e dati da telecamere termiche per una visione multi-parametrica completa.

🧠

Fase 3: Intelligenza Aumentata

Sviluppare modelli di forecasting che combinino dati multi-parametrici. Potenziare gli agenti LLM per analisi comparative e per la generazione di scenari probabilistici.

🤝

Fase 4: Piattaforma Collaborativa

Trasformare ETNA in una piattaforma aperta per integrare modelli diversi, condividere dati e collaborare sull'analisi dei fenomeni vulcanici.

Riflessioni & Potenziale Strategico

Questo progetto può fornire un complemento agile e innovativo, capace di esplorare nuove frontiere e fungere da ponte.

🌉

Cruscotto Unificato e Aggregatore

Potrebbe divenire il prototipo ideale per un'interfaccia che aggreghi dati da fonti diverse (sismicità da EtnaRCSC, deformazioni da dati SAR, citizen science da TefraNet) in un'unica vista integrata, rispondendo a un'esigenza di sintesi.

🧪

Sandbox per l'Innovazione Rapida

Grazie al suo stack tecnologico leggero, ETNA funge da laboratorio per il rapid prototyping di tecnologie all'avanguardia (come l'uso di LLM per il reporting), validando concetti prima di una potenziale e più complessa integrazione.

🧬

Precursore

La pipeline di elaborazione del progetto è di fatto un prototipo embrionale di un engine di machine learning per ricerca predittiva multimodale.

Stack Tecnologico

Il progetto si basa su un insieme di tecnologie open-source moderne. Questa sezione elenca gli strumenti principali che costituiscono l'ossatura tecnica del sistema.

🐍

Python 3

📦

Obspy, Pandas

🧠

PyTorch

🐳

Docker

🚀

FastAPI

📊

Streamlit

🤖

Ollama

⚙️

GitHub Actions

Funzionalità Chiave

Le funzionalità del sistema coprono l'intero ciclo di vita del monitoraggio, dall'acquisizione dei dati alla loro interpretazione.

Acquisizione Centralizzata

Aggrega dati sismici, infrasonici e di degassamento da diverse reti di monitoraggio in un unico punto.

Elaborazione Parametri

Calcola indicatori chiave come SSAM, RMS, polarizzazione e correlazione per quantificare l'attività vulcanica.

Rilevamento Anomalie

Utilizza un Autoencoder Convoluzionale per identificare pattern anomali e potenzialmente precursori nei dati.

Reporting Assistito da LLM

Impiega agenti software per generare bozze di report giornalieri, sintetizzando i dati in linguaggio naturale.

Dashboard Interattiva

Offre un'interfaccia web (Streamlit) per visualizzare grafici, mappe e report in modo intuitivo.

ETNA GPT Expert

Un assistente virtuale (Custom GPT) per guidare gli utenti nell'analisi dei dati e nella comprensione del sistema.

Informazioni sull'Autore

Il progetto ETNA nasce dall'esperienza e dall'interesse del suo sviluppatore, Giovanni Novelli.

Giovanni Novelli

Informatico, Ph.D.

Il progetto ETNA è stato sviluppato da Giovanni Novelli, un informatico con esperienza sia nella pubblica amministrazione che nella ricerca. Nato a Catania, ha conseguito una Laurea in Scienze dell'Informazione e un Dottorato di Ricerca (Ph.D.) in Informatica presso l'Università di Catania. La sua attività di dottorato si è concentrata su temi come Grid/Cloud Computing e sistemi multi-agente.

Il progetto ETNA cerca di unire le competenze maturate dall'autore. La sua architettura si basa su conoscenze di sistemi distribuiti, intelligenza artificiale e analisi dati. È un'applicazione tecnica che nasce dall'interesse di unire la ricerca con la soluzione di problemi concreti, applicando alcune tecnologie al monitoraggio del vulcano Etna.

Codice Sorgente e Contributi

Accesso al Codice e Collaborazione

Questo progetto è presentato a scopo dimostrativo. Il codice sorgente non è disponibile pubblicamente per evitare un uso improprio. La pagina web funge da vetrina per illustrare la visione e l'architettura del sistema.

Se sei interessato a esplorarne il funzionamento, contribuire allo sviluppo o discutere possibili applicazioni, sei invitato a contattare direttamente l'autore.

Risorse Ufficiali

Per dati validati e comunicazioni ufficiali, consultare sempre le fonti primarie.