LOOCV QC Dashboard

Stazioni Anomale
Stazioni Monitorate
°
MAE Globale
/6
Campioni (min 6)
Tutti ()

Stazioni Anomale

Ultimo aggiornamento:

Nessuna stazione anomala rilevata

Tutte le stazioni sono entro i limiti di tolleranza

3 ? 'mae-high' : ($mae > 1.5 ? 'mae-medium' : 'mae-low'); $bias = $station['loocv_bias_24h'] ?? 0; $shortnameClass = 'badge-' . ($station['shortname'] ?? 't'); ?>
Stazione Fonte Param MAE 24h Bias 24h Motivo Rilevato

, (m)
° ° INV? +° -

Cambiamenti Ultimi 24h

Ora Stazione Param Stato MAE Motivo
ANOMALA OK °

Come Funziona il Sistema LOOCV QC

1. Architettura a Due Livelli

Il sistema di controllo qualità spaziale opera su due livelli distinti:

  • Livello 1 – Calcolo errori (Python): il motore di interpolazione spaziale calcola gli errori LOOCV per ogni stazione ad ogni ciclo (ogni 10 minuti) e li salva nella tabella station_loocv_history.
  • Livello 2 – Decisione QC (PHP): lo script update_loocv_qc.php analizza periodicamente le statistiche aggregate (ultime 24h) e decide se flaggare una stazione come anomala nella tabella station_loocv_stats.

2. Calcolo dell'Errore LOOCV

LOOCV (Leave-One-Out Cross-Validation) è una tecnica di validazione incrociata spaziale:

  1. Per ogni stazione S, si rimuove temporaneamente dal dataset.
  2. Si interpola il valore di S utilizzando le stazioni vicine, pesate per distanza e affidabilità della fonte.
  3. Si calcola l'errore: errore = valore_osservato - valore_interpolato.
  4. Un errore elevato indica che la stazione misura valori incoerenti con il contesto spaziale circostante.

Vengono calcolati due indicatori aggregati sulle ultime 24 ore:

  • MAE (Mean Absolute Error): media dei valori assoluti degli errori – misura la dispersione generale.
  • Bias: media degli errori con segno – indica se la stazione tende a leggere sistematicamente più caldo (+) o più freddo (-).

3. Pesatura per Affidabilità della Fonte

Non tutte le stazioni hanno lo stesso peso nell'interpolazione. Il sistema classifica le fonti in 5 livelli di affidabilità:

Livello Peso Descrizione Esempi
TIER 11.0Servizi meteorologici nazionali, reti WMO/SYNOPAEMET, Météo-France, MeteoSwiss, METAR, Mistral
TIER 20.9Agenzie regionali, istituzioni di ricercaARPAE, ARPAL, SIR Toscana, ISPRA, FMACH
TIER 30.7PWS professionali (Davis/WeatherLink)WeatherLink
TIER 40.5Reti PWS consumerEcowitt, Netatmo, Weather Underground
TIER 50.3Fonti non verificateSorgenti sconosciute

Il peso influenza quanto una stazione contribuisce all'interpolazione dei vicini. Le stazioni TIER 1/2 hanno maggiore influenza spaziale.

4. Rilevamento Anomalie

Una stazione viene flaggata come anomala quando soddisfa TUTTE queste condizioni:

  • Campioni sufficienti: almeno 6 misurazioni nelle ultime 24 ore (loocv_count_24h ≥ 6).
  • MAE sopra soglia: il MAE della stazione supera 3 volte il MAE globale medio (MAEstazione > 3 × MAEglobale).
  • Fonte non istituzionale: la stazione non appartiene a fonti TIER 1 o TIER 2 (vedi esenzione sotto).

5. Protezione Inversioni Termiche

Per il parametro temperatura, le stazioni con bias negativo consistente (leggono sistematicamente più freddo del previsto) non vengono flaggate, anche se il MAE supera la soglia. Questo perché un bias freddo spesso indica una stazione in zona di inversione termica reale (fondovalle, conche) dove le temperature sono genuinamente più basse di quanto l'interpolazione spaziale prevederebbe.

6. Esenzione Fonti Istituzionali (TIER 1/2)

Le stazioni appartenenti a fonti istituzionali (TIER 1 e TIER 2) non vengono mai flaggate dal sistema automatico. Motivazione:

  • Utilizzano strumentazione professionale calibrata con schermo solare adeguato.
  • Sono soggette a manutenzione regolare e controlli di qualità interni.
  • Eventuali scostamenti spaziali sono quasi sempre dovuti a microclimi reali, non a errori strumentali.

Se una stazione TIER 1/2 era stata precedentemente flaggata, viene automaticamente de-flaggata con motivo "Exempt: institutional source (TIER 1/2)".

Queste stazioni restano comunque nel calcolo LOOCV (gli errori vengono calcolati e storicizzati), ma il flag is_anomalous non viene mai impostato a TRUE.

7. Effetto sulla Mappa

Quando una stazione TIER 3-5 viene flaggata come anomala:

  • Viene nascosta dalla mappa pubblica (non appare tra i marker).
  • Viene esclusa dall'interpolazione successiva (non inquina i dati interpolati).
  • Resta visibile in questa dashboard per monitoraggio.

8. Reset Automatico

Una stazione flaggata viene automaticamente ri-inclusa dopo 24 ore di valori normali (MAE sotto soglia). Il campo last_ok_at traccia l'ultimo momento in cui la stazione ha avuto valori nella norma. Quando last_ok_at è più vecchio di 24h, il flag viene rimosso.

9. Tabelle Database

  • station_loocv_history: storico errori per ogni ciclo di interpolazione (retention: 7 giorni).
  • station_loocv_stats: statistiche aggregate 24h, flag is_anomalous, motivo anomalia.

10. Parametri Configurabili

Parametro Default Descrizione
threshold_multiplier3.0Moltiplicatore soglia (MAE > N × MAE globale)
min_samples_24h6Campioni minimi per valutare anomalia
auto_reset_after_hours24Ore di normalità prima del reset automatico
protect_inversionstrueNon flaggare bias negativi (temperature)
history_retention_days7Giorni di retention storico errori