En este artículo vamos a describir paso a paso cómo puedes usar CloudCompare para generar un ráster a partir de una nube de puntos LiDAR e interpolar o rellenar celdas vacías.
LIDAR (Light Detection and Ranging) es una tecnología de escaneo remoto que utiliza un láser para medir la distancia y crear mapas en 3D del entorno. Los sistemas LIDAR se utilizan en diversas aplicaciones, como la cartografía, la topografía, la navegación y la detección de objetos en vehículos autónomos.
Tal y como mostramos en nuestro artículo anterior, uno de los subproductos más demandados de una nube de puntos son los modelos digitales del terreno (MDT).
Un modelo digital del terreno (MDT) sirve para representar de manera precisa y detallada la elevación y forma de la superficie terrestre en un área determinada. Esta información es útil en diversas aplicaciones, como la planificación urbana, la gestión del agua y la identificación de riesgos naturales, creación de mapas topográficos, hidrología, análisis de visibilidad, simulaciones de energía solar y eólica, y en el diseño de infraestructuras de transporte y comunicaciones, entre otros usos.
¿Qué son las celdas vacías?
En ocasiones, puede ocurrir que nuestro MDT tenga celdas vacías o celdas con valores “no data”. Las celdas vacías en un modelo digital del terreno representan áreas en las que no hay datos de elevación disponibles.
Si ningún retorno LiDAR cae dentro de una celda dada, esta celda se considerará como «vacía». De forma predeterminada, las celdas vacías no son visibles. Por lo general, tienen un valor dedicado ‘NaN’ o ‘vacío’ cuando se exportan a un archivo ráster (dependiendo del formato).
Estas celdas pueden aparecer debido a la falta de información en el área de interés o a la incapacidad del LiDAR para capturar la elevación en esas zonas. Por ejemplo, cuando el terreno está inundado, o cuando filtramos el suelo de una zona urbana, ya que nos quedan los huecos de la planta de los edificios.

CloudCompare nos permite interpolar o rellenar dichas celdas vacías utilizando técnicas de modelado para crear un modelo continuo del terreno.
Paso a paso. Interpolar o rellenar celdas vacías con CloudCompare
Para este ejemplo, vamos a usar una nube de puntos de Castilla La Mancha descargada del IGN españa. La nube se llama “PNOA_2017_CLM-SE_604-4288_ORT-CLA-RGB”.
El software que vamos a utilizar se llama CloudCompare. Se trata de un software libre de análisis y procesamiento de datos en nube de puntos 3D. Proporciona herramientas para la visualización, segmentación, filtrado, registro y medición de nubes de puntos, así como para la comparación de diferentes escaneos. Se utiliza en aplicaciones como la topografía, la arqueología, la ingeniería, la cartografía, entre otras.
Primer paso: Carga la nube de puntos en CloudCompare
Abre el software de Cloudcompare. Luego, selecciona la opción «Abrir archivo» y se elige el archivo que contiene la nube de puntos LiDAR. Se puede seleccionar el formato de archivo correspondiente y ajustar la configuración según sea necesario antes de cargar la nube de puntos. Finalmente, haz clic en «Cargar» para visualizar la nube de puntos en el proyecto.
Alternativamente, puedes simplemente seleccionar tu archivo LIDAR y arrástralo al programa, este se cargará automáticamente. Ahora visualiza tu nube de puntos según la altura (coordenada Z).

Observa como el área de estudio digitalizada con la nube de puntos no es totalmente llana. La parte roja-anaranjada representa una cordillera. Las áreas azules son las de menos elevación. El tamaño del bloque LiDAR es de 2*2 kilómetros.
Si ahora representamos el histograma de alturas en función de la coordenada Z, veríamos que nuestro terreno tiene una altura mínima de 866 meros y una altura máxima de 1070 metros. Esto es importante a la hora de decidir cómo vamos a rellenar o interpolar los huecos.

Ahora que ya conocemos nuestra distribución de elevaciones de nuestra nube de puntos, así cómo los valores mínimos y máximos, podemos proceder con el siguiente paso.
Segundo Paso: Abre la herramienta «Rasterize»
La herramienta Rasterize de CloudCompare se utiliza para convertir nubes de puntos en formatos vectoriales o raster, que son más fáciles de procesar en otros programas (como QGIS o ArcGIS además de muchos otros) y para ciertos tipos de análisis. Esta herramienta se utiliza comúnmente para crear modelos digitales de elevación (DEM). También permite crear otro tipo de rasters como hillshade o incluso curvas de nivel.
La herramienta tiene una interfaz muy sencilla. Cada vez que cambies un parámetro, deberás hacer clic en «Update Grid» para previsualizar tus cambios.
Todo lo que necesitas saber sobre la herramienta rasterize lo puedes encontrar en la wiki de CloudCompare que tiene un artículo dedicado a dicho algoritmo.
Tercer Paso: Rellanando celdas
Se debe tener en cuenta que rellenar celdas, no es lo mismo que interpolar. Rellenar es asignar un valor constante a las celdas sin datos. Esto puede ser útil en los siguientes casos:
- Cuando el terreno es prácticamente llano
- Cuando nos interesa asignar una constante a los valores vacíos
Vamos a ver un ejemplo. CloudCompare nos permite rellenar los ráster usando un valor mínimo, medio, máximo o personalizado. La siguiente captura de pantalla, muestra cómo crear un ráster con las siguientes características:
- Con tamaño de píxel de 5 metros
- Tipo de ráster (ráster de elevaciones)
- En la parte «Empty cells» hemos seleccionado que los huecos sean rellenados usando el valor mínimo del ráster de elevaciones, derivado de la nube de puntos (866 metros).

Observa cómo el raster de la imagen superior tiene unos píxeles de color azul en la zona noroeste de la imagen. Estos píxeles han sido rellenados usando el valor mínimo del bloque LIDAR (866 metros).
Si ahora exportamos el raster a formato TIFF y lo cargamos en QGIS, podremos usar la herramienta «identificar» para conocer los valores que hay dentro de las celdas que han sido rellenadas, tal y como se muestra en la imagen inferior.

Como era de esperar. Los valores de celda en cada una de aquellas celdas que antes estaban vacías son ahora de 866 metros. Esto no resulta muy útil en este caso particular si lo que buscamos es cerrar los huecos usando los valores que probablemente tendría el terreno en ese lugar. Para esto hay que interpolar.
Cuarto paso: Interpolando celdas
Interpolar celdas vacías en un raster de elevaciones consiste en utilizar algoritmos matemáticos para estimar los valores de elevación desconocidos en las celdas vacías, basándose en los valores de elevación de las celdas adyacentes. La técnica de interpolación se utiliza para crear un modelo continuo y suave del terreno a partir de datos dispersos.
Hay muchas formas de interpolar. En el caso concreto de CloudCompare, la opción interpolar consiste en una interpolación lineal con las celdas vecinas no vacías más cercanas. Esto puede dar muy buenos resultados en presencia de pequeños agujeros. Sin embargo, puede ser menos realista en agujeros grandes (como un lago).
Aún se debe especificar un valor personalizado (en el campo debajo de la lista desplegable ‘Fill with’) para rellenar las áreas vacías restantes (si las hay).
Para interpolar, puedes usar los datos que se muestran en la captura de pantalla siguiente, fíjate en la sección que pone «empty cells»:

Observa como en la imagen superior no se observan huecos en la previsualización del raster. Ahora se muestra un modelo digital del terreno con valores continuos a lo largo del raster.
CloudCompare usará los valores de las celdas adyacentes a los huecos para crear la interpolación y cerrar dicho hueco. Es decir, que si las celdas vacías tienen alrededor valores de 30 metros, tu agujero se rellena con suelo de 30 metros.
El parámetro más importante aquí será, por tanto, el de «Max Edge Length». Ese parámetro limitará el tamaño de la triangulación en los agujeros grandes, para así no cerrar huecos donde no queremos que realice la interpolación.
Conclusión sobre como interpolar celdas vacías de un ráster creado a partir de LiDAR con CloudCompare
Cuando creamos raster a partir de un LiDAR, tenemos que saber que es muy probable que obtengamos celdas vacías en aquellos lugares donde no hay retornos. En estos casos, tendremos que decidir si rellenar o interpolas dichos huecos.
Rellenar celdas vacías en un modelo digital del terreno significa asignar un valor constante a las celdas vacías. Por otro lado, la interpolación de celdas vacías, es un proceso de estimación de los valores faltantes en función de los valores disponibles en las celdas adyacentes.
La interpolación utiliza algoritmos para predecir los valores desconocidos, mientras que el relleno simplemente asigna un valor fijo. La interpolación puede ser más precisa, pero puede requerir más recursos computacionales y puede ser más susceptible a errores si no se selecciona el método adecuado.
Si quieres conocer más sobre cómo trabajar con nubes de puntos usando QGIS, CloudCompare, LASTools y FUSION, este curso de tratamientos de datos LIDAR te interesará.
¿Quieres comentarnos algo? Adelante!