Tutti noi siamo familiari con i grafici meteorologici che mostrano
con colori diversi le temperature medie registrate in determinate
zone. Insomma, grafici come
questo. Naturalmente, per produrre grafici a livello professionale
sono necessari dati precisi ed elaborazioni sofisticate che sono fuori
della portata dei singoli appassionati. Se tuttavia ci si accontenta
di una soluzione casalinga
, è possibile ottenere
risultati molto interessanti con pochissimi mezzi.
In questa pagina vedremo come sia possibile realizzare una mappa delle temperature al suolo e delle precipitazioni registrate dalle centraline meteo amatoriali che molti appassionati gestiscono nel cortile o nel giardino di casa. I dati vengono raccolti dal sito www.meteoveneto.com, che pubblica i dati e realizzare diversi tipi di elaborazioni e statistiche. Con gli script descritti in seguito è possibile recuperare automaticamente i dati della temperatura e dell'accumulo di pioggia di una specifica data, elaborarli e produrre il grafico. Gli script sono anche in grado di recuperare i dati meteo dal sito dell'ARPAV. Naturalmente è possibile anche produrre animazioni sulla variazione delle temperature col tempo. I più volenterosi potranno, con minime modifiche, adattare gli script qui presentati per produrre animazioni anche di altre quantità di interesse (ad esempio, pressione atmosferica, eccetera).
Gli script descritti in questa pagina sono utilizzabili e distribuibili liberamente in base ai termini della GNU General Public License, versione 2.0 o successiva. In soldoni cioò significa che chiunque ha la possibilità di utilizzare e modificare a piacimento gli script, purché le modifiche siano esse stesse distribuite con la stessa licenza.
Prima di cominciare è necessario assicurarsi di disporre del software necessario. Tutti gli script richiedono interpreti disponibili come software open source, disponibili con licenza GPL o simili. Questo significa che possono essere liberamente e gratuitamente scaricati dalla rete. Io personalmente ho testato gli script col sistema operativo Linux (in particolare Ubuntu 6.06 su piattaforma AMD64). Credo comunque che dovrebbe funzionare tutto su qualsiasi sistema Unix-like (incluso MacOSX), e probabilmente anche sotto Windows con un po' di adattamento.
Gli script richiedono tra gli altri i software seguenti:
Chi dispone di un sistema Linux probabilmente troverà tali
programmi già installati nella propria distribuzione, o
comunque facilmente disponibili ed installabili tramite gestori di
pacchetti quali apt
, urpmi
,
yum
o simili.
Installare gli script è molto semplice. Scaricate l'archivio plot_temp_meteoveneto-0.8.1.tar.gz e scompattatelo dando il comando:
Al termine d questa operazione sarà stata creata una directory
plot_temp_meteoveneto-0.8.1/
contenente tra gli altri
i seguenti file:
make_plot.pl
fetch_meteoveneto.pl
, fetch_arpav.pl
out.dat
con i dati meteo
relativi al 10 ottobre 2008 del sito dell'ARPAV. Si noti che lo
script non considera tutte le centraline ARPAV,
ma solo quelle che forniscono temperatura e accumulo di pioggia.
Lo script fetch_meteoveneto.pl può essere
utilizzato con la stessa identica sintassi per recuperare i dati
dal sito meteoveneto.
coordinate_arpav.txt
, coordinate_meteoveneto.txt
pagina Wapdi meteoveneto.com, oppure nelle pagine delle stazioni ARPAV; LONGITUDINE e LATITUDINE sono le coordinate espresse in gradi decimali (nel caso delle centraline meteoveneto), oppure secondo le coordinate Gauss-Boaga (per le centraline ARPAV).
interpolate.m
temp_map.tmp
,
tmin_map.tmp
, tmax_map.tmp
e
rain_map.tmp
che contengono i dati di temperatura
(media, minima, massima) e dell'accumulo di pioggia rispettivamente.
In piú vengono prodotti ulteriori file ausiliari che
contengono informazioni sulle isoterme, isoiete e le relative
etichette. Questi vengono poi utilizzati da gnuplot per
produrre il grafico, mediante lo script plot.sh
.
griddata_cgs.m
plot.sh
veneto.dat
Il funzionamento degli script è piuttosto semplice, e ho provveduto a inserire qualche commento al loro interno per agevolarne la comprensione. Siete ovviamente i benvenuti ad apportare tutti i miglioramenti del caso!
Per usare lo script, è sufficiente dare il comando seguente:
ove <giorno>, <mese> e <anno> rappresentano la data (in formato numerico) relativamente alla quale si vogliono recuperare i dati. Se non si specifica una fonte differente, i dati vengono recuperati dal sito meteoveneto. Ad esempio, per produrre i grafici relativamente alle temperature e all'accumulo di pioggia del 30 maggio 2008, sarà sufficiente dare il comando:
L'output del comando dovrebbe assomigliare a questo:
Se tutto è andato correttamente, dovreste trovare nella
directory corrente alcuni file chiamati rispettivamente
temp_map_20080530.png
(mappa della temperatura media),
tmin_map_20080530.png
(mappa della temperatura minima),
tmax_map_20080530.png
(mappa della temperatura massima),
e rain_map_20080530.png
(mappa dell'accumulo di pioggia),
tutti relativi alla data del 13 maggio 2008. I grafici dovrebbero
apparire circa come questi:
Utilizzando l'opzione --datasource arpav
è
possibile produrre i grafici utilizzare i dati meteo delle stazioni
ARPAV. Visto che al momento le
centraline ARPAV sono in numero maggiore
rispetto a quelle meteoveneto, e risultano anche meglio disposte sul
territorio, si ottengono grafici piú lisci
. Si veda il
confronto tra le temperature prodotte con dati meteoveneto (a
sinistra) e con dati ARPAV (a destra):
Lo script make_plot.pl
accetta ulteriori parametri sulla
riga di comando (oltre a -d, -m e -y
che vanno obbligatoriamente sempre indicati):
Di seguito vengono mostrati alcuni esempi di grafici di temperatura del 31 maggio 2008 interpolati con metodi diversi.
Si può osservare come interpolazioni diverse da quella lineare generino artefatti difficilmente giustificabili (si noti l'avvallamento seguito da un picco al centro del grafico nel caso delle interpolazioni thin-plate e multiquadrica). Notare anche come l'interpolazione mediante funzione base radiale gaussiana produce risultati chiaramente errati al di fuori del minimo poligono convesso che contiene le coordinate delle stazioni meteo. Esiste una nutrita bibliografia sull'uso di tecniche di interpolazione applicate a dati geografici o meteorologici. Alcuni riferimenti sono dati in appendice.
È molto facile realizzare animazioni delle temperature,
ad esempio, di un intero mese. Supponiamo di voler realizzare un filmato
che mostri l'evoluzione delle temperature nel mese di maggio 2008. Come
prima cosa è necessario produrre i singoli grafici di ciascun giorno
di maggio, col comando seguente (funziona con la shell bash
):
Questo comando produrrà, dopo un po' di tempo, diversi file
tra cui una serie chiamati temp_map_20080501.png
...
temp_map_20080531.png
, che rappresentano i grafici delle
temperature di ciascun giorno del mese di maggio 2008. A questo punto
è possibile creare un filmato partendo dalla sequenza dei file
mediante il comando convert
della suite ImageMagick:
Questo comando produrrà il file
temp_map_200805.gif
con l'animazione delle temperature di
maggio 2008. La stessa cosa si può fare per i grafici
dell'accumulo di pioggia, ottenendo risultati simili a questi:
Il funzionamento dello script può essere schematizzato (sebbene in modo un po' impreciso) come segue:
fetch_meteoveneto.pl
e
fetch_arpav.pl
, che sono in grado di recuperare i dati
dal sito di meteoveneto oppure dell'ARPAV, rispettivamente. In base ai
valore del parametro --datasource
passato sulla riga di
comando di make_plot.pl
viene invocato lo script
opportuno, il quale al termine dell'esecuzione crea un file
out.tmp
che contiene in format tabellare le informazioni
meteo di interesse.make_plot.pl
fonde i dati del file
out.tmp
con altri file contenenti le coordinate delle
centraline. Quale file di coordinate utilizzare viene deciso sempre in
base al valore del parametro --datasource
. Si noti che
nel caso delle centraline ARPAV, il file
coordiante_arpav.txt
contiene le coordinate secondo la proiezione
di Gauss-Boaga, perché questo è il sistema
geografico con cui sono espresse sul sito dell'ARPAV.grid_data.tmp
, prodotto dal passo precedente,
contiene i dati meteo associati alle coordinate geografiche in cui
sono stati rilevati. In altre parole, ogni riga di
grid_data.tmp
contiene le coordinate di una centralina, e
i relativi valori di temperatura (minima, massima, media) e accumulo
di pioggia. Queste informazioni vengono utilizzate dallo script
interpolate.m
per generare i dati interpolati.plot.sh
, il cui scopo è quello di produrre i file
in formato PNG delle mappe contenenti i dati meteo interpolati.Un interessante esempio di applicazione di questi script si trova sul sito Meteo Merlara, dove è possibile scorrere tutte le mappe di temperatura e accumulo di pioggia dell'anno in corso. I grafici meteo prodotti con gli script descritti sopra sono stati sovrapposti alla piantina della regione Veneto a cura di Luca Stevanato, autore del sito Merlara Meteo, rendendo il tutto molto piú comprensibile ed esteticamente gradevole.
Durante l'esecuzione, lo script produce un certo numero di file
temporanei con testensione .tmp
. Se si recuperano dati dal
sito ARPAV, lo script produce un file temporaneo per ciascuna
stazione ARPAV considerata. Questi file possono essere lasciati
al loro posto, perché in certi casi ciò fa sì che
lo script riutilizzi i dati già prelevati anziché
riscaricarli nuovamente. Tuttavia, se l'esecuzione dello script viene
interrotta per qualsiasi motivo, è utile rimuovere
tutti i file con estensione .tmp
in modo da
ripartire da una situazione il piú possibile pulita
.
Esistono in rete software molto più professionali per trattare dati meteo (o dati geofisici in generale) rispetto ai semplici script presentati qui. Ecco alcuni di tali programmi:
Alcune discussioni interessanti sull'applicazione di diverse tecniche di interpolazione a dati geofisici: