Résumé
Classe comme bruit les points LAS avec des caractéristiques spatiales anormales.
Utilisation
Les points de bruit dans les retours LAS ont généralement un impact néfaste sur la visualisation et l’analyse des données. Par exemple, les retours d’oiseaux volant à haute altitude et des impulsions dispersées qui ont rencontré une couverture nuageuse, du brouillard, des plans d’eau et des miroirs très réfléchissants, peuvent déformer la plage z des points qui entourent cet emplacement. L’identification de ces points en tant que bruit permet ensuite de les filtrer de l’affichage et de les éliminer lorsque des données dérivées (surface d’altitude, profil de pente ou d’exposition) sont produites.
La méthode Isolation (Isolement) traite les données LAS dans des groupes tuilés de 3 sur 3 en fonction de la région définie par les paramètres Neighborhood Width (Largeur du voisinage) et Neighborhood Height (Hauteur du voisinage). Si le nombre de points LAS dans le volume d’analyse est inférieur à la valeur du paramètre Neighborhood Point Limit (Limite des points de voisinage), les points LAS sont traités en tant que bruit. La limite des points doit refléter une approximation raisonnable en fonction de la densité des points lidar et du nombre de points LAS pouvant être anticipés dans le volume d'analyse.
Si certains retours de points LAS possèdent des valeurs z anormalement élevées ou faibles pour la région capturée par la collection lidar, utilisez la méthode Hauteur absolue pour définir le seuil de valeurs z des données et identifier rapidement les points aberrants en tant que bruit.
Si des points LAS possèdent des valeurs z anormalement élevées ou faibles pour certaines régions, mais que ces valeurs se trouvent dans la plage des mesures valides capturées dans la collection lidar, utilisez la méthode Hauteur relative pour définir le seuil de valeurs z des données valides en fonction d'un décalage à partir du sol. Pour générer une surface au sol, filtrez le jeu de données LAS pour les points classés comme terrestres, puis utilisez l'outil Jeu de données LAS vers raster.
Seuls les points LAS avec un code de classe de valeur 0 ou 1 sont reclassés. Si les points non classés sont représentés par une autre valeur, utilisez l'outil Modifier les codes de classes LAS pour leur attribuer la valeur 1. Lorsque les points de bruit sont en cours de classification et que la méthode Isolation (Isolement) ou Absolute Height (Hauteur absolue) est utilisée, un code de classe de valeur 7 est attribué à tous les points de bruit. Si la méthode Relative Height (Hauteur relative) est employée, la valeur 7 est attribuée aux points de bruit inférieurs au seuil Hauteur minimum, ce qui représente Niveau sonore faible, et la valeur 18 est attribuée aux points de bruit supérieurs au seuil Hauteur maximum, ce qui représente Niveau sonore élevé.
Si vous n’êtes pas certain des paramètres à utiliser pour déterminer les points de bruit, exportez les points LAS détectés comme bruit sous forme d’entité ponctuelle tout en désactivant l’option de mise à jour du code de classification LAS. Si les points en sortie reflètent les résultats souhaités, vous pouvez reclasser les points LAS à l’aide de ces entités via l’outil Localiser les points LAS par proximité.
La méthode d’isolement est une opération performante qui s’exécute plus rapidement avec des groupes de plus grande taille. Spécifiez la taille de groupe la plus importante possible selon la nature et la distribution des données.
Syntaxe
arcpy.ddd.ClassifyLasNoise(in_las_dataset, method, edit_las, withheld, {compute_stats}, ground, low_z, high_z, max_neighbors, step_width, step_height, {extent}, {process_entire_files}, {out_feature_class})
Paramètre | Explication | Type de données |
in_las_dataset | Jeu de données LAS à traiter. | LAS Dataset Layer |
method | La méthode de délection du bruit qui va être utilisée.
| String |
edit_las | Indique si les points LAS identifiés comme bruit vont être reclassés.
| Boolean |
withheld | Indique si l'indicateur de classification Retenu va être attribué aux points de bruit. Cette option est uniquement appliquée si le paramètre edit_las est défini sur CLASSIFY.
| Boolean |
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. Le calcul des statistiques fournit un index spatial pour chaque fichier LAS, ce qui améliore les performances d’analyse et d’affichage. Les statistiques permettent également d’optimiser l’utilisation des filtres et de la symbologie en limitant l’affichage des attributs LAS (tels que les codes de classification et les informations renvoyées) aux valeurs présentes dans le fichier LAS.
| Boolean |
ground | La surface au sol utilisée pour définir la hauteur relative. | Raster Layer |
low_z | La hauteur qui définit le seuil de valeur z le moins élevé pour l’identification des points de bruit. Tout point inférieur à la valeur spécifiée sera classé comme bruit. Si une surface au sol est spécifiée, ce seuil repose sur un décalage par rapport au sol. Par exemple, la valeur « -3 pieds » signifie que tous les points situés à 3 pieds sous la surface au sol sont classés comme bruit. | Linear Unit |
high_z | La hauteur qui définit le seuil de valeur z le plus élevé pour l'identification des points de bruit. Tout point supérieur à la valeur spécifiée sera classé comme bruit. Si une surface au sol est fournie, ce seuil repose sur un décalage par rapport au sol. Par exemple, la valeur « 250 mètres » signifie que tous les points situés à 250 mètres au-dessus de la surface au sol sont classés comme bruit. | Linear Unit |
max_neighbors | Le nombre maximum de points à l’intérieur du volume d’analyse pouvant être qualifiés comme bruit à l’aide de la méthode Isolation (Isolement). Si le volume d'analyse contient des points LAS égaux ou inférieurs à cette valeur, ces points sont classés comme bruit. | Long |
step_width | La taille de chaque dimension dans l’espace XY du volume d’analyse à l’aide de la méthode Isolation (Isolement). | Linear Unit |
step_height | La hauteur du volume d’analyse à l’aide de la méthode Isolation (Isolement). | Linear Unit |
extent (Facultatif) | Spécifie l’étendue des données qui seront évaluées par cet outil. | Extent |
process_entire_files (Facultatif) | Indique comment appliquer l’étendue de traitement.
| Boolean |
out_feature_class (Facultatif) | Les entités ponctuelles en sortie qui représentent les points LAS identifiés comme bruit. | Feature Class |
Sortie dérivée
Nom | Explication | Type de données |
out_las_dataset | Le jeu de données LAS à modifier. | Couche du jeu de données LAS |
Exemple de code
Exemple 1 d'utilisation de l'outil ClassifyLasNoise (fenêtre Python)
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python.
arcpy.env.workspace = 'C:/data'
arcpy.ddd.ClassifyLasNoise('Denver_2.lasd', "ABSOLUTE_HEIGHT",
edit_las='CLASSIFY', withheld='WITHHELD',
high_z='450 Feet')
Exemple 2 d'utilisation de l'outil ClassifyLasNoise (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
Name: Classify Lidar & Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings,
regularize its geometry, and calculate the building height.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
dem = arcpy.GetParameterAsText(1)
footprint = arcpy.GetParameterAsText(2)
try:
desc = arcpy.Describe(lasd)
if desc.spatialReference.linearUnitName in ['Foot_US', 'Foot']:
unit = 'Feet'
else:
unit = 'Meters'
ptSpacing = desc.pointSpacing * 2.25
sampling = '{0} {1}'.format(ptSpacing, unit)
# Classify overlap points
arcpy.ddd.ClassifyLASOverlap(lasd, sampling)
# Classify ground points
arcpy.ddd.ClassifyLasGround(lasd)
# Filter for ground points
arcpy.management.MakeLasDatasetLayer(lasd, 'ground', class_code=[2])
# Generate DEM
arcpy.conversion.LasDatasetToRaster('ground', dem, 'ELEVATION',
'BINNING NEAREST NATURAL_NEIGHBOR',
sampling_type='CELLSIZE',
sampling_value=desc.pointSpacing)
# Classify noise points
arcpy.ddd.ClassifyLasNoise(lasd, method='ISOLATION', edit_las='CLASSIFY',
withheld='WITHHELD', ground=dem,
low_z='-2 feet', high_z='300 feet',
max_neighbors=ptSpacing, step_width=ptSpacing,
step_height='10 feet')
# Classify buildings
arcpy.ddd.ClassifyLasBuilding(lasd, '7.5 feet', '80 Square Feet')
#Classify vegetation
arcpy.ddd.ClassifyLasByHeight(lasd, 'GROUND', [8, 20, 55],
compute_stats='COMPUTE_STATS')
# Filter LAS dataset for building points
lasd_layer = 'building points'
arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=[6])
# Export raster from lidar using only building points
temp_raster = 'in_memory/bldg_raster'
arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
# Convert building raster to polygon
temp_footprint = 'in_memory/footprint'
arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
# Regularize building footprints
arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint,
method='RIGHT_ANGLES')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Environnements
Informations de licence
- Basic: Requiert 3D Analyst
- Standard: Requiert 3D Analyst
- Advanced: Requiert 3D Analyst