Google Earth Satellite Tracker

Di - 10 April 2013 - in
Post image for Google Earth Satellite Tracker

Da meno di un mese è disponibile su Google Code un progetto davvero interessante: il Google Earth Satellite Tracker.

Si tratta di un piccolo script in Python, già abbastanza ben fatto, ma comunque in continuo miglioramento, che mostra in tempo reale la posizione di satelliti artificiali in Google Earth.

L’esecuzione dello script è davvero semplice: è necessario installare Python 2.7, se già non lo si ha, e la libreria pyephem, una libreria utile a calcolare orbite, che si ottiene via pip o scaricandola da sito ufficiale.

A questo punto basterà scaricare lo zip con il programma e decomprimerlo in una cartella.

Il funzionamento del programma è molto semplice. Avviando lo script getrack.py, viene creato un serverino http, e viene generato un file kml (un formato di Google, molto versatile, per dati geografici). Il file kml conterrà le informazioni sui satelliti che si vogliono tracciare, impostati nel file di configurazione, e l’indirizzo del server generato dallo script. Aprendo il file kml con Google Earth, questo si collegherà al server, scaricando le informazioni che lo script ottiene in tempo reale da servizi online, e mostrerà a schermo una traccia del satellite e la sua posizione.

La configurazione di default va benissimo per curiosare, ma vediamo come è fatto il file di configurazione getrack.cfg, se lo si volesse modificare. Mi riferisco alla versione corrente, la pre-release del 30 marzo.

La prima sezione, [server], permette di modificare indirizzo e porta del server che si genera. Lasciare localhost ha senso se il computer sul quale si vuole eseguire Google Earth è lo stesso su cui si lancia lo script. Altrimenti, sarà necessario specificare l’indirizzo IP del computer sul quale si trova lo script. Gli screenshot di questo articolo, ad esempio, sono stati realizzati facendo girare Earth su un portatile con Windows, mentre lo script girava su una Raspberry Pi in rete.

La sezione [tracking] contiene diversi parametri essenzialmente grafici, oltre agli intervalli di update dello script e di Google Earth. Fondamentale è l’opzione satellites che permette di elencare i satelliti che si vogliono tracciare.

In [keps] si sceglie quale servizio online interrogare per conoscere la posizione dei satelliti. sono disponibili Amsat e SpaceTrack. Il secondo richiede iscrizione, mentre il primo è libero. Le due sezioni successive riguardano la configurazione di questi servizi.

Infine, in [ground] si impostano le stazioni a terra. Lo script, infatti, permette di definire una serie di stazioni a terra, specificando le loro coordinate. Le stazioni saranno mostrate in Google Earth, assieme alla linea retta che le collega ai satelliti da esse visibili.

Lo script, oltre alle stazioni a terra, crea nel KML anche delle stazioni centrate nei satelliti. In questo modo, viene mostrata a terra un footprint del satellite, ovvero l’area nella quale il satellite è visibile. Il footprint non è affidabilissimo, essendo basato su un modello per il quale la Terra è sferica, e non tenendo conto dei rilievi montuosi (e dei palazzi, banalmente), ma offre un’idea sufficientemente buona.

Sono previsti grandi miglioramenti in un prossimo futuro, come la possibilità di avere icone diverse per satelliti diversi, la possibilità di raggruppare concettualmente le stazioni a terra e un miglioramento del sistema di generazione del file kml.

Vi lascio alla galleria degli screenshot, che dà un’idea migliore di quanto possa essere affascinante questo programmino assieme a Google Earth. Occhio all’orologio: la Stazione Spaziale Internazionale, che ho tracciato, si muoveva in realtime.

Leave a Reply

Lorenzo Breda Articolo scritto da

Studente di Informatica a Roma, si occupa di programmazione web sopratutto lato server, e di accessibilità del web. Utilizza e ama Debian GNU/Linux, e si interessa di fisica, fumetto, trekking e fotografia (gli ultimi due possibilmente abbinati). Collabora con Googlab da aprile 2012.

Contatta l'autore

Previous post:

Next post: