Résumé
Réattribue les codes de classification et drapeaux des fichiers 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.
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
Construction
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
arcpy.ddd.ChangeLasClassCodes(in_las_dataset, class_codes, {compute_stats}, {extent}, boundary, {process_entire_files})
Paramètre | Explication | Type de données |
in_las_dataset | Jeu de données LAS à traiter. | 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. 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.
| Boolean |
extent (Facultatif) | Spécifie l’étendue des données qui seront évaluées par cet outil. | Extent |
boundary | Entité surfacique définissant la zone d’intérêt que cet outil doit traiter. | Feature Layer |
process_entire_files (Facultatif) | Indique comment appliquer l’étendue de traitement.
| Boolean |
Sortie dérivée
Nom | Explication | Type de données |
derived_las_dataset | Jeu de données LAS mis à jour. | Couche du jeu de données LAS |
Exemple de code
1er exemple d'utilisation de l'outil ChangeLasClassCodes (fenêtre Python)
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')
2e exemple d'utilisation de l'outil ChangeLasClassCodes (script autonome)
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)
Environnements
Informations de licence
- Basic: Requiert 3D Analyst
- Standard: Requiert 3D Analyst
- Advanced: Requiert 3D Analyst