Résumé
Classe des points de toit d'un bâtiment dans des données lidar aériennes.
Illustration
Utilisation
Les données LAS doivent posséder des points au sol classés pour que vous puissiez classer les points de toit d’un bâtiment. Vous pouvez utiliser l’outil Classer le sol LAS si aucun point au sol n’a été classé. Les points au sol devant avoir un code de classe de valeur 2, si tel n’est pas le cas, utilisez l’outil Modifier les codes de classes LAS pour réorganiser le code de classe comme il convient.
Les points LAS dont les valeurs de codes de classes sont égales à 0 et 1 sont évalués afin de déterminer s’ils répondent à la hauteur et la surface minimales pour l’identification des toits de bâtiments. Les points classés de bâtiments existants dont la valeur du code de classe est égale à 6 sont également utilisés pour déterminer si des points adjacents s’ajustent le long d’un plan connectant la même structure. Ce processus utilise un algorithme RANSAC optimisé qui commence par un point d’origine sélectionné de façon aléatoire, ce qui peut entraîner une légère variation des résultats de classification selon les exécutions.
Si de petits agrégats de points n’appartenant pas aux bâtiments sont classés par erreur, augmentez le paramètre Minimum Area (Surface minimale) pour éliminer l’inclusion de ces points. À l’inverse, si des bâtiments ne semblent pas avoir été traités par l’outil, vous pouvez utiliser une surface inférieure pour capturer les régions manquantes. Une étendue de traitement ou un polygone de limite peut être fourni pour mieux limiter la région en cours de traitement, ce qui peut être utile pour tester les résultats des valeurs expérimentales.
L’outil convient au traitement des enquêtes lidar aériennes. Les fichiers LAS créés à partir de sources telles que les nuages de points photogrammétriques, peuvent générer des résultats moins fiables en raison de la probabilité plus élevée de points de bruit.
Cet outil est optimal lorsque la densité des points LAS est cohérente. En règle générale, on assiste à une certaine superposition de la couverture des enquêtes lidar aériennes, ce qui génère des zones à plus forte densité d’agrégats de points. L’inclusion de ces points déforme l’espacement nominal des points et produit des erreurs de commission dans les régions de superposition et des erreurs d’omission dans la surface non superposée. Pour optimiser les résultats, utilisez l’outil Classer la superposition LAS pour classer les points de superposition et modifiez la valeur Average Point Spacing (Espacement moyen des points) pour fournir une estimation de l’espacement nominal des points à l’extérieur des régions de superposition.
Syntaxe
ClassifyLasBuilding_3d (in_las_dataset, {min_height}, min_area, {compute_stats}, {extent}, boundary, {process_entire_files}, point_spacing)
Paramètre | Explication | Type de données |
in_las_dataset | Le jeu de données LAS à classer. | LAS Dataset Layer |
min_height (Facultatif) | La hauteur à partir du sol qui définit le point le plus bas à partir duquel les points de toit seront identifiés. | Linear Unit |
min_area | Plus petite surface de points coplanaires qui servira à établir la présence d’un toit de bâtiment. | Areal Unit |
compute_stats (Facultatif) | Spécifie si des statistiques doivent être calculées pour les fichiers LAS référencés par le jeu de données LAS. La présence de statistiques permet au filtrage de la couche du jeu de données LAS et aux options de symbologie de n'afficher que les valeurs d'attributs LAS qui existent dans les fichiers LAS.
| Boolean |
extent (Facultatif) | Spécifie l’étendue des données qui seront évaluées par cet outil. | Extent |
boundary | Entité surfacique définissant la zone d'intérêt qui sera traitée par cet outil. | Feature Layer |
process_entire_files (Facultatif) | Indique comment appliquer l’étendue de traitement.
| Boolean |
point_spacing | Espacement moyen des points LAS qui servira à établir la présence des toits des bâtiments. Cette valeur est par défaut l’espacement moyen calculé pour le jeu de données LAS. | Linear Unit |
Sortie dérivée
Nom | Explication | Type de données |
derived_las_dataset | Le jeu de données LAS qui est classé pour les toits de bâtiment. | Couche du jeu de données LAS |
Exemple de code
Exemple 1 d'utilisation de l'outil ClassifyLasBuilding (fenêtre Python)
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python.
arcpy.env.workspace = 'C:/data'
arcpy.ClassifyLasBuilding_3d('Highland.lasd', minHeight='9 feet',
minArea='30 Square Feet', compute_stats=True)
Exemple 2 d'utilisation de l'outil ClassifyLasBuilding (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
Name: Tile & Classify LAS Files
Description: Creates & classifies tiled LAS files.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math
in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset
try:
# Create temp LAS dataset to reference LAS files that will be tiled
temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
arcpy.management.CreateLasDataset(in_las, temp_lasd)
arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4,
point_format=7, file_size=300)
arcpy.management.Delete(temp_lasd)
arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
noise='All Noise', compute_stats='COMPUTE_STATS')
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