Ciao a tutti,
come avevo preannunciato sul topic Congruenza fogli di mappa, ho ri-sviluppato ex novo il calcolo combinatorio delle rototraslazioni da applicare nelle riconfinazioni da mappa per trovare in automatico i punti di inquadramento che danno gli scarti migliori. Finora questo calcolo veniva svolto nella memoria (RAM) del computer e questo, da un lato, lo rendeva molto veloce nonostante fosse da elaborare un numero elevato di combinazioni, dall’altro, provocava il blocco del programma quando tale numero comportava la saturazione dell’intera memoria (in particolare su computer con RAM limitata). Ora questo problema è superato in quanto l’elaborazione, pur se più lenta, avviene su file. È quindi sufficiente avere spazio disponibile sull’hard disk per elaborare anche casi con oltre 1.000.000 (un milione) di possibili combinazioni (vedete il caso di Roberto Rena descritto nel topic di cui sopra).
Di seguito spiego le modalità di utilizzo del nuovo calcolo, mentre per aggiornarvi vi basta come al solito accedere al menù Software | Geocat di www.topgeometri.it e scaricare il file di installazione (Setup, se non avete ancora installato Geocat 5.02 nel computer, oppure Upgrade se invece lo avete già installato).
1 - Perché serve il calcolo combinatorio nelle riconfinazioni
Prima di spiegare l’operatività su Geocat, riassumo qui i motivi concettuali che mi hanno indotto a sviluppare questa elaborazione.
La rototraslazione ai minimi quadrati è un calcolo complesso i cui risultati possono variare anche significativamente al solo includere o escludere uno o più punti di inquadramento.
Questo aspetto può portare il tecnico a pensare di aver individuato la soluzione migliore (vettore di scarto più basso, buona variazione di scala, ecc.) anche quando invece non è così. Consideriamo l’approccio manuale normalmente adottato:
- inizialmente considero tutti i punti di appoggio e lancio il calcolo;
- vedo che un punto ha uno scarto significativamente superiore alla media degli altri e lo escludo;
- rilancio il calcolo senza quel punto e valuto nuovamente gli scarti;
- vedo che c’è un secondo punto con scarto eccessivo e quindi escludo anche quello;
- rilancio il calcolo e procedo in questo modo finché i punti di appoggio rimanenti mi danno scarti entro un range omogeneo che mi soddisfa (in considerazione della mappa utilizzata, del grado di precisione atteso, ecc.).
Perché questo approccio è potenzialmente fallace?
Perché nel momento in cui scarto il secondo punto, dovrei reintrodurre nel calcolo il primo che avevo scartato. Così facendo, infatti, potrebbe risultare che tale punto, inizialmente risultato inaffidabile, presenti invece uno scarto buono. Viceversa, senza applicare questa alternanza, rischio (senza averne contezza) di adottare una rototraslazione non ottimale e che può tradursi in un errore di posizionamento del confine in misura non trascurabile.
Quindi, per applicare l’alternanza nel considerare o meno ciascun punto di appoggio, succede che, se davvero voglio trovare la miglior soluzione, devo considerare tutte le combinazioni tra i punti di appoggio, limitandole soltanto alle seguenti due condizioni:
- mantenere nel calcolo un numero minimo di punti di appoggio;
- includere sempre nel calcolo i punti di appoggio che ritengo “vincolanti” in quanto presentano una forte affinità con il confine (stessa genesi cartografica).
Ma il calcolo combinatorio è di tipo esponenziale e produce pertanto un numero enorme di combinazioni possibili, pur imponendo le restrizioni di cui sopra. È quindi praticamente impossibile svolgerlo senza l’utilizzo di un software.
2 - Il nuovo calcolo combinatorio di Geocat 5.02
Con riferimento all’immagine che segue, la situazione di partenza è la seguente:
-
Si inserisce il rilievo in Geocat è si attiva il comando icona Rototraslazione, aprendo la relativa tabella nella quale si trovano calcolate le coordinate del rilievo (colonne E/N ril.).
-
Si importano nella tabella della rototraslazione le coordinate cartografiche (reperite da CorrMap) dei punti di inquadramento mediante il comando Importa file XY.
-
Si attiva il calcolo manuale della rototraslazione (comando Calcola) per un primo esame degli scarti, dal quale si determinano gli eventuali i punti di inquadramento :
-
sicuramente inattendibili (scarto ampiamente fuori tolleranza), che vanno quindi marcati nella colonna finale C. con la sigla NC (non considerare);
-
da mantenere in ogni caso perché, oltre allo scarto in tolleranza, presentano una forte affinità con il confine, che vanno marcati con la sigla CS (considera sempre).
- Si attiva il comando Calcolo combinatorio.
La finestra del calcolo combinatorio, aperta da quest’ultimo comando, è riprodotta qui sotto e va utilizzata come di seguito descritto (con riferiemento ai numeri riportati in rosso):
Appena aperta, la finestra presenta già compilati nel riquadro Punti di inquadramento in alto i seguenti dati:
-
N. complessivo (1) : è il numero totale di punti di inquadramento che si sono lasciati operativi nella tabella della rototraslazione, cioè quelli che non si sono marcati con NC.
-
N. minimo da considerare (2) : in questa cella va inserito il numero minimo di punti che vanno cinsiderati nel calcolo. Nel caso in figura, ad esempio, sui 21 punti complessivi si è deciso di considerarne minimo 10. Questo significa che il calcolo prenderà in esame tutte le combinazioni di punti da 10 in su fino ai 21 totali.
-
Punti da considerare sempre (4) : è l’elenco dei punti che nella tabella della rototraslazione sono stati marcati con CS.
Mentre nel riquadro di calclo centrale vengono visualizzati:
-
Combinazioni totali (8) : è il numero complessivo di combinazioni da calcolare in base al numero di punti di cui sopra.
-
Mostra il tempo della fase di calcolo | Complessivo stimato (10) : è la stima del tempo necessario a sviluppare le combinazioni suddette. N.B.: questo dato viene mostrato solo dopo che si è effettuato un primo calcolo combinatorio, quando cioè Geocat avrà avuto modo di registrare il tempo impiegato dal computer in uso per elaborare le combinazioni richieste. Inoltre, data la variabilità delle condizioni operative del computer stesso, il dato diventerà più attendibile man a mano che si procederà ad ulteriori calcoli.
Nel riquadro in alto Punti di inquadramento è anche presente il bottone:
- Aggiorna (3) : questo bottone serve ad aggiornare i dati di cui sopra (n. combinazioni, tempo necessario) nel caso si siano modificati i punti di inquadramento nella tabella della rototraslazione, ad esempio inserendo o cancellando il codice NC o CS ad altri punti (in realtà compiendo questa operazione i dati si aggiornano automaticamente nella finestra di calcolo, ma il bottone può essere utilizzato a scopo di ulteriore verifica).
Se si ritiene che i dati di cui sopra siano corretti, si può procedere al calcolo come segue:
-
Calcola (5) : questo bottone lancia il calcolo delle combinazioni. Appena cliccato l’etichetta dello stesso si tramuta in Stop, il che significa che ricliccandolo si arresta l’elaborazione e il proramma chiede se si vogliono comunque portare a termine le combinazioni elaborate fino a quel momento. Se non la si ferma, il calcolo procede fino a calcolare tutte le combinazioni.
-
Fase di calcolo (6): il calcolo combinatorio di Geocat si compone di tre fasi: 1) calcolo delle combinazioni; 2) applicazione del peso della variazione di scala; 3) applicazione del peso del vettore medio di scarto. In questa cella viene mostrata la fase in corso di svolgimento. Si tenga presente che ciascuna fase deve elaborare tutte le combinazioni previste, tuttavia il tempo complessivo stimato (10) considera tutte e tre le fasi.
-
Combinazioni calcolate (7): è il numero progressivo, che scorre velocemente, delle combinazioni elaborate fino a quell’istante.
-
Mostra il tempo della fase di calcolo | Trascorso dall’inizio (10) : è il tempo cronometrato dell’elaborazione da quando si è lanciato il calcolo. Oltre che essere indicativo di quanto tempo manca al completamento (per confronto con il tempo complessivo stimato), serve a Geocat per registrare la capacità elaborativa del computer e affinare la stima del tempo per i calcoli successivi.
Al termine dell’elaborazione di tutte le combinazioni (o prima se si è interrotto il calcolo cliccando Stop), si apre la tabella delle rototraslazioni elaborate sotto riportata, la quale presenta nelle colonne i dati elencati di seguito:
-
Punti inq. : sono i punti di inquadramento della combinazione considerata, punti che ovviamente non sono mai gli stessi ma cambiano quanto meno di un punto (diverso o in più/meno) tra una riga e l’altra.
-
Poligono inq. : sono i punti di inquadramento che formano il poligono esterno che ingloba tutti gli altri punti. Questo poligono riveste particolare importanza per la successiva valutazione dell’extrapolazione del confine (quando questo è esterno al poligono stesso) e quella inerente la sua baricentricità (che influenza l’adattamento apportato dalla variazione di scala).
-
Rotaz. : è l’angolo di rotazione calcolato dalla rototraslazione (nell’esempio qui illustrato è di valore contenuto perché trattasi di un rilievo GPS con il Nord prossimo a quello della cartografia catastale).
-
V. Scala : è il fattore di scala calcolato dalla rototraslazione.
-
m_km : è la variazione di scala espressa in m/km, un dato di più facile consultazione rispetto al fattore numerico.
-
V. min/max : sono rispettivamente il vettore di scarto minimo e massimo della rototraslazione, servono a valutare meglio il vettore medio (7) , nel senso che a parità di vettore medio è preferibile la soluzione che presenta il divario minore tra questi due valori.
-
Vettore : è il vettore medio di scarto, cioè la media degli scarti di tutti i punti di inquadramento, vale a dire il dato più importante per valutare la bontà della rototraslazione.
-
Rango : è un numero che indica la media pesata tra la variazione di scala e il vettore medio di scarto della rototraslazione. Significa quanto segue:
-
Se ordiniamo le rototraslazioni ottenute per variazione di scala (vedi più avanti), otteniamo una classifica che va dalla rototraslazione che ha la variazione di scala più bassa, che sarà quella in posizione (riga) 1, a quella che ha la variazione di scala più alta, che sarà quella in ultima posizione (riga).
-
Se invece applichiamo l’ordinamento al vettore medio di scarto, otteniamo un’analoga classifica, che sarà però completamente diversa da quella dell’ordinamento per variazione di scala. Esempio:
-
la rototraslazione n. 1 per variazione di scala, nella classifica del vettore di scarto si trova, supponiamo, in posizione 267. In questo caso il rango sarà 1 + 267 = 268;
-
la rototraslazione n. 1 per vettore di scarto, nella classifica della variazione di scala si trova, supponiamo, in posizione 451. In questo caso il rango sarà 1 + 452 = 452, quindi peggiore di quella sopra (più basso è il rango, migliore è la rototraslazione);
-
la rototraslazione n. 45 per variazione di scala, nella classifica del vettore di scarto si trova, supponiamo, in posizione 21. In questo caso il rango sarà 45 + 21 = 66.
Come si può notare quindi, il rango esprime la classifica delle rototraslazioni che tiene conto di entrambi i parametri, variazione di scala e vettore medio di scarto, ed è pertanto un dato utile nel caso li si voglia tenere in consierazione entrambi contemporaneamente. L’esempio qui sopra, tuttavia, vale solo se nelle celle dei pesi da attribuire ai due parametri (11) (figura che segue) si è attribuito il valore 1.00 sia alla variazione di scala che al vettore medio di scarto:
Se invece si desidera dare minor peso ad uno dei due parametri, basterà abbassarne il valore così da aumentarne di conseguenza il rango. Ad esempio, se diamo peso 0.5 alla variazione di scala, lasciando invece peso 1.0 al vettore medio di scarto, nel terzo dei casi sopra elencati il calcolo del rango diventa:
45 / 0.5 + 21 / 1 = 111 (contro 66 con pesi entrambi a 1).
La tabella delle rototraslazioni può essere ordinata (istantaneamente) secondo i tre fattori in gioco operando come segue:
- Variazione di scala: cliccando sul titolo delle colonne V. Scala o m_km:
- Vettore medio di scarto: cliccando sul titolo della colonna Vettore:
- Rango: cliccando sul titolo della colonna Rango:
In questo modo si possono fare le opportune considerazioni sulla rototraslazione da ritenersi la più idonea. Con il riquadro dei valori da imporre (12), figura qui sotto, si può procedere ad una ricerca ancora più mirata. Qui vengono infatti indicati dal programma i valori minimo e massimo sia della variazione di scala che del vettore medio di scarto e, nelle celle corrispondenti, si possono inserire i range di valori desiderati:
Fatto ciò, basta cliccare il bottone Trova le combinazioni entro i valori imposti (14). Geocat apre una nuova tabella con le sole rototraslazioni che soddisfano i limiti prefissati, indicando nella barra del titolo il numero delle stesse:
Questa tabella è ovviamente anch’essa ordinabile per le tre colonne già viste, potendo così affinare ancor più la propria analisi. Una volta scelta la rototraslazione che si considera più idonea, è sufficiente fare clic destro sulla riga e attivare l’opzione Imposta questi punti di inquadramento nella tabella della rototraslazione. Questo comando imposta i punti della tabella inserendo automaticamente il codice SC (scartato) a tutti i punti di inquadramento non compresi nella soluzione adottata, le cui righe vengono colorate di giallo:
A questo punto, da questa tabella si può quindi procedere al calcolo finale di questa rototraslazione (icona Calcola) per valutare tutti i risultati (inclusi baricentri, eventuale extrapolazione, ecc.) e gli scarti dei singoli punti di inquadramento: