Zusammenfassung
Dient zum Ändern der Klassencodewerte der 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. 
- Das LAS-Format unterstützt die Klassifizierung jedes Punktes basierend auf den von der ASPRS (American Society for Photogrammetry and Remote Sensing) definierten Spezifikationen. Die ArcGIS Plattform wendet das für die LAS-Dateiversion 1.4 angegebene Klassifizierungsschema an: - Klassifizierungswert - Klassifizierungstyp - 0 - Nie klassifiziert - 1 - Nicht zugewiesen - 2 - Oberfläche - 3 - Niedrige Vegetation - 4 - Mittelhohe Vegetation - 5 - Hohe Vegetation - 6 - Gebäude - 7 - Niedriger Rauschwert - 8 - Modellschlüssel/Reserviert - 9 - Wasser - 10 - Schienen - 11 - Straßenbelag - 12 - Überlappung/Reserviert - 13 - Draht - Schutz - 14 - Draht - Leiter - 15 - Strommast - 16 - Drahtverbinder - 17 - Brückenfahrbahn - 18 - Hohes Rauschen - 19 – 63 - Für die ASPRS-Definition reserviert (die Versionen LAS 1.1 bis 1.3 unterstützen bis zum Klassencode 31) - 32 – 255 - Kann vom Benutzer definiert werden (wird nur in LAS 1.0 und bestimmten Versionen von 1.4 unterstützt) 
Syntax
ChangeLasClassCodes_3d (in_las_dataset, class_codes, {compute_stats}, {extent}, boundary, {process_entire_files})| Parameter | Erläuterung | Datentyp | 
| in_las_dataset | Das zu verarbeitende 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 ganzzahligen 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") oder 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 Symbolisierungsoptionen des LAS-Dataset-Layers nur die in den LAS-Dateien vorhandenen LAS-Attributwerte anzuzeigen. 
 | Boolean | 
| extent (optional) | Legen Sie die Ausdehnung der Daten fest, die von diesem Werkzeug ausgewertet werden. | Extent | 
| boundary | Ein Polygon-Feature, das den Interessenbereich definiert, der von diesem Werkzeug verarbeitet wird. | Feature Layer | 
| process_entire_files (optional) | Legen Sie fest, wie die Verarbeitungsausdehnung angewendet werden soll. 
 | Boolean | 
Codebeispiel
ChangeLasClassCodes – Beispiel 1 (Python-Fenster)
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')
ChangeLasClassCodes – Beispiel 2 (eigenständiges Skript)
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)
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert 3D Analyst
- ArcGIS Desktop Standard: Erfordert 3D Analyst
- ArcGIS Desktop Advanced: Erfordert 3D Analyst