Appunti, scoperte e invenzioni

Tutto quello che mi viene in mente (se permettete l’esagerazione…)

  • Universal Declaration of Human Rights

    Article 19. Everyone has the right to freedom of opinion and expression; this right includes freedom to hold opinions without interference and to seek, receive and impart information and ideas through any media and regardless of frontiers.
  • My Last Twits

    • google wavin'!!! 3 weeks ago
    • chi è così buono da spedirmi un invito per la beta di Google Wave a mario.piccinelli@gmail.com? 1 month ago
    • perde tempo su internet.. la tesi aspetterà.. bah 1 month ago
    • Noemi Letizia premiata per il suo ruolo nel film Scaccomatto: è la preferita di un boss mafioso. Esattamente come nel film. (spinoza.it) :-) 2 months ago
    • I have sailed the world and seen his wonders, from the Dardinels to the mountains of Peru, but there's no place like.. Lovere! 2 months ago
  • Meta

  • Delicious Links

  •  

    Aprile: 2009
    L M M G V S D
    « Mar   Mag »
     12345
    6789101112
    13141516171819
    20212223242526
    27282930  
  • Archivi

  • Disclaimer

    Questo blog non rappresenta una testata giornalistica [...]

    L’autore del blog dichiara di non essere responsabile per i commenti inseriti dai lettori.[...]

    Le immagini pubblicate sono quasi tutte tratte da internet e quindi valutate di pubblico dominio. [...]

    L'autore declina qualunque responsabilità per danni a cose o persone derivanti dall'applicazione di istruzioni apprese da questo blog.[...]

    Per ulteriori info legali vi consiglio di passare da qui.

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:

omsphpresult1

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:

osmphpresult2

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!

8 Risposte a “Disegnare una mappa dei terremoti”

  1. [...] 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. [...]

  2. Fabio detto

    sei un grande!! quello che hai appena fatto è un esempio di Data Warehousing. Cerca “Geographical Information Systems” su en.wikipedia.org!

  3. quartostato detto

    Sei pazzesco Mario, riesci sempre a stupirmi per la tua intraprendenza. Bravo!

  4. Stemby detto

    Grande! Davvero fantastico.

  5. piccimario detto

    grazie ragazzi, fa sempre piacere un feedback positivo.. ho in mente qualche abbellimento e qualche funzionalità aggiuntiva, stay tuned!

  6. 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

  7. piccimario detto

    ottimo! aspetto tue notizie.

  8. 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!

Lascia un commento

XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>