-
Trasformare in massa tracce igc e nmea in tracce gpx
Pubblicato il agosto 17th, 2008 3 commentiDurante 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 gpxLa 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 formatodove 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!
-
Python
Pubblicato il agosto 15th, 2008 Nessun commentoIn questa pagina (in continuo aggiornamento) , ci sono i link ai miei script e programmi open source scritti in python, non sono nulla di eccezionale ma svolgono egregiamente il loro lavoro e a volte sono anche carini.

- Parsing delle tabelle composizione alimenti INRAN e salvataggio dei dati in un database SQlite3
- Estrapolazione dati (quota) dai file gpx
- Conversione massiva di file igc e nmea in file gpx
- Visualizzare eventi sismici del sito INGV su mappe OpenStreetMap (versione testuale)
- OSMQuake: visualizzare eventi sismici nazionali sulle mappe di OpenStreetMap (versione grafica)
Ultimo aggiornamento: 04 maggio 2009
database, gpx, igc, inran, linux, nmea, Open source, OpenStreetMap, Python, Ubuntu


