In questo articolo ti spiego come puoi trattare la presenza di erba e vegetazione (bassa) all’interno di una nuvola di punti con il software open source Cloud Compare.
LA FOTOGRAMMETRIA È UNA TECNICA PASSIVA
Se ti capita di dover elaborare una nuvola di punti di un rilievo aerofotogrammetrico, potresti trovarti di fronte ad un campo di erba alta o ad una piantagione di mais.
Se vuoi restituire la quota del terreno questo scenario potrebbe non essere banale da trattare.
La fotogrammetria è una tecnica di rilievo passiva e prende le informazioni, degli elementi da ricostruire, dalle fotografie.
Per questo motivo, se qualcosa è nascosto al sensore fotografico non viene rappresentato.
Se fai un volo fotogrammetrico sopra un campo d’erba, alta 50 cm, e poi elabori i dati in un software di fotogrammetria (ad algoritmi structure from motion), difficilmente riuscirai a sapere la quota del terreno che ci sta sotto.
Probabilmente otterrai una nuvola di punti che rappresenta piuttosto bene la parte superiore del manto erboso, non il terreno.
Ma è proprio il terreno quello che devi restituire quando fai un rilievo topografico.
HAI DUE POSSIBILITÀ
Se sei in un caso come quello che ti ho appena descritto hai due possibilità operative.
Una rigorosa.
E un’altra che lo è decisamente meno.
Questo articolo riguarda la tecnica meno rigorosa.
Quindi prima ti parlo, brevemente, di quella rigorosa, così ci sono più possibilità che tu la legga senza abbandonare l’articolo dopo aver imparato l’altro metodo.
😛
INTEGRARE IL RILIEVO TOPOGRAFICO
Il metodo corretto che si dovrebbe sempre seguire nel caso in cui ci siano zone coperte da vegetazione, in un’area su cui si fa un rilievo aerofotogrammetrico, è quello di integrare le misure topografiche, lì dentro, utilizzando strumenti di misura a terra.
Se hai un boschetto all’interno di un campo arato, o in un’area urbana, è una buona cosa battere un po’ di punti sotto gli alberi usando una stazione totale (perchè difficilmente un ricevitore GNSS funzionerà bene sotto le chiome).
Se invece hai un campo di mais alto due metri puoi battere un po’ di punti del terreno al suo interno con un ricevitore satellitare, magari alzando un più del solito la palina per fare uscire bene l’antenna dal mais.
E puoi fare lo stesso in un prato erboso o sul fondo di un torrente dove scorre l’acqua (sì, perchè anche l’acqua nasconde alle foto il terreno del fondo).
Batti tanti punti quanti te ne servono per descrivere e definire l’andamento del terreno.
Rileva i piccoli canali irrigui in un’area agricola, fossi e dune, irregolarità ed elementi notevoli.
Purtroppo non riuscirai ad uguagliare la densità di informazioni che ti fornisce un rilievo fotogrammetrico.
E probabilmente neppure ti ci avvicinerai.
Sarebbe folle battere un punto ogni 5 cm!
Ma almeno avrai dati coerenti per integrare il rilievo generale e restituire un risultato validabile e veritiero.
Quello che si fa operativamente nella fase di elaborazione e trattamento dei dati è “bucare” la nuvola di punti fotogrammetrica in corrispondenza della vegetazione.
I buchi li riempi poi con le misure, più discrete, rilevate a terra.
Ecco, questo è il metodo rigoroso.
Magari può essere uno spunto per un altro articolo approfondito su un caso reale.
Ed ora ti parlo di quello meno rigoroso!
ABBASSA LE QUOTE DEI PUNTI CHE CORRISPONDONO ALL’ERBA
Lo so che detta così può sembrare una soluzione un po’ estrema.
E non nego che lo sia.
Ma potresti non aver fatto tu il rilievo pur dovendoci mettere necessarimanete mano per il tuo lavoro e le tue esigenze.
Oppure sei in un caso in cui l’erba è tutta alla stessa altezza (con buona e ragionevole approssimazione).
O ancora, potresti aver bisogno di indicazioni di massima sulle quote del suolo per costruire un modello digitale del terreno, DTM, grossolano, utile, ad esempio, per analisi preliminari di deflussi idrici superficiali.
Insomma, ho provato a darti delle giustificazioni valide per applicare questo metodo.
Se ne hai altre scrivile nei commenti!
Se conosci in più punti l’altezza del manto erboso e non sei in un caso di terreno eccessivamente complesso, puoi sottrarre alla quota della nuvola di punti, che rappresenta la parte superiore dell’erba, l’altezza media del manto.
In questo modo ti avvicini un po’ alla quota del terreno.
Ora ti dico come puoi fare, velocemente, usando il software open source Cloud Compare.
CLOUD COMPARE
Cloud Compare è un software open source per elaborare nuvole di punti.
Ne ho scritto ormai un po’ di articoli, non perchè sia uno sponsor di 3DMetrica ma perchè penso che sia un ottimo software, funzionale e piuttosto “potente”, che permette a chiunque di poter mettere mano alle nuvole di punti tridimensionali, senza ricorrere ad un software commerciale.
Senza annoiarti sui pregi di Cloud Compare, ti rimando a quello che ho già scritto e che trovi tra le pagine di questo blog:
Avevo scritto due articoli su come usare Cloud Compare per fare delle sezioni da nuvole di punti.
Li trovi a questi link: una sezione da una nuvola di punti, sezioni con Cloud Compare.
Se vuoi sapere come generare un Modello Digitale di Elevazione e le curve di livello, l’ho scritto qui.
Qui invece ho scritto come pulire una nuvola di punti da vegetazione ed elementi antropici sul terreno.
Occhio però perchè questo metodo non funziona in casi di “tappeti” erbosi, boschi fitti o arbusti molto addensati.
È più indicato per vegetazione isolata e non funzionerebbe bene per gli scopi di questo articolo.
Infine qui ho scritto di come puoi alleggerire una nuvola densa di punti rendendola più gestibile anche usando un computer con hardware non eccessivamente performante.
LA FUNZIONE “APPLY TRANSFORMATION“
Il comando da usare per abbassare la quota ai punti di una nuvola è Apply Transformation e lo trovi nel menù Edit, oppure usando la combinazione di tasti CTRL+T.
IMPORTA LA NUVOLA DI PUNTI
Inizia con l’importare la nuvola di punti che vuoi trattare.
L’esempio di queste immagini non è molto azzeccato perchè l’erba che vedi è stata da pochissimo tagliata.
Ha la stessa quota dei campi arati lì intorno e non ha necessità reale di essere trattata ed abbassata.
Purtroppo non ho un dataset indicato per gli scopi di questo articolo.
Ti prego di prendere i contenuti che leggi come indicazioni per trattare il tuo caso specifico senza focalizzarti troppo sull’esempio che ti porto.
Guarda solo il metodo ed i passaggi.
E grazie mille per la comprensione!
SEPARA LA ZONA DA TRATTARE DAL RESTO DELLA NUVOLA
Se devi trattare solo una parte della nuvola di punti è necessario che tu faccia un importante passaggio preliminare: separare la nuvola da trattare da quella che rimarrà invariata.
Lo puoi fare usando il comando Segment, che trovi anch’esso nel menù Edit.
Quando lanci il comando hai la possibilità di perimetrare una porzione di nuvola che, nel passo successivo, verrrà separata dal resto.
È piuttosto semplice, ma comunque ne avevo parlato con maggiore approfondimento nell’articolo sulla pulizia delle nuvole.
Il risultato dell’operazione di segmentazione è la creazione di due nuvole di punti separate.
Una contiene i punti all’interno del contorno di segmentazione e l’altra la parte esterna, che rimane fuori.
APPLY TRANSFORMATION
Ora puoi lanciare il comando Apply Transformation.
CTRL+T
Oppure Edit – Apply Transformation
Quello che vedrai è una finestra come quella nell’immagine qui sotto.
Questo strumento ti permette di trasformare una nuvola di punti (in realtà anche altri elementi: polilinee e mesh) che hai selezionato.
E le trasformazioni possono essere, fondamentalmente, di due tipi: traslazione o rotazione.
Hai più scelte.
Puoi lavorare su una matrice di trasformazione.
Puoi scegliere di fare una rotazione, una traslazione o una combinazione delle due.
Puoi scegliere di lavorare sugli angoli Euleriani applicando anche un vettore di traslazione.
Puoi anche decidere di applicare la trasformazione inversa, mettendo una spunta in un apposito checkbox.
Attenzione perchè Apply Trasformation non ti crea una copia della nuvola di punti ma trasla l’entità che hai scelto di trattare!
Non entro nel dettaglio di tutti i parametri che puoi scegliere e vado dritto al punto per risolvere il problema di questo articolo.
Devi scegliere una traslazione lungo l’asse z.
Ovviamente i presupposti sono che la nuvola di punti sia correttamente orientata e georeferenziata, dove l’asse z è quello corrispondente alla verticale.
Scegli la finestra Axis, Angle.
Cerca la sezione relativa alle traslazioni e indica nel box della z il valore con segno negativo (perchè vuoi abbassare le quote dei punti) il cui valore assoluto corrisponde all’altezza del manto erboso che vuoi trattare.
Fai click su Ok e vedrai che la nuvola si traslerà del valore che gli hai imposto.
Puoi controllare quello che è successo alla nuvola anche nella finestra delle informazioni, nella parte sinistra dell’area di lavoro, in basso, dove trovi un box che sia chiama “Transformation History“.
Qui dentro hai traccia delle modifiche che hai fatto sulla nuvola di punti.
Se poi vai ad esplorare la matrice di trasformazione vedrai la traslazione che hai appena applicato, così come ogni altra trasformazione che hai fatto sulla nuvola.
Insomma tiene traccia di tutto.
MIND THE GAP – OCCHIO ALLO SCALINO!
Ora che hai traslato la nuvola di punti devi stare attento allo scalino che ti si crea tra quello che hai traslato e quello che è rimasto in posto.
Se la traslazione è stata fatta bene, ossia se hai abbassato il manto erboso dell’altezza giusta, non dovresti avere degli scalini troppo evidenti.
Piuttosto, potresti avere qualche lieve “scollamento“.
Se invece qualcosa non è filato per il verso giusto, non hai fatto una selezione precisa della nuvola da trattare, hai inserito un valore sbagliato del vettore di traslazione o se il manto erboso non era proprio omogeneo, in termini di quota, potresti avere degli scalini vuoti, come quello dell’immagine che ti metto qui sotto.
Se ti trovi in un caso come questo, non mi sento proprio di dirti di andare avanti.
Se hai applicato questo metodo con lo scopo di portare a livello del terreno la superficie del manto erboso, è evidente che questo risultato non può essere soddisfacente.
Se invece hai dei buchi piccoli e localizzati, che dipendono dalla specificità del caso che stai trattando, potresti optare per frammentare l’area da elaborare in tante sotto-nuvole e gestirle separatamente con traslazioni dedicate.
Potrebbe funzionare.
IN CONCLUSIONE
Ti lascio con due riflessioni/considerazioni in chiusura.
QUESTA TECNICA NON FUNZIONA CON I BOSCHI
Se ti stai chiedendo se puoi applicare questa tecnica anche per trattare le aree boscate, con alberi fitti, mi dispiace ma non puoi.
Gli alberi hanno una forma generalmente disomogenea, anche se appartengono alla solita specie.
Difficilmente un bosco avrà alberi tutti con la stessa chioma, alla stessa quota.
E questo non ti permette di poter trovare un’altezza media, valida per tutti gli alberi dell’area da applicare nel processo di trasformazione
Affinchè funzioni hai bisogno di superfici che siano le più omogenee possibili.
Le migliori sono i prati erbosi (non incolti, ma vagamente gestiti) o le aree agricole coltivate con colture che crescono in modo omogeneo su tutta la superficie.
E poi è importante che tu prenda un po’ di misure, distribuite, dell’altezza della vegetazione.
In questo modo puoi trattare la nuvola di punti in maniera coerente con le condizioni che effettivamente riscontri sul campo.
NON ESAGERARE
E finisco con una raccomandazione, spassionata e personale: “non esagerare!”
Questo metodo ti può venire in aiuto in qualche situazione particolare ed è pensato per trattare piccole parti coperte da vegetazione all’interno di aree più grandi rilevate con l’aerofotogrammetria.
Non lo applicare su prati vasti o grandi coltivazioni di mais.
È già poco rigoroso di suo, non renderlo una forzatura esagerata!
🙂
In questi casi è meglio lasciar perdere la fotogrammetria e passare direttamente al rilievo terrestre tradizionale.
Spero di averti dato informazioni utili, in caso dovessi trovarti a trattare le nuvole di punti con l’erba.
Non in quel senso!!!
🙂
Lo spunto per scrivere questo articolo mi è arrivato da uno scambio di messaggi online con l’Arch. Riccardo Deregibus dello StudioR3D, che non posso far altro che ringraziare!
Se hai dubbi, domande, approfondimenti o osservazioni speficihe contattami!
Il metodo che preferisco è tramite messaggio o nota vocale di diretta su Telegram, a telegram.me/paolocorradeghini, ma va benissimo qualunque modo tu sceglierai per metterti in contatto con me: email o canali Social Network.
Il mio indirizzo email lo trovi nella sezione contatti di questo blog.
Tutti i miei collegamenti Social Network sono invece in fondo alla pagina chi sono.
Se ti va di seguirmi quotidianamente negli aggiornamenti che condivido online lo puoi fare sul canale Telegram di 3DMetrica che trovi a telegram.me/tredimetrica o direttamente a questo link.
Ed infine puoi ascoltare le puntate del nuovo Podcast di 3DMetrica andando nella pagina PODCAST di questo blog.
O su Spreaker (che è il servizio che uso per pubblicare le puntate online).
Grazie ancora per avermi dedicato un po’ del tuo tempo.
A presto!
Lasciami un commento!
Leave A Reply