Los atributos o campos escalares del LiDAR son una parte fundamental cuando trabajamos con nubes de puntos. A la hora de obtener productos derivados del LiDAR, normalmente siempre pensamos en modelos digitales del terreno o nubes de puntos clasificadas. Sin embargo, también podemos obtener información e incluso nuevos productos a partir de los atributos de una nube de puntos mediante operaciones aritméticas.
En este post veremos algunos ejemplos de cómo trabajar los atributos de un LiDAR con CloudCompare, un potente software gratuito diseñado para manipular nubes de puntos y redes triangulares. En el siguiente enlace te dejo los motivos por lo que CloudCompare puede ser uno de los mejores programas open-source para trabajar con LiDAR.
A la hora de trabajar con CloudCompare, lo que diferencia a este software de otros programas como LAStools o FUSION (a parte de su potente interfaz), es su capacidad de trabajar con los atributos o campos escalares de los retornos.
Campos escalares o atributos en CloudCompare
Entre todas las características que se pueden asociar a una nube de puntos, una tiene un lugar particular en CloudCompare: el campo escalar.
Un campo escalar es simplemente un conjunto de valores (uno por punto, por ejemplo, la distancia de cada punto a otra entidad, el número de retorno, la intensidad, etc.). Como cada valor está asociado a un retorno, es posible mostrar esos valores como colores (con rampas de color personalizadas) o aplicar filtros (suavizado, degradado, etc.), algunas operaciones matemáticas básicas (exp, log, potencia de 2 o 3, cos, sin, tan, etc.) y, por supuesto, segmentar la nube en relación con esos valores (umbral, filtrado estadístico local, etc.).
CloudCompare puede manejar varios campos escalares en la misma nube. Incluso es posible aplicar operaciones aritméticas simples (-, +, /, *) entre dos campos escalares de una misma nube.
Es importante destacar que no todos los atributos de una nube de puntos no pueden ser tratados como campos escalares. Por ejemplo los valores de RGB o las coordenadas XYZ de un retorno no serían campos escalares a menos que separemos cada una de ellas como un atributo individual.
Los campos escalares más comunes serían:
- Distancias de retornos a entidades
- Coordenada Z
- Intensidad
- Número de retorno
- Ángulo del escaner
- Número de barrido o ID del archivo
- Tiempo GPS
- Índices de vegetación
En definitiva, cualquier magnitud escalar que queda completamente determinada con un número y sus correspondientes unidades (aunque también puede ser adimensional).
Ejemplo práctico para modificar atributos LiDAR con CloudCompare
En este caso práctico, utilizaremos una nube de puntos descargada del Centro de Descargas del Instituto Nacional Geográfico . Los datos pertenecen a Tenerife, concretamente al Teide, pero podrías utilizar datos de cualquier otro sitio, tanto de LiDAR aerotransportado como terrestre.
En primer lugar, carga la nube de puntos en CloudCompare. Para ello, abre el programa y arrastra tu archivo LAS/LAZ a la ventana principal. Opcionalmente, puedes abrir una nube de puntos desde el menú principal.

Por defecto, la nube de puntos se muestra coloreada por los canales RGB. Esto se ha conseguido a partir de ortofotos. Todas las nubes de puntos disponibles en el CNIG se encuentran coloreadas. Ahora bien, ¿qué pasa si queremos visualizar algún otro campo escalar usando una rampa de color?
Supongamos que nos interesa conocer visualmente la distribución de los valores de intensidad de esta nube de puntos. La intensidad nos puede ayudar a identificar distintos elementos del terreno como por ejemplo:
- Carreteras
- Nieve
- Cuerpos de agua
- Vegetación
- Tipos de suelo/materiales
Para ello, simplemente tenemos que seleccionar la nube de puntos desde el árbol de capas y dirigirnos a la ventana de propiedades que se activa en la parte inferior izquierda, desde ahí podemos buscar la intensidad en la casilla desplegable de «scalar fields» y visualizar los resultados:

Por defecto, la intensidad de colorea en escala de grises, pero podrías seleccionar cualquiera de las rampas de colores disponibles desde la pestaña de «Color Scale«. Los valores mas oscursos suelen pertenecer a zonas con vegetación, asfalto, etc. Los valore mas claros pueden pertenecer a nieve, o suelo desnudo.
Crear nuestro propio campo escalar
Hasta el momento, hemos trabajado con campos escalares que vienen por defecto en la nube de puntos. Son atributos capturados por el escaner para cada retorno. Pero, ¿Cómo creamos nuestros propios campos escalares?
Un campo escalar que no puede faltar en una nube de puntos LiDAR es su coordenada Z. Los retornos LiDAR vienen con sus coordenadas X, Y y Z. Pero no pueden ser tratadas como campos escalares a menos que las dividamos en entidades individuales. Lograr esto con CloudCompare es muy sencillo.
Dirígete al menú principal, «Edit > Scalar Fields > Export Coordinate(s) to SF(s)«:

Una vez realizado esto, el programa te preguntará qué coordenada deseas seleccionar. Pincha en la casilla Z para exportar la coordenada Z a un campo escalar independiente (si pinchas en X e Y, también se genera un «Scalar Field» para ambas dimensiones).
Una vez realizado este paso, puede que no observes ningún cambio inmediato, pero tu nube de puntos ahora tiene un atributo extra. Para encontrarlo y activarlo, dirígete a la ventana de propiedades y busca nuevamente el apartado «Scalar Fields» y selecciona «Coord Z«:

Ahora podemos ver el rango de alturas de nuestra nube de puntos en base a Z, lo cual resulta muy útil para, por ejemplo, eliminar retornos fuera del rango normal de valores (imagina que hubiera alturas negativas o alturas superiores a la cumbre del Teide).
Calculadora de campos escalares
Ya sabemos como trabajar con campos escalares que trae nuestra nube de puntos. También hemos visto como crear un nuevo campo a partir de las coordenadas XYZ de los retornos. Por último, vamos a aprender a modificar un campo escalar existente usando la calculadora de CloudCompare.
En el siguiente ejemplo, vamos a normalizar los valores de Z para que como máximo sean 0. Este tipo de operaciones suele ser bastante común cuando queremos normalizar valores. Aquí veremos un ejemplo simple en el que dividiremos los valores de la coordenada Z por su valor máximo.
Para ello, selecciona la nube de puntos desde el árbol de datos y busca el símbolo de la calculadora en el menú principal. El valor máximo de Z es 3715.77 metros. Puedes encontrar este valor en el histograma, junto a la rampa de colores. Una vez abierta la calculadora, selecciona como SF1 la coordenada Z, después el operador «divided by» y como SF2, en lugar de usar un campo existente, podemos usar una constante, que será el vamor máximo de Z:

Una vez realizada esta operación, dirígete nuevamente a las propiedades de la nube de puntos y busca el nuevo campo escalar generado que por defecto se llamará «Coord Z /«.
Si te fijas en los valores máximos y mínimos, verás que ahora todos los retornos se encuentran entre 0.77 y 1:

CloudCompare presenta numerosas herramientas para trabajar con campos escalares, crear histogramas, generar rásters, clasificar nubes de puntos, filtrar ruido y mucho más. Si quieres aprender a manejar CloudCompare, este curso de Introducción al tratamiento de datos LiDAR te resultará interesante.
¿Quieres comentarnos algo? Adelante!