Existen una gran cantidad de herramientas que pueden ser utilizadas para el desarrollo de un sitio web que sirva para la visualización de archivos generados con la tecnología LiDAR (Light Detection and Ranging). Sin embargo, es importante hacer una adecuada selección, gestión, uso de técnicas, librerías y algoritmos para agilizar la visualización de las imágenes, debido a que la principal problemática de este tipo de despliegue a través de navegadores radica en el tamaño en bytes de los archivos.
Principal problemática
Las cartas geográficas contenidas en archivos LiDAR, están compuestas por modelos tridimensionales con millones de puntos y por consiguiente con altos volúmenes de datos. Por lo que su uso y análisis se realiza primordialmente sobre software especializado que trabaja con el procesamiento en equipos de escritorio y laptops potentes. Cuando se desea utilizar navegadores para su visualización y manipulación, la tarea se complica un poco y las plataformas o sitios deben estar debidamente diseñados y programados para tener esta capacidad.
Un archivo tipo LiDAR de cartas geográficas tiene variación en función del número de puntos por metro cuadrado, lo que equivale a la densidad de puntos de la imagen, así también como por la cantidad de variables contenidas en el archivo de nube de puntos. El resultado son archivos con cientos de megabytes, gigabytes o hasta terabytes. El aumento de detalle suele demandar mayores capacidades de cómputo para su uso y despliegue en algunas aplicaciones informáticas (Schuetz, Markus, 2016a).
A diferencia de realizar un despliegue de la imagen en una computadora que tiene almacenado el archivo en su mismo disco duro, él desligue del archivo desde un navegador por medio de internet lleva consigo la descarga de los datos contenidos en dichos archivos, por lo que su desempeño de despliegue depende de varios factores como el ancho de banda, tamaño del archivo, densidad de puntos, rango de despliegue de la carta geográfica, datos adicionales, colores y demás variables.
Herramientas utilizadas para el desarrollo Web
Para el desarrollo del proyecto e integración de un sitio web que permita la visualización de datos LiDAR, se realizó la siguiente combinación, contemplando el uso de algoritmos, métodos y plataformas Open Source para la conversión y despliegue de modelos tridimensionales representativos de cartas geográficas:
- Codificación con HTML5
- JavaScript
- JQuery y CSS3
- gestor de base de datos PostgreSQL y PostGIS
Parte importante del desarrollo de un sitio de visualización de objetos tridimensionales es el uso de las librerías WebGL, la cual permite el despliegue de contenido web basado en OpenGL, lo que a la vez permite el renderizado 3D sobre la codificación HTML sin necesidad de plug-in adicionales. Consiste en un código de control escrito en JavaScript y otro de efectos especiales (shader) que se ejecuta en la unidad de procesamiento gráfico de una computadora (GPU) (MDN webdocs, 2017).
Para su desarrollo es fundamental el uso de la librería 3D en JavaScript llamada Three.js, la cual cuenta con licencia libre MIT y es muy utilizada para minimizar el uso y complejidad de las herramientas de la librería WebGL. La plataforma Three.js permite un acceso más sencillo para el análisis y renderizado de los objetos tridimensionales.
Por otro lado, para mejorar la experiencia visual de los objetos en los videojuegos es común utilizar una técnica llamada Eye Dome Lighting (EDL), la cual permite el manejo de sombras sobre los modelos tridimensionales, consiste en una técnica abierta a toda clase de geometrías que genera una sombra no fotorrealista para mejorar la percepción en las imágenes (Boucheny, Christian, 2011). Esta técnica también está integrada en el sitio de visualización.
Agilizar la descarga de datos
Todas estas herramientas nos permiten crear un sitio de despliegue de imágenes tridimensionales basadas en nubes de puntos con cierta eficiencia, sin embargo aún no hemos platicado de cómo mejorar la experiencia para agilizar la descarga de los datos con un rendimiento aceptable. Para ello se requiere de la optimización en tiempo real, lo cual lo podemos realizar a través de un algoritmo basado en Potree’s Octree Structure, que es una variación de la estructura Modificable Nested Octree (MNO) con un método diferente de clasificación y partición de la jerarquía en trozos más pequeños y transmisibles de forma rápida (Schuetz, Markus, 2016a). Este algoritmo es utilizado en la plataforma Potree desarrollada en el Institute of Computer Graphics and Algorithms, TU Wien liderado por Markus Schütz.
Formato Octree
El formato Octree se basa en una estructura multiresolución que consiste en tomar un archivo de nube de puntos y dividirlo en una estructura de datos basada en octantes (o nodos), cada uno de los cuales se encuentra en función del nivel de detalle de cada rama; cada archivo (que se encuentra dividido en subpartes) contiene información a diferente nivel de detalle. En el momento de la visualización se cargan solo aquellos nodos que son visibles desde la perspectiva del usuario. Cada uno almacena un subconjunto de la nube de puntos; de él se seleccionan ciertos puntos que serán desplegados (Schuetz, Markus, 2016b). Conforme el usuario modifica la posición del modelo tridimensional, la plataforma va llamando y desplegando nuevos nodos, lo que permite un acceso ágil.
La combinación de todas estas herramientas nos permitieron crear un ambiente web con diversas herramientas para visualización de los archivos y algunas otras herramientas para análisis de datos sencillos, con un tiempo de carga de cada archivo bastante óptimo, en el que el usuario no requiere esperar en la descarga.
Fuentes
- Schuetz, Markus. Potree: Rendering Large Point Clouds in Web Browsers. Thesis in visual computing. Faculty of Informatics at the Vienna University of Technology, Viena, Austria, 2016a
- Boucheny, Christian y Alejandro Ribes. “Eye-Dome Lighting: a non-photorealistic shading technique”. Reporte técnico. Électricité de France (EDF). París, Francia. 2011
- MDN webdocs. Tutorial WebGL (DE), consultado en febrero de 2017
- Schuetz, Markus. PotreeConverter-Uniform Partitioning of Point Cloud Data into an Octree. Reporte técnico. Vienna University of Technology, Viena, Austria, 2016b
Hugo René Valadez Oliva es Consultor de Soluciones Tecnológicas - TI en CIATEC A.C. Correo contacto: