Edificios multiparche LAS (3D Analyst)

Resumen

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

Ilustración

Ilustración de Edificios multiparche LAS

Uso

  • Esta herramienta asume que los puntos LAS que están siendo procesados proporcionan una cobertura conveniente del tejado del edificio. Para obtener los mejores resultados, evite incluir los puntos que representan las partes de edificios que no sean el tejado, ya que suelen agregar ruido al modelo de edificio resultante.

  • El modelo de edificio se genera construyendo un TIN a partir de los puntos LAS seleccionados que se encuentran dentro de la huella de edificio. La huella se incorpora a este TIN como un polígono de recorte cuya altura se define según el punto LAS más bajo dentro de su extensión. La altura del suelo proporciona la base del edificio y puede derivarse de un campo en la tabla de atributos del polígono de huella o de una superficie de elevación.

  • 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:

    1. Filtre el dataset LAS para los puntos de suelo con las propiedades de capa o la herramienta Crear capa de dataset LAS.
    2. 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. La superficie debería usar el mismo sistema de coordenadas verticales 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.

  • Es necesario clasificar los puntos de suelo antes de ejecutar esta herramienta. Valore la posibilidad de usar la herramienta Clasificar el terreno LAS para clasificar los puntos del suelo si no se han clasificado aún.

  • Plantéese usar la herramienta Clasificar edificio de LAS para identificar los puntos que representan tejados de edificios, en especial si es habitual que haya vegetación cubriendo el tejado. Revise el resultado de la clasificación automática y plantéese realizar las correcciones necesarias por medio de la edición de la clasificación interactiva antes de ejecutar esta herramienta con los puntos clasificados por edificios.

  • Los puntos LAS se procesan de un modo más eficiente cuando el dataset LAS tiene estadísticas. Plantéese usar la herramienta Estadísticas de dataset LAS para calcular estadísticas, si es necesario.

Sintaxis

arcpy.3d.LasBuildingMultipatch(in_las_dataset, in_features, ground, out_feature_class, {point_selection}, simplification)
ParámetroExplicaciónTipo de datos
in_las_dataset

El dataset LAS cuyos puntos definen el tejado 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 el tejado del edificio.

  • BUILDING_CLASSIFIED_POINTSPuntos LAS asignados con un valor de código de clase de 6. Esta es la opción predeterminada.
  • LAYER_FILTERED_POINTSPuntos LAS filtrados por la capa de entrada.
  • ALL_POINTSTodos los puntos LAS que se superponen 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 del tejado del edificio. Este valor define el umbral de desviación máximo entre el modelo del tejado de salida y la superficie del tejado 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