Zusammenfassung
Weist die Klassifizierungscodes und -Flags von LAS-Dateien neu zu.
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.
Sie können dieses Werkzeug verwenden, um die Klassifizierung von Datenpunkten in LAS-Dateien zu aktualisieren, die vor der Einführung von standardisierten Klassencodes in den LAS-Spezifikationen 1.1 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
Boden
3
Niedrige Vegetation
4
Mittelhohe Vegetation
5
Hohe Vegetation
6
Gebäude
7
Niedriges Rauschen
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
arcpy.ddd.ChangeLasClassCodes(in_las_dataset, class_codes, {compute_stats}, {extent}, boundary, {process_entire_files})
Parameter | Erklärung | 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 das Berechnen von Statistiken wird ein räumlicher Index für jede LAS-Datei bereitgestellt, wodurch sich die Analyse- und Darstellungs-Performance verbessert. Ferner werden durch Statistiken die Filter- und Symbolisierungsverfahren verbessert, da die Anzeige von LAS-Attributen, beispielsweise Klassifizierungscodes und Rückgabeinformationen, auf die in der LAS-Datei vorhandenen Werte begrenzt wird.
| Boolean |
extent (optional) | Legt 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 werden soll. | Feature Layer |
process_entire_files (optional) | Legt fest, wie die Verarbeitungsausdehnung angewendet werden soll.
| Boolean |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
derived_las_dataset | Das aktualisierte LAS-Dataset. | LAS-Dataset-Layer |
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
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst