Curve geodetiche, mappe, animazioni

Il post di ieri, oltre a un noioso elenco di orari e destinazioni, presenta anche due visualizzazioni più immediate: una mappa globale con il percorso e un video con l’animazione del viaggio. Entrambi sono stati realizzati usando software e dati liberi. Riporto di seguito alcune note tecniche sulla realizzazione.

Mappa con il percorso

Mappa mondo, 1:140MCome dati di partenza ho usato la mappa raster della Terra in scala 1:50m (cross-blended hypsometric tints) e la collezione di dati vettoriali resi disponibili da Natural Earth (licenza public domain). Come software per visualizzare i dati e fare il rendering della mappa, ho usato l’ottimo Quantum GIS (d’ora in poi QGIS), già presente nel repository standard di Ubuntu (uso Ubuntu 12.10). L’import dei dati raster e vector è risultato del tutto indolore e i vari tematismi risultano perfettamente allineati.

Esistono sicuramente molti modi in QGIS per aggiungere i punti relativi alle destinazioni. Dopo rapida indagine, ha adottato una soluzione probabilmente poco ortodossa, ma che mi ha rubato pochissimo tempo. Ho creato a mano un file GPX con i waypoints che mi interessavano e l’ho importato grazie al plugin preinstallato “Gps Tools”.

Non ho invece trovato in QGIS un modo per disegnare le curve geodetiche che collegano i vari punti. Ho visto come collegare i punti con linee rette, ma non è quel che volevo. Ho allora scelto una via che può apparire contorta, ma per me piuttosto naturale. Ho scritto un programmino che, appoggiandosi alla libreria GeographicLib (anche questa già disponibile nel repository), a partire dalle coordinate (lat,lon) di partenza e arrivo, genera un file GPX contenente la geodetica sotto forma di track. Il programmino è molto semplice e nella struttura ricalca un file d’esempio di GeographicLib. L’unica accortezza sta nel rilevare il passaggio da +180 a -180 gradi di longitudine e spezzare il percorso in due tracce distinte nello stesso file GPX.

Se qualcuno fosse interessato, può scaricare geodesic.zip che contiene:

  • geodesic.cpp : file sorgente in c++ del programmino;
  • destinazioni.gpx : il file GPX con tutte le destinazioni (scritto a mano);
  • tappe.txt : i comandi da dare per generare i file GPX con le curve geodesiche.

Una volta importati punti e curve, si tratta solo di decidere quali colori usare e, se l’immagine desiderata è sufficientemente grande, di attivare l’inserimento automatico delle label.

Video animato

Frame da filmato voliHo usato OpenShot, interessante software di video editing disponibile nel repository standard di Ubuntu. A differenza di altri video editor che avevo provato in passato, OpenShot presenta un’interfaccia molto intuitiva ed è facile da usare. Trattandosi però di un progetto relativamente giovane, talvolta è poco stabile e alcune azioni apparentemente innocue possono mandarlo in crash. Nel complesso si è trattato comunque di uno strumento prezioso. In particolare, è dotato di un plugin chiamato WorldMap che fa esattamente quelle che serve: accetta coordinate (lat,lon) di due punti e, appoggiandosi a Blender, genera un filmato con l’animazione. Tutto qui. In realtà WorldMap a volte falliva senza emettere messaggi d’errore, ma ho risolto dimezzando i parametri Extrude e BevelDepth.

Per le schermate dei titoli, ho usato InkScape, che si integra alla perfezione con OpenShot.

Per l’audio, ho trovato Alchemist Tower, un bel brano del solito Kevin MacLeod. Purtroppo, la parte centrale era troppo corta e sono ricorso quindi ad un lavoro di copia/incolla con Audacity per allinearlo con il video.

Ecco il risultato finale: