QGis para LIDAR: modelo digital del terreno (MDT) En este artículo encontrará la definición de modelo digital del terreno y, paso a paso, cómo crear un MDT a partir de una nube LIDAR clasificada y no clasificada, utilizando CloudCompare y QGis.
Tutorial Procesamiento de datos HD LIDAR con QGis
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
5-Colorear a partir de una imagen con LAStool
6- Modelo digital de superficie (MDS) con CloudCompare y LAStools
7- Créer un Modèle Numérique de Terrain avec CloudCompare
Un Modèle Numérique de Terrain (MNT) et un Modèle Numérique de Surface (MNS) sont deux types de représentations numériques d’un environnement, généralement basés sur des données LiDAR. Bien qu’ils soient souvent utilisés de manière interchangeable, ils capturent des informations différentes du paysage. Dans l’article précédent nous avons vu comment générer un MNS avec CloudComapre ou LAStools. Nous verrons ici comment générer un MNT avec CloudCompare et dans le prochain article comme le réaliser avec LAStools.
Un Modelo Digital del Terreno (MDT) y un Modelo Digital de Superficie (MDS) son dos tipos de representación digital de un entorno, basados normalmente en datos LiDAR. Aunque a menudo se utilizan indistintamente, capturan información diferente sobre el paisaje. En el artículo anterior vimos cómo generar un DSM utilizando CloudComapre o LAStools. Aquí veremos cómo generar un MDT con CloudCompare y en el próximo artículo cómo hacerlo con LAStools.
Modelo Digital del Terreno (MDT):
Un Modelo Digital del Terreno (MDT) representa la topografía real del terreno bajo todas las características presentes en la superficie, como vegetación, edificios u objetos artificiales. Se trata esencialmente del terreno natural, despojado de todas las estructuras y elementos elevados que no forman parte de la topografía subyacente. Un MDT se obtiene generalmente filtrando o clasificando los puntos LiDAR para retener sólo los que corresponden al terreno. De este modo, el MDT se aproxima más a la topografía real, proporcionando información valiosa para el análisis geomorfológico, la hidrología, la cartografía de pendientes, etc.
Modelo Digital de Superficie (MDS):
Un modelo digital de superficie (MDS) representa la superficie visible del paisaje, incluidos los elementos situados sobre el suelo, como edificios, vegetación, vehículos, etc. A diferencia de los MDT, los MDT no filtran los objetos situados por encima del suelo y, por lo tanto, capturan toda la topografía, incluidas las estructuras y los elementos elevados. Por lo tanto, los datos LiDAR utilizados para crear un MDT incluyen todas las características presentes, lo que lo convierte en una representación más completa del paisaje visto desde arriba.
Diferencias entre MDT y MDS :
- Contenido: El MDT sólo incluye puntos que corresponden al suelo, mientras que el MDT incluye todos los puntos por encima del suelo, incluidos objetos y estructuras.
- Usos: Los MDT suelen utilizarse para análisis geomorfológicos, hidrológicos, geológicos y de ordenación del territorio. El MDT se utiliza para la modelización visual, la cartografía urbana, la gestión de recursos naturales y otras aplicaciones que requieren una visión completa de la superficie.
- Análisis: el MDT puede proporcionar información precisa sobre la topografía real del terreno, mientras que el MDT permite visualizar y analizar elementos situados por encima del suelo, como edificios y vegetación.
En resumen, el Modelo Digital del Terreno (MDT) se centra en el terreno natural y elimina las características sobre el suelo, mientras que el Modelo Digital de Superficie (MDS) incluye todas las características de elevación. Cada uno de estos modelos tiene sus usos específicos, en función de los requisitos de análisis y visualización.
Creación de un MDT a partir de una nube clasificada con QGis
En una nube clasificada ya tenemos la información que necesitamos para generar un MDT: clase 2 – Suelo. De hecho, todos los puntos correspondientes a la superficie (edificios, vegetación, etc.) pertenecen a otras clases.
Por lo tanto, podemos crear una capa ráster seleccionando únicamente los puntos de la clase 2.
Utilizaremos una nube de puntos clasificados IGN LIDAR HD:
Donde conservaremos sólo los puntos clasificados como «Suelo»:
Para ello utilizaremos una de las nuevas herramientas aplicables a las capas de nubes de puntos: Exportar a raster (mediante triangulación).
En Resolución del raster de densidad elegimos el tamaño de malla de salida.
En Parámetros avanzados -> Expresión del filtro seleccionamos Clasificación = 2, para retener sólo los puntos de la clase 2.
Introduce un nombre para el archivo de salida (aquí groundIGN.tif) y ejecuta el comando.
La forma visual más eficaz de determinar la calidad del MDT es utilizar la Vista de perfil de elevación:
El área azul muestra el MDT que acabamos de calcular.
Creando un MDT a partir de una nube sin clasificar con QGis.
Para esta parte del artículo vamos a trabajar sobre la misma nube de puntos que antes, pero con la clasificación eliminada. Terminamos con todos los puntos en una única clase 0.
Necesitamos por tanto una herramienta que nos permita separar los puntos correspondientes al terreno del resto de puntos. Hay varias, pero vamos a empezar con CloudCompare, que creo que es la «mejor», porque nos permite realizar esta tarea visualizando las diferentes etapas de las pruebas. Estas pruebas son necesarias porque hay que adaptar los parámetros de tratamiento a cada nube en función de una serie de criterios.
Cálculo de MDT con CloudCompare.
El CSF (Cloth Simulation Filter) es un algoritmo de filtrado utilizado en el software CloudCompare para procesar nubes de puntos lidar. Se utiliza principalmente para eliminar el ruido y los valores atípicos de las nubes de puntos, sobre todo en las zonas donde las superficies complejas, como los árboles están presentes, sino también para distinguir entre los puntos de tierra y sobre el terreno.
El filtro CSF toma su nombre de la simulación de telas, por la forma en que modela la estructura de la nube de puntos. La idea básica del filtro CSF es modelar los puntos como si estuvieran unidos a «tejidos» virtuales que se doblan y deforman en función de la densidad de puntos en las zonas circundantes. Se considera que las zonas en las que los «tejidos» están muy deformados tienen superficies complejas, como vegetación o edificios.
He aquí cómo funciona generalmente el filtro CSF en CloudCompare:
- Cálculo de normales: El filtro CSF comienza calculando las normales de los puntos de la nube. Las normales son vectores perpendiculares a las superficies locales de los puntos.
- Creación de «tejidos»: el filtro divide el espacio en una malla 3D y asigna cada punto a un «tejido» virtual en función de su posición y sus normales.
- Simulación de tejidos: el filtro simula cómo reaccionarían estos «tejidos» ante fuerzas como la gravedad. Las «telas» se doblan y deforman en función de la densidad de los puntos que las rodean.
- Detección de ruido: Las zonas en las que los «tejidos» están muy deformados se consideran zonas de ruido o superficies complejas. Los puntos asociados a estas zonas se etiquetan como fuera de campo.
- Filtrado: Los puntos marcados como fuera de campo se eliminan de la nube de puntos, dejando una versión filtrada y limpia de la nube.
El filtro de simulación de tela (CSF) en CloudCompare se puede utilizar para separar los puntos de tierra de otros puntos en una nube de puntos LiDAR. Esto es particularmente útil para aislar la verdadera topografía del terreno de características elevadas como edificios, vegetación u otras estructuras.
Es importante tener en cuenta que el éxito de la utilización del filtro CSF para separar los puntos de tierra de los demás dependerá de los parámetros que elija y de la complejidad del paisaje. Puede ser necesario ajustar los parámetros del filtro varias veces para obtener los mejores resultados.
Es importante tener en cuenta que el éxito de la utilización del filtro CSF para separar puntos de tierra de otros dependerá de los parámetros que elija y de la complejidad del paisaje. Puede ser necesario ajustar la configuración del filtro varias veces para obtener los mejores resultados.
Comenzamos cargando nuestra nube de puntos sin clasificar en CloudCompare:
Abra la ventana del filtro CSF desde el menú Plugins->CSF Filter.
Tenemos la ventana del plugin con un primer parámetro a determinar, el tipo de pendiente del terreno. Hay tres tipos
- terreno llano
- terreno accidentado
- terreno muy accidentado
En nuestro caso, tenemos un terreno accidentado.
A continuación, vaya a la pestaña Configuración de parámetros avanzados
Los dos parámetros a ajustar son
Cloth resolution
El parámetro ‘Cloth resolution’ en el filtro CSF (Cloth Simulation Filter) de CloudCompare se refiere al tamaño de la malla tridimensional utilizada para modelar la ‘tela’ virtual en el proceso de simulación.
Cuando se aplica el filtro CSF para filtrar una nube de puntos, se divide el espacio en regiones más pequeñas utilizando una cuadrícula tridimensional. Cada región se trata como una «tela» virtual que reacciona a las fuerzas aplicadas, simulando el movimiento y la deformación de una tela real. El parámetro «Resolución de la tela» controla el tamaño de la cuadrícula.
Una mayor resolución significa que la cuadrícula será más fina, lo que permitirá al filtro CSF captar mejor los detalles sutiles y las variaciones de la nube de puntos. Sin embargo, una mayor resolución también puede aumentar el tiempo de cálculo y el consumo de recursos.
Una resolución menor significa que la cuadrícula será más gruesa, lo que puede acelerar el proceso de cálculo, pero puede pasar por alto algunos de los detalles más sutiles de la nube de puntos.
La elección de la resolución dependerá de la complejidad de los datos, del tamaño de la nube de puntos y de la finalidad del análisis. Si trabaja con zonas complejas, puede ser conveniente una resolución más alta para captar los detalles. Si dispone de una nube de puntos de gran tamaño y necesita resultados más rápidamente, puede ser adecuada una resolución más baja.
Como siempre, es aconsejable experimentar con diferentes valores de resolución y comprobar visualmente los resultados para determinar qué resolución funciona mejor para sus datos específicos.
Classification threshold
El parámetro «Classification threshold» del Filtro de simulación de telas (CSF) de CloudCompare se utiliza para especificar un umbral de deformación a partir del cual los puntos de la nube de puntos se considerarán no clasificados, es decir, se asignarán al fuera de campo.
Cuando se aplica el filtro CSF, se simula la deformación de una malla tridimensional (que representa «tejidos» virtuales) basada en los puntos de la nube. Las zonas en las que los tejidos están muy deformados se interpretan como zonas con características complejas, como vegetación u objetos elevados.
El parámetro «Classification threshold» sirve para controlar la deformación máxima tolerada antes de considerar que un punto está sobre el suelo. En otras palabras, si la deformación de un punto supera el umbral especificado, no se asignará a la clase de suelo «particular», marcándolo como potencialmente «fuera de suelo».
Ajustando el parámetro ‘Classification threshold’ se puede controlar el nivel de detalle que el filtro CSF utilizará para diferenciar entre características complejas del suelo. Un valor más alto hará que el filtro sea más sensible a las características complejas. Un valor más bajo hará que el filtro sea menos sensible y puede utilizarse para filtrar sólo características muy pronunciadas.
Como siempre, se recomienda experimentar con diferentes valores de umbral y comprobar visualmente los resultados para determinar qué valor funciona mejor para sus datos específicos.
En general, consideramos que el valor del umbral de Clasificación debe ser el doble del valor definido para la resolución Cloth.
Así pues, empezamos la prueba. Un buen punto de partida es fijar la resolución Cloth en 0,2 metros y los Classification threshold en 0,4 metros.
Ejecutamos el filtro y encontramos una nueva capa de resultados en CloudCompare con dos subcapas:
La primera contiene los puntos clasificados como «suelo» por el filtro CSF.
La segunda contiene los puntos clasificados como «sobre el suelo» por el filtro CSF.
La segunda contiene los puntos clasificados como «sobre el suelo» por el filtro LCR.
Vamos a probar una nueva combinación de parámetros para afinar la detección de puntos sobre el suelo. Para ello, vamos a activar la capa «suelo» que acabamos de calcular y vamos a aplicarle el filtro CSF, con los parámetros Resolución de la tela a 0,4 metros y Umbrales de clasificación a 0,8 metros.
Tendremos entonces dos nuevas capas, una con puntos que se consideran «suelo» y otra con puntos que se consideraban «suelo» por la primera pasada del filtro CSF pero que ahora se consideran «sobre suelo» con los nuevos parámetros.
Tenemos la capa «suelo»
Y tenemos los puntos que ahora están «por encima del suelo»
Visualmente, ya podemos decir que nuestro resultado debería ser satisfactorio. Pero para estar seguros, vamos a repetir la operación una tercera vez, esta vez con la resolución Cloth a 0,8 metros y los umbrales Classification a 1,6 metros.
Tendremos entonces dos nuevas capas, una con puntos que se consideran «suelo» y otra con puntos que habían sido considerados «suelo» por la segunda pasada del filtro CSF pero que ahora se consideran «sobre suelo» con los nuevos parámetros.
Tenemos la capa «suelo»
Donde ahora se ven zonas bastante extensas sin ningún punto.
Y la capa «sobre el terreno»
Para poder validar la combinación correcta de parámetros, guardamos las capas «sobre el terreno» obtenidas como nubes de puntos. Puede guardar la nube de puntos filtrada seleccionando «Archivo» > «Guardar como» en el menú para guardar una nueva copia con las modificaciones realizadas por el filtro CSF.
Así tenemos tres nuevas nubes de puntos, ground02… para el resultado del primer filtro CSF, ground04… para el segundo y ground08… para el tercero, que cargamos en QGis. También cargamos la nube de puntos original sin clasificar, nc…
Intuitivamente, el resultado del filtro 0.4 parece ser el mejor. El filtro 0.2 tiene un poco demasiado ‘suelo’ y el filtro 0.8 no lo suficiente en algunas zonas.
Ahora podemos crear los tres MDT y comparar el resultado con la nube de puntos original.
Para ello, como en el primer ejemplo, utilizamos la herramienta Exportar a ráster (utilizando triangulación). Sin embargo, como aquí sólo tenemos puntos correspondientes al suelo, no necesitamos aplicar ningún filtro. Simplemente definimos el espaciado de la cuadrícula del MDT de salida y el nombre del archivo de salida.
Tenemos entonces tres rásters con los correspondientes MDT
Como se puede ver, en el MDT 0.2 todavía podemos ver las huellas de los edificios clasificados como «suelo». Para ver la diferencia entre los MDT 0.4 y 0.8, utilizamos la vista de perfil de elevación.
Mostramos la nube de puntos original y el MDT calculado a partir de la clase «suelo» del IGN. Consideraremos este MDT como el mejor MDT.
En este perfil tenemos características del terreno, vegetación baja y alta y edificios.
Si mostramos el MDT 0.2 en amarillo, tenemos:
La vegetación baja y alta se han clasificado como «sobre el terreno», pero los edificios siguen incluidos en los puntos «terreno».
Si mostramos el MDT 0.4 en azul, tenemos:
Los edificios están ahora excluidos y el resultado se funde con el del IGN.
Por último, si mostramos el MDT 0,8 en rojo, tenemos:
Al excluir los puntos que forman parte del terreno, hemos creado zonas vacías que luego se interpolan utilizando sólo los bordes de las zonas. Seguimos teniendo un buen cálculo del terreno en las zonas de vegetación y edificios, pero algunas características del terreno desaparecen.
En conclusión, nuestros parámetros con Cloth resolution a 0,4 metros y Classification thresholds a 0,8 metros, que nos parecían la mejor combinación desde que se calculó el filtro CSF en CloudCompare, resultaron ser los mejores. Nos permiten obtener un MDT equivalente al calculado a partir de los datos clasificados del IGN.