Change LAS Class Codes (ArcGIS 3D Analyst)
Zusammenfassung
Dient zum Ändern der Klassencodewerte von LAS-Dateien, die von einem LAS-Dataset referenziert werden.
Verwendung
-
Alle LAS-Dateien, die von einem LAS-Dataset referenziert werden, werden von diesem Werkzeug ausgewertet. Es werden jedoch nur die Dateien geändert, die die bereitgestellten Klassencodes enthalten.
Ziehen Sie die Verwendung dieses Werkzeugs in Betracht, um die Klassifizierung von Datenpunkten in LAS-Dateien zu aktualisieren, die vor der Einführung von standardisierten Klassencodes in den LAS 1.1-Spezifikationen generiert wurden.
Die LAS-Punkte lassen sich in verschiedenen Kategorien klassifizieren, die das von der LIDAR-Rückgabe gefundene Material beschreiben, z. B. Erde, Gebäude oder Wasser. Von der ASPRS (American Society for Photogrammetry and Remote Sensing; Amerikanische Gesellschaft für Photogrammetrie und Fernerkundung) wurden die folgenden Klassencodes für die LAS-Dateiversionen 1.1, 1.2 und 1.3 definiert:
Klassifizierungswert
Klassifizierungstyp
0
Nie klassifiziert
1
Nicht zugewiesen
2
Erde
3
Niedere Vegetation
4
Mittlere Vegetation
5
Hohe Vegetation
6
Gebäude
7
Rauschen
8
Modellschlüssel
9
Wasser
10
Reserviert für die ASPRS-Definition
11
Reserviert für die ASPRS-Definition
12
Überlappung
13–31
Reserviert für die ASPRS-Definition
Syntax
Parameter | Erläuterung | Datentyp |
in_las_dataset |
Das Eingabe-LAS-Dataset. | LAS Dataset Layer |
class_codes [[current_class new_class],...] | Geben Sie jedes Paar der aktuellen und neuen Klassencodewerte als eine durch Leerzeichen getrennte Zeichenfolge oder eine Liste von Integer-Werten an. Ein aktueller Klassencode für 5 kann z. B. in 2 geändert werden, indem "5 2" oder [5, 2] angegeben wird. Mehrere Klassencodes können als durch Semikolons getrennte Zeichenfolge ("5 2; 8 3; 1 4"), eine Liste von Zeichenfolgen (z. B. [[5, 2], [8, 3], [1, 4]]) eingegeben werden. | Value Table |
compute_stats (optional) | Gibt an, ob für die vom LAS-Dataset referenzierten LAS-Dateien Statistiken berechnet werden sollen. Durch Statistiken wird es ermöglicht, in den Filter- und Symbologieoptionen des LAS-Dataset-Layers nur die in den LAS-Dateien vorhandenen LAS-Attributwerte anzuzeigen.
| Boolean |
Codebeispiel
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht:
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')
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht:
'''****************************************************************************
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)