GPX è un formato di interscambio dati per dispositivi GPS. Sostanzialmenete è un file XML. Al suo interno vengono memorizzate, oltre alle coordinate X,Y e Z, anche altre informazioni quali DATE e TIMESTAMP. E proprio quest’ultimo dato è l’oggetto di questo post. Tutto è nato dalla necessità di salvare i dati recuperati via GPS in uno SHP (shape file: formato dati standard in ambito GIS) in modo da poter localizzare (mediante query) la mia posizione ad una determinata ora. Caricando un file GPX in Qgis vengono visualizzate tracce (trk), waypoint (wpt) e rotte (rte). Durante l’acquisizione della traccia vengono “taggati” n punti ogni TOT secondi (ho impostato la rilevazione della posizione in base al tempo). La traccia visualizzata diventa un record unico e ad essa sono abbinati una serie di dati. Ma in questo modo non riesco a risalire alla mia posizione; i dati sono riferiti al tracciato nella sua interezza. Esiste un tool davvero eccezionale: GPSBABEL. Consente una buona serie di “magie” per convertire dati GPX. In particolare è possibile convertire una traccia in una serie di wp. In questo modo ad ogni punto viene associato anche il momento in ci è stato rilevato. In seconda battuta si può trasformare il nuovo GPX con i wp in SHP mediante OGR2OGR o GPX2SHP. vediamo i passi necessari:
– trasformazione delle tracce in waypoint mediante gpsbabel:
$ gpsbabel -i gpx -f nome_traccia.gpx -x transform,wpt=trk -o gpx -F nome_wp.gpx
– conversione del GPX in SHp mediante gpx2shp:
$ gpx2shp -w -o nome_wp.shp nome_wp.gpx
Visto che questo lavoro dovrebbe processare una serie di tracce recuperate in tempi diversi da persone diverse ho predisposto (una vera operazione di hackeraggio artigianale vista la mia bassissima esperienza di programmazione) un piccolo e semplice script in Perl. Lo script ha come requirements la presenza di perl, gpsbabel e gpx2shp e deve essere eseguito all’interno della directory contenente i GPX da processare.
Lo script in formato PDF: gpx_trk2wpt_gpx2shp. Copiare il testo e incollarlo in un nuovo file. Dare un nome al file (Es: converter_gpx_shp.pl) con estesnione .pl e lanciarlo con:
$ perl converter_gpx_shp.pl
All’avvio viene chiesto il nome del GPX da elaborare (omettendo l’estensione .GPX) ed il nome da dare al file generato. A fine operazione vengono generati un nuovo GPX contente i WP delle tracce ed uno SHP con i WP stessi.
Questo SHP può essere caricato in Qgis per le opportune elaborazioni.