Edificios multiparche LAS (3D Analyst)

Resumen

Crea modelos de edificios derivados de puntos de cubierta capturados en datos LIDAR.

Ilustración

Ilustración de la herramienta Edificios multiparche LAS

Uso

  • Se supone que los puntos LAS proporcionan una cobertura deseable de la cubierta del edificio. Para obtener los mejores resultados, evite incluir los puntos que representan las partes de edificios que no sean la cubierta, ya que suelen agregar ruido al modelo de edificio resultante. Si el dataset LAS no contiene puntos clasificados de edificios, utilice la herramienta Clasificar edificio de LAS para clasificarlos. La herramienta asignará un valor de código de clase de 6 a los puntos que representen cubiertas de edificios. Revise el resultado de la clasificación y realice las correcciones necesarias ejecutando de nuevo la herramienta con diferentes opciones de parámetros o mediante la edición de clasificación interactiva. Genere el modelo una vez que esté conforme con la cobertura de los edificios de la clasificación.

  • Clasifique los puntos de suelo antes de ejecutar esta herramienta. Utilice la herramienta Clasificar el terreno LAS para asignar puntos de suelo con un valor de código de clase de 2 si no se han clasificado previamente.

  • El 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 define mediante el origen especificado en el parámetro Altura del suelo. El valor del parámetro Altura del suelo se puede especificar como un campo en la tabla de atributos del polígono de huella o como una superficie de elevación.

  • Esta herramienta no admite los polígonos que contengan segmentos de arco. Si existen tales entidades en los datos de entrada, considere hacer una copia de esas entidades y reemplazar las geometrías de arco por segmentos de línea con la herramienta Densificar.

  • Si la altura del suelo se deriva de un campo de la tabla de atributos del polígono de huella, se asume que sus unidades de altura son las mismas que la unidad z del dataset LAS de entrada. Si la altura de la tabla de atributos se expresa en una unidad lineal distinta, plantéese usar la herramienta Calcular campo para aplicar el factor de conversión adecuado antes de usar dicha herramienta. La altura del suelo se puede atribuir a los polígonos de huella de edificio de las siguientes maneras:

    • Filtre el dataset LAS para los puntos de suelo con las propiedades de capa o la herramienta Crear capa de dataset LAS.
    • Ejecute la herramienta Agregar información de superficie con las entidades de entrada establecidas en el polígono de huella de edificio, la superficie de entrada establecida en el dataset LAS filtrado como suelo y la propiedad de salida establecida en el valor Z_MIN para garantizar que el edificio tenga el valor z más bajo.
  • Cuando la altura del suelo está definida por una superficie, el valor z más bajo a lo largo del límite del polígono definirá la altura base del edificio. Utilice el mismo sistema de coordenadas verticales para la superficie que el dataset LAS. Una superficie de ráster o TIN del suelo se puede crear desde los puntos LAS clasificados por suelo filtrando el dataset LAS de los puntos clasificados por suelo y, después, usando la herramienta De dataset LAS a ráster o De dataset LAS a TIN para generar la superficie.

  • Los puntos LAS se procesan de un modo más eficiente cuando el dataset LAS tiene estadísticas. Es posible calcular estadísticas utilizando la herramienta Estadísticas de dataset LAS.

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 de cubierta LAS
(Opcional)

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

El valor de tolerancia Z que se usará para reducir el número de puntos LAS que se utilizan para crear el modelo de la cubierta del edificio. Este valor define el umbral de desviación máximo entre el modelo de la cubierta de salida y la superficie de la cubierta creada a partir de la resolución completa de los puntos LAS.

Linear Unit

arcpy.ddd.LasBuildingMultipatch(in_las_dataset, in_features, ground, out_feature_class, {point_selection}, simplification)
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)

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

El valor de tolerancia Z que se usará para reducir el número de puntos LAS que se utilizan para crear el modelo de la cubierta del edificio. Este valor define el umbral de desviación máximo entre el modelo de la cubierta de salida y la superficie de la cubierta creada a partir de la resolución completa de los puntos LAS.

Linear Unit

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 un script 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())

Información de licenciamiento

  • Basic: Requiere 3D Analyst
  • Standard: Requiere 3D Analyst
  • Advanced: Requiere 3D Analyst

Temas relacionados