Classer la superposition LAS (3D Analyst)

Synthèse

Classe les points LAS des balayages de superposition des enquêtes lidar aériennes.

Illustration

Exemple d'utilisation de l'outil Classer la superposition LAS

Utilisation

  • Les points de superposition représentent les retours LAS qui existent à proximité d’un autre point à partir d’un balayage issu d’une autre ligne de vol. Lorsque plusieurs points de différentes lignes de vol sont présents dans une distance inférieure à l’espacement des points nominal, le point doté de l’angle de balayage le plus élevé est généralement signalé comme une superposition. La désignation superposition permet de filtrer les points et de les exclure de la visualisation et de l’analyse.

  • Cet outil fonctionne sur les fichiers .las tuilés qui combinent des enregistrements de points à partir de plusieurs lignes de vol. Chaque fichier .las est traité de manière individuelle, les données LAS en entrée étant traitées fichier par fichier, ce qui signifie que les points de superposition ne sont pas identifiés si chaque ligne de vol est stockée dans un fichier .las distinct. L’outil Tuile LAS peut être utilisé pour fusionner un ensemble de fichiers .las composés de lignes de vol individuelles formant des fichiers tuilés qui combinent plusieurs lignes de vol.

  • Les points de superposition non classifiés peuvent générer des résultats indésirables dans le cadre d’opérations qui supposent une distribution de points régulière. Les données issues du traitement de points effectué avec des densités de points et d’une distribution irrégulières sont susceptibles de générer une marge d’erreur indésirable. La classification des points de superposition permet de filtrer les données LAS pour générer une densité de points cohérente et réduire le nombre potentiel de retours de points dotés d’une marge d’erreur plus élevée.

  • L’attribut de l’ID source du point d’un point LAS fournit des informations concernant la ligne de vol à partir de laquelle le point a été obtenu. Cet outil traite les données LAS dans des tuiles en déterminant si plusieurs ID source des points sont présents, puis en identifiant l’ID doté de l’angle de balayage de magnitude la plus élevée comme point de superposition. Si la surface en cours de traitement possède plusieurs points avec le même ID source du point, tous les points qui partagent l’ID source du point avec l’angle de balayage de magnitude la plus élevée sont classés comme points de superposition. C’est pour cela que la taille de l’échantillon utilisée pour évaluer les points LAS doit être environ deux à trois fois supérieure à la taille de l’espacement nominal des points des données LAS. Évitez les tuiles de plus grande taille, car le risque de classer de manière erronée les points ayant des valeurs d’angle de balayage inférieures est accru. Les tailles d’échantillon inférieures risquent de ne pas capturer assez de points pour identifier et classer correctement les points de superposition.

  • Les points de superposition dans les fichiers LAS de version 1.4 et les formats d’enregistrement des points de 6 à 8 se voient attribuer le drapeau de classification de superposition tout en conservant la valeur de leur code de classe d’origine. Le code de classe de valeur 12 sera attribué aux points de superposition de tous les autres fichiers .las pris en charge. Si le code de classe de valeur 12 est déjà utilisé par les fichiers .las en entrée pour représenter autre chose que des balayages superposés, utilisez l’outil Modifier les codes de classes LAS pour réattribuer une autre valeur à ces points avant d’exécuter cet outil.

Paramètres

ÉtiquetteExplicationType de données
Jeu de données LAS en entrée

Jeu de données LAS tuilé à traiter.

LAS Dataset Layer
Distance d'exemple

La distance d'une dimension de la surface carrée qui sera utilisée pour évaluer les données LAS. Si Unknown (Inconnu) est spécifié en tant qu’unité linéaire, l’unité est définie par la référence spatiale du fichier .las en entrée.

Linear Unit
Etendue de traitement
(Facultatif)

Spécifie l’étendue des données qui seront évaluées.

  • Default (Par défaut) : l’étendue repose sur l’étendue maximale de toutes les entrées participantes. Il s’agit de l’option par défaut.
  • Union of Inputs (Union des entrées) : l’étendue est basée sur l’étendue maximale de toutes les entrées.
  • Intersection of inputs (Intersection des entrées) : l’étendue est basée sur la surface minimale commune à toutes les entrées.
  • Current Display Extent (Étendue d’affichage actuelle) : l’étendue correspond à l’affichage visible. Cette option n’est pas disponible lorsque aucune carte n’est active.
  • As Specified Below (Comme spécifié ci-dessous) : l’étendue est basée sur les valeurs d’étendue minimale et maximale indiquées.
  • Browse (Parcourir) : l’étendue repose sur un jeu de données existant.
Extent
Traiter l'intégralité des fichiers LAS qui intersectent l'étendue
(Facultatif)

Spécifie comment la zone d’intérêt est utilisée pour déterminer le traitement des fichiers .las. La zone d’intérêt est définie par la valeur du paramètre Étendue de traitement, la valeur du paramètre Limite de traitement ou les deux à la fois.

  • Désactivé : seuls les points LAS qui intersectent la zone d'intérêt sont traités. Il s’agit de l’option par défaut.
  • Activé : si une partie d’un fichier .las intersecte la zone d’intérêt, tous les points que ce fichier .las contient, y compris ceux situés à l’extérieur de la zone d’intérêt, sont traités.
Boolean
Calculer les statistiques
(Facultatif)

Spécifie si des statistiques seront calculées pour les fichiers .las référencés par le jeu de données LAS. Les statistiques de calcul fournissent un index spatial pour chaque fichier .las, ce qui contribue à améliorer les performances d’analyse et d’affichage. Les statistiques améliorent également l’expérience de filtrage et de symbologie en limitant l’affichage des attributs LAS (par exemple, les codes de classification et les informations renvoyées) aux valeurs présentes dans le fichier .las.

  • Activé : les statistiques sont calculées. Il s’agit de l’option par défaut.
  • Désactivé : les statistiques ne sont pas calculées.
Boolean
Mettre à jour la pyramide
(Facultatif)

Spécifie si la pyramide du jeu de données LAS est mise à jour après la modification des codes de classe.

  • Activé : la pyramide du jeu de données LAS est mise à jour. Il s’agit de l’option par défaut.
  • Désactivé : la pyramide du jeu de données LAS n’est pas mise à jour.
Boolean

Sortie obtenue

ÉtiquetteExplicationType de données
Jeu de données LAS en sortie

Le jeu de données LAS à modifier.

LAS Dataset Layer

arcpy.ddd.ClassifyLasOverlap(in_las_dataset, sample_distance, {extent}, {process_entire_files}, {compute_stats}, {update_pyramid})
NomExplicationType de données
in_las_dataset

Jeu de données LAS tuilé à traiter.

LAS Dataset Layer
sample_distance

La distance d'une dimension de la surface carrée qui sera utilisée pour évaluer les données LAS. Cette valeur peut être exprimée en tant que nombre ou valeur d'unité linéaire, par exemple 3 mètres. Si les unités linéaires ne sont pas spécifiées ou si elles sont désignées avec la mention Unknown, l’unité est définie par la référence spatiale du fichier .las en entrée.

Linear Unit
extent
(Facultatif)

Spécifie l’étendue des données qui seront évaluées.

  • MAXOF : l’étendue maximale de toutes les entrées est utilisée.
  • MINOF : l’étendue minimale de toutes les entrées est utilisée.
  • DISPLAY : l’étendue est égale à l’affichage visible.
  • Nom de la couche : l’étendue de la couche spécifiée est utilisée.
  • Objet Extent : l’étendue de l’objet spécifié est utilisée.
  • Chaîne délimitée par des espaces de coordonnées géographiques : l’étendue de la chaîne spécifiée est utilisée. Les coordonnées sont exprimées dans l’ordre x-min, y-min, x-max, y-max.
Extent
process_entire_files
(Facultatif)

Indique comment l’étendue de traitement est appliquée.

  • 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 que le fichier .las contient, y compris ceux situés à l’extérieur de la zone d’intérêt, sont traités.
Boolean
compute_stats
(Facultatif)

Spécifie si des statistiques seront calculées pour les fichiers .las référencés par le jeu de données LAS. Les statistiques de calcul fournissent un index spatial pour chaque fichier .las, ce qui contribue à améliorer les performances d’analyse et d’affichage. Les statistiques améliorent également l’expérience de filtrage et de symbologie en limitant l’affichage des attributs LAS (par exemple, les codes de classification et les informations renvoyées) aux valeurs présentes dans le fichier .las.

  • COMPUTE_STATSLes statistiques sont calculées. Il s’agit de l’option par défaut.
  • NO_COMPUTE_STATSLes statistiques ne sont pas calculées.
Boolean
update_pyramid
(Facultatif)

Spécifie si la pyramide du jeu de données LAS est mise à jour après la modification des codes de classe.

  • UPDATE_PYRAMIDLa pyramide du jeu de données LAS est mise à jour. Il s’agit de l’option par défaut.
  • NO_UPDATE_PYRAMIDLa pyramide du jeu de données LAS n’est pas mise à jour.
Boolean

Sortie obtenue

NomExplicationType de données
out_las_dataset

Le jeu de données LAS à modifier.

LAS Dataset Layer

Exemple de code

Exemple 1 d'utilisation de l'outil ClassifyLasOverlap (fenêtre Python)

L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python.

arcpy.env.workspace = 'C:/data'

arcpy.ddd.ClassifyLasOverlap('Denver_2.lasd', '1 Meter')
Exemple 2 d'utilisation de l'outil ClassifyLasOverlap (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

Cas particuliers

Informations de licence

  • Basic: Nécessite 3D Analyst
  • Standard: Nécessite 3D Analyst
  • Advanced: Nécessite 3D Analyst

Rubriques connexes