Résumé
Classe les points LAS des balayages de superposition des enquêtes lidar aériennes.
Illustration
Utilisation
La présence de points de superposition non classés risque de générer des résultats indésirables dans les opérations qui supposent une distribution de points régulière, telles que l’outil Classer des bâtiments LAS. Ces points peuvent également générer une marge d’erreur indésirable dans la production des données dérivées si les superpositions proviennent d’angles de balayage extrêmes. Classer les points de superposition permet de les filtrer afin d’obtenir une distribution de points plus régulière des retours de plus haute qualité.
L’attribut ID source du point d’un point LAS offre des informations sur la ligne de vol à partir de laquelle il a été collecté. 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 avec 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. Il est conseillé d’éviter les tuiles de plus grande taille, car les points risquent dans ce cas d’être classés de manière erronée avec des valeurs d’angle de balayage inférieures. 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 est attribué aux points de superposition dans 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 de superposition, utilisez l’outil Modifier les codes de classes LAS pour réattribuer une autre valeur à ces points avant d’exécuter l’outil.
-
Le format LAS prend en charge la classification de chaque point en fonction des spécifications définies par l'ASPRS (American Society for Photogrammetry and Remote Sensing). La plateforme ArcGIS applique le schéma de classification spécifié pour la version 1.4 du fichier LAS :
Valeur de classification Type de classification 0
Jamais classé
1
Non attribuée
2
Sol
3
Végétation basse
4
Moyenne végétation
5
Haute végétation
6
Bâtiment
7
Niveau sonore faible
8
Clé de modèle/Réservé
9
Eau
10
Ferroviaire
11
Surface routière
12
Superposition/Réservé
13
Fil métallique
14
Conducteur métallique
15
Tour de transmission
16
Connecteur métallique
17
Tablier de pont
18
Niveau sonore élevé
19 – 63
Réservé pour la définition ASPRS (prise en charge de LAS 1.1 à 1.3 jusqu'au code de classe 31)
32 – 255
Défini par l'utilisateur (uniquement pris en charge dans LAS 1.0 et certaines versions de 1.4)
Syntaxe
ClassifyLasOverlap_3d (in_las_dataset, sample_distance, {extent}, {process_entire_files}, {compute_stats})
Paramètre | Explication | Type de données |
in_las_dataset | Jeu de données LAS à traiter. | LAS Dataset Layer |
sample_distance | La distance d'une dimension de la surface carrée 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 meters (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 (Inconnu), 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 par cet outil. | Extent |
process_entire_files (Facultatif) | Indique comment appliquer l’étendue de traitement.
| 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. 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 |
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 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
Informations de licence
- ArcGIS Desktop Basic: Requiert 3D Analyst
- ArcGIS Desktop Standard: Requiert 3D Analyst
- ArcGIS Desktop Advanced: Requiert 3D Analyst