Il modulo XYZ


Modulo Python per la gestione di insiemi di punti. 

Struttura dell'oggetto

I dati sono memorizzati in una lista, che deve essere pensata come un oggetto. Ad ogni punto è associato:
  • un nome (STR), 
  • un flag (INT)
  • un numero variabile di colonne (FLOAT)
 name   flag         x            y            z
  140     1   511519.6953  5002902.1736     111.6892
  211     1   511552.6892  5002476.7801     123.0523
  141     1   511811.8036  5002430.5517     102.4096
  126     1   511748.6104  5002826.2769     105.9068
  226     1   511920.2842  5002774.6640     116.2115
  101     1   511488.0413  5003239.5631     109.8504
  220     1   511360.8720  5002781.5191     103.0692

Struttura dei file

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

Coordinate UTM degli stessi punti del file esempio_utm2.txt
ma "misurate" con fotogrammetria


        name   flag       x            y           z
         140     1  511519.6953  5002902.1736  111.6892
         211     1  511552.6892  5002476.7801  123.0523
         141     1  511811.8036  5002430.5517  102.4096
         126     1  511748.6104  5002826.2769  105.9068
         226     1  511920.2842  5002774.6640  116.2115
         101     1  511488.0413  5003239.5631  109.8504
         220     1  511360.8720  5002781.5191  103.0692

Regole

Le prime 5 righe costituiscono l'header e contengono dati descrittivi: possono essere vuote, ma devono esserci.
Le prime 3 righe del header sono totalmente libere e possono essere usate per specificare l'origine dei dati, 
chi li ha creati, la data, ed altro ancora.
La quarta riga è riservata e viene usata dai vari programmi per specificare alcuni trattamenti subiti dai dati, ù
come ad esempio 'FILTRATO'.
La quinta riga è riservata alle intestazioni di colonna.

Dalla sesta riga devono trovarsi i dati, in formato a colonne, separate da spazi.

Funzioni di base

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

Filtri

name_list: restituisce elenco nomi dei punti
filter_name: filtra rispetto al nome
filter_flag: filtra rispetto al flag
filter_active: filtra rispetto al flag, mantenendo solo i flag>0
intersect: lavora su due liste XYZ e le filtra mantenendo gli elementi comuni
delta: fa la differenza di coordinate fra due oggetti XYZ

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.

filter_name_fn: filtra rispetto al nome
filter_active_fn: mantiene FLAG>0
intersect_fn: interseca due file XYZ
delta_fn: calcola delta fra due file XYZ