Resumen
Normaliza la huella de los polígonos de edificios eliminando elementos no deseados en su geometría.
Ilustración
Uso
Esta herramienta utiliza un algoritmo de compresión de polilíneas para corregir las distorsiones en los polígonos de huella de edificio creados a través de los flujos de trabajo de extracción de entidades que pueden producir artefactos no deseados.
La tolerancia se utiliza para definir la región situada alrededor del límite del polígono en la que debe encajar el polígono regularizado. La región puede visualizarse mejor convirtiendo el límite del polígono en una entidad de línea y, a continuación, creando zonas de influencia de la línea según la tolerancia deseada para obtener una impresión de la forma en la que la aplica la herramienta.
Cuando los parámetros especificados no pueden ofrecer una solución regularizada para una entrada dada, la entidad original se copia en la salida.
La salida tendrá un campo llamado STATUS, cuyos valores indican lo siguiente:
- 0: Entidad original
- 1: Entidad regularizada
Sintaxis
RegularizeBuildingFootprint_3d (in_features, out_feature_class, method, tolerance, densification, precision, diagonal_penalty, min_radius, max_radius)
Parámetro | Explicación | Tipo de datos |
in_features | Polígonos que representan las huellas de edificio que deben regularizarse. | Feature Layer |
out_feature_class | La clase de entidad que generará esta herramienta. | Feature Class |
method | Método de regularización que debe utilizarse para procesar las entidades de entrada.
| String |
tolerance | Distancia máxima que la huella regularizada puede desviarse del límite de su entidad original. El valor especificado se basará en las unidades lineales del sistema de coordenadas de la entidad de entrada. | Double |
densification | Intervalo de muestreo que se utilizará para evaluar si la entidad regularizada estará recta o curvada. La densificación debe ser menor o igual que el valor de tolerancia. Este parámetro solo se utiliza con métodos que admitan la identificación de ángulos rectos. | Double |
precision | Precisión utilizada por la cuadrícula espacial empleada en el proceso de regularización. Los valores válidos varían de 0.05 a 0.25. | Double |
diagonal_penalty | Controla el sesgo de distancia para crear conexiones de ángulo recto. Las distancias inferiores a la penalización en diagonal se utilizarán para crear ángulos rectos. Este parámetro solo se utiliza con el método de ángulos rectos y diagonales. | Double |
min_radius | Radio más pequeño que puede tener un círculo regularizado. Un valor de 0 implica que no hay ningún límite de tamaño mínimo. Esta opción solo está disponible con el método de círculo. | Double |
max_radius | Radio más grande que puede tener un circular regularizado. Esta opción solo está disponible con el método de círculo. | Double |
Muestra de código
Ejemplo 1 de RegularizeBuildingFootprint (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.ddd.RegularizeBuildingFootprint('rough_footprints.shp',
'regularized_footprints.shp',
method='Circle', tolerance=1.5, min_radius=10,
max_radius=20)
Ejemplo 2 de RegularizeBuildingFootprint (secuencia de comandos independiente)
En el siguiente ejemplo se muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python.
'''****************************************************************************
Name: Regularize Building Footprints
Description: Extract footprint from lidar points classified as buildings and
regularize its geometry.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
footprint = arcpy.GetParameterAsText(1)
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')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Requiere 3D Analyst
- ArcGIS Desktop Standard: Requiere 3D Analyst
- ArcGIS Desktop Advanced: Requiere 3D Analyst