Trasformare in massa tracce igc e nmea in tracce gpx

Durante l’openstreecamping2008 abbiamo avuto la necessità di trasformare, con gpsbable, le decine di tracce igc, il formato di tracking che utilizza il cellulare di Fradeve, raccolte durante i giri in bici in formato gpx che è il formato utilizzato da josm.

Dopo qualche giorno ci siamo resi conto che era noioso ridigitare ogni volta il comando dal terminale (ovviamente non tutto, ma modificando semplicemente il nome del file nel comando precedente) e potevamo perdere tempo prezioso in questo modo? Ovviamente no!

Mentre Fradeve leggeva la biografia di Torvalds (ve la consiglio) e il caldo era insopportabile, ho scritto un piccolo script in python per convertire in massa file igc e nmea in file gpx.

Credo sia possibile farlo anche in bash, ma non conoscendo il bash ho preferito usare il python e in particolare il modulo os, contenuto nella libreria standard, che permette al programma di interfacciarsi con il sistema operativo.

Clic qui per scaricare lo script

Qualche commento al codice:


if formato in ListaFormati :
    ListaFile = CercaFile(os.listdir('.') , formato)
else :
    print "Formato inesistente o non ancora implementato, esco dal programma."
exit()

Controlla il formato passato come argomento al programma e, se corretto (i formati accettati sono igc e nmea), restituisce una lista, attraverso la funzione os.listdir(cartella), con tutti i file contenuti nella cartella passata come argomento.


def CercaFile(lista, flag):
    for i in lista:
        if flag in i:
        gpx.append(i)
    return gpx

La funzione CercaFile restituisce una nuova lista contenente soltanto i file con l’estensione interessata (igc o nmea), eliminando tutti gli altri file inutili.


if ListaFile != []:
    c = 0
    for i in ListaFile:
        stringa = "gpsbabel -i " + formato + " -f '" + i + "' -o gpx -F '" + i[0:-3] + "'gpx"
        os.system(stringa)
        c = c + 1
    print "Ho trasformato " +str(c)+ " file in gpx ed ho cancellato i file " + formato + ""
else:
    print "Non ci sono file da convertire, ciao!"

Controlla che ci siano file da convertire, in caso positivo passa al sistema, attraverso il la funzione os.system, il comando gpsbabel necessario alla conversione dei file. La stringa che può sembrare complicata serve a trasformare i file mantenendo il nome originale.

Per eseguire lo script basta copiare i file da trasformare nella stessa cartella dove è presente lo script e poi da terminale digitare:

$: python trasforma.py formato

dove formato deve essere sostituito con igc o con nmea a seconda del formato di partenza dei file.

Semplice, veloce ed efficace a patto di aver gpsbabel installato, ovviamente!

Trasformare in massa tracce igc e nmea in tracce gpx

Questo è un post scritto da Sdonk, ospitato qui sul mio blog :)

Durante l'openstreecamping2008 abbiamo avuto la necessità di trasformare, con gpsbabel, le decine di tracce igc, il formato di tracking che utilizza il cellulare di Fradeve, raccolte durante i giri in bici in formato GPX che e il formato utilizzato da JOSM. Dopo qualche giorno ci siamo resi conto che era noioso ridigitare ogni volta il comando dal terminale (ovviamente non tutto, ma modificando semplicemente il nome del file nel comando precedente) e potevamo perdere tempo prezioso in questo modo?

Ovviamente no! Mentre Fradeve leggeva la biografia di Torvalds (ve la consiglio) e il caldo era insopportabile, ho scritto un piccolo script in python per convertire in massa file igc e nmea in file GPX. Credo sia possibile farlo anche in Bash, ma non conoscendo il Bash ho preferito usare il python e in particolare il modulo os, contenuto nella libreria standard, che permette al programma di interfacciarsi con il sistema operativo. Clic qui per scaricare lo script

Qualche commento al codice:

[[!format Errore: /etc/highlight/filetypes.conf: No such file or directory]]

Controlla il formato passato come argomento al programma e, se corretto (i formati accettati sono igc e nmea), restituisce una lista, attraverso la funzione os.listdir(cartella), con tutti i file contenuti nella cartella passata come argomento.

[[!format Errore: /etc/highlight/filetypes.conf: No such file or directory]]

La funzione CercaFile restituisce una nuova lista contenente soltanto i file con l'estensione interessata (igc o nmea), eliminando tutti gli altri file inutili.

[[!format Errore: /etc/highlight/filetypes.conf: No such file or directory]]

Controlla che ci siano file da convertire, in caso positivo passa al sistema, attraverso il la funzione os.system, il comando gpsbabel necessario alla conversione dei file. La stringa che può sembrare complicata serve a trasformare i file mantenendo il nome originale. Per eseguire lo script basta copiare i file da trasformare nella stessa cartella dove è presente lo script e poi da terminale digitare:

$: python trasforma.py formato

dove formato deve essere sostituito con igc o con nmea a seconda del formato di partenza dei file.

Semplice, veloce ed efficace a patto di aver gpsbabel installato, ovviamente!

Quando le strade si incrociano: OpenStreetCamping 10 giorni dopo

Questo è il messaggio, scritto a tre mani con Fradeve (ha scritto praticamente tutto lui, per cui io ho messo solo una mano ;-)), inviato alla mailing list italiana di OpenStreetMap (link al messaggio) come resoconto dell’OpenStreetCamping. Quando le strade si incrociano: OpenStreetCamping - 10 giorni dopo… Al termine dell’OpenStreetCamping, ci sembrava doveroso stendere un resoconto dei [...]

Utilizzare sul proprio pc TangoGPS e le mappe di OpenStreetMap

Se inserire le mappe di OpenStreetMap nel proprio sito/blog è una grande soddisfazione, soddisfazione ancora più grande è vedere le mappe di OpenStreetMap funzionanti su un navigatore GPS. Nella mailinglist italiana di OpenStreetMap si parlava di OpenMoko e di TangoGPS, il navigatore per palmari scritto in python che utilizza le mappe di OSM, e ovviamente [...]

OpenBlog + OpenStreetMap = Sdonk

Fradeve OpenBlog si arricchisce di un editore: dopo l’esperienza dell’OpenStreetCamping 2008, ho deciso di unire le mie forze (e di chiunque voglia aggregarsi) con Alessandro (aka Sdonk) per pubblicare articoli su OpenStreetMap, per cercare di far crescere la Comunità di questo progetto collaborativo per la realizzazione di mappe libere, anche in Italia.

I miei auguri ad Alessandro e buona lettura a tutti ;)

PS: aggiungo il suo blog nel mio blogroll ;)

OpenBlog + OpenStreetMap = Sdonk

Fradeve OpenBlog si arricchisce di un editore: dopo l'esperienza dell'OpenStreetCamping 2008, ho deciso di unire le mie forze (e di chiunque voglia aggregarsi) con Alessandro (aka Sdonk) per pubblicare articoli su OpenStreetMap, per cercare di far crescere la Comunità di questo progetto collaborativo per la realizzazione di mappe libere, anche in Italia. I miei auguri ad Alessandro e buona lettura a tutti ;)

PS: aggiungo il suo blog nel mio blogroll ;)