IMPORTANTE - Geocat 28 - Riconfinazioni, nuovo calcolo combinatorio rototraslazioni

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:

  1. inizialmente considero tutti i punti di appoggio e lancio il calcolo;
  2. vedo che un punto ha uno scarto significativamente superiore alla media degli altri e lo escludo;
  3. rilancio il calcolo senza quel punto e valuto nuovamente gli scarti;
  4. vedo che c’è un secondo punto con scarto eccessivo e quindi escludo anche quello;
  5. 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:

  1. 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.).

  2. Si importano nella tabella della rototraslazione le coordinate cartografiche (reperite da CorrMap) dei punti di inquadramento mediante il comando Importa file XY.

  3. 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).

  1. 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:

  1. 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.

  2. 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).

  3. 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).

  4. V. Scala : è il fattore di scala calcolato dalla rototraslazione.

  5. m_km : è la variazione di scala espressa in m/km, un dato di più facile consultazione rispetto al fattore numerico.

  6. 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.

  7. 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.

  8. 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:

image

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:

  1. Variazione di scala: cliccando sul titolo delle colonne V. Scala o m_km:

  1. Vettore medio di scarto: cliccando sul titolo della colonna Vettore:

  1. 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:

image

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:

1 Mi Piace

Ciao Gianni,
ho provato immediatamente le nuove funzionalità e ti riporto un paio di probabili correzioni da fare (ameno che non sia io che sbagli qualcosa), quando lancio il calcolo combinatorio, una volta deciso il poligono di inquadramento, vado di tasto destro e gli dico di usare la combinazione scelta, quindi mi sposto nella tabella della rototraslazione e qui avvengono due cose:

  1. se lascio spuntata l’opzione di aprire la tabella dei vettori di scarto mi da errore
    Errore 1
  2. tolta la spunta di cui sopra, provo comunque ad eseguire il cacolo con il poligono di inquadramento scelto, ma vedo che prende in considerazione anche i punti scartati con siglatura “SC”

    oltre a quanto sopra, molto spesso mi chiede di pulire gli archivi, a volte perché do dei nomi troppo lunghi ai file (credo) altre volte non saprei…
    devo impostare qualcosa di diverso io?
    Ciao e buona serata

anche io ho lo stesso problema da quando ho fatto l’aggiornamento, ho anche disinstallato e reinstallato con il file .exe ma continua a bloccarsi.

Ciao Massimiliano e Ivan,
avete ragione, questi sono i classici bug di quando, come in questo caso, si inseriscono implementazioni che cambiano radicalmente il comportamento del programma.
Ho sistemato sia il problema del crash all’apertura della tabella dei vettori di scarto, sia quello dei punti di inquadramento marcati SC (non cancellava quelli del calcolo precedente).
Scaricatevi l’agg. 28 e fatemi sapere se vi torna il tutto.

Sì, i nomi troppo lunghi possono causare il problema. Ma se la causa non è questa, per darmi modo di risolvere dovresti seguire questi passaggi:

  • Quando ti esce il messaggio generico:
    image
    appena premi OK, ti esce un ulteriore messaggio con una dicitura (in Inglese) che indica l’errore che si è verificato.

  • Dovresti quindi mandarmi questo messaggio dicendomi esattamente le operazioni che avevi compiuto fino alla sua comparsa, così riesco a riprodurre il problema nella mia installazione e risolverlo. A quel punto, se fosse necessario, ti chiederò anche di mandarmi la cartella del Lavoro di Geocat; questo perché questo errore dipende dai dati elaborati.

Ciao Gianni,
adesso il problema della pulizia archivi sembra che non lo dia più… ma persiste il problema della siglatura “SC”.
Imposta correttamente i punti che non deve calcolare, ma li mette comunque nel poligono di inquadramento quando lancio la rototraslazione.

inoltre ora non mi apre più il CAD quando lancio il disegno della riconfinazione… Lo recupero lo stesso dalla cartella RTB e li noto che la stazione 100 me la mette proprio fuori dal rilievo… premetto che è un rilievo misto, stazione e gps, quasi a schema libero, nel calcolo locale non da problemi, ma se vuoi verificare ti invio la cartella senza problemi…
buona serata
Massimiliano

Ciao Massimiliano,
ho provato a chiamarti al cell. per fissare una video-assistenza in modo da vedere esattamente quello che succede nella tua installazione, ma mi dice che il tuo telefono è spento o irraggiungibile. Chiamami tu appena puoi al 320-2896417 così fissiamo.

Ciao Massimiliano,
in realtà il problema dei punti di inquadramento inseriti nel poligono l’avevo risolto già negli aggiornamenti prececenti, vedi qui:

Nell’aggionamento di oggi (n. 34) ho risolto anche il problema della tua stazione 400 che nel disegno veniva collocata alle coordinate locali del rilievo (0.000, 0.000) anziché a quelle cartografiche. La causa era dovuta al fatto che nel tuo caso la 400 (base GPS) veniva osservata anche celerimetricamente ma senza che fosse una stazione. Ora ho incluso anche questa casistica e il disegno esce correttamente anche in coordinate cartografiche: