Définir les codes de classes LAS en fonction des entités (3D Analyst)
Récapitulatif
Classe les points de données des fichiers LAS référencés par un jeu de données LAS à l'aide d'entités ponctuelles, linéaires et surfaciques.
Utilisation
Vous pouvez classer les points lidar en plusieurs catégories qui décrivent la matière détectée par la valeur lidar renvoyée : sol, bâtiment ou eau. L'association ASPRS (American Society for Photogrammetry and Remote Sensing) a défini les codes de classes suivants pour les versions de fichiers LAS 1.1, 1.2 et 1.3 :
Valeur de classification
Type de classification
0
Jamais classé
1
Non attribué
2
Sol
3
Végétation basse
4
Végétation moyenne
5
Végétation haute
6
Bâtiment
7
Bruit
8
Clé de modèle
9
Eau
10
Réservé à la définition ASPRS
11
Réservé à la définition ASPRS
12
Superposition
13–31
Réservé à la définition ASPRS
Remarque :Alors que les spécifications LAS 1.0 proposent des codes de classes compris entre 0 et 255, elles ne présentent pas de jeu de classification standard. Les codes de classes utilisés dans les fichiers 1.0 sont habituellement définis par le fournisseur de données et communiquées via des informations auxiliaires.
La couche de jeux de données LAS peut être utilisée pour filtrer les points LAS par code de classe ou valeurs renvoyées. La couche peut être créée à l'aide de l'outil Faire une couche de jeux de données LAS ou en chargeant le jeu de données LAS dans ArcMap ou ArcScene, et en spécifiant les codes de classe souhaités et les valeurs renvoyées par le biais de la boîte de dialogue des propriétés de la couche.
Les points de données LAS se trouvant sur la surface 2D de la zone tampon spécifiée pour les entités en entrée sont classés.
-
Utilisez les points obtenus après l'exécution de la fonction Localiser des points aberrants pour classer les points LAS en tant que bruit.
Syntaxe
Paramètre | Explication | Type de données |
in_las_dataset |
Jeu de données LAS en entrée. | LAS Dataset Layer |
feature_class [[features, buffer_distance, new_class, synthetic, key_point, withheld],...] |
Spécifiez une ou plusieurs classes d'entités servant à définir des valeurs de code de classe pour les fichiers LIDAR référencés par un jeu de données LAS. Chaque entité présente les options paramétrables suivantes :
| Value Table |
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 |
Exemple de code
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python :
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.SetLasClassCodesUsingFeatures_3d("test.lasd", [["lake.shp 0 9"],
["outliers.shp", 5, "NO_CHANGE",
"NO_CHANGE", "NO_CHANGE", "SET"]],
"COMPUTE_STATS")
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome :
'''**********************************************************************
Name: Assign Withheld Classification Flag to Outlier Points in LAS Files
Description: Uses Locate Outliers to identify points in LAS files that
should be assigned the 'withheld' classification flag.
Designed for use as a script tool.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension('3D')
# Set Local Variables
lasD = arcpy.GetParameterAsText(0)
outliers = 'in_memory/outliers'
# Execute LocateOutliers
arcpy.ddd.LocateOutliers(lasD, outliers, 'APPLY_HARD_LIMIT', -10,
350, 'APPLY_COMPARISON_FILTER', 1.2, 120,
0.8, 8000)
# Execute SetLasClassCodeUsingFeatures
arcpy.ddd.SetLasClassCodesUsingFeatures(lasd, [["outliers.shp", 5,
"NO_CHANGE", "NO_CHANGE",
"NO_CHANGE", "SET"]])
arcpy.CheckInExtension('3D')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)