Classer LAS par bruit (3D Analyst)

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

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ètreExplicationType 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.

  • ISOLATIONLa proximité spatiale des points LAS sera analysée dans des volumes tuilés pour déterminer les mesures de bruit, ainsi que la détection du bruit en fonction de la hauteur. Il s’agit de l’option par défaut.
  • RELATIVE_HEIGHTTous les points inférieurs à la hauteur minimum spécifiée à partir de la surface au sol et supérieurs à la hauteur maximum à partir de la surface au sol seront identifiés comme bruit.
  • ABSOLUTE_HEIGHTTous les points inférieurs à la hauteur minimum spécifiée et supérieurs à la hauteur maximum par rapport au niveau moyen de la mer seront identifiés comme bruit.
String
edit_las

Indique si les points LAS identifiés comme bruit vont être reclassés.

  • CLASSIFYLes points de bruit vont être reclassés. Il s’agit de l’option par défaut.
  • NO_CLASSIFYLes points de bruit ne seront pas classé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.

  • WITHHELDL'indicateur de classification Retenu sera attribué aux points de bruit.
  • NO_WITHHELDL'indicateur de classification Retenu ne sera pas attribué aux points de bruit. Il s’agit de l’option par défaut.
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.

  • COMPUTE_STATSLes statistiques sont calculées.
  • NO_COMPUTE_STATSLes statistiques ne sont pas calculées. Il s’agit de l’option par défaut.
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.

  • PROCESS_EXTENTSeuls les points LAS qui intersectent la zone d'intérêt sont traités. Il s’agit de l’option par défaut.
  • PROCESS_ENTIRE_FILESSi une partie d'un fichier LAS intersecte la zone d'intérêt, tous les points qu'il contient, y compris ceux situés à l'extérieur de la zone d'intérêt, sont traités.
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

NomExplicationType 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())

Informations de licence

  • Basic: Requiert 3D Analyst
  • Standard: Requiert 3D Analyst
  • Advanced: Requiert 3D Analyst

Rubriques connexes