Grotte in Slovenia
Notizie dalla speleologia in Slovenia
In questa sezione pubblichiamo una speciale rubrica con le notizie riguardanti la pratica dell'attività speleologica in Slovenia, curata da Stojan Sancin
Software libero per la conversione di coordinate. La gestione delle proiezioni cartografiche con le librerie ed i tools di conversione PROJ.4
Inseriamo questo breve tutorial nella rubrica Grotte in Slovenia per illustrare come si può fare la conversione dal sistema di coordinate geografiche World Geodetic System84 (WGS84) al sistema in uso fino al 2007 in Slovenia, la proiezione Gauß-Krüger, datum D48 con l'utilizzo di software libero.
Vedremo come utilizzare le utility a riga di comando cs2cs della libreria di proiezione cartografica PROJ.4 per convertire da un sistema all'altro una serie di coordinate
Le librerie PROJ.4 sono software libero, distribuito con licenza MIT, siete quindi liberi tra l'altro di scaricarlo dal sito di riferimento http://proj.maptools.org/ e utilizzarlo a vostro piacimento. Per chi volesse approfondire l'utilizzo del software è disponibile una vasta documentazione.
In particolare in questo breve tutorial utilizzeremo l'utility cs2cs (coordinate system to coordinate system) per fare la proiezione da wgs84 in Gauß-Krüger e viceversa.
Supponiamo di essere andati a fare un giretto in una zona carsica in Slovenia alla ricerca di nuove grotte. Localizzati alcuni ingressi e avendo marcato la loro posizione con il nostro gps provvediamo a scaricare i relativi waypoint sul nostro pc di casa per verificare la posizione su una carta topografica slovena (con sistema di proiezione Gauß-Krüger, datum D48). Un tipico file gpx prodotto dal nostro software di acquisizione dati da gps quale il software libero Gpsbabel, ci presenta le coordinate nel sistem wgs84 come in questo esempio.
P.es. la coppia di coordinate lat="45.547949988" lon="14.009449929" va trasformata per rappresentarla sulla nostra carta topografica slovena. Scarichiamo il software cs2cs (è disponibile nel repository della vostra distribuzione Linux preferita, per Windows potete scaricarlo da quì oppure potete compilarvelo da soli da codice sorgente.
Creiamo un file di testo di coppie di coordinate da convertire come in questo esempio: coordinatewgs84.txt
13d58'31.45"E 45d32'1.7"N #Cima del monte Slavnik
13d51'38.5"E 45d35'22.73"N #Castello di San Servolo
14.009449929E 45.547949988N #Skandanščina
da cui si vede che le coordinate wgs84 possono essere indicate sia in gradi che in decimale
e dalla console (riga di comando) diamo il seguente comando
cs2cs +datum=WGS84 +proj=longlat +to +proj=tmerc /
+lat_0=0 +lon_0=15 +k=0.999900 +x_0=500000 +y_0=-5000000 /
+ellps=bessel +units=m +towgs84=667,-205,472 coordinatewgs84.txt
N.b. il file con le coordinate (coordinatewgs84.txt nel nostro esempio) deve risiedere nella stessa directory dalla quale diamo il comando oppure dobbiamo specificarne il percorso.
(le due barre rovescie / significano che il comando continua tutto in una riga e non vanno indicate naturalmente). Otteniamo il seguente output
420345.53 43789.33 -49.52
411474.49 50115.88 -50.00
423024.14 45327.85 -49.36
in cui le prime due colonne rappresentano la longitudine e la latitudine secondo il sistema metrico in uso in Slovenia. Non vi so dire cosa significhi la terza :) se qualcuno ha qualche informazione in più gliene sarò grato.
Come si vede il programma cs2cs richiede due definizioni di sistemi di coordinate. La prima (o primaria) è definita sulla base di tutti i parametri di proiezione che non appaiono dopo l'argomento +to. Tutti i parametri di proiezione che appaiono dopo l'argomento +to sono considerati la definizione del secondo sistema di coordinate. Notate come nel nostro caso i parametri che appaiono dopo l'argomento +to, ovvero: +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999900 +x_0=500000 +y_0=-5000000 +ellps=bessel +units=m +towgs84=667,-205,472 sono proprio i parametri che abbiamo visto nell'articolo precedente per l'impostazione del gps al fine di rappresentare le coordinate secondo il sistema D48 Gauß-Krüger.
E se volessimo fare il contrario, ovvero a partire da coordinate espresse secondo il sistema sloveno trovare le relative coordinate wgs84? Niente di più facile, basta inserire un argomento addizionale nel comando: -I per fare la trasformazione inversa: avremo quindi
cs2cs -I +datum=WGS84 +proj=longlat +to +proj=tmerc /
+lat_0=0 +lon_0=15 +k=0.999900 +x_0=500000 +y_0=-5000000 /
+ellps=bessel +units=m +towgs84=667,-205,472 coordinateD48.txt
a partire dal file di testo coordinateD48.txt così strutturato:
420345.53 43789.33 #Cima del monte Slavnik
411474.49 50115.88 #Castello di San Servolo
423024.14 45327.85 #Skandanščina
otteniamo il seguente output:
13d58'31.45"E 45d32'1.7"N 49.521
13d51'38.5"E 45d35'22.73"N 49.996
14d0'34.02"E 45d32'52.62"N 49.364
E se volessimo il risultato espresso in gradi decimali?
Basta aggiungere un parametro di formattazione -f seguito da una stringa (printf) per la formattazione dell'output, p.es.
cs2cs -I -f "%.8f" +datum=WGS84 +proj=longlat +to +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999900 +x_0=500000 +y_0=-5000000 +ellps=bessel +units=m +towgs84=667,-205,472 coordinateD48.txt
otteniamo in output13.97540285 45.53380554 49.52104670
13.86069445 45.58964720 49.99556967
14.00945000 45.54794999 49.36383265
I stessi parametri cartografici potranno essere usati anche nel programma QGis per l'impostazione di una proiezione su misura per le carte raster slovene.
Buona navigazione,
Dean Zobec