Résumé
Normalise l'emprise des polygones représentant un bâtiment en éliminant les artefacts indésirables dans leur géométrie.
Illustration
Utilisation
Cet outil fait appel à un algorithme de compression de polylignes pour corriger les distorsions des polygones d'emprise de bâtiment créés via des workflows d'extraction d'entités susceptibles de générer des artefacts indésirables.
La tolérance permet de définir la région entourant la limite du polygone à laquelle le polygone régularisé doit s'adapter. Pour visualiser au mieux cette région, convertissez la limite du polygone en entité linéaire, puis bufférisez la ligne selon la tolérance souhaitée pour obtenir un aperçu de son application par l'outil.
Lorsque les paramètres spécifiés ne peuvent pas générer de solution régularisée pour une entrée donnée, l'entité d'origine est copiée dans la sortie.
La sortie contient un champ nommé STATUS dont les valeurs indiquent les informations suivantes :
- 0 : entité d'origine
- 1 : entité régularisée
Syntaxe
RegularizeBuildingFootprint_3d (in_features, out_feature_class, method, tolerance, densification, precision, diagonal_penalty, min_radius, max_radius)
Paramètre | Explication | Type de données |
in_features | Polygones représentant les emprises de bâtiment à régulariser. | Feature Layer |
out_feature_class | Classe d'entités qui va être produite par cet outil. | Feature Class |
method | Méthode de régularisation à utiliser pour le traitement des entités en entrée.
| String |
tolerance | Distance maximale selon laquelle l'emprise régularisée peut s'écarter de la limite de son entité d'origine. La valeur spécifiée repose sur les unités linéaires du système de coordonnées de l'entité en entrée. | Double |
densification | Intervalle d'échantillonnage qui permet de déterminer si l'entité régularisée est droite ou courbée. La densification doit être égale ou inférieure à la valeur de tolérance. Ce paramètre est uniquement utilisé avec des méthodes prenant en charge l'identification des angles droits. | Double |
precision | Précision utilisée par l'index spatial employé au cours du processus de régularisation. Les valeurs correctes sont comprises entre 0.05 et 0.25. | Double |
diagonal_penalty | Contrôle la déformation de distance afin de créer des connexions à angle droit. Des distances inférieures à la pénalité diagonale seront utilisées pour créer des angles droits. Ce paramètre est uniquement utilisé avec la méthode Angles droits et diagonales. | Double |
min_radius | Plus petit rayon dont peut disposer un cercle régularisé. La valeur 0 indique qu'aucune limite de taille minimum n'est imposée. Cette option est uniquement disponible avec la méthode du cercle. | Double |
max_radius | Plus grand rayon dont peut disposer un cercle circulaire. Cette option est uniquement disponible avec la méthode du cercle. | Double |
Exemple de code
Exemple 1 d'utilisation de l'outil RegularizeBuildingFootprint (fenêtre Python)
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre 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)
Exemple 2 d'utilisation de l'outil RegularizeBuildingFootprint (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
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())
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert 3D Analyst
- ArcGIS Desktop Standard: Requiert 3D Analyst
- ArcGIS Desktop Advanced: Requiert 3D Analyst