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