QGis para LIDAR: colorear a partir de una imagen

Tutorial : LIDAR HD con QGIS 3.32

En este artículo descubrirás cómo transferir los colores (colorear) de una imagen u ortofoto a los puntos de una nube LIDAR utilizando CloudCompare. Esta representación es comparable a la de una ortofoto, facilitando el trabajo con nubes no clasificadas y datos clasificados.

1- Datos LIDAR en QGis 3.32

2- Descargue los datos del IGN HD LIDAR y cárguelos en QGis

3- Herramientas para datos LIDAR en QGis 3.32

4-Colorear una nube de puntos a partir de una ortofoto

Vea este vídeo y muchos otros en nuestro canal de Youtube: https://www.youtube.com/@sigterritoires

Cuando cargas datos LIDAR en QGis te enfrentas a dos tipos de representación.

En el caso de datos sin clasificar, verás un cuadrado gris si la simbología está configurada en clasificación:

visualizar las clases de una nube de puntos sin clasificar

o un gradiente de color si tiene una simbología de rampa en un atributo (en este caso, la intensidad de la señal):

visualización de la intensidad de la señal de una nube lidar

En el caso de los datos clasificados, la visualización de las clases es un poco (no mucho) más significativa:

visualización de las clases lidar

Si se comparan estas representaciones con una ortofotografía :

orthofotografía

Hay que admitir que es mucho más agradable trabajar con este último tipo de renderizado, en el que se pueden ver los objetos como se verían normalmente.

Pues bien, es perfectamente posible trabajar con nubes de puntos LIDAR con el mismo tipo de renderizado que con una ortofotografía. Uno de los atributos estándar de los puntos LIDAR es el atributo RGB, que se utiliza para almacenar un valor de color para cada punto. Para visualizar los colores de los puntos, basta con seleccionar la simbología RGB en la pestaña simbología de las propiedades de la capa.

simbología qgis por rgb de una nube lidar

Pero, por supuesto, estos valores deben haberse introducido previamente. Y este no es el caso de los datos IGN HD. Así que vamos a ver aquí cómo transferir los valores de color de los píxeles de una ortofoto a los puntos correspondientes de la nube de puntos LIDAR.

Para ello, necesita su nube de puntos LIDAR y una ortofoto u otra imagen aérea de la misma zona.

Colorear datos LIDAR con CloudCompare

En este capítulo vamos a utilizar CloudCompare para realizar la operación. En el próximo capítulo utilizaremos la caja de herramientas LAStools.

¿Por qué debemos hacer esto? Porque la herramienta utilizada para realizar esta operación en LAStools forma parte del procesamiento de pago. Puedes seguir realizando el procesamiento, pero el resultado es degradado deliberadamente por LAStools. Aunque no puedas apreciar ninguna diferencia a simple vista, empecemos con un tratamiento que te dará el mejor resultado al mejor precio (gratuito).

Además, el tratamiento con CloudCompare es bastante sencillo, y te permitirá familiarizarte con su funcionamiento. Después podrás utilizar CloudCompare para operaciones más complicadas.

Para descargar CloudCompare haz clic aquí.

Iniciar CloudCompare

Una vez instalado, abre el programa.

pantalla de inicio de cloudcompare

Utiliza el menú File->Open para cargar la nube de puntos a procesar: señale el archivo, haga clic en Open, en la ventana que se abre haga clic en el botón Apply all.

Verás una ventana que merece alguna explicación:

pantalla de cambio/escala de cloudcompare

Antes de cargar un fichero, CloudCompare analiza las coordenadas X, Y y Z. Calcula «desplazamientos» para las coordenadas con el fin de mantener sólo la parte que realmente varía en la extensión del área de trabajo. Por ejemplo, en esta ventana, sugiere restar el valor -6225500 de los valores Y, que son del orden de 6 millones, para obtener valores Y significativos. Una vez finalizado el tratamiento, en los ficheros resultantes, añadirá el mismo valor a los valores Y obtenidos. Esto permite trabajar sólo con valores significativos conservando las coordenadas verdaderas, pero fuera del procesamiento.

Para las nubes de puntos, puede simplemente aceptar los valores propuestos, que serán siempre correctos.

Encontrará su nube de puntos en la ventana principal, y cuando se carga el punto de vista se coloca encima de la nube de puntos.

visualización lidar en cloudcompare

Utilice el ratón para visualizar la nube en cualquiera de las tres dimensiones.
Para ver los puntos con mayor claridad, en el panel Properties, busque la sección Color Scale y en Current seleccione High contrast.

mejora de la visualización lidar en cloudcompare

Cargar la ortofoto

Ahora vamos a cargar la ortofoto.

Si utilizas el mismo proceso que para la nube de puntos, cargarás la imagen como una imagen tif. Para lo que queremos hacer, necesitamos cargarla como nube de puntos. Para ello, abre el administrador de archivos, vé al directorio de imágenes, haz clic en el archivo de imagen y arrástralo a la ventana CloudCompare.

Aparecerá esta ventana:

importar mensaje como nube de puntos

Haz clic en Yes.

Al igual que con la nube de puntos, aparecerá la ventana de shift/scale.

corrección de la altura de la imagen en cloudcompare

Aquí tenemos un valor que modificar. Puede que ya te hayas dado cuenta de que en la ventana de CloudCompare estamos en una caja 3D que se parece a nuestro mundo real pero que tiene sus propias referencias. A diferencia de un SIG, que determinará si dos puntos en dos capas diferentes están en el mismo lugar comparando sus coordenadas XY, en CloudCompare esto se hará calculando la distancia en las referencias 3D internas. Cuando quiera asignar un valor RGB a un punto de la nube de puntos, buscará el píxel más cercano en la imagen. Pero como estamos en un mundo 3D, este píxel no es necesariamente el que tiene la misma XY, sino el que tiene la menor distancia XYZ. En un terreno irregular, esto puede ser muy diferente del resultado que obtendríamos con un SIG.

Cuando cargamos la nube de puntos (véase la imagen de arriba), los valores Z eran de unos 589 metros. Nuestra ortofoto no tiene coordenadas Z, es decir, tiene valores Z =0. Si dejamos el desfase Z tal y como está (con valor 0) podemos estar seguros de que los puntos más cercanos no corresponderán a las coordenadas XY correctas. Vamos a desplazar los píxeles de la imagen 589 metros. Las dos capas estarán entonces muy próximas y los errores serán mínimos.

Si introducimos este valor como 589, la imagen estará en el medio de la nube de puntos.

visualización de lidar y ortofotos en cloudcompare

Pretratamiento para la coloración

Se podría pensar que tenemos todos los ingredientes necesarios para nuestra operación de coloración. Pero el problema es que tenemos dos capas de puntos, cada una con millones de puntos. Encontrar la correspondencia entre estas dos capas llevaría demasiado tiempo. Una forma de reducir significativamente este tiempo de procesamiento es crear una trama TIN de nuestra foto. A continuación, podemos utilizar los vértices del TIN para colorear nuestra nube LIDAR.

Para crear un TIN, haz clic en la capa de la foto en la lista de capas, luego en la herramienta CloudCompare Raster.

botón rasterizar en cloudcompare

Aparecerá la ventana de configuración de la transformación ráster.

Salvo en casos excepcionales, verá un mensaje invalid grid boo en el parámetro de size. No te preocupes, haz clic en el botón Edit Grid y, en la ventana que se abre, marca la casilla keep square y, a continuación, OK.

cuadrícula de corrección rasterizada en cloudcompare

El parámetro paso indica la precisión de la malla. Por defecto es de 1 metro y da buenos resultados, pero puedes aumentar la precisión, aunque debes tener en cuenta que esto aumenta los tiempos de procesado.

En Active Layer seleccione RGB

El parámetro dirección debe estar en Z para la interpolación horizontal y el parámetro cell height puedes dejarlo al mínimo o cambiarlo, pero en realidad no supondrá ninguna diferencia.

Haga clic en Update grid y verá una vista previa del resultado

cuadrícula que se utilizará para la rasterización en cloudcompare

Puede desmarcar Export statistics y, a continuación, hacer clic en Mesh para empezar a crear el NIT.

Verá que el TIN se añade a la lista de capas del proyecto. A continuación, puede cerrar la ventana de rasterización.

Puede desmarcar el orto original en la lista de capas para ver el TIN que se utilizará.

Colorear la nube de puntos

Ya está todo listo para transferir los colores del TIN a nuestra nube LIDAR. Selecciona la capa de vértices y la capa Lidar


selección de capas para la coloración

Para colorear, vamos a utilizar el menú Edit -> Color -> Interpolate from another entity

interpolate from another entity cloudcompare

En cuanto pulsamos sobre el menú, se ejecuta el comando.

inicio del proceso de colorización

CloudCompare no pregunta por las capas de origen y destino. Asume que la capa de origen es la que tiene valores RGB y la de destino es la que no los tiene. Si ambas tienen valores, debes usar primero el comando CLEAR sobre la capa de destino.

borrar colores menú cloudcompare

El resultado de nuestro comando, después de esperar pacientemente a que termine el proceso, es:

resultado colorear cloudcompare

Sólo queda exportar el resultado como archivo .las o .laz

Seleccionamos la capa LIDAR original, que ahora tiene valores RGB, y en el menú File->Save. Introduce un nombre (aquí resultat) y la extensión deseada (.las o .laz). Tendrás tu nueva nube LIDAR coloreada lista para cargar en QGis:

visualizar colorise qgis

Puedes hacer zoom para ver los puntos coloreados.

zoom mostrar nube coloreada en qgis

Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *