In questa pagina viene presentato un programma scritto in python che consente la conversione della Carta Tecnica Regionale (CTR) del Friuli Venezia Giulia in formati facilmente utilizzabile in escursionismo. Nello specifico viene convertita in Polish Format Notation (PFM), formato che a sua volta, tramite il programma cGPSmapper, può essere scaricato sui GPS portatili Garmin.
Oltre a questo vengono generati dei shapefile con dei nomi descrittivi che possono essere facilmente utilizzabili da software come QGis per l'elaborazione di traccie e la pianificazione di rotte. Viene utilizzato in input il file in formato FCN dato che presenta tutta l'informazione grezza. I dati in output utilizzano esclusivamente coordinate geografiche col map datum WGS84.
Per ogni commento, suggerimento, aiuto scrivetemi pure a chripell at gmail dot com. Ah, dimenticavo, l'immancabile screenshot, questa volta particolarmente artigianale!
E' triste che bisogna iniziare qualunque cosa al giorno d'oggi con una nota legale, però non è possibile farne a meno.
Il software di per sé è software libero, rilasciato sotto licenza GPL v3 o seguenti. Questo implica nessuna garanzia. Lasciatemelo ribadire: se seguite la traccia di un sentiero guardando solo lo schermo del GPS senza dare nemmeno un'occhiata in giro e cadete in una scarpata non è colpa mia.
La CTR non è liberamente ridistribuibile, quindi non troverete in queste pagine i dati veri e propri in nessun formato. Dovete scaricarveli dal sito della Regione. A quanto ne capisco potete utilizzarli per generare un documento .img o uno shapefile per uso personale senza chiedere l'autorizzazione visto che rientra nel seguente paragrafo di quanto scritto sul sito:
Non è necessario richiedere l'autorizzazione per l'utilizzo dei dati e delle informazioni cartografiche e territoriali a corredo di documenti quali piani, progetti, richieste di autorizzazioni e - in generale - per documenti non qualificabili come pagine web o prodotti editoriali a stampa (libri, pubblicazioni, opuscoli, manifesti, depliant, locandine, ecc…).Comunque non sono un avvocato e questa è solo una mia opinione. Nel dubbio consultatene uno.
Il programma è stato sviluppato utilizzando la versione python presente in Debian etch, quindi la versione 2.4. Per la conversione da coordinate cartografiche Gauss-Boaga a coordinate geografiche WGS84 è utilizzata la libreria GDAL OGR con i relativi binding per python. Per la generazione del file da scaricare sul Garmin è necessario utilizzare il software cGPSmapper. Per lo scaricamento purtroppo sono dovuto ricorrere alla versione per Windoze dello stesso programma, ma, appena ho tempo, penso di provare le alternative libere per la stessa procedura come QLandkarte.
L'applicazione è (e sarà) un perenne work in progress per questo come versione è utilizzata la data di caricamento sul web YYYYMMDD. La versione attuale da scaricare è ctrtool-20090403.tar.gz.
ctrtool.py [zip ctr] [directory di output] [descrizione classi] [template img] [operazione]
E' il file zip che avete scaricato dal sito della regione che contiene i dati in formato .fcn.
In questa cartella verrà generata per ogni cartina una sotto-cartella il nome della quale è composto delle cifre dal secondo all'ottavo carattere del nome del zip in input. A sua volta questa conterrà un cartella shp con i shapefile (uno per ogni singolo elemento della mappa (isoipse, fiumi, nomi, etc.)) e una con il file in formato .mp da dare in pasto a cGPSmapper.
Descrive come gli elementi della CTR verranno mostrati sulla cartina del navigatore. Vedi il capitolo Controllo dell'aspetto della mappa risultante .
E' l'intestazione che del file in formato PFM (estensione .mp). Nella distribuzione è presente un esempio di tale file img.mp che vi sconsiglio di toccare senza aver letto il manuale di cGPSmapper.
Se è map esegue tutte le fasi: interpretazione del file FCN, trasformazione delle coordinate, correzione del testo, generazione degli shapefile e dei file PFM. Se è dump vengono eseguite solo le prime 2 fasi e viene registrato un file DAT con la rappresentazione delle informazioni già elaborate. Se è fast allora si suppone che già esista il file DAT e quindi questo viene caricato e si procede con gli ultimi 3 step. In questo modo si risparmia una notevole quantità di tempo.
ctrcollage.py [out dir] [repository dati] [cont 0/1] [quadri da fare ...]
E' la directory di output come sopra. Viene creata una cartella imgs con giustapposto il numero di quadro nella quale vengono creati dei link simbolici per ogni file .img corrispondente ad un elemento 1:5000 o una tavoletta 1:25000. In questa directory vengono generati anche i file per Mapsource.
In questa cartella devono essere scaricati preventivamente i file dal sito della regione. Nella directory 5000 vanno messi gli elementi 1:5000 mentre nella 25000 le tavolette 1:25000.
Se questo parametro è a 1 e viene trovato il file .img già pronto questo non viene rigenerato. Se a 0 tutto viene rigenerato. Se è 2 allora si procede alla rigenerazione ma con la sola seconda fase (ovvero il campo [operazione] nell'esecuzione di ctrtool.py viene posto a fast
Lista dei quadri 1:5000 da generare. Per vedere la suddivisione della Regione in questi termini consultate il dato Quadri Unione del GISViewer presente sul sito della Regione.
L'aspetto dei dati in uscita viene controllato mediante un file di configurazione. Nella distribuzione sono presenti 3 file: classi_completo, classi_composto e classi_combinato. Il primo attiva tutte le informazioni presenti nei file FCN ma è inadatto per il piccolo schermo dei navigatori. Il secondo tenta di prendere il meglio dagli elementi 1:5000 e dalle tavolette 1:25000 per ottenere una visualizzazione ottimale, non sfruttando la possibilità di alternare tra una e l'altra delle 2 carte per i diversi livelli di zoom. Il terzo invece mira a sfruttare questa possibilità: a livelli di zoom basso viene utilizzata la 1:25000, per quelli alti la 1:5000
Ogni riga del file di configurazione determina come trattare una particolare classe/sottoclasse della CTR ed è composta da 6 campi separati da un pipe. Se una classe/sottoclasse non è presente in questo file viene ignorata. Il significato dei campi è il seguente:
Codice della classe/sottoclasse come indicato nei documenti CTRN5000_Classi_e_Simbologie.pdf e CRN25000_Classi_e_Sottoclassi.pdf scaricabili dal sito della regione.
Livello di dettaglio dal quale visualizzare la classe/sottoclasse. Va da 0 (maggior dettaglio, ovvero è visibile solo al massimo zoom disponibile sul navigatore) a 5 (carta di riepilogo, viene visualizzato sempre).
Livello di dettaglio fino al quale visualizzare la classe/sottoclasse.
Modalità di visualizzazione (tipo di punto, tipo di linea, caratteristiche dell'area per classi/sottoclassi rispettivamente di tipo punto, poligono e poligonale). Vedi capitolo 12.3 cGPSmapper object types list del manuale cGPSmapper per la lista completa.
Descrizione per esteso della classe/sottoclasse, attualmente non utilizzata dal programma.
Descrizione breve utilizzata nel dare il nome ai shapefile.
Utilizzando i parametri standard per la conversione dal sistema Gauss-Boaga a WGS84, ovvero:
+proj=tmerc +lat_0=0 +lon_0=15 +k=0.999600 +x_0=2520000 +y_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68
l'accuratezza ottenuta è dell'ordine di 3-4 metri. Grazie al prof. Alberto Beinat questi numeri si possono migliorare utilizzando dei parametri della roto-traslazione ad-hoc per la regione Friuli Venezia Giulia. I parametri sono:
+proj=tmerc +lat_0=0 +lon_0=15 +k=0.999600 +x_0=2520000 +y_0=0 +ellps=intl +units=m +towgs84=-128.6633,-30.2694,-6.12,-1.05572,-2.6951,-2.28808,-16.9352
Con questi l'errore è inferiore al mezzo metro su tutto il territorio regionale. Un grazie al prof. Beinat anche per l'esauriente spiegazione sull'ostico argomento della trasformazione di coordinate da Gauss-Boaga a WGS84.
Il punto più debole della CTR sono i toponimi. La carta è pensata come la descrizione di qualcosa che va stampato e quindi la posizione dei toponimi non è legata in modo preciso agli elementi grafici. Per ovviare a tale problema sto implementando un sistema per associare il record di tipo testo ad un elemento grafico. Infatti i punti che compongono questi sono referenziati anche in 2 array ordinati per consentire una ricerca rapida per coordinate. Purtroppo certi toponimi che sono importanti (come, per esempio, le vette o le forcelle) non corrispondono ad elementi grafici.
Per lo stesso motivo non c'è nessuna consistenza nei record testo. In alcuni i nomi sono scritti come lettere spaziate. Altri toponimi vengono suddivisi in 2 o più record a volte con elementi divisori (trattino), a volte senza. L'idea è utilizzare una qualche euristica per ovviare a questi difetti.
Le carte generate sono di qualità soddisfacente (molto buona se non si guarda i toponimi). Per esempio in un'escursione sul Montasio ho ritrovato correttamente segnato il sentiero fino al bivacco Suringar e persino l'imbocco del canalone Findenneg. Molto preciso il sentiero della via normale. Anche in altri test i risultati sono buoni.
Un aspetto particolarmente utile all'uso escursionistico è appunto la presenza di sentieri secondari, linee di roccia, scarpate, boschi, etc.
Le cose su cui vorrei lavorare (tempo permettendo dato che questo è per me un hobby):
Risolvere con qualche euristica e per quanto possibile il problema dei nomi di cui sopra.
Trovare le simbologie ottimali e la giusta quantità di informazioni per generare buone mappe per i display dei navigatori portatili. Se necessario creare dei nuovi tipi di rappresentazione.
Convincere la Regione a liberare veramente i geodati. Su questo punto c'è un gran lavoro di OSM e GFOSS.it.