Consejo Nacional de Ciencia y TecnologíaPAREIDOLIA v1.1:

Una Aplicación para la Extracción de Objetos a partir de las Nubes de Puntos en MATLAB

 

 

Manual de Usuario

 

 

Dr. José Luis Silván Cárdenas

jsilvan@centrogeo.edu.mx

 

Resultado de imagen para pareidolia


 

Contenido

¿Qué es PAREIDOLIA?. 5

¿Cómo instalo PAREIDOLIA?. 6

Inicio de la Interface de Usuario. 8

Carga de una nube de puntos. 10

Importar una Nube de Puntos. 10

Creación de un archivo de cobertura de múltiples LAS. 12

Selección interactiva del área de carga. 13

Partición de archivos LAS. 16

Exportar una Nube de Puntos. 17

Modos de visualización. 18

Vista de planta de la nube de puntos. 18

Vista de perfil de la nube de puntos. 20

Gráficación de campos. 22

Intercambio de coordenadas. 26

Visualización 3-D.. 28

Visualización en Potree. 30

Selección. 32

Selección interactiva. 32

Selección por campo. 35

Activación de la selección. 35

Campos. 36

Edición de la lista de campos. 36

Creación de campos. 36

Actualización de campos. 43

Transferencia de campos. 43

Clasificación. 45

Reclasificación. 46

Creación de campos de entrenamiento. 46

Códigos de clases LAS. 47

Superficies. 49

Modelo digital de superficie. 50

Modelo digital de terreno y alturas. 52

Filtrado con PDAL. 59

Normales. 60

Cálculo de Normales. 60

Visualización y Otras operaciones con las Normales. 61

Vecinos. 61

Definición de Vecindades. 62

Edición de Vecindades. 62

Segmentación. 64

Filtrado de campos. 67

Visualización y otras operaciones con Vecinos. 67

Etiquetas. 68

Edición de Etiquetas. 68

Visualización y otras operaciones con Etiquetas. 69

Modelos. 69

Ajuste. 70

Visualización y Otras operaciones con Modelos. 71

Geometrías. 71

Geometría de Superficie. 71

Geometría de Terreno. 72

Geometría de Árboles. 72

Geometría de Edificios. 78

Flujo de trabajo típico para la generación de la capa de arbolado. 83

Paso 1:  Generación de la geometría de Terreno. 83

Paso 2: Selección de los puntos de vegetación. 83

Paso 3: Vecindad, poda y segmentación. 84

Paso 4: Edición de las etiquetas. 85

Si es necesario, realiza ediciones (borrado o unión) de las etiquetas, por ejemplo, borrado de segmentos pequeños o que se ubican en las orillas. Consulta la sección Etiquetas  85

Paso 5: Genera geometrías de arbolado. 86

Paso 6: Visualizar y exportar. 86

Flujo de trabajo típico para la generación de la capa de edificios. 87

 


 

¿Qué es PAREIDOLIA?

PAREIDOLIA[1] es una aplicación orientada a la extracción interactiva, manual y automática de objetos inmersos en nubes de puntos generadas por escáneres láser o mediante técnicas fotogramétricas. Consta de una interface de usuario y de un conjunto de cajas de herramientas (Toolboxes) desarrolladas en MATLAB. La mayoría de las funciones de procesamiento de los Toolboxes se pueden emplear en programas de MATLAB, pero algunas funciones están sólo disponibles desde la interface. La interface permite las siguientes operaciones:

1.     Importar desde archivos LAS

2.     Generar archivo SHP de índice a partir de múltiples LAS

3.     Extraer un subconjunto de nubes de puntos de uno o muchos LAS (indexado con un SHP)

4.     Visualizar la nube de puntos proyectada en un plano horizontal y perfiles verticales

5.     Visualizar la selección en 3-D

6.     Realizar gráficas 2-d y 3-d para el análisis visual de los datos

7.     Selección interactiva y programática de puntos

8.     Crear y editar campos numéricos

9.     Realizar un análisis de vecindad, sea por etiquetado o por relación de proximidad

10.Aplicar funciones de clasificación, segmentación y filtrado

11.Generar y exportar geometrías de superficie, terreno, arbolado y edificios

12.Exportar nube de puntos a formatos LAS, SHP y ASCII

13.Publicar en web la nube de puntos (requiere PotreeConverter y http-server)

14.Exporta geometrías a formato vectoriales Shapefile de ESRI y OBJ de Wavefront

Nota: Actualmente se están desarrollando herramientas para la generación automática de edificios.

¿Cómo instalo PAREIDOLIA?

Se requiere una licencia de MATLAB y se recomienda contar con los siguientes toolboxes:

Image Processing Toolbox

Computer Vision System Toolbox

Mapping Toolbox

Neural Network Toolbox

Optimization Toolbox

Los demás toolboxes requeridos se encuentras disponibles para descarga desde:

http://pr.centrogeo.org.mx/toolboxes.html

Los toolboxes que requiere instalar son los siguientes:

PCPROC – contiene la interfaz principal de PAREIDOLIA y numerosas funciones de procesamiento de nubes de puntos, polígonos y superficies

IOFUN – se requiere para soporte de lectura/escritura de algunos formatos tales como los archivos LAS, Shapefile y ENVI Standard

GUI – se requiere para generar algunas interfaces gráficas de usuario genéricas

IMPROC – se requiere para realizar algunos procesamientos en formato ráster, como clasificación y segmentación.

GEOSTATISTICS – se requiere para la para rasterización de datos puntuales.

GRAPHICS -  se requiere para generar y graficar superficies en 3-d, como árboles y edificios

Los siguientes son opcionales:

DHT – implementa la transformada de Hermite Discreta. Algunas funciones de filtrado de terreno en formato ráster se basan en dicha transformada. Sin embargo, existen alternativas, por lo que no es necesaria.

ANN – Es un toolbox de redes de neuronales artificiales que proporciona algunas funciones de clasificación de imágenes. Sin embargo existen alternativas a dichos métodos de clasificación.

DATA – datos de muestra. Algunos ejemplos de los toolboxes usan datos de prueba que se encuentran en esta carpeta.

Agregue el directorio donde descomprimió los archivos a la ruta de búsqueda de MATLAB.

Si desea generar visualizaciones publicables en línea requiere instalar PotreeConverter y http-server, los cuales son descargables desde 

http://potree.org/

y

https://www.npmjs.com/package/http-server

respectivamente. Para su instalación debe consultar la documentación disponible en dichos sitios.

Algunas opciones no esenciales aprovechan la librería PDAL - Point Data Abstraction Library la cual se puede descargar desde

https://pdal.io/index.html

Para que las opciones que emplean PDAL funcionen correctamente desde PAREIDOLIA, la librería debe ser instalada localmente en la ruta C:\OSGeo4W64\ mediante la distribución binaria OSGeo4W disponible en

https://www.osgeo.org/projects/osgeo4w/

Nota: Una copia de los programas arriba referidos se proporciona con el Toolbox PCPROC en la carpeta third_party.

Inicio de la Interface de Usuario

Para iniciar la interface de usuario escriba en la línea de comando de MATLAB,

>> pareidolia

Figura 1. Interface de usuario principal de la aplicación para el procesamiento y visualización de nubes de puntos.

La interface de usuario consta de lo siguiente (Figura 1):

a.     Una barra de menús donde se encuentran la mayoría de las funciones no interactivas

b.     Una barra de botones que habilitan o deshabilitan una serie de herramientas interactivas

c.      Un panel de campos, donde se listan los diferentes valores asociados a cada punto de una nube de puntos y controles para operaciones básicas sobre los campos

d.     Un panel de información donde se muestran valores de interés para conocer el estado de los datos calculados

e.     Un panel de despliegue donde se muestran controles para cambiar la forma de visualización de los datos

f.       Área de grafica empleada para mostrar una vista de planta de la nube de puntos

g.     Área gráfica donde se muestra una vista de perfil de la nube de puntos

h.     Una barra de mensaje donde se despliega el resultado de la última acción

Carga de una nube de puntos

La interface permite cargar una nube desde un proyecto generado por la misma interface (*.PRJ o *.MAT) o importarla a partir de archivos externos en formato LAS o ASCII.

Importar una Nube de Puntos

Seleccione File>Import Data > Point Cloud. Se abrirá una interface para selección de archivos:

Figura 2. Interface de usuario para carga de nube de puntos.

En la línea File name escriba el nombre del archivo de entrada con la ruta completa o de click en el botón Browse… para selección interactiva.

Use la opción LAS (ASPR file format of laser point clouds) para cargarla nube desde un solo archivo LAS.

Use la opción SHP (ESRI shapefile generared with LASCOVER) para cargar a partir de varios archivos LAS.

Use la opción XYZ, XYZI o XYZIR para cargar a partir de un archivo de texto ASCII.

Use la opción Create SHP… para crear un nuevo archivo en formato shapefile de cobertura de múltiples archivos LAS.

Seleccione los campos que desea cargar. Por default, todos los campos estarán seleccionados. Desmarque All fields si no se desea cargar todos los campos y de click en las cajas de opciones para seleccionar los campos que desea cargar. El campo Z-coordinate es obligatorio. No todos los archivos las contienen todos los campos, como por ejemplo RGB color. Si la nube de puntos no contiene un campo que se haya seleccionado, se imprimirá un mensaje de advertencia en la línea de comando de MATLAB durante la carga de los datos.

Use la opción Select para seleccionar retornos específicos en nubes con múltiples retornos o clases específicas en nubes clasificadas. Por default se cargarán todos los puntos del archivo.

Edite las cajas de texto de los límites para restringir el área cargada o defina el área interactivamente dando un click en Spatial subset…

Use OK para caragar los datos al espacio de trabajo.

Use Cancel para cancelar la operación.

Creación de un archivo de cobertura de múltiples LAS

Para cargar una nube de puntos a partir de varios archivos LAS es necesario crear un archivo shapefile que contiene la cobertura de cada uno de los archivos LAS.

De click en la opción Create SHP… Se abrirá la interface de usuario para la generación de cobertura de archivos LAS como la que se muestra en la siguiente figura:

Figura 3. Interface de usuario para creación de archivo de cobertura de múltiples LAS

Use:

Add Files... para agregar archivos LAS. Puede seleccionar múltiples archivos.

Remove File para remover el archivo de la lista que esté seleccionado.

Gen Coverage para generar la geometría de la cobertura. Al terminar se habita Export.

Export para para exportar la geometría a un archivo shapefile.

Cancel para cancelar la operación.

También se puede acceder a esta herramienta desde el menú de Herramientas de la interface principal: Tools>Create LAS Cover (SHP) file

Selección interactiva del área de carga

La interface para la selección interactiva del área a cargar se inicia mostrando la cobertura de los datos y el área de carga como una línea roja. Si se ha seleccionado un archivo SHP para la carga de múltiples archivos LAS se mostrarán los polígonos de la cobertura de cada archivo, como en el ejemplo de la siguiente figura:

Figura 4. Interface para la selección interactiva del área para carga de datos espaciales.

En el panel derecho se presentan varios controles para definir el área de carga. Por default, se selecciona el área máxima que engloba todos los datos.

Use las cajas de texto para meter los valores mínimos y máximos de las coordenadas.

Use Draw Area para trazar un rectángulo arrastrando el apuntador sobre el área gráfica

Use From Image para definir el área a partir de la cobertura de una imagen geo referenciada en UTM y en formato ENVI Standar.

Use From Shape para definir el área a partir de la cobertura de un archivo en formato shapefile en coordenadas proyectadas UTM

Use From Feature para definir el área a partir de un polígono dentro de una serie de polígonos cargados previamente con la opción From Shape. Se hará visible un cursor de selección. De click sobre el polígono a emplear y éste se resaltará con la caja roja.

Figura 5. Definición del área de carga a partir de un polígono de una capa SHP.

Use Reset para definir el área por default.

Presione Return para terminar. Las coordenadas mínimas y máximas del área seleccionada serán transferidas a la interface de carga.

Partición de archivos LAS

En muchas ocasiones es necesario realizar una partición sistemática de los datos antes de procesarlos, ya sea para repartir el trabajo o por las restricciones de memoria que imponen los sistemas. En otras, también se desea que los subconjuntos estén traslapados con el fin de garantizar que no se generen huecos o errores en las orillas de los productos finales como las geometrías.

Use Tools> Split a point cloud para hacer una partición de una nube de puntos almacenada en uno o varios archivos LAS, en este último caso se debe seleccionar el archivo de cobertura SHP que hace referencia al conjunto de archivos LAS. Seleccione el archivo de entrada (LAS o SHP) y seleccione el directorio de salida, donde se almacenarán los archivos generados. Se desplegará una interfaz de usuario como  la  de la Figura 6 para definir las características de la rejilla de partición que incluye: número de renglones, número de columnas, porcentaje de traslape de los renglones y porcentaje de traslape de las columnas (caja superior) y la extensión total de salida (caja inferior) . Por default, la extensión de la salida se determina a partir de la nube de entrada <input>, pero es posible cambiarla conociendo las coordenadas del recuadro que se desea trabajar [Xmin Xmax; Ymin Ymax].

Figura 6. Interfaz de opciones para la partición de una nube de puntos.

Exportar una Nube de Puntos

Seleccione File>Export data>Point Cloud. Se abrirá una interfaz de usuario para la selección de archivo de salida:

Figura 7. Interfaz de usuario para exportar una nube de puntos.

En la línea File name escriba el nombre del archivo de salida con la ruta completa o de click en el botón Browse… para selección interactiva.

En el menú Format:

Use la opción LAS (ASPR file format of laser point clouds) para exportar nube a un archivo LAS.

Use la opción SHP (ESRI shapefile ZPoint) para exportar a un archivo Shapefile con ZPoint features.

Use la opción XYZ para exportar a un archivo de texto ASCII.

Active la opción Publish online… para generar una versión publicable en línea empleando el visualizador Potree. Nota: Se generará un error si no se ha instalado correctamente PotreeConverter.

Seleccione los campos que desea exportar. Por default, se seleccionan los campos con nombres que corresponden a los nombres definidos para el formato LAS. Sólo el campo Z-coordinate que es obligatorio.

Use Clear para poner seleccionar None para dejar todos los campos opcionales vacíos.

Si la selección está activa en la interface principal, sólo los puntos seleccionados se exportarán. El subconjunto espacial se muestra a la derecha de la interface.

Use OK para caragar los datos al espacio de trabajo.

Use Cancel para cancelar la operación.

Modos de visualización

La interface principal de la aplicación proporciona herramientas básicas de visualización y consulta, las cuales se describen en esta sección.

Vista de planta de la nube de puntos

Tras la carga de una nube de puntos se mostrará en el área gráfica la imagen de la nube de puntos coloreada de acuerdo al campo seleccionado. Por default, se seleccionará el campo RGBColor; si éste no está disponible se seleccionará ZCoord, y si éste no estuviera disponible tampoco, se seleccionará el primer campo que se encuentre disponible.

Use la selección de campo del panel Field para mapear el campo al eje de color con la opción Selected field habilitada.

Deshabilite la opción de mapeo automático de color desmarcando Selected field en el panel Display.

Figura 8. Vista de Planta tras la carga de la nube de punto.

Use  para acercamiento/alejamiento/paneo en cualquiera de las vistas.

Use  para incrustar/ocultar barra de colores y etiquetas de valor de un punto. Aunque estas herramientas pueden usarse en cualquiera de las vistas, se recomienda emplearlas en la vista de planta que cuenta con más espacio.

Use  para acercar a la selección. Se habilita únicamente si hay puntos seleccionados.

Use el menú Colormap para cambiar la escala de color. Se cambiará el esquema de color de ambas vistas. Seleccione la opción user para editar la escala de color mediante Colormap Editor de MATLAB.

Figura 9. Interface de usuario del editor de escala de color.

Vista de perfil de la nube de puntos

En la sección Profile del panel Display habilite la caja Show profile para para mostrar un perfil. Aparecerá la vista de perfil en la parte de abajo y una línea indicando el área del perfil en la vista de planta y se habilitan los controles del perfil.

Elija la orientación del perfil con los botones radiales Horizontal, Vertical y Arbitrary.

Cambie el valor de Offset (0-100) para desplazar el perfil ortogonalmente a su orientación. Opcionalmente puede arrastrar la línea en la vista de planta. Este valor está definido en términos porcentuales del ancho/alto del área de cobertura de la nube de puntos. (Nota: el desplazamiento interactivo puede no ser preciso debido al tamaño del despliegue).

Cambie el valor de Width (1-50) para ensanchar o adelgazar el área del perfil. Este valor está definido en términos porcentuales del ancho/alto del área de cobertura de la nube de puntos.

Cambie el valor Rotation (0-360) para indicar la orientación de un perfil arbitrario.

Use Center para centrar el perfil tras haber usado alguna herramienta de acercamiento o paneo.

Use Update Lims para cortar el perfil al nivel de acercamiento actual de la vista de planta.

Figura 10. Visualización de la nube de puntos en planta y perfil.

Gráficación de campos

Las herramientas  se habilitan con la selección de uno o más campos y permiten desplegar un histograma de frecuencias y un perfil vertical de los percentiles del campo seleccionado. En éste último caso, sólo se considerará el primer campo seleccionado o la primera componente del campo, si éste es vectorial, mientras que el primer caso se grafica cada uno de los campos por separado.

Figura 11. Histograma de los campos seleccionados (izquierda) y perfil vertical del campo seleccionado.

Las opciones  se habilitan cuando se seleccionan dos o más campos (sólo se consideran los primeros dos campos). La primera despliea un diagrama de dispersión con el ajuste lineal, la segunda muestra la triangulación de los campos y la tercera el histograma de densidades con curvas de nivel.

Figura 12. Ejemplos de gráficos 2-D para dos campos seleccionados.

Figura 13. Ejemplo de una iso-superficie de tres campos seleccionados.

Si existe una selección, únicamente se graficarán los puntos seleccionados (para métodos de selección vea la sección Selección).

Otra forma de generar diagramas de dispersión es intercambiando las coordenadas XY de la nube de puntos por los valores de los campos que se quieren graficar y emplear todas las herramientas de visualización de la aplicación (Vea Sección Intercambio de coordenadas).

Intercambio de coordenadas

Use los botones   para intercambiar las coordenadas X por Y, X por Z y Y por Z, respectivamente.

También puede definir las coordenadas de la nube a partir de valores de campos calculados. Esto es útil para visualización de la dispersión de dos o tres campos y en la selección de puntos.

Importante: Antes de cambiar las coordenadas de los puntos es recomendable crear un campo Points con los puntos originales para poder revertir el cambio.

Use Fields>New from>Points para respaldar las coordenadas de la nube de puntos. No edite este campo a menos que sepa lo que hace.

Desde el panel Fields, Seleccione los campos que definirán las nuevas coordenadas.

Use Fields>Set as>XCoords/YCoords/ ZCoords/XYCoords/XYZCoords para definir las nuevas coordenadas.

En el siguiente ejemplo se realizó la siguiente asignación de coordenadas:

Tabla 1. Selección campos para cada coordenada.

Campo

Coordenada

Red_plus_Blue

X

Green

Y

Red

Z

ZCoord

Color

 

Figura 14. Ejemplo de transferencia de campos como coordenadas para visualización de diagrama de dispersión.

Mientras se encuentran desplegadas los campos como coordenadas, puede usar las herramientas de visualización y selección interactiva (vea las secciones Seleccione los campos que desea exportar. Por default, se seleccionan los campos con nombres que corresponden a los nombres definidos para el formato LAS. Sólo el campo Z-coordinate que es obligatorio.

Use Clear para poner seleccionar None para dejar todos los campos opcionales vacíos.

Si la selección está activa en la interface principal, sólo los puntos seleccionados se exportarán. El subconjunto espacial se muestra a la derecha de la interface.

Use OK para caragar los datos al espacio de trabajo.

Use Cancel para cancelar la operación.

Modos de visualización y Selección interactiva).

Notas importantes: 1) Aunque puede emplear las opciones de creación/actualización de campos descritas en la sección Campos no es recomendable hacerlo hasta que haya  reestablecido las coordenadas originales. 2) no es recomendable (a menos que sepa lo que hace) emplear las opciones de Point Cloud ya que estas usarán las coordenadas actuales y no las originales. 3) Antes de transferir las variables se recomienda reescalar todas las variables a un mismo rango (típicamente 0-1000) para obtener una visualización apropiada.

Otro ejemplo donde puede ser útil el cambio de coordenadas es para cambiar la vista de planta a una rotación arbitraria. Use  la opción Point Cloud>Fields>New from>Points para crear una versión rotada de la nube de puntos (Vea la sección Creación ) y trasfiera dicho campo a las coordenadas de los puntos correspondientes.

Para reestablecer las coordenadas originales, seleccione el campo Points y la opción Fields>Set as>Points.

Visualización 3-D

La sección 3D Plot dentro del panel Display proporciona herramientas para graficación en 3-D de un subconjunto de datos. Debido a que la visualización 3-D puede ser muy demandante en MATLAB, esta se habilita únicamente cuando se activa Selected points. Adicionalmente, se presenta la cantidad de datos a desplegar en 3-D se limita por el valor de Max Points. Al inicio, este valor será de 100,000 puntos, pero puede cambiar este valor a conveniencia. El tiempo de rendering de la escena crecerá si crece el número de puntos y las opciones seleccionadas.

Seleccione una o más opciones para despliegue en 3-D (Points, Neighbours, Normals, Models, Surface, Terrain, Trees, Buildings) y de click en el botón 3D Plot para generar el gráfico. Tras la carga de una nube de puntos únicamente se habilita la opción Points. Las opciones se habilitarán a medida que los datos se vayan generando. Ela Figura 15 se muestran algunos ejemplos de graficas 3-D generadas con esta opción.

 

Figura 15. Visualizaciones 3-D para una misma área. En orden lexicográfico: Puntos, Puntos con Vecinos, Puntos con superficie y Superficie con Normales.

Figura 16. Ejemplo de visualización de la nube de puntos coloreada por elevación (arriba) y capas de terreno, edificios y  detectados.

 

Cuando se haya generado una gráfica 3D puede ocultar/visualizar alguna de las capas generadas desmarcando la caja, pero no se podrán visualizar las capas que no hayan estado seleccionadas al momento de generar la visualización con el botón 3D Plot. Al generar una visualización 3D, no se destruye la anterior, pero si se pierde el vínculo de las cajas de selección con la visualización previa.

Visualización en Potree

Si se encuentran instalados PotreeConverter y http-server, se pueden visualizar la nube de puntos empleando el servidor de Potree.

Use File>Export data>Point Cloud y habilite la opción Publish online para generar una versión publicable en línea de la nube de puntos actual. Se abrirá el navegador de internet que tenga definido por default (para determinar la compatibilidad de su navegador con Potree consulte la documentación de éste http://potree.org/) en el localhost:4000. 

Figura 17. Pantalla del visualizador de Potree.

Para publicar un archivo LAS o múltiples archivos LAS referenciados en un shapefile de coberturas LAS use la opción Tools>Publish LAS with Potree Converter.

Selección

Hay dos modos para la selección de puntos:

Selección interactiva

Use las herramientas de selección interactiva de puntos  para:

1.     Seleccionar los puntos dentro de una caja. Para seleccionar arrastre el puntero desde una esquina a otra de la caja y suelte.

2.     Seleccionar los puntos dentro de un polígono. De click derecho para agregar un nuevo vértice al polígono y click izquierdo para cerrar el polígono. Cree más polígonos o termine el trazo presionando ENTER. Puede crear regiones con huecos y huecos con islas invirtiendo la orientación de la secuencia de vértices.

Figura 18. Ejemplo de una selección de puntos con la herramienta de selección polinomial.

3.     Seleccionar aleatoriamente. Pedirá el número de puntos a generar por default genera 1000 puntos. Se aplica muestreo aleatorio sin reemplazo.

4.     Selección a partir de una expresión lógica. Inicia la interfaz para el cálculo de expresiones matemáticas a partir valores de campos (Figura 22). Se seleccionan los puntos donde la expresión es verdadera.

5.     Seleccionar empleando un archivo con formato SHP. Seleccione el archivo SHP que contiene los polígonos. No se recomienda usar archivos con muchos polígonos o atributos. Si el archivo contiene varios polígonos, se desplegará un diálogo para la selección del atributo identificador. Seleccione el nombre del campo identificador de cada polígono y se mostrarán los polígonos etiquetados para referencia. En este punto se solicitará seleccionar el polígono que desea emplear para la selección de puntos. Puede seleccionar uno o más polígonos.

    

Figura 19. Diálogos de lista empleados durante la carga de polígonos para la selección.

6.     Borrar la selección actual

7.     Invertir la selección actual

8.     Seleccionar todo

9.     Selección por clases

Por default la selección interactiva se hace por puntos, pero también pueden seleccionarse puntos con base en el valor de sus etiquetas, con base en su asociación con geometrías si están definidas. Para cambiar el modo de selección en la sección Selection del panel Display seleccione el tipo de selección que desea emplear. 

Para realizar una selección en la vista de perfil, la opción Profile.

Si la opción Selected points en la sección Display está habilitada, la selección será sobre los puntos previamente seleccionados. Esta funcionalidad es útil para realizar selecciones acumulativas (selección de la selección).

Nota: Aunque las herramientas de selección interactiva operan en el dominio espacial, puede cambiar de dominio definiendo campos como coordenadas (Vea la sección Intercambio de coordenadas).

Selección por campo

Use la opción Fields>New from>Expression empleando los operadores relacionales (>,>=, ==, <, <=) para generar un campo de tipo lógico.

Alternativamente, puede emplear el control de transferencia de campo  para transferir el campo seleccionado en el panel Fields como Selección.

En todos los casos la selección se activará automáticamente.

Activación de la selección

Use la opción Selected points del panel Display para activar la selección.

La activación de la selección tiene los siguientes efectos:

1.     Se visualizan únicamente los puntos seleccionados en las vistas de planta y perfil

2.     Se habilita la visualización 3D

3.     La visualización 2D de campos generará gráficas con los puntos seleccionados 

4.     Cambia el modo de edición de campos (New from cambia a Update from)

5.     Varias funciones como, el cálculo de Modelos, se aplican únicamente a los puntos selecionados

Nota: Algunas operaciones de poda de vecinos emplean la Selección, incluso si no está habilitada (Vea la sección ¡Error! No se encuentra el origen de la referencia.), mientras que otros como la clasificación de campos seleccionados no toma en cuenta la selección actual (Vea la sección Clasificación).

Campos

Los campos son los atributos de la nube de puntos y pueden ser escalares o vectoriales. Cuando importan una nube de puntos por primera vez, al menos existirá el campo ZCoord que corresponde a una copia de coordenada Z de la nube de puntos. Los campos pueden ser creados, editados o borrados, y son útiles para generar otros campos, así como para colorear y clasificar la nube de puntos.

Edición de la lista de campos

El panel Fields muestra la lista de campos disponible, mientras que el panel Info muestra el número de campos totales y seleccionados.

Edite los campos disponibles empleando los controles del panel Fields o con las opciones del menú Point Cloud>Fields.

Use  o  Point Cloud>Fields >Delete  para borrar el campo seleccionado. Cuando se seleccionan varios campos, sólo se borra el primero. Pide confirmación antes de proceder al borrado.

Use  o Point Cloud>Fields >Rename para renombrar el campo seleccionado. Cuando se seleccionan varios campos, sólo se renombra el primero.

Use  para mover el campo seleccionado hacia arriba o hacia abajo en la lista de campos. Esta acción es útil para establecer el orden de empaquetamiento de varios campos en un solo campo vectorial o para generar gráficas de múltiples campos en el orden deseado.

Creación de campos

Use  o Point Cloud>Fields>New from para agregar un nuevo campo cuando la selección de puntos está desactivada (Selected points desmarcado):

Points define campos en función de las coordenadas de los puntos. Puede agregar una, dos o las tres coordenadas, coordenadas rotadas, densidad de puntos, y orientación local dominante.

Figura 20. Diálogo de Campos a partir de la nube de Puntos

Fields permite desagregar o ensamblar campos seleccionados en el panel de campos, así como calcular algunos índices de vegetación y clasificar campos.

Selection agrega la máscara de selección como campo. Cualquier cambio posterior que se haga al campo no afecta la selección actual. Esta opción es útil para generar campos de entrenamiento requeridos por los métodos de clasificación (Para más detalles vea la sección Creación de campos de entrenamiento).

Labels calcula un campo a partir de la nube de puntos etiquetada. Al igual que los puntos, las etiquetas se encuentran en un campo interno que sólo es modificado por métodos de procesamientos como son la segmentación de la nube de puntos. Esta opción permite agregar las etiquetas como campo, contar el número de puntos por etiqueta, o calcular una estadística del (de los) campos seleccionado(s).

Figura 21. Diálogo creación de campo a partir de la nube etiquetada.

Expression calcula un campo a partir de una expresión que combina otros campos existentes empleando la interface de calculadora matricial (Figura 22). Use las variables de la lista, los botones de operadores y números, y las listas de funciones para crear una expresión válida. La sintaxis de las expresiones debe ser como las aceptadas en MATLAB, salvo porque los operadores escalares (*) son reemplazados internamente por operadores punto vectoriales (.*). Si el intérprete de MATLAB no reconoce la expresión se desplegará un diálogo de error. Presiona el botón  para calcular la expresión y regresar a la interfaz principal. El nombre del nuevo campo por default es Expression. Se recomienda renombrarlo para evitar la sobre escritura.

Figura 22. Interface de usuario para la evaluación de una expresión a partir de campos existentes.

Neighbours calcula un campo a partir de los vecinos. Para habilitar esta opción hay que calcular los vecinos previamente. Esta opción permite calcular estadísticas de los vecinos como número de vecinos, estadísticas de distancia entre vecinos y estadísticas de las diferencias de valores de un campo entre vecinos. Para esta última, se toma como entrada el campo seleccionado del panel Fields. Si la selección corresponde a un campo vectorial, se emplea la distancia euclidiana.

Figura 23. Diálogo para selección de estadística a parir de vecinos.

Normals calcula un campo a partir de las normales. Para habilitar esta opción hay que calcular las normales previamente. Se desplegará un diálogo para la selección de un rasgo a calcular a partir de las normales. Los rasgos incluyen las propias componentes de las normales, la pendiente, el ángulo de elevación, el azimut y las curvaturas:

Figura 24. Dialogo para selección de rasgo a partir de las normales.

Models calcula un campo a partir de modelos previamente ajustados. Si existen modelos ajustados, se desplegará un diálogo para la selección de un rasgo a calcular, entre los que se encuentran: valor del modelo, medidas del error de ajuste y parámetros del modelo. Para más detalles sobre modelos vea la sección Modelos.

Figura 25. Diálogo para selección de rasgo a partir de modelos.

Colors crea un campo vectorial llamado Colors que corresponde al color RGB actual. Sin importar si el campo empleado para el color de la nube de puntos es escalar o vectorial, el campo creado con esta opción siempre será vectorial de tres columnas (R-G-B). Esta opción puede ser útil para guardar el color de los puntos tras editar un mapa de colores o para crear formas combinadas de colores empleando Expresiones.

Terrain crea un campo a partir de atributos la superficie del terreno. Para habilitar esta opción debe calcularse la superficie de terreno como se describe en la sección Modelo digital de terreno. Entre los atributos se encuentran elevación del terreno, la altura respecto al terreno, las normales, el gradiente, la pendiente y el azimut de la superficie.

ENVI genera uno o más campos a partir del muestreo de un ráster georreferenciado en formato ENVI Standard. El ráster debe tener la misma proyección (UTM) que la nube de puntos. Emplee la interface de usuario (Figura 26) para seleccionar el archivo del ráster y las bandas que desea muestrear. No es necesario modificar la selección espacial. Seleccione Load Data y posteriormente se abrirá un diálogo para la selección del método de muestreo. Dado que los puntos LiDAR no coinciden con los pixeles del ráster es necesario la interpolación. Generalmente es suficiente con el método nearest o linear (Figura 27).

Figura 26. Interface de usuario para carga de raster.

Figura 27. Selección del método de interpolación para el muestreo del raster.

LAS permite importar atributos de los puntos en un archivo LAS. Emplee el diálogo de carga de nube de puntos para extraer los campos que se desean transferir (Figura 2). La correspondencia de los puntos se realiza por el método del vecino más cercano.

SHP crea un campo entero a partir de una capa de polígonos que se traslapan con la nube de puntos. El valor del campo es un consecutivo que identifica los puntos que caen en un mismo polígono. Esta función es útil para el etiquetado de puntos.

Actualización de campos

Cuando se activa la opción Selected points la opción Point Cloud>Fields>New From cambiará por Point Cloud>Fields>Update from y el botón con flecha izquierda  cambia la N (New) por una U (Update), lo que indica que se está en modo de actualización y que el campo seleccionado será editado para los puntos en la selección. Para que un campo sea actualizado correctamente, el número de dimensiones (columnas) del campo calculado deben ser corresponder con el número de dimensiones del campo que se actualiza. El modo actualización excluye las opciones Fields, Selection, ENVI, LAS, SHP. En estos casos se creará un campo nuevo independientemente de si hay o no puntos seleccionados.

Nota: El programa NO advierte la sobre escritura del campo seleccionado cuando se está en modo de actualización de campo.

Transferencia de campos

Use  o Point Cloud>Field>Set as para transferir el valor de un campo a una de las variables internas. Las opciones disponibles son:

Colors para transferir el (los) campo(s) seleccionado(s) al eje de color del despliegue. La selección debe tener al menos una componente. Si contiene tres o más componentes, se realiza una composición RGB tomando las tres primeras componentes y saturando los valores entre 0-1, de lo contrario, se emplea la primera componente como color y se actualizan los límites de la escala de color. Esta opción es útil sólo si se encuentra deshabilitada la opción de mapeo automático de color Selected field, ya que de otra forma la transferencia del campo seleccionado al eje de color es automática.

Labels para definir las etiquetas a partir de los valores de un campo escalar con valores enteros. Si los valores del campo no son consecutivos, se calcularán valores consecutivos. Esta opción estará deshabilitada si el campo seleccionado no es de tipo entero.

Selection para transferir un campo tipo lógico a la selección. Si el campo no es de tipo lógico, se considera la máscara de valores del campo diferentes de cero. La opción es útil para reutilizar máscaras de selección previamente generadas.

Terrain para transferir el campo seleccionado como elevación de terreno. Esta variable es empleada por algunos algoritmos de ajuste de modelos como referencia de elevación del terreno. Típicamente el campo a transferir se calcula a partir del muestreo de un modelo digital de terreno en formato raster mediante la opción Fields>New from>Raster (ver la sección Modelo digital de terreno). Si la nube de puntos ha sido normalizada con respecto al terreno, puede transferir un campo de ceros generado con la opción Fields>New from>Expression.

Normals para transferir el (los) campo(s) seleccionado(s) como normales. La selección debe tener al menos tres componentes. Las componentes adicionales son descartadas. Los vectores son internamente normalizados. Si algún vector tiene norma nula se reemplazará por el vector unitario en dirección Z.

Models para definir un campo como los parámetros del modelo. Esta opción aún se encuentra en evaluación, pero en combinación con la opción anterior permitiría trabajar con varios modelos.

XCoords, YCoords, ZCoords, XYCoords, XYZCoords para trasferir el (los) campo(s) seleccionado(s) a una, dos o tres coordenadas. El número total de componentes de la selección debe ser mayor o igual al número de coordenadas que se desea modificar. Las componentes adicionales son descartadas. Esta opción es útil para cambiar el espacio de la nube. Por ejemplo, cuando se desea construir un diagrama de dispersión con el valor de dos campos y hacer una selección de puntos en ese espacio (Vea la sección Intercambio de coordenadas).

Models para transferir el (los) campo(s) seleccionado(s) como parámetros de modelos polinomiales. Dependiendo del número de componentes es el orden del modelo

Clasificación

El proceso de clasificación consiste en generar un campo de etiquetas de clases, ya sea en forma supervisada o no supervisada, a partir de un conjunto de campos seleccionados en el panel Fields. Las operaciones de clasificación siempre crean un nuevo campo y no actualizan el campo seleccionado. Si está activa la selección sólo se clasifican los puntos seleccionados por lo que los puntos no seleccionados tendrán valores de NaN en el campo creado. Los métodos supervisados requieren que los campos de entrenamientos sean definidos en el campo interno Labels (Vea Creación de campos de entrenamiento)

Para realizar una clasificación seleccione dos o más campos de la lista y use Point Cloud>Fields>Classification para clasificar la nube a partir de éstos. Se creará un campo que contiene las etiquetas de clases.

Los métodos de clasificación disponibles son los siguientes:

Rule-based>Heigh-VI to Ground-Vegetation clasifica los puntos en suelo y vegetación a partir de la altura y el verdor (índice de vegetación) empleando umbrales. Emplea los códigos del estándar LAS (vea Tabla 2. Esquema de clasificación del formato LAS v1.2 de la ASPRS..

Rule-based>Azimuth-ElevAngle to Planes clasifica los puntos en 7 orientaciones (1=Horizontal, 2-5=Planos inclinados, y 6-7=Planos verticales) a partir de los ángulos de las normales azimut y elevación.

Isodata para aplicar el algoritmo no supervisado ISODATA. No requieren campos de entrenamiento.

Maximum Likelihood para aplicar la clasificación por máxima verosimilitud. Requiere campos de entrenamiento, los cuales debe ser puntos etiquetados mediante la variable interna Labels.

Support Vector Machine para aplicar máquinas de soporte vectorial con kernel lineal. Realiza clasificación binaria únicamente. Requiere campos de entrenamiento, los cuales debe ser puntos etiquetados mediante la variable interna Labels.

Support Vector Machine w/non-linear SVM para aplicar máquinas de soporte vectorial con kernel no-lineal. Realiza clasificación binaria únicamente. Requiere campos de entrenamiento, los cuales debe ser puntos etiquetados mediante la variable interna Labels.

Cluster-based Neural Network para aplicar redes neuronales basadas en agrupamiento  (Silvan-Cardenas, 2004). Requiere campos de entrenamiento, los cuales debe ser puntos etiquetados mediante la variable interna Labels.

Nota: Si desea clasificar los puntos en función de sus coordenadas es necesario crear los campos con dichos valores y seleccionarlos como entrada del clasificador. Vea la Sección Creación de campos.

Reclasificación

Cuando se cuenta con una clasificación previa y se desea unir clases se puede emplear la opción Reclassify from Labels, la cual requiere definir campos de entrenamiento en la variable interna Labels.

Los campos de entrenamiento son usados para determinar las clases que se deben unir. Si se especifican muestras de una misma clase dentro de dos o más campos de entrenamientos de diferentes clases del nuevo esquema de clasificación, la asignación se hace por mayoría, esto es se asigna a la nueva clase donde se hayan especificado un mayor número de puntos.

Creación de campos de entrenamiento

Siga el siguiente procedimiento para definir un campo de entrenamiento:

1.     Deshabilitar el cambio de color por selección de campo (Selected field). Este paso no es obligatorio, pero sí recomendable.

2.     Use Fields>New from>Expression con la expression 0 para crear una variable con ceros (Vea la sección Campos). El valor cero indica no clasificado.

3.     Si está habilitada, deshabilite la selección de puntos (Selected fields) y use las herramientas de selección para seleccionar los puntos de una clase (Vea la sección Selección).

4.     Habilite la selección de puntos (Selected fields) para comprobar que se han seleccionado los puntos.

5.     Seleccione el campo creado en el paso 1 y use Fields>Update from>Expression asigne la etiqueta correspondiente (1,2…o N, para N clases)

6.     Repite los pasos 2-4 hasta que tenga suficientes muestras de cada clase.

7.     Habilite el cambio de color por selección de campo y compruebe que se tienen todos los polígonos.

8.     Use Fields>Set as>Labels para transferir el campo seleccionado como etiquetas

9.     Seleccione el/los campo(s) que desea clasificar y seleccione la opción de clasificador.

10.Seleccione el campo creado para inspeccionar el resultado.

Nota: Es posible que requiera re-editar los campos de entrenamiento después de realizar una clasificación, sobre todo donde se identifique mayor confusión.

Códigos de clases LAS

La especificación de los archivos LAS incluye la definición códigos para clases de cobertura. La Tabla 2 resume los códigos del estándar LAS v1.2.

Tabla 2. Esquema de clasificación del formato LAS v1.2 de la ASPRS.

Código

Especificación de la ASPRS

Descrición

0

Created, never classified

Sin dato

1

Unclassified

No clasificado

2

Ground

Punto sobre el terreno

3

Low Vegetation

Vegetación baja, usualmente pastos

4

Medium Vegetation

Vegetación media, usualmente arbustos

5

High Vegetation

Vegetación alta, usualmente árboles

6

Building

Construido

7

Low Point (noise)

Punto por debajo de la superficie de terreno

8

Model Key-point (mass point)

Punto de modelado

9

Water

Cuerpo de agua

10

Reserved for ASPRS Definition

Reservado

11

Reserved for ASPRS Definition

Reservado

12

Overlap Points

Punto de traslape

13-31

Reserved for ASPRS Definition

Reservado

 

Figura 28. Ejemplo de una clasificación manual.

Cuando se cuenta con información espectral, específicamente la banda del rojo (R) y del infrarrojo cercano (NIR), así como al modelo digital de terreno, se puede realizar una clasificación manual empleando umbrales y editando el campo class. Un ejemplo se muestra en la Figura 28

 

Superficies

Las superficies son representaciones continuas de una variable referida al plano XY. Éstas se pueden almacenar en formato ráster como imagen o como una nube de puntos triangulada (TIN). En el contexto de nubes de puntos de la superficie terrestre se distinguen tres tipos de superficies: El modelo digital de superficie (Digital Surface Model o DSM), el modelo digital de terreno (Digital Terrain Model o DTM) y el modelo digital de alturas (Digital Height Model o DHM). La generación de éstas en formato ráster se describe a continuación.

Nota: Se recomienda usar la extensión IMG para facilitar su incorporación en proyectos de ArcMap arrastrando los archivos al área de trabajo de esa plataforma.

Modelo digital de superficie

Use la opción Point Cloud>Rasterize… para iniciar la interface de rasterización. Se cargará automáticamente la nube de puntos actual con todos los campos disponibles. La interface es no modal, lo que significa que puede realizar otras operaciones en la interface principal del UIPCPV.

Figura 29. Interface de usuario del módulo de rasterización de nube de puntos.

Seleccione el campo que desea rasterizar. Aunque se puede rasterizar cualquier campo, para generar el DSM hay que seleccionar la coordenada de elevaciones ZCoord.

Seleccione el área de salida usando una de las siguientes opciones:

Draw Area para trazar un recuadro con el puntero.

From Image para definir el área a partir de la cobertura de una imagen georeferenciada con proyección UTM.

Full Extent para definir área como un recuadro que engloba todos los puntos. Esta es la opción por default.

            Xmin, Ymin, Xmax, Ymax para ingresar directamente los límites del raster de salida.

Use Cell size para definir el tamaño pixel del raster de salida. Típicamente este parámetro está en función de la densidad de puntos.

Los límites del recuadro y el tamaño de celda determinan el tamaño de la imagen de salida, el cual se indica en Lines, Cols

Seleccione el método de rasterización, que puede ser por interpolación Interp (nearest, linear, natural) o por estadística zonal (min, max, mean, count).

Click en Run para calcular la rasterización, se desplegará la versión ráster del campo seleccionado. Es posible que después de la rasterización inicial, se generen vacíos, los cuales se asignan con valores NaN (Not a Number).

Use Show/Hide gaps para mostrar u ocultar los huecos (pixeles con valores NaN = Not a Number).

Use Gaps color para cambiar el color de los puntos indicadores de huecos.

Use Fill gaps para rellenar los huecos empleando alguno de los métodos disponibles en Fill method. El método de default es ridw (random inverse distance weighting), el cual funcionará razonablemente bien en la mayoría de los casos.

Click en Save para guardar el raster como imagen en formato ENVI Estándar.

Click en Close para cerrar la interface.

Modelo digital de terreno y alturas

Corresponde a la superficie del terreno sin árboles, edificios o cualquier otro objeto sobre el terreno. El método disponible para generar el DTM se basa en DSM, el cual se segmenta en grupos de pixeles contiguos y los segmentos de terreno se eliminan en forma interactiva, manual o automática.

Use Tools>DTM generation para crear un DTM. Se iniciará la interface de usuario para filtrado del terreno basado en segmentación.

Figura 30. Interface de usuario del filtrado de terreno basado en segmentación.

En la sección DSM image, use Load para cargar una superficie DSM en formato de ENVI Standard o Compute para generar una superficie DSM. Esta opción lanza el módulo de rasterización descrita en la sección anterior.

En la sección Segmentation image, use Load para cargar la imagen de segmentación o Compute para generar la segmentación del DSM. Esta opción lanza el módulo de segmentaión de DSM.

En la sección Segment Properties use Load para cargar las propiedades de los segmentos o Compute para generar las propiedades de los segmentos. Las propiedades de los segmentos son:

Area: Número de pixeles

Rise: Elevación media de un segmento con respecto a sus vecinos

Solidity: Solidez calculada como la fracción de área sobre área convexa.

Éstas se requieren para el filtrado interactivo de los segmentos.

Use Filter para filtrar los segmentos que no pertenecen al terreno. Hay tres opciones de filtrado disponibles en el menú desplegable:

Use Interctive para realizar un filtrado interactivo de segmentos a partir de la combinación de umbrales sobre las propiedades de los segmentos. Se abrirá la interface de usuario para el filtrado interactivo (Figura 31-derecha). Esta interface consta de 3 histogramas, uno por cada propiedad de los segmentos. Defina los umbrales para cada una de ellas empleado el control de desplazamiento o digitando los valores sobre las cajas de texto. Típicamente los segmentos de terreno son grandes (Area >= thr), bajos (Rise < thr) y complejos (Solidity >= thr). Puede invertir el sentido del umbral dando click en los botones >= (cambiará a < ) o puede invertir la contribución de una variable dando click en AND (cambiará a OR) o puede invertir toda la selección dando click en POS (cambiará a NEG). El objetivo es filtrar eliminar únicamente segmentos de terreno, pero no deben eliminarse otros segmentos. Es preferibles mantener algunos segmentos de terreno que eliminar segmentos que no son terreno.

Figura 31. Selección interactiva de segmentos de objetos sobre al terreno. Izquierda: Interface para el filtrado interactivo de segmentos. Derecha: Sobre posición de los segmentos seleccionados interactivamente.

Use Manual para eliminar un segmento de terreno que no se haya podido eliminar interactivamente y que es muy evidente. Al dar click en Filter se activa la selección manual. De click directamente sobre el segmento que desea eliminar. Se actualizará la máscara de la segmentación.

Use Automatic se usa para eliminar segmentos de terreno en forma automática. Requiere la definición de un umbral de altura mínima (Min Height), misma que se calcula con base en un MDT preliminar mediante la interpolación de los pixeles en los segmentos que han sido previamente eliminados. El procedimiento se repite por un número máximo de interaciones especificado (Iterations) o hasta que ya no se encuentren más segmentos.

Use Reset para volver a la segmentación original.

La sección Post Processing permite procesar los segmentos sobrevientes. En general no se requiere para generar el DTM, salvo en algunos casos de terrenos complejos, con edificios grandes, dado que la elevación base del terreno se calcula para cada segmento, en ocaciones se requiere que la elevación base sea la misma para todo el edificio por lo que es necesario juntar los segmentos pequeños que corresponden a partes del techo, como cúpulas.

Use Compute para calcular el DTM. El elevación del terreno en áreas filtradas corresponde exactamente igual al DSM, mientras que en áreas donde se encuentran segmentos, se estima la mediana del valor interpolado, de tal forma que el DTM es constante para cada segmento.

Cambie Background seleccionado para explorar el DTM calculado. Use la barra de transparencia de abajo para ocultar la segmentación.

Figura 32. Modelo digital de altura tras el filtrado del terreno.

Use Export para exportar el DTM a un archivo en formato ENVI Estándar y cierre la interfaz.

Para definir la superficie de terreno en la interfaz principal vea la sección Geometrías-Geometría de Terreno

Filtrado con PDAL

Use Tools>Ground filter using PDAL para filtrar puntos de terreno usando el comando ground de la librería PDAL. Al seleccionar la opción aparecerá la interface de usuario siguiente:

Input LAS – nombre del archivo de entrada en formato LAS. Este debe contener tener definido el campo MaxReturns y ReturnNum que se definen por el sensor lidar. En el caso de las nubes fotogramétricas conviene poner estos valores a 1.

Options – muestra la lista de opciones que acepta el comando groud de PDAL. Para más información sobre el significado de éstos de click en el botón Help. Se abrirá la ayuda en línea del comando. Note que los parámetros que pueden tener un impacto significativo en la salida, sobre todo en escenarios complejos, son Max window size y Cell size.

Output LAS – nombre del archivo de salida en formato LAS. Una vez que define el nombre del archivo de entrada, el de salida se define concatenando al nombre base el sufijo ‘_ground’. Puede editar y cambiar el nombre y la ruta de salida.

Help – Muestra la ayuda en línea del comando ground de PDAL.

Run – ejecuta el comando. Se abre la ventana Shell OSGeo4W, No cierre la ventana hasta que el proceso de filtrado haya terminado. El campo class del archivo LAS de salida deberá contener el código 2 para los puntos de terreno y 0 para cualquier otro. Si se activó la opción Extract ground returns, entonces el archivo LAS de salida sólo contendrá los puntos de terreno.

Close – cierra la interface de usuario.

Normales

Las normales (Normals) son vectores tridimensionales unitarios normales a una superficie local que aproxima la nube de puntos. Debido al carácter discreto de las nubes de puntos, las normales no tienen una definición única. Las normales se definen por puntos, aunque la definición puede no ser exhaustiva, es decir, algunos puntos pueden no tener normales definidas, en cuyo caso los valores de las componentes son NaN.

Cálculo de Normales

Use Point Cloud>Normals para calcular las normales en cada punto con una de las siguientes opciones:

From surface para definir las normales a partir de la superficie triangulada que haya sido definida. La normal corresponde a la mediana de las normales de los triángulos que comparten el punto. Estará deshabilitada si no se han definido la geometría de superficie. Para definir la geometría de superficie vea la sección Geometrías-Geometría de Superficie.

From neighbours para definir las normales a partir de los vecinos de cada punto. Se ajusta un plano a los vecinos y se toma la normal al plano. Estará deshabilitada si no se han definido las vecindades. Para definir los vecinos vea la sección Vecinos-Definición de Vecindades

From models para definir las normales a partir de un modelo local. Requiere un ajuste previo del modelo. A diferencia de la opción anterior, uno puede usar otros modelos a parte del plano. Para definir los modelos locales vea la sección Modelos-Ajuste

Visualización y Otras operaciones con las Normales

El panel Info muestra el número de normales que estén definidas.

Las normales pueden ser desplegadas como flechas que salen del punto habilitando la opción Normals en la visualización 3-d (3D plot) del panel Display.

Las normales también se pueden visualizar como componentes de color RGB, para ello importe las componentes de la normal como campo y seleccione el campo con la opción Selected field del panel Display activada.

Use Fields > New from > Normals para calcular un campo a partir de las normales definidas, incluyendo las componentes del vector normal.

Use File>Save data> Normals para guardar las normales como archivo de datos de MATLAB (*.MAT).

Use File>Load data>Normals para cargar las normales desde un archivo de datos de MATLAB (*.MAT). Se sobrescriben las normales actuales.

Vecinos

Los vecinos (Neighbours) de cada punto se definen a partir de a una relación de proximidad, generalmente, aunque no necesariamente simétrica, entre puntos. La relación de vecindad se representa internamente a partir de una matriz rala cuadrada de orden igual a la cardinalidad de la nube de puntos. Aunque es una matriz gigante, es manejable porque el número de relaciones es comparable al número de puntos. La matriz es de tipo lógico, donde el valor de la matriz en la posición (renglón, columna) es verdadero el punto indicado por el renglón tiene como vecino al punto indicado por la columna, y en ese caso se dice que hay una conexión de vecindad (edges).

La definición de vecindades es necesaria para el análisis contextual de la nube de puntos. Se usa, por ejemplo, para realizar segmentación o cálculo de campos.

Definición de Vecindades

Use la opción Neighbbours para definir la relación de vecindad entre puntos mediante uno de los siguientes métodos:

From search radius define los vecinos a partir de un radio de búsqueda. Los puntos que se encuentran dentro de la esfera de radio dado se asocian al punto central. Es recomendable emplear un radio del orden de la distancia media entre puntos. No se recomienda si la densidad de puntos es muy variable.

From k-nearest para definir los vecinos como los k-puntos más cercanos. Esta opción puede ser lenta ya que incrementa el radio de búsqueda gradualmente y por lo tanto no se recomienda para nubes de puntos grandes.

From triangulation para definir los vecinos a partir de la triangulación 3-d. También emplea un radio para descartar aristas muy largas de la triangulación. Esta opción es la más recomendada para nubes de puntos grandes y cuando la densidad de puntos es muy variable. Si no ha sido calculada previamente, la triangulación será calculada, pero podrá reutilizarse posteriormente tanto en el cálculo de vecinos como en otras operaciones de proximidad.

From surface para definir los vecinos a partir de la triangulación 2-d de la superficie. Esta opción es recomendad para nubes de puntos con baja densidad de puntos (< 1 pt/m2).

Nota: El cálculo de vecinos puede ser tardado, pero una vez calculados se puede editar, restaurar y exportar.

Edición de Vecindades

Una vez creada la vecindad, es posible editarla secuencialmente a partir de una serie de operaciones disponibles en menú Neighbbours. Utilice las siguientes opciones como sigue:

Delete edges para eliminar conexiones que cumplan con algún criterio preestablecido. Se desplegará una lista de opciones (Figura 33), algunas de las cuales requieren una selección de puntos o la definición de alguna variable interna y/o un parámetro de umbral.

Figura 33. Interfaz de usuario con la lista de opciones para el borrado de conexiones de vecindad.

Restore edges para restaurar todas las conexiones eliminadas previamente.

Swap deleted edges para intercambiar las conexiones borradas previamente por las no borradas.

Add edges para agregar conexiones que cumplen un criterio preestablecido.

Add higer-order para agregar relaciones de vecindad de orden superior.

Reverse direction para invertir la relación de vecindad. Tiene efecto únicamente si la relación es no simétrica.

Segmentación

Para realizar la segmentación de puntos se cuenta con el método de segmentación basado en etiquetado de componentes conectadas. Para emplear esta opción es necesario calcular los vecinos de cada punto mediante alguno de los métodos disponibles y borrar las ligas entre puntos en objetos (Vea la sección Vecinos). Los componentes conectados (CC) tienen la característica de que dado cualquier par de puntos en un mismo CC, es posible trazar una trayectoria de conexión empleando los vecinos. En el menú Neighbours se cuentan con las siguientes opciones para realizar la segmentación:

Use Neighbours>Label connected components para el etiquetado por CC de los puntos. Se requieren tres parámetros: Mínimo número de puntos por CC, mínimo número de vecinos por CC y máxima número de iteraciones. El algoritmo asume una conectividad bi-direccional entre vecinos. Si la selección está activa se procesarán únicamente los puntos seleccionados.

El ejemplo de la Figura 34 se muestra una segmentación de techos a partir de datos LiDAR con una densidad de puntos de 0.45 pts/m2. Dada la baja densidad de punto, se usó una triangulación de Delaunay 2-D para definir los vecinos. Luego se desconectaron los pares de vecinos con ángulo de elevación con más de 60 grados, seguido de vecinos con rangos de distancias mayores que la distancia media entre vecinos. Finalmente, se seleccionaron los puntos que se encontraron por encima del suelo y se aplicó el etiquetado por CC. La  Figura 35 muestra la visualización 3-D de la segmentación donde se observa que los segmentos de techos donde el cambio de la curvatura es prominente.

Figura 34. Ejemplo de segmentación de techos empleando el método de componentes conectadas. Los puntos negros no son parte de ningún segmento.

Figura 35. Acercamiento de un edificio complejo (Catedral Metropolitana de la CDMX).

La Figura 36 muestra otro ejemplo de segmentación por componentes conectadas de una nube fotogramétrica densa. En este caso se realizó primero el cálculo y clasificaron de las normales en 6 clases que representan las orientaciones dominantes de segmentos planos: horizontal, vertical y 4 clases inclinadas por azimuts dominantes (Figura 36-a); se definió dicha clasificación como etiquetas (Vea la sección Etiquetas). Posteriormente, se definieron vecinos por distancia menor a un metro, se desconectaron aquellos que con distintas etiquetas (Neighbours-> Delete edges-> Labels are DISTINCT) y se aplicó el etiquetado por componentes conectadas (Figura 36-b). Finalmente, se filtraron segmentos no planos o que pertenencia al suelo, resultando en la segmentación de la Figura 36-c.

Figura 36. Ejemplo de segmentación por componentes conectadas partiendo de una preclasificación. a) preclasificación de normales empleada para desconexión de vecinos, b) segmentación de componentes conectadas y c) filtrado de segmentos no planos

Use Neighbours>Tree-like segmentation para segmentar formas convexas como las copas de los árboles. Previo al etiquetado por componentes conectados, se realiza la poda que consiste de un paso inicial donde se eliminan las conexiones hacia arriba o que presentan distancias horizontales grandes. Luego, en un segundo paso se eliminan progresivamente conexiones que presentan niveles de energía grande y se encuentran en segmentos que no cumplen con criterios de tamaño y forma.

Figura 36. Método de poda del grafo de vecindad para segmentación de copas de árboles: a) Se eliminan conexiones hacia arriba,

b) se eliminan conexiones horizontales largas, c) se eliminan todas, salvo la conexión desde nodo más cercano y

d) se eliminan conexiones de alta energía según criterio mecánico de barras y pesos

Use Neighbours>Normals-based segmentation para segmentar con base en las normales. Las Normales y los Vecinos deben estar definidos previamente. El método consiste en generación de semillas, crecimiento de regiones, unión de segmentos, filtrado de segmentos pequeños y un crecimiento final. Para mejores resultados y mayor eficiencia se recomienda emplear vecindades pequeñas (use Neighbours>Delete edges>Keep at most k-neighbours con k = 4). Este método es muy sensible al ruido por basarse en las normales.

Nota: Una alternativa más efectiva para producir segmentaciones de caras planas es clasificar primero las normales, transferir la clasificación como etiquetas, desconectar vecinos con diferente etiquetas y reetiquetar por componentes conectados.

Filtrado de campos

Use Neighbours>Filter selected field para aplicar un filtro de vecindad al campo seleccionado. Los filtros implementados son:

Smooth – suaviza los valores aplicando la matrix de adyacencia

Sharpen – realza los valores aplicando la pseudoinversa de la matrix de adyacencia (advertencia: esta operación es muy lenta)

Laplacian – aplica el Laplaciano de la matriz de adyacencia

Visualización y otras operaciones con Vecinos

El panel Info muestra el número de relaciones de vecindad que estén definidas.

Los vecinos pueden ser desplegados como líneas entre puntos habilitando la opción Neighbours en la visualización 3-d (3D plot) del panel Display.

Use File>Save data> Neighbours para guardar los vecinos como archivo de datos de MATLAB (*.MAT). Esta opción guarda los índices de la matriz de vecinos.

Use File>Load data>Neighbours para cargar los vecinos desde un archive de datos de MATLAB (*.MAT). Se sobrescribe la matriz de vecinos actual.

Use Fields > New from > Neighbours para calcular un campo a partir de los vecinos definidos.

Etiquetas

Las etiquetas (Labels) son valores enteros consecutivos asignados a los puntos para distinguir grupos de puntos. Los puntos etiquetados son usados de dos maneras: 1) como campos de entrenamiento para los métodos de clasificación supervisados (vea la sección Creación de campos de entrenamiento) y 2) como resultado de una segmentación de la nube de puntos (vea la sección Segmentación).

Edición de Etiquetas

Use Point Cloud >Labels > Select Labels >

using Expression para seleccionar puntos etiquetados a partir de una expresión. Se trata de una selección de dos fases: en primer lugar, se seleccionan los puntos que satisfacen la condición y se obtienen las etiquetas de los puntos seleccionados, en el segundo paso se seleccionan todos los puntos que tengan etiquetas que pertenecen al conjunto determinado en el primer paso.

By Location – selecciona las etiquetas que están a una distancia desde el borde

By Size NOT in range – selecciona las etiquetas de segmentos de tamaños (número de puntos, altura, diámetro 2-d y diámetro 3-d) fuera del rango especificado. Requiere la definición la geometría de terreno (Vea Geometría de Terreno).

By Shape NOT in range – selecciona las etiquetas con índices de forma (compacidad, simetría, redondez, planaridad) que no se encuentran dentro del rango especificado.

By Pattern NOT in range – selecciona las etiquetas con patrón de conectividad (segmentos vecinos y orden del ciclo) fuera del rango especificado. Requiere la definición previa de una vecindad de puntos (Vea Definición de Vecindades).

Use Point Cloud >Labels > Filter selected para eliminar las etiquetas seleccionadas

Use Point Cloud >Labels > Merge selected para unir las etiquetas seleccionadas en una sola etiqueta

Use Point Cloud >Labels > Merge neighbour labels junta las etiquetas de grupos vecinos según criterios de co-planaridad y tamaño.

Visualización y otras operaciones con Etiquetas

El panel Info muestra el número de etiquetas que se han definido.

Para visualizar las etiquetas hay que importar el valor de etiqueta como campo, seleccionar el campo importado y usar un mapa de colores aleatorio.

Use Fields > New from > Labels para calcular un campo a partir de las etiquetas definida, incluyendo el valor de etiqueta.

Modelos

Los modelos (Models) se refieren a modelos matemáticos (normalmente polinomios) de superficies que se emplean para ajustar la nube de puntos en una vecindad o una región. La variable guarda los parámetros del modelo, valor y error de ajuste del modelo. Los tipos de modelos que pueden ajustarse a la nube de puntos se resumen en la Tabla 3. El ajuste puede hacerse por vecinos y por etiquetas. Los parámetros se calculan por el método de mínimos cuadrados, mediante la inversión de matrices.

Tabla 3. Lista de modelos ajustables

Nombre

Modelo matemático

Parámetros ajustados

Plano Horizontal

1

Plano Vertical

2

Plano Inclinado en el Puntoa

2

Plano Inclinado Explicito

3

Plano Inclinado Implicito

3

Superficie cónica Explicita

6

Superficie cónica Implícitab

9

Superficie de revoluciónc

Vea Geometría de Árbol

 

aajuste por vecinos únicamente

bno se pueden graficar en 3-d

cajuste por etiquetas únicamente

Ajuste

Use Geometry>Models para crear modelos en cada punto con una de las siguientes opciones:

From neighbours para ajustar el modelo empleando los vecinos definidos para cada punto. Se preguntará el orden de vecindad y el tipo de modelo que se desea ajustar (Figura 37).

Figura 37. Interface de usuario que muestra la lista de tipos de modelo que se desea ajustar.

From labels para ajustar el modelo empleando las etiquetas de los puntos. Aunque se genera internamente un modelo por cada etiqueta, a cada punto del mismo grupo de etiqueta se le asignara el mismo modelo.

Nota: La calidad del ajuste de los modelos depende del número de datos empleados.

Visualización y Otras operaciones con Modelos

El panel Info muestra el número de modelos que estén definidos.

Los modelos, salvo los cónicas implícitos, pueden ser visualizados como superficies habilitando la opción Models en la visualización 3-d (3D plot) del panel Display.

Use Fields > New from > Models para calcular un campo a partir de los modelos, incluyendo el vector de parámetros.

Geometrías

Son objetos geométricos (Geometries) que se calculan a partir de la nube de puntos y pueden exportarse e importarse. Las geometrías incluyen la superficie, el terreno, los edificios y los árboles.

Geometría de Superficie

Use Geometries>Surface para calcular una superficie triangular usando uno de los métodos disponibles:

2-D Delaunay para calcular una triangulación basada en las coordenadas XY de la nube de puntos. Esta opción se recomienda para nubes poco densas y como una alternativa rápida para generar una superficie triangular que pueda ser visualizada en 3-D. En nubes muy densas puede causar advertencias sobre la duplicidad de puntos o que algunos puntos no sean empleados en la triangulación, además de que las paredes verticales o casi verticales no se representan bien.

Alpha shape (2.5-D) para calcular la envolvente de una nube de puntos. Requiere la definición de un parámetro de escala (alpha) que determina el nivel de detalle de la envolvente. Típicamente este parámetro es dos veces la distancia media entre puntos. Esta opción es útil para visualizar la nube de puntos como superficie 3-D. Es la opción más lenta, ya que requiere calcular la triangulación 3-D.

Nota: El cálculo de una superficie no es afectado si la selección está activa. El programa sólo mantiene un tipo de superficie, por lo que al calcular una nueva triangulación se pierde la anterior sin advertir.

Geometría de Terreno

Use Geometries>Terrain para definir la superficie del terreno a partir de puntos seleccionados. Se requiere que la opción Selected points esté habilitada. Se pedirá definir el método de interpolación para los puntos no seleccionados. Si la superficie de terreno es generada exitosamente se habilitará la opción Terrain del panel Diplay 3-D.

Generalmente, la definición de la geometría del terreno requiere clasificar los puntos de terreno. En muchas ocasiones las nubes de puntos son proporcionadas con dicha clasificación, en cuyo caso se debe emplear el campo Class y el método de selección por campo (Vea la sección Selección por campo), donde el código de clase del terreno corresponde a Class=2.

Si la nube de puntos no ha sido clasificada previamente, el campo Class tendrá valores de 0. En ese caso hay que generar un modelo digital de terreno mediante un procedimiento de filtrado. Vea la sección Modelo digital de terreno.

Use la opción Point Cloud>Fields>New from>ENVI para importar un DTM generado previamente (vea la sección Creación  - ENVI). Importe la banda que corresponda al DTM. Calcule un campo de altura (Height) empleando la calculadora de expresiones (Creación  - Expresión) con la expresión ZCoord-DTM. El resultado corresponde a la altura en cada punto, puede emplear este campo para seleccionar los puntos de terreno (Height < 0.1) y la opción Geometries>Terrain para generar la superficie triangular de terreno.

Geometría de Árboles

Use Geometries>Trees para generar geometrías de árboles a partir de la nube segmentada empleando uno de los dos métodos:

Alpha-shape from Labels para generar las formas alfa de cada segmento. Una forma alfa es la generalización de la envolvente convexa a una envolvente no necesariamente convexa, donde el nivel de detalles se controla con el parámetro alfa. La forma alfa con un umbral alfa mayor a la distancia máxima entre puntos, equivale la envolvente convexa de los puntos, mientras que un valor de cero equivale a los puntos mismos. Se re recomienda emplear un valor alfa comparable a la distancia media entre puntos. El valor por default es un medio entre la densidad lineal global de los puntos.

Revolution Surface from Labels para usar un modelo de superficie de revolución que emplea 7 parámetros para la forma de copa, 3 para el tamaño y 2 para la posición. Para habilitar esta opción debe definir las etiquetas, donde cada etiqueta representa un árbol. El modelo de árbol consta de tres superficies de revolución, una para la corona (generalmente un elipsoide), una para el tronco (generalmente un cilindro) y una para la raíz (generalmente no se requiere). La Tabla 4 resume los campos de la especificación de un árbol. Use Tools>Explore tree models para explorar las formas de copas de árboles. Los casos típicos se muestran en la siguiente Figura 38.

Figura 38. Ejemplo de gemetrías de árboles empleados por el sistema

 

Tabla 4. Campos de la especificación de un árbol.

 

Campo

Descripción

Valor por default

XLoc

Coordenada X de la ubicación del árbol

0

YLoc

Coordenada Y de la ubicación del árbol

0

ZLoc

Coordenada Z de la ubicación del árbol. (Elevación del terreno en la base del árbol)

0

TopHeight

Altura total del árbol en metros

Obligatorio

BotHeight

Altura del fuste en metros. No se requiere si CrownShape es 'sphere'

Obligatorio

CrownDiam

Diámetro de la corona en metros

Obligatorio

TrunkDiam

Diámetro del tronco en metros

15% de CrownDiam

CrownShape

Nombre de la superficie de revolución que define la forma de la corona. Los valores válidos son: 'sphere', 'ellipsoid', 'cylinder', 'cone', 'paraboloid', 'hyperboloid', 'paraboloidz', 'popsicle', 'clownhead', 'lampshade', 'bell', 'leaf', 'witchhat'

Obligatorio si CrownShapeP no es especificado

CrownShapeP

Vector de longitud 7 que especifica alternativamente la forma de la corona. El vector es opcional, pero si se especifica, CrownShape es ignorado.

Depende del valor de CrownShape

TrunkShape

Nombre de la superficie de revolución que define la forma del tronco. Los valores válidos son:  'cylinder', 'cone', 'paraboloidz', 'lampshade', 'leaf', ‘none’

'cylinder'

RootShape

Nombre de la superficie de revolución que define la forma de la raíz. Los valores válidos son: 'none', 'cone', 'paraboloid', 'hyperboloid', 'popsicle' , 'lampshade', 'bell', 'witchhat'

'none'

RootDiam

Diámetro de la raíz

0

RootHeight

Altura de la raíz desde el suelo

0

TrunkAz

Ángulo azimutal de la inclinación del tronco en grados (0-360)

0

TrunkEl

Ángulo de elevación de la inclinación del tronco en grados (0-90)

90

 

Use File > Import data > Trees para importar una capa de árboles a partir de una capa de puntos en formato shapefile (SHP). Se desplegará una interfaz de usuario que permite seleccionar los campos del archivo para usarlos como parámetros del modelo de árbol, algunos de los cuales son obligatorios. Las coordenadas de los puntos se mapean a los campos XLoc y YLoc automáticamente. La selección de los demás campos se hace automáticamente si los nombres de los campos en el shapefile coinciden con los nombres de los campos de finidos en la Tabla 4. La interfaz permite calcular al vuelo algunos campos a partir de una expresión que emplea los campos disponibles en el shapefile. El botón load se habilita únicamente si todos los parámetros obligatorios están definidos.

Figura 39. Interfaz de usuario para importar una capa de árboles desde un shapefile.

Use Geometries > Trees > Canopy adjust para realizar un ajuste global de la copa al modelo de superficie. El ajuste consiste en desplazar, escalar y rotar los árboles para que ajusten mejor la nube de puntos. Esto se hace convirtiendo a formato ráster tanto los modelos de árboles, como la nube de puntos. Esta opción es útil cuando la fuente de los árboles es externa a la nube de puntos, como por ejemplo, a partir de datos de campo.

Use Geometries > Trees > Compare to ground truth para realizar un análisis comparativo con datos de referencia. La opción permite la carga de una capa de puntos en formato SHP, que contiene los atributos de árboles necesarios para realizar la comparación. Se abrirá la interfaz para carga de una capa de árboles desde un shapefile (Figura 39).

Tras la carga de la capa de referencia, se pedirá definir variables de aparejamiento con la capa objetivo (árboles):

Z field name:  Campo de la coordenada Z. Puede dejarse vacía si no desea emplear la coordenada Z para aparejamiento.

Join type: Tipo de unión entre las capas. 0 = une cada registro en la capa objetivo al registro más cercano en la capa de referencia (one-to-many). 1 = une cada registro en la capa objetivo al registro más cercano en la capa de referencia y cada registro en la capa de referencia al registro más cercano en la capa objetivo (one-to-one). 2 = Une secuencialmente cada registro en la capa objetivo al registro disponible más cercano en la capa de referencia, y hace no disponible dicho registro de la capa de referencia (one-to-one).

Max join distance: distancia máxima entre la ubicación de árboles aparejados. Los pares más alejados se descartan.

Use crown location: indica si debe usarse la ubicación horizontal de la corona en lugar de la ubicación horizontal de la base, ya que éstas no son las mismas si existe inclinación de troncos, como en el caso de manglares.

Figura 40. Ejemplo de salida del análisis comparativo de una capa de árboles.

Use File>Export data>Trees para exportar la capa de árboles a un shapefile de puntos o superficie (multipatch), a un OBJ de caras triangulares o cuadradas, a un archivo ENVI estándar (IMG), o a un archivo LAS de vértices.

Geometría de Edificios

Use Point Cloud>Geometries>Buildings para generar geometrías de edificios empleando una de las siguientes opciones:

Polygon-based genera polígonos de las huellas de los edificios segmentados. Se calcula la altura y elevación base a partir de la superficie del terreno y la nube de puntos. Los edificios se representan como polígonos extruidos, con techos planos.

Alpha-shape para generar las formas alfa de cada segmento. La forma es la generalización de la envolvente convexa a una envolvente no necesariamente convexa, donde el nivel de detalles se controla con el parámetro alfa. La forma alfa con un umbral alfa mayor a la distancia máxima entre puntos, equivale la envolvente convexa de los puntos, mientras que un valor de cero equivale a los puntos mismos. Se recomienda emplear un valor alfa comparable a la distancia media entre puntos. El valor por default es un medio de la densidad lineal de puntos.

Model-based para generar edificios a partir de modelos preestablecidos. El modelo de edificios se basa en dos partes, una base que puede ser cuadrada, redonda o poligonal y un modelo de techo. Actualmente, la base poligonal sólo puede estar asociada a techos planos. La Figura 41 un conjunto de techos que pueden ser representados por el modelo.

 

Figura 41. Modelos de techos preestablecidos de base cuadrada y base redonda.

Use File>Export data>Buildings para exportar la capa de edificios a un shapefile de puntos o superficie (multipatch), a un OBJ de caras triangulares o cuadradas, a un archivo ENVI estándar (IMG), o a un archivo LAS de vértices.

Use File>Load data>Buildings para cargar una capa de edificios desde un archivo .MAT de Matlab. El archivo debe contener una estructura de edificios con los campos que se describen en la Tabla 5. Algunos campos son opcionales, y definen diferentes partes del edificio como se indica en la misma tabla.

Tabla 5. Parámetros del modelo de edificio.

Campo

Descripción

Valor por Default

XLoc

Coordenada X de la ubicación del edificio

0

YLoc

Coordenada Y de la ubicación del edificio

0

ZLoc

Coordenada Z de la ubicación del edificio

0

RotAngle

Ángulo de rotación en grados en sentido anti-horario en el plano XY

0

Parts

Indica las partes que se incluirán en el poliedro. Se especifica como una combinación de ‘floor’,’walls’ y ‘roof’ concatenadas con un ‘+’

‘floor+walls+roof’

Color

Vector de 3×1 (color indexado) o matrix de 3×3 (color RGB) indicando el color de piso, paredes y techo, respectivamente

[0

1

2]

BaseShape

Forma de la base: ‘rect’ – rectangular, ‘round’ – redondo, o ‘polyg’ – poligonal

‘rect’

Points

 

Matriz de orden N×2 con vértices de la base del edificio

Obligatorio si BaseShape es ‘polyg’

Length

Longitud del edificio (a lo largo de la coordenada X). Valor respecto al cual se calcular los desplazamientos relativos (WallsShift y RoofParams) en la coordenada X

Obligatorio

Width

Ancho del edificio (a lo largo de la coordenada Y)

Obligatorio

Height

Altura de las paredes (a lo largo de la coordenada Z)

Obligatorio

WallsShift

Indica el desplazamiento de la línea superior con respecto a la línea inferior de las paredes cuando hay paredes no verticales. Se especifica en porcentajes de Length, Width y Height para las tres dimensiones

[0 0 0]

RoofShape

Forma de techo: ‘flat’, ‘shed’, ‘gabled’, ‘hipped’, ’tented’, ’flattop’, ’half-hip’, ‘gablet’, ‘gambrel’, ‘mansard’, ‘saltbox’, ’skillion’,’bonnet’,’monitor’, ‘barrel’, ‘dome’, ‘bow’,’saddle’,’onion’ o 'userdefined'

‘flat’

RoofHeight

Altura total del techo. Algunos techos requieren dos alturas, en cuyo caso el parámetro debe ser un vector de longitud 2

Depende de RoofShape

RoofParams

 

Parámetros de forma de techo, es una Matriz de M×3 para techos simétricos, M×4 para techos con pendiente en cresta y M×6 para cualquier tipo de techo

Obligatorio si RoofShape es 'userdefined'

RoofExtent

Cadena que indica la extensión del techo, puede ser ‘floor’ o ‘walls’

‘floor’

 

Figura 42. Ejemplo de una geometría de edificio basada en modelos (derecha) y la nube de puntos correspondiente (izquierda).

Use File>Import data>Buildings para cargar una capa de edificios desde un archivo .SHP de ESRI. El programa preguntará si desea calcular la elevación de la base (ZLoc) y la altura de los edificios (Height) a partir de la nube de puntos. Si se selecciona No, el archivo debe contener estos parámetros definidos o se generará un error. La capa puede ser punto (para base rectangular y/o elíptica) o polígono (base poligonal).

Los tipos de techos deben estar especificados en el archivo shapefile o se consideraran los valores por default.

Flujo de trabajo típico para la generación de la capa de arbolado

No existe una receta única para generar la capa de arbolados, ya que esto depende de la característica de la nube de puntos, del tipo de vegetación que se va a modelar, esto es del sitio de estudio, y de la disponibilidad de información auxiliar. A grandes rasgos el flujo de trabajo para realizar esto consiste en:

Paso 1:  Generación de la geometría de Terreno

Este paso es necesario para poder evaluar la altura de la vegetación. Para detalles sobre como completar este paso vea la sección Geometrías- Geometría de Terreno. Contar con la geometría de terreno permite a demás discriminar los puntos de terreno.

Paso 2: Selección de los puntos de vegetación

Si la nube de puntos ha sido clasificada previamente a nivel de vegetación, los valores 3 (Low Vegetation), 4 (Medium Vegetation) y 5 (High Vegetation) del campo Class pueden ser usados para seleccionar los puntos de vegetación, evaluando la expresión (Vea la sección Creación de campos por Expression):

VegMask = Class == 3 | Class == 4 | Class == 5

Si la nube de puntos no ha sido clasificada hasta nivel de vegetación, es necesario generar información auxiliar para su detección.

Si se cuenta con la información de color de una cámara visible, el campo RGB_Color se puede emplear con la opción Point cloud>Fields >New from>Fields>VDVI para calcular el índice de vegetación del visible, que combina las 3 bandas (colores), que a su vez se puede emplear para seleccionar los puntos de vegetación:

VDVI = (3*Green-Red-Blue)/ (3*Green+Red+Blue)

VegMask = VDVI > 0.25

Alternativamente, si se cuenta con una imagen multiespectral de resolución comparable a la distancia media entre puntos, se puede emplear la opción Point cloud>Fields >New from>Fields>NDVI calcular el bien conocido índice de la diferencia normalizada

NDVI = (NIR-Red)/ (NIR+Red)

VegMask = NDVI > 0.25

Si no se cuenta con ninguna de estas opciones es posible que se requiera realizar análisis más sofisticado para poder discriminar los puntos de vegetación. Una posibilidad es estimar el grado de dispersión de los puntos en una vecindad o su desviación respecto a un plano, lo que generalmente será mayor para árboles que para estructuras construidas.

Paso 3: Vecindad, poda y segmentación

En este paso se crea una vecindad como se describe en la sección Los vecinos (Neighbours) de cada punto se definen a partir de a una relación de proximidad, generalmente, aunque no necesariamente simétrica, entre puntos. La relación de vecindad se representa internamente a partir de una matriz rala cuadrada de orden igual a la cardinalidad de la nube de puntos. Aunque es una matriz gigante, es manejable porque el número de relaciones es comparable al número de puntos. La matriz es de tipo lógico, donde el valor de la matriz en la posición (renglón, columna) es verdadero el punto indicado por el renglón tiene como vecino al punto indicado por la columna, y en ese caso se dice que hay una conexión de vecindad (edges).

La definición de vecindades es necesaria para el análisis contextual de la nube de puntos. Se usa, por ejemplo, para realizar segmentación o cálculo de campos.

Definición de Vecindades. En este caso se recomienda el método de triangulación, por ser el más eficiente y crear el menor número de conexiones de vecinos para una distancia máxima dada. El valor de distancia máxima recomendado debe ser equiparable a la altura máxima de los árboles para asegurar una conectividad vertical entre los puntos de un mismo árbol.

Las conexiones entre árboles contiguos se eliminan empleando la opción Neighbours>Tree-like segmentation. Se trata de un algoritmo que poda y segmenta progresivamente empleando de guía algunos parámetros como el diámetro de corona máximo, el número de iteraciones y la energía de ruptura. Antes de correr este método es conveniente desconectar los puntos que no son vegetación seleccionándolos a partir de la máscara del paso anterior y aplicando Neighbours>Delete Edges>Point OR Neighbours is selected.

Transfiere las etiquetas como campos para inspeccionar el resultado de la segmentación. Es posible que se requiera repetir el proceso de segmentación varias veces antes de obtener un resultado satisfactorio, sobre todo si no se está familiarizado con los parámetros.

Paso 4: Edición de las etiquetas

Si es necesario, realiza ediciones (borrado o unión) de las etiquetas, por ejemplo, borrado de segmentos pequeños o que se ubican en las orillas. Consulta la sección Etiquetas

Las etiquetas (Labels) son valores enteros consecutivos asignados a los puntos para distinguir grupos de puntos. Los puntos etiquetados son usados de dos maneras: 1) como campos de entrenamiento para los métodos de clasificación supervisados (vea la sección Creación de campos de entrenamiento) y 2) como resultado de una segmentación de la nube de puntos (vea la sección Segmentación).

Edición de Etiquetas.

Paso 5: Genera geometrías de arbolado

Usa la opción Geometries>Trees> Revolution Surface from Labels para generar las geometrías de arbolado a partir de las etiquetas de la segmentación como se describe en la sección ¡Error! No se encuentra el origen de la referencia. - Geometrías - Geometría de Árboles.

La Figura 43 muestra un ejemplo de capa de árboles de mangle donde se define una raíz con forma de paraboloide achatado y troncos inclinados.

Figura 43. Vista de vertical y de planta de una segmentación y árboles ajustados en una zona de manglares.

Paso 6: Visualizar y exportar

Selecciona el subconjunto de datos que se desea visualizar seleccionando por puntos, etiquetas o árboles. Habilita la opción Trees y presiona 3D Plot en el panel de Display.

Usa File>Export data>Trees para exportar una capa en formato OBJ o SHP.

Flujo de trabajo típico para la generación de la capa de edificios

La versión actual de PAREIDOLIA no cuenta con las funcionalidades necesarias para generar una capa de edificios en forma automática. De momento sólo se pueden emplear clasificaciones, segmentaciones y generar alphashapes a partir de nubes segmentadas. No obstante, se puede importar y visualizar una capa de edificios en el formato descrito en la sección Geometría de Edificios. En una versión futura se prevé la implementación de un flujo semiautomático para generar dichas capas.



[1] Pareidolia es el fenómeno psicológico por el cual un estímulo vago y aleatorio es percibido “erróneamente” como una forma reconocible, como la identificación de formas de animales y rostros en las nubes.