-
Estrapolare dati dai file gpx
Pubblicato il luglio 31st, 2008 6 commentiDopo l’avventurosa e faticosissima biciclettata di sabato scorso sulla strada che porta a Castel del Monte (foto), che ovviamente abbiamo mappato (permalink osm), mi sono chiesto quale fosse la variazione di pendenza che le nostre povere gambe hanno dovuto sopportare e mi sono subito messo all’opera per scrivere un rudimentale parser in Python sfruttando il modulo BeautifulSoup (installabile dai repository di Ubuntu)
Avendo più tempo a disposizione mi piacerebbe scrivere l’interfaccia grafica del programmino e far disegnare il grafico ad uno dei potenti widget di wxPython, ma purtroppo adesso devo accontentarmi di questo script molto semplice ma al tempo stesso efficace.
Clic qui per scaricare lo script.
Anche se lo script è semplicissimo aggiungo qualche commento:
</code> try: NomeFile = sys.argv[1] except: print "Argomento mancante o non valido" exit()
Controlla che il nome del file sia stato passato come argomento.
</code> try: gpx = open(NomeFile,'r') except: print "Impossibile leggere il file, controllare che lo stesso esista e che sia leggibile" exit()
Tenta di aprire il file gpx passato come argomento.
</code> xml = gpx.read() gpx.close() soup = BeautifulStoneSoup(xml) dati = open('dati.txt','w') n = 0 for i in soup.findAll('ele'): dati.write(i.string + '\n') n = n + 1 dati.close()Il file viene letto e il suo contenuto, salvato nella variabile xml, viene passato al parser xml di BeautifulSoup, a questo punto viene invocata la funzione findAll che restituisce una lista contenente tutti i tag <ele> (compreso il contenuto dei tag).
L'istanza string, richiamata sui singoli elementi della lista, restituisce solo il contenuto dei tag <ele> senza il tag stesso, infine i contenuti vengono salvati su un file txt separati da un carriage return.
Per eseguire correttamente lo script è sufficiente eseguire lo script digitando da terminale:
$: python altitudine.py nomefile.gpx
e poi ricopiare i valori del file dati.txt in un foglio di calcolo e far elaborare il grafico dal software (ovviamente consiglio sempre di utilizzare OpenOffice.org - Calc).
Questo è il grafico elaborato dai gpx del percorso verso Castel del Monte (clic per ingrandire):
Funny, Informazioni, OpenStreetMap, Programmazione, Python, Video altitudini, castel del monte, gpx, grafici, OpenStreetMap, parser, Python6 responses to “Estrapolare dati dai file gpx”

-
Ciao!Complimentissimi per lìidea!!
Nonostante a tuo dire sia uno script facile non riesco a farlo funzionare! non capisco cosa devo scrivere al posto di Nomefile qui:
1. try:
2. NomeFile = sys.argv[1]
3. except:
4. print “Argomento mancante o non valido”
5. exit()
saresti così gentile da aiutarmi? grazie mille e scusa il disturbo di uno che non sa smanettare però ci prova! -
Emanuele gennaio 8th, 2009 alle 14:22
Niente da fare…mi dice sempre argomento non valido!dove sbaglio?
-
Emanuele gennaio 9th, 2009 alle 01:24
Perfetto!grazie mille…domani proverò(ora sul portatile nn ho i vari file ecc)!ti farò sapere ma credo funzionerà tutto perfettamente!!!
-
Emanuele gennaio 9th, 2009 alle 21:42
Funziona tutto perfettamente!!! alla grande!!
Grazie mille!!!
Lascia un commento
-



Emanuele gennaio 8th, 2009 alle 00:09