Perfiles y secciones desde nube de puntos en CloudCompare

Perfiles longitudinales y secciones transversales desde nube de puntos: flujo de gabinete en CloudCompare

Introducción

Tienes la nube de puntos ya registrada, limpia y en coordenadas. El cliente pide perfiles del terreno y secciones transversales cada 20 metros. La pregunta real es: ¿cómo extraes esa información de forma sistemática, sin perder precisión y sin pagar una licencia extra?

CloudCompare permite hacer exactamente eso. No es el flujo más inmediato si nunca lo has usado con ese propósito, pero una vez que entiendes la lógica de corte, segmentación y exportación, el proceso se vuelve repetible y auditable. En este post te explico el flujo completo de gabinete para extraer perfiles longitudinales y secciones transversales desde una nube de puntos de escáner 3D o LiDAR, desde la preparación de la nube hasta la exportación de datos que puedes llevar a Civil 3D o a cualquier software de diseño.

Por qué extraer perfiles desde la nube y no desde el MDT

Es una pregunta válida. Si ya tienes el MDT, ¿para qué volver a la nube?

La respuesta está en la densidad de información. Cuando generas un MDT interpolado, estás trabajando con una representación del terreno que ya pasó por un proceso de clasificación y triangulación. Cada vez que interpolas, introduces suavizado. Dependiendo del tamaño de celda y del método de interpolación, puedes perder detalle en zonas con cambios abruptos: bordes de talud, cunetas, bordillos, cambios de pendiente en roca.

La nube de puntos original contiene la geometría sin procesar. Extraer un perfil directamente desde ahí te da la curva de elevación más fiel a lo que el escáner midió. Eso importa en:

  • Diseño de vialidades: donde el perfil longitudinal define rasante y la sección transversa define volúmenes de corte y terraplén.
  • Revisión de obras existentes: verificar si un camino ya construido cumple con la pendiente de proyecto.
  • Documentación as-built: corredores lineales, canales, zanjas.
  • Proyectos de drenaje: donde la diferencia de centímetros en la cuneta cambia el comportamiento hidráulico.

Dicho esto, el flujo que vas a ver aquí no sustituye al MDT. Los dos tienen su lugar. Lo que sí te da este flujo es una capa de verificación y una fuente alternativa de datos cuando la densidad de puntos lo justifica.

Preparación de la nube antes de extraer perfiles

No puedes sacar un buen perfil de una nube sucia. Antes de empezar con los cortes, asegúrate de tener:

1. Nube en sistema de coordenadas correcto

En México, el sistema de referencia oficial es el ITRF2008 época 2010.0, con elipsoide GRS80. Si tu nube viene de un escáner con base en coordenadas GNSS, verifica que las coordenadas de los puntos de control usados en el registro estén en ITRF2008 y proyectadas en UTM zona 14N (para Nuevo León y zonas aledañas) o la zona que corresponda a tu proyecto.

Si la nube está en un sistema local o en coordenadas del escáner sin georeferencia, los perfiles que extraigas no van a ser comparables con ningún dato externo. Georeferencia primero.

2. Clasificación básica aplicada

Para un perfil de terreno, necesitas separar los puntos de suelo de los demás. Si tu nube incluye vegetación, vehículos, señalización o estructuras, esos puntos van a contaminar el perfil.

En CloudCompare puedes hacer una clasificación manual con la herramienta Segment o usar el plugin CSF (Cloth Simulation Filter) para separar suelo de no-suelo en nubes de paisaje abierto. Para obra civil en zona urbana, muchas veces la clasificación manual por capas (asignando escalares o separando en subconjuntos) es más confiable.

3. Nube diezmada a densidad manejable

Una nube de escáner de alta densidad puede tener varios miles de millones de puntos. CloudCompare trabaja bien con nubes de decenas o cientos de millones de puntos si tu equipo tiene la RAM suficiente, pero para extraer perfiles no necesitas toda esa densidad. Usa Edit > Subsample con el método spatial y una separación mínima de 1–2 cm para trabajo de detalle, o de 5–10 cm para corredores largos. Esto reduce el tiempo de proceso sin perder resolución útil para el perfil.

4. Orientación del eje del corredor

Para que los cortes transversales sean perpendiculares al eje, necesitas saber la dirección del corredor. Lo más práctico es trazar el eje como una polilínea o definir un vector de avance. Esto lo harás dentro de CloudCompare usando la herramienta de perfilado, que se explica en la siguiente sección.

Herramientas de CloudCompare para extracción de perfiles

CloudCompare no tiene una herramienta de «secciones transversales automáticas» tan visual como Civil 3D o AutoCAD Map, pero tiene tres herramientas que combinadas te dan el resultado:

Cross-Section (Sección de corte manual)

Menú: Edit > Slice / Cross-Section

Permite definir un plano de corte interactivo y extraer los puntos que quedan dentro de un espesor definido alrededor de ese plano. Es la herramienta más directa para una sección transversal individual.

El flujo básico:
1. Selecciona la nube o el subconjunto de terreno.
2. Activa Cross-Section. Aparece un cubo de selección ajustable.
3. Orienta el plano perpendicular al eje del corredor usando los controles de rotación.
4. Ajusta el espesor del corte (por ejemplo, ±0.10 m alrededor del plano).
5. Extrae los puntos seleccionados como una nueva nube.
6. En esa nueva nube, puedes ver la distribución de puntos en 2D y exportarla.

Para múltiples secciones a intervalos regulares, este proceso manual puede volverse lento. Ahí entra la siguiente herramienta.

Rasterize

Menú: Plugins > Rasterize (o Tools > Projection > Rasterize)

Esta herramienta proyecta la nube sobre una cuadrícula regular y genera un ráster de elevación. Desde ese ráster puedes extraer perfiles a lo largo de líneas definidas.

Es útil cuando:
– El corredor es largo y quieres un perfil longitudinal continuo.
– Necesitas exportar el MDT en formato compatible con Civil 3D (GeoTIFF, XYZ).
– La densidad de puntos es suficiente para que el rasterizado no deje celdas vacías.

Parámetros clave:
– Tamaño de celda: define la resolución del ráster. Para obra civil con escáner a 10–20 m de distancia, celdas de 5–10 cm son razonables. Para LiDAR UAV, celdas de 10–25 cm dependiendo de la densidad.
– Proyección Z: usa minimum para terreno desnudo (suelo), average para superficies homogéneas.
– Fill empty cells: para perfiles longitudinales, activa la interpolación de celdas vacías solo si la cantidad de vacíos es menor al 5%.

Profile Tool (plugin)

Este es el flujo más directo para perfiles longitudinales. Accede desde Plugins > qProfile si lo tienes instalado (viene en versiones recientes de CloudCompare como parte del paquete estándar).

Con qProfile:
1. Defines una polilínea sobre la nube que representa el eje del corredor.
2. El plugin extrae los puntos dentro de un ancho de banda definido a cada lado del eje.
3. Genera el perfil proyectado sobre el eje, con distancia acumulada en X y elevación en Z.
4. Exporta el perfil como CSV o como polilínea 3D.

Este es el método más limpio para perfiles longitudinales en corredores viales o de infraestructura lineal.

Flujo paso a paso: secciones transversales a intervalo regular

Este es el flujo que más se pide en obra civil: secciones cada N metros para cálculo de volúmenes.

Paso 1 — Definir el eje de referencia

En CloudCompare, usa Tools > Point picking para marcar dos puntos sobre la nube que definan la dirección del eje. Anota las coordenadas de esos puntos. Alternativamente, importa el eje como una polilínea desde AutoCAD o Civil 3D en formato DXF.

Para importar el DXF: File > Open > selecciona el archivo DXF. CloudCompare abre el eje como una polilínea 3D.

Paso 2 — Orientar el sistema de corte

Con el eje definido, necesitas calcular el vector perpendicular para cada estación de corte. Si el eje es recto, el vector perpendicular es constante. Si el eje tiene curvas, el vector cambia en cada punto.

Para ejes rectos: anota el azimut del eje y rota el plano de corte 90°.

Para ejes con curvas: el flujo más práctico es exportar la nube a LAStools o a Civil 3D donde el manejo de alineamientos curvos es nativo, y regresar a CloudCompare solo para validación visual.

Paso 3 — Extraer secciones con Cross-Section

Para cada estación:
1. Posiciona el plano de corte en la chaflán correspondiente (e.g., estación 0+020, 0+040, etc.).
2. Ajusta el espesor a ±0.05 m (10 cm de slab de corte).
3. Exporta los puntos como CSV con formato XYZ.
4. Repite para cada estación.

Si tienes 50 secciones, este proceso tarda entre 30 y 90 minutos dependiendo del tamaño de la nube y de la complejidad del eje. No es el flujo más rápido, pero es auditable: puedes verificar visualmente cada sección antes de exportar.

Paso 4 — Procesar las secciones en software de diseño

Las secciones exportadas como CSV (X, Y, Z) las importas en Civil 3D como puntos. Desde Civil 3D:
– Asignas los puntos a la alineación correspondiente.
– Civil 3D los procesa como puntos de superficie en sección transversa.
– Puedes generar el perfil transversal, calcular áreas de corte/terraplén y volúmenes.

También puedes procesar las secciones directamente en Global Mapper con la herramienta de análisis de terreno, si no tienes licencia de Civil 3D. Nuestro post sobre Global Mapper para topografía y geomática tiene el detalle de ese flujo.

Exportación y formatos de salida

CloudCompare exporta en varios formatos útiles:

Formato Uso recomendado
CSV (X,Y,Z) Import a Civil 3D, Excel, cualquier software
DXF Polilíneas 3D para AutoCAD
SHP GIS (QGIS, ArcGIS)
LAS/LAZ Subconjuntos de nube para reutilizar
GeoTIFF Ráster de elevación desde Rasterize

Para secciones transversales que van a Civil 3D, el CSV con X, Y, Z es el formato más limpio. Para perfiles longitudinales que se entregarán como planos, exporta como DXF (polilínea 3D) y ábrelo directamente en AutoCAD.

Un detalle importante: cuando exportes el CSV, verifica que el separador decimal sea punto (.) y no coma (,), especialmente si tu configuración regional de Windows usa coma como separador decimal. Civil 3D puede malinterpretar las coordenadas si hay conflicto de separadores.

Consideraciones de exactitud

Extraer un perfil desde una nube de puntos no es lo mismo que hacer una nivelación de precisión. La exactitud del perfil depende de:

1. Exactitud del registro de la nube
Si la nube fue registrada con error de cierre mayor a 5–8 mm en posición, ese error se refleja en el perfil. Los escaneos con equipos como el Leica RTC360 registrados con targets bien distribuidos pueden alcanzar errores de cierre de 2–3 mm, lo que da perfiles con exactitud subcentimétrica.

2. Densidad de puntos en la zona de corte
Si el corte pasa por una zona con baja densidad (sombra de escaneo, vegetación densa que ocultó el suelo), el perfil tendrá huecos o puntos espurios. Verifica la densidad antes de extraer.

3. Espesor del corte
Un espesor de corte muy grande (e.g., ±0.50 m) incluye puntos que no están exactamente en el plano de la sección, lo que engrosa artificialmente el perfil. Para obra civil, usa ±0.05 a ±0.10 m.

4. Clasificación previa
Puntos de vegetación baja o gravilla suelta sobre el pavimento que no fueron filtrados van a introducir ruido en la cota del perfil. La clasificación rigurosa del paso de preparación no es opcional.

Cuándo conviene complementar con GNSS o estación total

CloudCompare extrae perfiles desde lo que el escáner midió. Si el escáner tuvo limitaciones de visibilidad en algún tramo —un vehículo estacionado, una barda, vegetación densa— ese tramo no tiene datos y el perfil queda incompleto.

En esos casos, la solución es complementar con medición directa. Un GNSS RTK o una estación total te permite medir los puntos faltantes en campo y agregarlos a la nube como puntos adicionales antes de extraer el perfil. CloudCompare acepta la mezcla de nubes de diferentes fuentes siempre que estén en el mismo sistema de coordenadas.

Esta combinación —escáner para densidad y GNSS para puntos críticos— es el flujo estándar en proyectos de carreteras y vialidades urbanas donde la oclusión es inevitable. Puedes ver el flujo de levantamiento con GNSS RTK en nuestro post dedicado.

Automatización con scripts en Python

CloudCompare tiene una interfaz de línea de comandos y soporte para scripting en Python (CloudCompare Python Plugin, disponible desde la versión 2.12). Si necesitas procesar decenas de secciones de forma automatizada, puedes escribir un script que:

  1. Cargue la nube.
  2. Itere sobre una lista de posiciones y orientaciones de corte.
  3. Extraiga cada sección.
  4. Exporte el CSV con nombre de estación.

El script básico usa el módulo cloudComPy (binding Python para CloudCompare). La documentación oficial está en cloudcompy.gitlabpages.io. No es un flujo para empezar, pero si tu operación procesa más de 5 proyectos de corredor al mes, la inversión en automatizar se recupera rápido.

FAQ

¿CloudCompare puede generar secciones transversales automáticas a intervalos definidos?
No de forma nativa con una sola operación. La herramienta Cross-Section requiere posicionar el plano de corte manualmente para cada sección. Para automatización de secciones a intervalo regular, necesitas el scripting con Python (cloudComPy) o exportar a Civil 3D, que sí tiene herramientas de secciones automáticas sobre alineaciones.

¿Cuál es el espesor de corte recomendado para secciones en obra civil?
Para pavimentos y obras viales, un espesor de ±0.05 m (10 cm total) da buenos resultados con escáneres de alta densidad. Si la densidad de puntos es baja —por ejemplo, LiDAR UAV con 50–100 puntos/m²— puedes ampliar a ±0.10 m. Superar ±0.20 m empieza a introducir puntos que no representan la sección exacta.

¿Puedo extraer perfiles desde una nube de LiDAR UAV con el mismo flujo?
Sí, con una consideración: las nubes de LiDAR UAV tienen menor densidad que las de escáner terrestre, y la distribución de puntos no es uniforme en todas las direcciones. Asegúrate de usar solo los puntos clasificados como suelo (clase 2 en la clasificación ASPRS) antes de extraer el perfil. Si la nube no está clasificada, el perfil incluirá puntos de vegetación y estará contaminado.

¿Qué diferencia hay entre extraer el perfil desde la nube y generarlo desde un MDT ráster?
El perfil desde la nube usa los puntos medidos directamente, sin interpolación. El perfil desde el MDT ráster interpola elevaciones entre puntos según el tamaño de celda del ráster. Para tamaños de celda pequeños (≤5 cm) con alta densidad, las diferencias son mínimas. Para celdas de 25–50 cm o zonas con baja densidad, el perfil desde la nube puede ser más fiel en zonas de cambio abrupto.

¿CloudCompare exporta el perfil en formato compatible con Civil 3D?
Directamente no existe un conector nativo. El flujo más limpio es exportar como CSV (X, Y, Z) e importar los puntos en Civil 3D usando Importar puntos de levantamiento. También puedes exportar como DXF (polilínea 3D), que AutoCAD y Civil 3D abren sin problema. Para el MDT ráster generado con Rasterize, exporta como GeoTIFF y súbelo a Civil 3D como superficie desde DEM.

¿Qué hago si el perfil tiene picos o valles que claramente son ruido?
Primero verifica que la clasificación de la nube esté bien aplicada —los picos suelen ser puntos de vegetación o reflexiones múltiples no filtradas. Si la clasificación ya está aplicada y el ruido persiste, aplica un filtro SOR (Statistical Outlier Removal) desde Edit > Clean > SOR filter antes de extraer el perfil. El SOR elimina puntos estadísticamente alejados de sus vecinos, que es la firma típica del ruido de medición.

¿Hay diferencia entre procesar una nube de escáner de fase y una de tiempo de vuelo para este flujo?
El flujo en CloudCompare es el mismo independientemente del tipo de escáner. La diferencia práctica está en la densidad y el alcance. Los escáneres de fase (como los de la línea GeoMax Zoom3D) tienen densidades muy altas a corta distancia, ideal para obra civil en zonas contenidas. Los de tiempo de vuelo alcanzan mayor distancia con densidades menores. Para los perfiles, más densidad en la zona de corte siempre es mejor.

Conclusión

Extraer perfiles longitudinales y secciones transversales desde una nube de puntos en CloudCompare es un flujo perfectamente viable para obra civil, con resultados comparables a los de software especializado cuando la nube está bien preparada. La clave está en tres pasos que no puedes saltarte: clasificar la nube antes de cortar, verificar que estés en el sistema de referencia correcto (ITRF2008 época 2010.0), y elegir un espesor de corte proporcional a la densidad de puntos disponible.

El flujo no es tan automático como en Civil 3D, pero es gratuito, auditable y funciona con cualquier nube independientemente de cómo se generó —escáner terrestre, LiDAR UAV o fotogrametría densa.

Si quieres profundizar en el procesamiento general de nubes de puntos, revisa nuestro post sobre procesamiento de nubes de puntos en CloudCompare: flujo completo, y si estás evaluando qué escáner usar para tus proyectos de obra civil, pasa por nuestra categoría de escáneres 3D.

¿Tienes un proyecto de vialidad o corredor donde necesitas definir el flujo de captura y procesamiento? Solicita una asesoría sin costo y te ayudamos a dimensionar el equipo y el flujo según tus requerimientos de exactitud y entrega.

FACT-CHECK APLICADO:
– Sistema geodésico oficial México ITRF2008 época 2010.0: INEGI, Marco de Referencia Geodésico
– Elipsoide oficial GRS80: INEGI, Geodesia
– Zona UTM 14N para Nuevo León: INEGI, Sistema de proyección cartográfica oficial
– Clasificación ASPRS clase 2 = suelo: ASPRS LAS Specification 1.4
– MDT ≠ MDS: MDT solo terreno sin objetos sobre él — verificado contra definición de post propio de Punto Visado
– LAZ = LAS comprimido: ASPRS LAS Specification; LAZ es formato de compresión sin pérdida de LAS
– CloudCompare Python Plugin (cloudComPy): cloudcompy.gitlabpages.io
– SOR filter en CloudCompare: documentación oficial CloudCompare
– Término «geomáticos» (no «geomatistas»): RAE y uso técnico en español

Equipos más vendidos

Artículos relacionados

No se encontraron resultados

La página solicitada no pudo encontrarse. Trate de perfeccionar su búsqueda o utilice la navegación para localizar la entrada.

1