Modifier les codes de classes LAS (3D Analyst)
Récapitulatif
Modifie les valeurs de code de classe de fichiers LAS référencés par un jeu de données LAS.
Utilisation
-
Tous les fichiers LAS référencés par le jeu de données LAS sont évalués par cet outil, mais seuls les fichiers comportant les codes de classe fournis sont modifiés.
Utilisez cet outil pour mettre à jour la classification de points de données des fichiers LAS générés avant l'introduction des codes de classe standardisés dans les spécifications LAS 1.1.
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
Syntaxe
Paramètre | Explication | Type de données |
in_las_dataset |
Jeu de données LAS en entrée. | LAS Dataset Layer |
class_codes [[current_class new_class],...] | Spécifiez chaque paire de valeurs de code de classe actuel et nouveau sous la forme d'une chaîne délimitée par des espaces ou d'une liste de nombres entiers. Par exemple, un code de classe actuel égal à 5 peut adopter la valeur 2 lorsque vous indiquez "5 2" ou [5, 2]. Plusieurs codes de classe peuvent être entrés sous la forme d'une chaîne délimitée par des points-virgules ("5 2; 8 3; 1 4") ou une liste de chaînes (par exemple, [[5, 2], [8, 3], [1, 4]]). | 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.ChangeLasClassCodes_3d('test.lasd', [[5, 2], [3, 1], [4, 6]],
'COMPUTE_STATS')
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome :
'''****************************************************************************
Name: Update LAS 1.0 Classification to ASPRS 1.1 Specs
Description: Updates classification of version 1.0 LAS files to conform to
the standardized class codes introduced in the 1.1 specifications.
The code is designed for use as a script tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
lasd = arcpy.GetParameterAsText(2)
reclassList = arcpy.GetParameterAsText(3) #List of values '<oldCode> <newCode>'
calcStats = arcpy.GetParameter(4)
try:
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, recursion)
# Execute ChangeLasClassCodes
arcpy.ddd.ChangeLasClassCodes(lasd, reclassList, calcStats)
# Report messages
arcpy.GetMessages()
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)