LAS-Klassencodes mithilfe von Features festlegen (ArcGIS 3D Analyst)
Zusammenfassung
Klassifiziert Datenpunkte in von einem LAS-Dataset referenzierten LAS-Dateien mithilfe von Punkt-, Linien- und Polygon-Features.
Verwendung
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
Hinweis:Die LAS 1.0-Spezifikationen enthalten Klassencodes von 0 bis 255, jedoch kein standardisiertes Klassifizierungsschema. In 1.0-Dateien verwendete Klassencodes werden in der Regel vom Datenanbieter definiert und über Zusatzinformationen bereitgestellt.
Mit dem LAS-Dataset-Layer können LAS-Punkte nach Klassencode oder Rückgabewerten gefiltert werden. Der Layer kann mit dem Werkzeug LAS-Dataset-Layer erstellen erzeugt werden, oder indem Sie das LAS-Dataset in ArcMap oder ArcScene laden und die gewünschten Klassencodes und Rückgabewerte im Dialogfeld "Layer-Eigenschaften" angeben.
LAS-Datenpunkte innerhalb der zweidimensionalen Fläche des für die Eingabe-Features angegebenen Puffers werden klassifiziert.
-
Sie haben die Möglichkeit, LAS-Punkte mithilfe der durch Ausreißer identifizieren erhaltenen Punkte als Rauschen zu definieren.
Syntax
Parameter | Erläuterung | Datentyp |
in_las_dataset |
Das Eingabe-LAS-Dataset. | LAS Dataset Layer |
feature_class [[features, buffer_distance, new_class, synthetic, key_point, withheld],...] |
Geben Sie eine oder mehrere Feature-Classes an, die zur Definition von Klassencodewerten für die von einem LAS-Dataset referenzierten LIDAR-Dateien dienen sollen. Jedes Feature verfügt über die folgenden Optionen, die angegeben werden können:
| 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.SetLasClassCodesUsingFeatures_3d("test.lasd", [["lake.shp 0 9"],
["outliers.shp", 5, "NO_CHANGE",
"NO_CHANGE", "NO_CHANGE", "SET"]],
"COMPUTE_STATS")
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht:
'''**********************************************************************
Name: Assign Withheld Classification Flag to Outlier Points in LAS Files
Description: Uses Locate Outliers to identify points in LAS files that
should be assigned the 'withheld' classification flag.
Designed for use as a script tool.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
try:
arcpy.CheckOutExtension('3D')
# Set Local Variables
lasD = arcpy.GetParameterAsText(0)
outliers = 'in_memory/outliers'
# Execute LocateOutliers
arcpy.ddd.LocateOutliers(lasD, outliers, 'APPLY_HARD_LIMIT', -10,
350, 'APPLY_COMPARISON_FILTER', 1.2, 120,
0.8, 8000)
# Execute SetLasClassCodeUsingFeatures
arcpy.ddd.SetLasClassCodesUsingFeatures(lasd, [["outliers.shp", 5,
"NO_CHANGE", "NO_CHANGE",
"NO_CHANGE", "SET"]])
arcpy.CheckInExtension('3D')
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)