Disegnare una mappa dei terremoti
Pubblicato da piccimario su Aprile 21, 2009
L’altro giorno ho letto un interessante articolo in cui si valutava la possibilità di estrarre dal sito dell’Istituto Nazionale di Geofisica informazioni circa i terremoti rilevati (argomento tornato tragicamente d’attualità, come sappiamo) e sfruttare queste informazioni per rappresentarli su una mappa.
L’autore dell’articolo di cui sopra ha svolto un ottimo lavoro realizzando uno script in Python che esegue il parsing di questa pagina, ne estrae le informazioni e fornisce un report testuale degli eventi sismici, ciascuno corredato da un link per visualizzare il punto sulle mappe di OpenStreetMap.
Io ho cercato di fare un ulteriore passo in avanti, ovvero realizzare un sistema automatico che mostrasse direttamente su una mappa le posizioni degli ultimi eventi sismici. Il risultato è abbastanza gradevole, e con moltissimi margini di miglioramento, e ho quindi deciso di condividerlo con il mondo nella speranza che a qualcuno possa servire.
A livello pratico, si tratta di una singola pagina in php che scarica la pagina dell’INGV, ne esegue il parsing con pesante e doloroso uso di regexp creando un array con i dati, e poi provvede a disegnarli su una mappa OSM sfruttando le API di Mapstraction. Quest’ultimo, per chi non lo sapesse, è un insieme di API cartografiche open source progettate per interagire con i principali fornitori web di cartografia, che forniscono una serie di interessanti funzioni ben descritte sul loro sito web; ovviamente come fonte dei dati io ho scelto il migliore, OpenStreetMap!
Al momento il risultato è questo:
Oltre alla mappa ho anche previsto un div per loggare le operazioni svolte dallo script (immagino sappiate quanto è doloroso lavorare con le regexp
). Nulla vieta di rimuoverlo, ovviamente. Inoltre ho previsto anche la possibilità di cliccare sui marker, per visualizzare data, ora e magnitudine degli eventi:
Ho caricato il file online, e per chi volesse vederlo in azione è raggiungibile a questo indirizzo. Inoltre il sorgente è ovviamente libero (pubblicato con licenza Beerware, per intenderci) ed è scaricabile dalla stessa pagina.
I margini di miglioramento sono enormi: rendere più efficiente il parsing, prevedere sistemi di filtraggio e scelta del numero e tipo di eventi da mostrare, differenziare il tipo di evento (ad esempio un marker diverso a seconda della magnitudine) e altro ancora, e non è escluso che un pò alla volta ci giocherellerò per aggiungere queste funzioni. Per ora lascio tutto a voi, e se avete qualche idea o del codice migliorato che volete inserire fatemelo avere e lo aggiungerò.
Ciao a tutti!






OpenStreetMap Italia » Blog Archive » Visualizzare una mappa dei terremoti detto
[...] Ispirandomi al precedente articolo “Visualizzare gli ultimi eventi sismici dal sito INGV (usando OpenStreetMap)” di Sdonk ho deciso di fare un passo in avanti, e usare i dati prelevati dalla stessa fonte per disegnare una mappa vera e propria degli ultimi eventi sismici elencati sul sito dell’INGV (Istituto Nazionale di Geofisica e Vulcanologia) usando i layer di OpenStreetMap e le Api del progetto Mapstraction. Se vi interessa, il post che descrive il sistema e la mappa vera e propria sono raggiungibili qui. [...]
Fabio detto
sei un grande!! quello che hai appena fatto è un esempio di Data Warehousing. Cerca “Geographical Information Systems” su en.wikipedia.org!
quartostato detto
Sei pazzesco Mario, riesci sempre a stupirmi per la tua intraprendenza. Bravo!
Stemby detto
Grande! Davvero fantastico.
piccimario detto
grazie ragazzi, fa sempre piacere un feedback positivo.. ho in mente qualche abbellimento e qualche funzionalità aggiuntiva, stay tuned!
sdonk detto
Complimenti, sei riuscito dove io non sono riuscito: visualizzare i terremoti sulla mappa.
Sto pensando ad un’integrazione tra i ns due sw (ok, è una parola grossa), ti mando al più presto una mail per spiegarti le mie idee.
Alex aka sdonk
piccimario detto
ottimo! aspetto tue notizie.
Virgina detto
Purtroppo si tratta di un’informazione preziosa. Ottimo studio
edit by PicciMario: grazie per il commento, fa sempre piacere un feedback da parte dei miei lettori. Grazie di cuore. Mi sono permesso di modificare la tua email e rimuovere l’URL, ho notato che casualmente puntavano a un sito di scommesse online. Per un attimo ho avuto la buffissima sensazione che il tuo commento fosse di spam pubblicitario, quindi per non dare adito a dubbi ho apportato queste lievi modifiche
grazie ancora!