IT | EN

Monitoraggio impatto mareggiate e della risalita ondosa sulla spiaggia


La rislaita ondosa sulla spiaggia | runup | e la sua misura

Il runup è la risalita massima dell'acqua sulla spiaggia emersa durante il ciclo di swash (risacca): il punto più lontano dalla riva raggiunto dal fronte d'onda in risalita. La sua posizione e la sua quota determinano quanta spiaggia viene inondata durante una mareggiata e con quale frequenza. Monitorare il runup nel tempo permette di valutare l'impatto delle mareggiate sulla spiaggia, stimare il rischio di inondazione ed erosione costiera, e calibrare modelli numerici di propagazione ondosa.

Il sistema LiDAR della rete RVMC effettua ogni giorno alle ore 12:00 una scansione continua della durata di 120 secondi, a differenza delle scansioni istantanee degli altri orari (06:00, 10:00, 14:00). In questi 120 secondi il laser compie circa 900 rotazioni complete a 8 Hz, producendo una serie temporale densa della quota della superficie — sia della spiaggia emersa che del pelo libero dell'acqua. Da questa serie vengono estratti automaticamente il livello medio dell'acqua, le sue oscillazioni e la posizione di runup massimo.


Schema della procedura

Il processo si articola in quattro fasi, eseguite ogni giorno in modo automatico sul file della scansione delle ore 12:00.

1. Segmentazione in rotazioni — il file grezzo viene suddiviso in singole rotazioni del laser (~550 punti ciascuna, ~125 ms di durata) identificando i gap temporali tra una rotazione e la successiva.

2. Costruzione della heatmap — le ~900 rotazioni vengono organizzate in una matrice quota-tempo: ogni cella contiene la quota media misurata in un bin spaziale di 0.5 m in un determinato istante. La heatmap visualizza l'evoluzione temporale del profilo di spiaggia nei 120 secondi di acquisizione.

3. Discriminazione sabbia/acqua — un algoritmo adattivo identifica il confine tra la spiaggia emersa e la zona acqua analizzando la variabilità temporale della quota in ogni bin spaziale.

4. Calcolo metriche — dalla serie temporale del pelo libero si calcolano livello medio, livello massimo (runup), indice di agitazione e proxy di sommersione orizzontale della spiaggia.


Stadio 1 — La heatmap quota-tempo

Il concetto

La misurazione continua di una porzione di spiaggia fornisce, nel nostro caso, 900 misure della quota del suolo in ogni punto lungo il transetto. Un modo di rappresentare, e quindi descirvere, l'andamento temporale di tutte queste misure è fornito dall'immagine — heatmap — in cui l'asse orizzontale rappresenta la distanza dalla postazione del sensore, l'asse verticale il tempo, e il colore la quota del suolo o della superficie dell'acqua. Nella zona di spiaggia asciutta il colore è stabile nel tempo; nella zona dell'acqua il colore cambia ad ogni misura, riflettendo il moto ondoso.

Heatmap quota-tempo: mareggiata vs mare calmo

Fig. 1 — Heatmap quota-tempo per due condizioni meteo-marine a confronto. A sinistra: mareggiata (15/11/2025), con forte variabilità cromatica nella zona acqua (x > 42 m). A destra: mare calmo (21/03/2026), con zona acqua quasi uniforme che scompare oltre x = 53 m per effetto della riflessione speculare.

Approfondimento tecnico

Le singole rotazioni vengono identificate nel file CSV grezzo rilevando i gap temporali superiori a 50 ms tra punti consecutivi (timestamp in microsecondi). Per ogni rotazione e per ogni bin spaziale di 0.5 m lungo l'asse x_grid, viene calcolata la quota media dei punti contenuti nel bin, dopo aver applicato la correzione pitch e l'offset verticale calibrati per la stazione (parametri pitch_deg e offset_y in lidar_config.yaml). Il risultato è una matrice (n_rotazioni × n_bin) con quota in metri s.l.m., dove le celle senza punti sono marcate come NaN.

Il profilo di riferimento della spiaggia viene calcolato come mediana di tutte le rotazioni per ogni bin spaziale. L'uso della mediana anziché della media garantisce robustezza agli ostacoli temporanei (persone, oggetti) che possono occupare la battigia per alcune rotazioni producendo quote anomale.


Stadio 2 — Discriminazione adattiva sabbia/acqua

Il concetto

La spiaggia asciutta è una superficie rigida nel brevissimo termine: la sua quota non cambia tra una rotazione del laser e la successiva. La superficie dell'acqua, al contrario, si muove con le onde: la sua quota varia continuamente nel tempo. Il sistema sfrutta questa differenza per identificare automaticamente dove finisce la sabbia e inizia l'acqua — senza dover conoscere in anticipo la quota della riva.

Tuttavia, il comportamento del laser cambia in funzione delle condizioni del mare. Con il mare mosso, l'acqua restituisce un segnale variabile e riconoscibile. Con il mare calmo, la superficie dell'acqua è quasi speculare: il raggio laser rimbalza via senza tornare al sensore, producendo non un segnale variabile ma una assenza di segnale. Questa differenza fisica richiede due criteri distinti per identificare il confine sabbia/acqua.

Approfondimento tecnico

Per ogni bin spaziale si calcolano due metriche dalla heatmap:

Deviazione standard temporale std(x) — quanto oscilla la quota in quel bin nel corso delle ~900 rotazioni. Nella sabbia asciutta std(x) ≈ 0.5 cm (rumore strumentale); nell'acqua agitata std(x) > 1.5 cm.

Coverage cov(x) — percentuale di rotazioni in cui il bin riceve un ritorno laser valido. La sabbia ha coverage ≈ 100%; l'acqua speculare (mare calmo) ha coverage ≈ 0%.

Il confine sabbia/acqua viene identificato con un doppio criterio adattivo, applicato sul profilo std(x) e cov(x) smoothed su una finestra spaziale di 2.5 m:

CriterioCondizioneInterpretazione fisicaTipica condizione mare
A — std alta std(x) ≥ 1.5 cm per 3 bin consecutivi Superficie liquida che oscilla con le onde Mare mosso / mareggiata
B — no-signal Ultimo bin valido prima di 4 bin consecutivi senza ritorno laser Superficie speculare che non restituisce segnale Mare calmo

Quando entrambi i criteri sono soddisfatti, viene scelto il confine più vicino a riva. Il criterio attivato viene registrato nell'output (criterion = A(std), B(no-signal) o A+B) e può essere utilizzato come indicatore qualitativo dello stato del mare.

Nota sulla sabbia umida e sul gradiente di saturazione. Durante le mareggiate, il moto di swash lascia un gradiente di umidità sulla spiaggia: le zone più vicine al limite di risalita sono più bagnate di quelle più arretrate. La sabbia umida ha un comportamento intermedio tra la sabbia asciutta e l'acqua libera: la riflessione del laser è variabile tra una rotazione e la successiva in funzione del grado di saturazione. Questo significa che il confine identificato dallo std alto rappresenta non solo il pelo libero dell'acqua, ma l'intera zona di bagnasciuga attiva durante la finestra di 120 secondi. Il confine va interpretato come stima del limite di influenza dello swash, non come posizione istantanea della riva.


Stadio 3 — Metriche del pelo libero e del runup

Il concetto

Una volta identificata la zona "acqua", il sistema estrae per ogni rotazione la quota media della superficie dell'acqua in quella zona, costruendo una serie temporale del livello con risoluzione di ~125 millisecondi. Da questa serie si calcolano il livello medio, le oscillazioni e il punto di massima risalita dell'acqua sulla spiaggia.

Il livello medio rappresenta la quota della superficie dell'acqua indipendentemente dal moto ondoso — è influenzato dalla marea e dal setup ondoso sottocosta. Il livello massimo (percentile 99 della serie temporale) rappresenta il massimo sovralzo raggiunto dall'acqua nei 120 secondi di acquisizione. La deviazione standard del livello è l'indice di agitazione: bassa in condizioni calme (circa 0.5 cm), alta durante le mareggiate (tipicamente 5–10 cm, con picchi oltre 20 cm).

Profilo spiaggia con indicatori runup e sommersione

Fig. 2 — Profilo mediano della spiaggia (curva marrone) con indicatori di runup. La linea tratteggiata blu indica il livello medio dell'acqua; la linea punteggiata rossa il livello massimo (P99). La linea verticale rossa indica la posizione x_grid di massima risalita (runup); la zona ombreggiata in blu la spiaggia raggiunta dall'acqua.

Approfondimento tecnico

Le metriche calcolate per ogni acquisizione sono le seguenti:

MetricaSimboloUnitàDescrizione
Confine sabbia/acqua x_boundary m Posizione x_grid del confine adattivo sabbia/acqua
Runup — posizione x_runup m x_grid più vicino a riva dove il profilo mediano ≤ livello P99 + 5 cm
Runup — quota quota_runup m s.l.m. Quota assoluta del profilo spiaggia in corrispondenza di x_runup
Livello medio wl_mean m s.l.m. Quota media della superficie dell'acqua nelle 900 rotazioni
Livello massimo wl_max m s.l.m. Percentile 99 del livello - massimo robusto agli outlier
Livello minimo wl_min m s.l.m. Percentile 1 del livello
Indice di agitazione wl_std cm Deviazione standard del livello - proxy dello stato del mare
Sommersione orizzontale inundation_m m Distanza tra x_boundary e x_runup - metri di spiaggia raggiunti dall'acqua
Criterio confine criterion A(std), B(no-signal) o A+B - indica la condizione meteo-marina prevalente
Noise floor sensore noise_floor cm Rumore strumentale stimato dalla zona sabbia certa (≈ 0.5 cm)

Quando la superficie è speculare (mare calmo, criterio B), le rotazioni oltre il confine non restituiscono segnale e il livello non può essere misurato direttamente. In questo caso il livello è stimato dalla quota del profilo mediano in corrispondenza del confine (ultimo punto con ritorno laser), e la colonna speculare nel CSV di output viene impostata a True.


Serie temporale e aggiornamento operativo

Il concetto

Le metriche calcolate ogni giorno vengono archiviate in una serie temporale che si accumula nel tempo, permettendo di ricostruire la storia del runup e dello stato del mare per ogni stazione della rete. Nel grafico seguente è possibile vedere come il runup vari nel corso dei mesi, con picchi in corrispondenza delle mareggiate invernali e valori bassi nei periodi di bel tempo.

Il confronto con i dati ondosi misurati al largo (altezza d'onda significativa, periodo di picco) e con il livello di marea permette di contestualizzare ogni evento e di verificare la coerenza fisica dei risultati.

Serie temporale runup con dati ondosi e di marea

Fig. 3 — Serie temporale della quota di runup (pannello superiore) a confronto con l'altezza d'onda significativa Hs, il periodo di picco Tp e il livello di marea misurati al largo della stazione Kufra (novembre 2025 – aprile 2026). I picchi di runup coincidono con gli eventi di mareggiata più intensi.

Approfondimento tecnico

La procedura operativa viene eseguita automaticamente ogni notte alle 05:00 dal server di elaborazione ISPRA (ecap1). Lo script analyze_water_level.py processa il file delle 12:00 di ogni stazione e aggiunge una riga al file CSV storico ({stazione}_runup_timeseries.csv), verificando preventivamente che la data non sia già presente per evitare duplicati. Al termine del processing, il JSON per il portale web ({stazione}_runup_timeseries.json) viene rigenerato con i dati aggiornati in formato parallel arrays, direttamente compatibile con Chart.js per la visualizzazione lato client.

I dati arrivano su ecap1 la notte precedente tramite download FTP automatico (cron delle 03:00), rendendo disponibili sul portale i dati del giorno precedente con un ritardo massimo di circa 26 ore dall'acquisizione.

03:00 — download CSV via FTP da tutte le stazioni
04:00 — generazione lista file per il portale
05:00 — analisi runup + aggiornamento JSON portale


Integrazione con il sistema di videomonitoraggio MOVICO

Il sistema LiDAR e il sistema MOVICO operano in parallelo sulle stesse stazioni e si completano a vicenda nell'analisi del runup. MOVICO estrae la posizione planimetrica della linea di riva in coordinate UTM da immagini timex, fornendo la componente orizzontale della risalita (dove arriva l'acqua in pianta). Il LiDAR misura la quota assoluta della superficie, fornendo la componente verticale (a che quota arriva l'acqua).

La combinazione delle due misure è alla base della stima della pendenza del fronte spiaggia (foreshore slope):

tan(β) = Δh / Δx

dove Δh è la differenza di quota tra due posizioni della riva corrispondenti a livelli idrici diversi (ricavabili dai dati mareografici), e Δx è lo spostamento planimetrico misurato da MOVICO. La pendenza del fronte spiaggia è un parametro fondamentale per la valutazione del rischio di inondazione costiera e per la stima empirica del runup tramite le formulazioni di Stockdon et al. (2006).


Riferimenti metodologici principali:

  • - Stockdon et al. (2006) — Empirical parameterization of setup, swash, and runup. Coastal Engineering, 53(7), 573–588.
  • - Vousdoukas et al. (2012) — Reflective beaches and runup characteristics during storm conditions. Journal of Geophysical Research, 117, C09025.
  • - Holman & Guza (1984) — Measuring run-up on a natural beach. Coastal Engineering, 8(2), 129–140.
  • - SICK AG (2021) — LD-LRS Operating Instructions. SICK Sensor Intelligence.