Etiqueta | Explicación | Tipo 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.
| 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 |
Resumen
Crea modelos de edificios derivados de puntos de cubierta capturados en datos LIDAR.
Ilustración
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
arcpy.ddd.LasBuildingMultipatch(in_las_dataset, in_features, ground, out_feature_class, {point_selection}, simplification)
Nombre | Explicación | Tipo 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.
| 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
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')
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())
Entornos
Casos especiales
Información de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst