Questo post è l’evoluzione di quello relativo a “GPX | magie con gpsbabel”. In quel post è descritta una procedura per convertire un file GPX (trk) in SHP (wpt) avente una tabella attributi popolata anche con il TIMESTAMP. Questo per consentire di “rincorrere” il percorso effettuato in base all’ora di interrogazione.
Tuttavia questa conversione di formato produce in output dati geografici in un sistema di coordinate universale per i GPS: il WGS84 (codice EPSG:4326).
E’ utile poter convertire tali dati anche in altri sistemi di riferimento; in particolare, lavorando in Veneto, è basilare convertire tutto in Gauss_boaga Fuso Ovest (codice EPSG:3003) quale sistema di riferimento adottato dalla Regione Veneto per la CTRN (Carta Tecnica Regionale Numerica). Per fare questo ci viene in aiuto un altro magico tool: ogr2ogr. E’ uno strumento che consente la conversione di svariati formati vettoriali, compresa la possibilità di convertirli da un sistema di riferimento ad un altro.
La sintassi del comando è di questo tipo:
$ ogr2ogr output.shp input.shp -s_srs EPSG:4326 -t_srs EPSG:3003
In questo esempio si effettua la conversione di un file SHP da WGS84 a Gauss-Boaga Fuso Ovest.
Ma il risultato che si ottiene non è buono: caricando lo SHP generato (es tramite Qgis) e sovrapponendolo alla CTRN si nota uno scostamento rigido verso nord-ovest.
Nell’immagine seguente si può notare lo scostamento rispetto alla reale posizione della strada.

traccia convertita senza parametri "+towgs84"
Questo errore si può rimediare inserendo i parametri comprensivi di “+towgs84” in luogo di “-t_srs”. Pertanto il comando per ottenere una riproiezione corretta (ci sono ancora errori, ma notevolmente ridotti) è il seguente:
$ ogr2ogr gb_$nome_ref.shp $nome_ref.shp -s_srs EPSG:4326 -t_srs ‘+proj=tmerc +ellps=intl +lat_0=0 +lon_0=9 +k=0.999600 +x_0=1500000 +y_0=0 +units=m +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68’
Il risultato è questo:

traccia convertita con parametri "+towgs84"
Per continuare con il post precedente sopra citato ho aggiornato lo script in Perl già pubblicato. In sostanza lo script fa 4 cose:
– scarica i dati dal GPS (nel caso specifico un i-blue 747);
– converte le track (trk) in waypoint (wpt) per poter memorizzare il TIMESTAMP di ogni punto;
– converte il nuovo GPX in SHP (con tabella attribuiti ben popolata);
– converte lo SHP generato dal sistema WGS84 a Gauss-Boaga Fuso Ovest
Questo lo script integrale: script_trk2wpt
Se trovate imprecisioni commentate!
45.580163
11.517611