Uno de los retos típicos cuando empezamos a trabajar con nubes de puntos LiDAR es entender cómo trasladar la información del LiDAR que suele venir como millones de puntos con información X,Y,Z, clasificación en otros a nuestros vectores, que son los que usamos al final para componer mapas o análisis.
Este post explica un proceso sencillo en QGIS que permite obtener un raster de superficies normalizado (nDSM) y asignar su valor a tus polígonos. El objetivo es que puedas extraer la altura máxima o cualquier estadístico que necesites sobre tus objetos: edificios, vegetación, o cualquier elemento situado sobre el terreno.
A continuación explico la herramienta que he montado uniendo varias funciones de QGIS dentro de un modelo. No hablamos de un plugin, sino del proceso de concatenar herramientas en el modelador de QGIS.

¿Qué problema resuelve este proceso?
Cuando empiezas a trabajar con datos LiDAR, uno de los grandes retos es que la nube de puntos no está pensada para integrarse directamente en tus capas vectoriales.
Sin embargo, uniendo unos cuantos algoritmos de QGIS juntos, podemos crear una herramienta que atribuya datos de la nube de puntos a nuestro vectores.
Este flujo de trabajo soluciona exactamente eso:
- Extrae un DTM (terreno) desde la nube de puntos.
- Extrae un DSM (superficie).
- Calcula un nDSM para obtener solo las alturas reales de objetos sobre el terreno.
- Atribuye los polígonos con la altura máxima de cada uno.
El resultado: objetos con altura precisa, listos para mapas, análisis urbanos o visualización 3D.
¿Cómo funciona la herramienta de modelado de QGIS?
La herramienta de Modelado de QGIS (Model Builder) permite encadenar varias operaciones de Processing y convertirlas en un único proceso automático. Funciona como un diagrama en el que vas añadiendo entradas, algoritmos y salidas, conectando cada paso con flechas para indicar qué datos alimentan al siguiente.
La ventaja es que puedes combinar herramientas muy distintas (LiDAR, raster, estadísticas, expresiones, etc.) sin tener que ejecutarlas una por una. Una vez montado el modelo, QGIS lo trata como una herramienta más: aparece en el panel de Procesos, admite parámetros personalizados y se ejecuta de principio a fin con un solo clic.

Esto permite repetir siempre el mismo flujo de trabajo sin errores y adaptarlo fácilmente a distintos datasets o escenarios.
Pasos del modelo
Primer paso: Filtrado de puntos por clasificación
El proceso permite elegir qué clase LiDAR usar. Por defecto se toma la clase 2 (suelo) para generar el DTM, pero puedes cambiarla por cualquier otra según el objetivo:
- Clase 5 – Vegetación alta
- Clase 6 – Edificios
- Clase 1 – No clasificadas, si son datos ruidosos
- O cualquier combinación válida para el proyecto
Esto es clave porque el algoritmo interno usa triangulación para generar los rasters, y lo ideal es darle solo la clase que representa la superficie deseada.
Segundo paso: Generación de DTM y DSM
El modelo exporta dos rasters:
- DTM: basado en la clasificación de suelo (o la que elijas).
- DSM: basado en los puntos de superficie.
Ambos se generan con el comando PDAL que viene integrado en QGIS desde la versión 3.18. La herramienta permite también definir la resolución del raster. Aunque puedas elegir resoluciones más finas, no es recomendable bajar de 1 metro, ya que ralentizaría mucho el procesamiento y normalmente no mejora el resultado final.

Tercer paso: Cálculo del nDSM: altura real sobre el terreno
Una vez obtenidos DTM y DSM, el modelo usa la calculadora raster para restarlos:
nDSM = DSM - DTMEl resultado es un raster que representa altura real de los objetos, sin influencias de la topografía lo que se conoce como altura normalizada.
La imagen inferior muestra varios edificios extruidos en 3D dentro del entorno de visualización de QGIS o mediante Qgis2threejs. Cada edificio aparece con su altura correspondiente, calculada a partir del nDSM generado en el proceso. Los colores y volúmenes permiten comprobar rápidamente que la información LiDAR ha sido trasladada correctamente a los polígonos.

Cuarto paso: Estadísticas zonales: asignar altura a tus polígonos
Con el nDSM ya listo, se ejecuta una estadística zonal que extrae la altura máxima para cada polígono. Después, una pequeña expresión calcula y redondea el valor final. El resultado es una nueva capa con un campo llamado algo tipo: «lidar_height»
Cono este sencillo flujo de trabajo, ya tienes la altura del edificio, la copa del árbol o cualquier objeto que estés analizando.

Conclusión
En este post hemos visto cómo integrar algoritmos de LiDAR dentro del Model Builder de QGIS para crear un flujo totalmente automatizado que simplifica el paso de información entre la nube de puntos y nuestras capas vectoriales.
Trabajar así permite reducir tiempos, evitar errores manuales y mantener una lógica clara desde la entrada (la nube de puntos) hasta la salida (los polígonos con altura). Es un enfoque práctico, flexible y fácil de reutilizar en cualquier trabajo basado en LiDAR.
Si te dedicas a cartografía urbana, gestión forestal, análisis de infraestructuras o simplemente quieres explorar el LiDAR, este tipo de modelos son una buena opcion para automatizar tus procesos y ahorrarte mucho tiempo.
Si quieres aprender a procesar nubes de puntos con QGIS, CloudCompare, LAStools y FUSION, entonces puede que te interese este Curso de Tratamiento de Nubes de Puntos LiDAR y Fotogramétricas: De Principiante a Experto.
¿Quieres comentarnos algo? Adelante!