Edificios multiparche LAS (3D Analyst)

Resumen

Crea modelos de edificios con puntos de tejados de un dataset LAS.

Ilustración

Ilustración de la herramienta Edificios multiparche LAS

Uso

  • Esta herramienta crea edificios como entidades multiparche con puntos de tejados de un dataset LAS, datos de altura del suelo y polígonos de huella de edificios. Cada modelo de edificio se genera construyendo un TIN a partir de los puntos LAS que se superponen al polígono de la huella del edificio. La huella se incorpora a este TIN como un polígono de recorte cuya altura se deriva del valor del parámetro Altura del suelo. Este TIN se convierte en un multiparche que se cierra a la altura de la base. Como el multiparche resultante se basa en una superficie TIN, el multiparche no incluirá detalles a lo largo del perfil vertical del edificio.

  • Los puntos LAS de entrada deberían capturar el tejado del edificio. Cuando sea posible, excluya los puntos que representan los elementos de los edificios que no sean el tejado, ya que suelen hacer que la salida tenga características no deseadas. La herramienta Clasificar edificio LAS puede utilizarse para asignar un valor de código de clase de 6 a los puntos de tejados de edificios. La herramienta asignará un valor de código de clase de 6 a los puntos que representen cubiertas de edificios, pero la herramienta tiene opciones para clasificar puntos que están por debajo y por encima del tejado. Cuando clasifique estos puntos, utilice un código de clase distinto de 6 para definirlas de forma que puedan excluirse cuando se utilicen para crear entidades de edificio. Revise el resultado de la clasificación del edificio y haga las correcciones necesarias por medio de la edición interactiva o ejecutando de nuevo la herramienta Clasificar edificio LAS con una configuración de parámetros diferente. Si el dataset LAS no contiene puntos que no sean de edificios sobre las huellas de edificios, todos los puntos pueden utilizarse para definir la superficie de la cubierta.

  • El valor del parámetro Resolución de muestreo se utiliza para simplificar los puntos del dataset LAS antes de construir el TIN. Este parámetro optimiza el rendimiento de la herramienta cuando la entrada es una nube de puntos con alta densidad de puntos o cuando se procesan los puntos a lo largo del perfil vertical del edificio. El valor del parámetro representa la longitud y la anchura del área que se está simplificando, de manera que la distancia de 2 pies dará lugar a la agrupación en bins de la nube de puntos en una cuadrícula de 2 pies. El punto más alto de cada bin se utilizará para construir el TIN de la cubierta. De esta forma se puede mitigar el impacto de los puntos del costado del edificio.

  • Esta herramienta no admite los polígonos de huella de edificios que contengan segmentos de arco. Utilice la herramienta Densidad para sustituir los segmentos de arco por segmentos de línea.

  • El valor del parámetro Altura del suelo puede ser una superficie de elevación o un campo en la tabla de atributos del polígono de huella. Cuando se utiliza una superficie, la altura base del edificio será el valor z más pequeño a lo largo del límite de la huella. La superficie debería tener el mismo sistema de coordenadas verticales que el dataset LAS. Se puede derivar la superficie del suelo a partir de un dataset LAS para garantizar que los edificios coincidan en altura en la nube de puntos originaria. Para crear una superficie de elevación a partir del dataset LAS, realice lo siguiente:

    1. Asegúrese de que los puntos clasificados del suelo están presentes en el dataset LAS. Si no lo están, utilice la herramienta Clasificar el terreno LAS para asignar un valor de código de clase de 2 para los puntos del suelo.
    2. Filtre la capa del dataset LAS para los puntos de suelo con las propiedades de capa o la herramienta Crear capa de dataset LAS.
    3. Utilice la herramienta Dataset LAS a ráster o Dataset LAS a TIN para crear un ráster o una superficie TIN que pueda utilizarse como entrada de esta herramienta.
  • Si la altura del suelo se deriva de un campo de la tabla de atributos del polígono de huella, se asume que las unidades de altura son las mismas que la unidad z del dataset LAS de entrada. Si la altura de la tabla de atributos se encuentra en una unidad lineal distinta, utilice la herramienta Calcular campo para calcular nuevos valores de altura en unidades lineales del dataset LAS. La altura del suelo mínima se puede atribuir al polígono de la huella del edificio desde la superficie de elevación del suelo usando la herramienta Agregar información de superficie.

  • Si se generan las entidades de edificio para estructuras adyacentes con tejados que tienen alturas muy diferentes, la entidad resultante de cada edificio puede definirse en función de los puntos del edificio cercano. Una estrategia para minimizar este problema consiste en atribuir a cada entidad el rango de altura del tejado del edificio y utilizar estos campos como los valores de los parámetros Campo de altura mínima y Campo de altura máxima.

  • Los puntos LAS se procesan de un modo más eficiente cuando el dataset LAS contiene estadísticas. Use la herramienta Estadísticas de dataset LAS para calcular estadísticas.

Parámetros

EtiquetaExplicaciónTipo de datos
Dataset LAS de entrada

El dataset LAS que contiene los puntos que definirán la cubierta del edificio.

LAS Dataset Layer
Entidades de entrada

Las entidades poligonales que definen la huella del edificio.

Feature Layer
Altura del suelo

El origen de los valores de la altura del suelo puede ser un campo numérico de la tabla de atributos de la huella del edificio o una superficie ráster o TIN. Un origen de suelo basado en un campo se procesará más deprisa que un origen de suelo basado en superficie.

Field; Raster Layer; TIN Layer
Clase de entidad multiparche de salida

La clase de entidad multiparche que almacenará los modelos de edificios de salida.

Feature Class
Selección de puntos del tejado LAS
(Opcional)

Especifica los puntos LAS que se utilizarán para definir la cubierta del edificio.

  • Puntos clasificados del edificioSe utilizarán puntos LAS con un valor de código de clase asignado de 6. Esta es la opción predeterminada.
  • Puntos filtrados de capaSe utilizarán puntos LAS filtrados por la capa de entrada.
  • Todos los puntosSe utilizarán todos los puntos LAS que se superpongan sobre la huella del edificio.
String
Tolerancia de simplificación
(Opcional)

Un valor de tolerancia z que se utilizará para simplificar la geometría de la cubierta. Este valor define la desviación máxima del modelo de cubierta de salida respecto de la superficie TIN creada con los puntos LAS.

Linear Unit
Resolución de muestreo
(Opcional)

El tamaño de agrupación en bins utilizado para simplificar la nube de puntos antes de construir la superficie de cubierta.

Linear Unit
Campo de altura mínima
(Opcional)

Campo numérico que contiene la altura mínima de los puntos que se utilizarán para definir el tejado. Se puede especificar cualquier campo numérico. Se ignorarán los puntos que están por debajo del valor de este campo.

Field
Campo de altura máxima
(Opcional)

Campo numérico que contiene la altura máxima de los puntos que se utilizarán para definir el tejado. Se puede especificar cualquier campo numérico. Se ignorarán los puntos que están por encima del valor de este campo.

Field

arcpy.ddd.LasBuildingMultipatch(in_las_dataset, in_features, ground, out_feature_class, {point_selection}, {simplification}, {sampling_resolution}, {min_height_field}, {max_height_field})
NombreExplicaciónTipo de datos
in_las_dataset

El dataset LAS que contiene los puntos que definirán la cubierta del edificio.

LAS Dataset Layer
in_features

Las entidades poligonales que definen la huella del edificio.

Feature Layer
ground

El origen de los valores de la altura del suelo puede ser un campo numérico de la tabla de atributos de la huella del edificio o una superficie ráster o TIN. Un origen de suelo basado en un campo se procesará más deprisa que un origen de suelo basado en superficie.

Field; Raster Layer; TIN Layer
out_feature_class

La clase de entidad multiparche que almacenará los modelos de edificios de salida.

Feature Class
point_selection
(Opcional)

Especifica los puntos LAS que se utilizarán para definir la cubierta del edificio.

  • BUILDING_CLASSIFIED_POINTSSe utilizarán puntos LAS con un valor de código de clase asignado de 6. Esta es la opción predeterminada.
  • LAYER_FILTERED_POINTSSe utilizarán puntos LAS filtrados por la capa de entrada.
  • ALL_POINTSSe utilizarán todos los puntos LAS que se superpongan sobre la huella del edificio.
String
simplification
(Opcional)

Un valor de tolerancia z que se utilizará para simplificar la geometría de la cubierta. Este valor define la desviación máxima del modelo de cubierta de salida respecto de la superficie TIN creada con los puntos LAS.

Linear Unit
sampling_resolution
(Opcional)

El tamaño de agrupación en bins utilizado para simplificar la nube de puntos antes de construir la superficie de cubierta.

Linear Unit
min_height_field
(Opcional)

Campo numérico que contiene la altura mínima de los puntos que se utilizarán para definir el tejado. Se puede especificar cualquier campo numérico. Se ignorarán los puntos que están por debajo del valor de este campo.

Field
max_height_field
(Opcional)

Campo numérico que contiene la altura máxima de los puntos que se utilizarán para definir el tejado. Se puede especificar cualquier campo numérico. Se ignorarán los puntos que están por encima del valor de este campo.

Field

Muestra de código

Ejemplo 1 de LasBuildingMultipatch (ventana de Python)

En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.

arcpy.env.workspace = 'C:/data'

arcpy.LasBuildingMultipatch_3d('Highland.lasd', 'footprint.shp', 'dem.tif', 
                               'highland_3d_bldgs.shp', simplification='4 Feet')
Ejemplo 2 de LasBuildingMultipatch (script independiente)

En el siguiente ejemplo se muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python.

'''****************************************************************************
       Name: Extract Building Footprints & Generate 3D Models
Description: Extract footprint from lidar points classified as buildings, 
             regularize its geometry, and calculate the building height.

****************************************************************************'''
import arcpy

lasd = arcpy.GetParameterAsText(0)
footprint = arcpy.GetParameterAsText(1)
model = arcpy.GetParameterAsText(2)

try:
    lasd_layer = 'building points'
    arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=6)
    temp_raster = 'in_memory/bldg_raster'
    arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
                                           'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
    temp_footprint = 'in_memory/footprint'
    arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
    arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint, 
                                          method='RIGHT_ANGLES')
    arcpy.ddd.LasPointStatsByArea(lasd_layer, footprint, ['MIN_Z', 'MAX_Z'])
    arcpy.management.AddField(footprint, 'Height', 'Double')
    arcpy.management.CalculateField(footprint, 'Height', 
                                    "round('!Z_Max! - !Z_Min!', 2)", 
                                    'PYTHON_9.3')
    simplification = arcpy.Describe(lasd).pointSpacing * 4
    arcpy.ddd.LasBuildingMultipatch(lasd_layer, footprint, 'Z_MIN', model, 
                                    'BUILDING_CLASSIFIED_POINTS', simplification)


except arcpy.ExecuteError:
    print(arcpy.GetMessages())

Temas relacionados