Il modulo TRACO


Modulo Python per le trasformazioni di coordinate

Struttura dell'oggetto

I parametri di una trasformazione di coordinate sono memorizzati in un dizionario, che deve essere pensato come un oggetto
Ad esempio una TCP5 è rappresentata da un dizionario del tipo

{'tx': 242032.53405839, 'ty': 4936118.46936767, 'lamby': 1.00006149961841,
 'lambx': 1.00009089353098, 'alpha': -2.50136243348923, 'ttype': 'tcp5'}

Struttura dei file

Gli oggetti TRACO possono essere caricati da file TXT e salvati in file TXT, come ad esempio

Coordinate UV: esempio_coord_cs_rsm.txt
Coordinate XY: esempio_coord_utm_rsm.txt
Calcolata il: 2012-06-07, 13:37:54


_tx_:               242033.706917
_ty_:              4936120.060382
_alpha_ [grad]:        -2.501849035
_lamb_:                 1.000078850
_ttype_:             tcp4

Regole

Le prime 5 righe costituiscono l'header e contengono dati descrittivi: possono essere vuote, ma devono esserci.
Dalla sesta riga devono trovarsi i dati, in formato a colonne, separate da spazi.
I dati contengono su ogni riga un tag, per esempio _tx_ e un valore numerico, come nella riga

_tx_:               242033.706917

I tag veri non hanno i caratteri di unserscore (_) prima e dopo. In altri termini, il tag 'tx' viene scritto su file TXT come
'_tx_', ma i programmi che leggono i file depurano i dati da tali caratteri, che sono inseriti per evitare false identificazioni.

Possono essere inseriti commenti, come l'annotazione [grad]. Il carattere ':' è indispensabile e separa i commenti dal valore del parametro.

Da notare il tag 'ttype' che dice esplicitamente il tipo della trasformazione.

Funzioni di base

read: carica in un dizionario il contenuto di un file TXT 
disp: lista a video
write: scrive su file txt

Applicazione

apl_tcp3: applicazione di una TCP3
apl_tcp4: applicazione di una TCP4
apl_tcp5: applicazione di una TCP5
apl: applicazione di una qualunque trasformazione, fra quelle conosciute; viene scelta in base al tag ttype

Stima

calc_tcp4: stima ai MQ di una TCP4

Matrici di rotazione

matrot: matrice delle rotazioni antiorarie nel piano
matrot_x: matrice delle rotazioni antiorarie attorno a x nello spazio
matrot_y: matrice delle rotazioni antiorarie attorno a y nello spazio
matrot_z: matrice delle rotazioni antiorarie attorno a z nello spazio

Funzioni di servizio

key_parser: fa il parsing nel file testo per trovare valori dei parametri
lower_dict: rende minuscoli i nomi delle chiavi dei dizionari




Funzioni che lavorano direttamente su file

Le funzioni normalmente hanno come parametri di input e output variabili di memoria.
Ve ne sono alcune che leggono direttamente l'input su file txt e scrivono i risultati su nuovi file txt.

apl_fn_fn: applica una qualunque fra le trasformazioni conosciute
calc_tcp4_fn: stima una TCP4