Zusammenfassung
Klassifiziert LAS-Punkte mit abweichenden räumlichen Eigenschaften als Rauschen.
Verwendung
Rauschpunkte in LAS-Rückgaben wirken sich in der Regel nachteilig auf die Datenvisualisierung und -analyse aus. Rückgaben von hoch fliegenden Vögeln und verstreute Impulse aus Wolkendecken, Smog/Dunst, Gewässer und stark reflektierenden Spiegeln können beispielsweise den Z-Bereich der Punkte um diesen Standort verzerren. Durch die Identifizierung solcher Punkte als Rauschen können sie aus der Anzeige herausgefiltert und aus der Erstellung abgeleiteter Daten wie etwa einer Höhenoberfläche oder aus einem Neigungs- oder Ausrichtungsprofil eliminiert werden.
Die Isolationsmethode verarbeitet die LAS-Daten in gekachelten 3x3-Abschnitten basierend auf der Region, die durch die Parameter Nachbarschaftsbreite und Nachbarschaftshöhe definiert wird. Wenn die Anzahl der LAS-Punkte im Analysevolumen kleiner ist als der Parameter Nachbarschafts-Punktgrenze, werden die LAS-Punkte als Rauschen behandelt. Die Punktgrenze sollte eine geeignete Annäherung basierend auf der LIDAR-Punktdichte und der Anzahl der LAS-Punkte widerspiegeln, die im Analysevolumen erwartet werden können.
Wenn bestimmte LAS-Punktrückgaben unnormal hohe oder niedrige Z-Werte für die Region aufweisen, die von der LIDAR-Sammlung erfasst wurden, können Sie den Schwellenwert für die Z-Werte der Daten mit der Methode Absolute Höhe definieren, um die Ausreißerpunkte schnell als Rauschen zu identifizieren.
Wenn LAS-Punkte unnormal hohe oder niedrige Z-Werte für bestimmte Regionen aufweisen, diese Werte jedoch in den Bereich der gültigen Messwerte fallen, die in der LIDAR-Sammlung erfasst wurden, können Sie den Schwellenwert für die Z-Werte gültiger Daten mit der Methode Relative Höhe basierend auf einem Versatz vom Boden definieren. Um eine Bodenoberfläche zu erstellen, filtern Sie das LAS-Dataset für klassifizierte Bodenpunkte, und verwenden Sie das Werkzeug LAS-Dataset in Raster.
Es werden nur LAS-Punkte mit den Klassencodewerten 0 und 1 reklassifiziert. Wenn nicht klassifizierte Punkte durch andere Werte dargestellt werden, können Sie das Werkzeug LAS-Klassencodes ändern, um den nicht klassifizierten Punkten den Wert 1 zuzuweisen. Wenn Rauschpunkte klassifiziert werden und entweder die Methode Isolation oder Absolute Höhe verwendet wird, werden alle Rauschpunkte dem Klassencodewert 7 zugewiesen. Bei Verwendung der Methode Relative Höhe wird Rauschpunkten über dem Schwellenwert für minimale Höhe der Wert 7 zugewiesen, der niedriges Rauschen darstellt; Rauschpunkten über dem Schwellenwert für maximale Höhe wird der Wert 18 zugewiesen, der hohes Rauschen darstellt.
Wenn Sie bei den Einstellungen für die Bestimmung von Rauschpunkten unsicher sind, exportieren Sie die als Rauschen erkannte LAS-Punkte als Punkt-Feature, während die Option zum Bearbeiten des LAS-Klassifizierungscodes deaktiviert ist. Wenn die Ausgabepunkte den gewünschten Ergebnissen entsprechen, können Sie die LAS-Punkte mit diesen Features mithilfe des Werkzeugs LAS-Punkte nach Nähe lokalisieren erneut klassifizieren.
Bei der Isolationsmethode handelt es sich um einen Performance-intensiven Vorgang, der mit größeren Abschnittsgrößen schneller ausgeführt werden kann. Geben Sie je nach der Art und Verteilung der Daten die größtmögliche Abschnittsgröße an.
Syntax
arcpy.3d.ClassifyLasNoise(in_las_dataset, method, edit_las, withheld, {compute_stats}, ground, low_z, high_z, max_neighbors, step_width, step_height, {extent}, {process_entire_files}, {out_feature_class})
Parameter | Erklärung | Datentyp |
in_las_dataset | Das zu verarbeitende LAS-Dataset. | LAS Dataset Layer |
method | Es wird die Rauscherkennungsmethode verwendet.
| String |
edit_las | Gibt an, ob als Rauschen identifizierte LAS-Punkte reklassifiziert werden.
| Boolean |
withheld | Gibt an, ob das zurückgehaltene Klassifizierungs-Flag den Rauschpunkte zugewiesen wird. Diese Option wird nur dann erzwungen, wenn der Parameter edit_las auf CLASSIFY gesetzt ist.
| Boolean |
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 |
ground | Die zum Definieren der relativen Höhe verwendeten Bodenoberfläche. | Raster Layer |
low_z | Die Höhe, die den niedrigsten Schwellenwert für die Z-Werte zum Identifizieren von Rauschpunkten definiert. Jeder Punkt, der niedriger ist als der angegebene Wert, kann als Rauschen klassifiziert werden. Wenn eine Bodenoberfläche festgelegt ist, basiert dieser Schwellenwert auf einem Versatz vom Boden. Der Wert "-3 Fuß" bedeutet dann, dass alle Punkte, die 3 Fuß unterhalb der Bodenoberfläche sind, als Rauschen klassifiziert werden. | Linear Unit |
high_z | Die Höhe, die den höchste Schwellenwert für die Z-Werte zum Identifizieren von Rauschpunkten definiert. Jeder Punkt, der höher ist als der angegebene Wert, kann als Rauschen klassifiziert werden. Wenn eine Bodenoberfläche angegeben ist, basiert dieser Schwellenwert auf einem Versatz vom Boden. Der Wert "250 Meter" bedeutet dann, dass alle Punkte, die höher als 250 Meter über der Bodenoberfläche liegen, als Rauschen klassifiziert werden. | Linear Unit |
max_neighbors | Die maximale Anzahl von Punkten im Analysevolumen, die bei Verwendung der Methode Isolation als Rauschen qualifiziert werden können. Wenn das Analysevolumen beliebig viele LAS-Punkte enthält, die gleich diesem Wert oder kleiner als dieser Wert sind, werden diese Punkte als Rauschen klassifiziert. | Long |
step_width | Die Größe jeder Dimension im XY-Raum des Analysevolumens bei Verwendung der Methode Isolation. | Linear Unit |
step_height | Die Höhe des Analysevolumens bei Verwendung der Methode Isolation. | Linear Unit |
extent (optional) | Legt die Ausdehnung der Daten fest, die von diesem Werkzeug ausgewertet werden.
| Extent |
process_entire_files (optional) | Legt fest, wie die Verarbeitungsausdehnung angewendet werden soll.
| Boolean |
out_feature_class (optional) | Die Ausgabepunkt-Features, die die als Rauschen identifizierten LAS-Punkte darstellen. | Feature Class |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_las_dataset | Das zu ändernde LAS-Dataset. | LAS-Dataset-Layer |
Codebeispiel
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
arcpy.env.workspace = 'C:/data'
arcpy.ddd.ClassifyLasNoise('Denver_2.lasd', "ABSOLUTE_HEIGHT",
edit_las='CLASSIFY', withheld='WITHHELD',
high_z='450 Feet')
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
Name: Classify Lidar & Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings,
regularize its geometry, and calculate the building height.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
dem = arcpy.GetParameterAsText(1)
footprint = arcpy.GetParameterAsText(2)
try:
desc = arcpy.Describe(lasd)
if desc.spatialReference.linearUnitName in ['Foot_US', 'Foot']:
unit = 'Feet'
else:
unit = 'Meters'
ptSpacing = desc.pointSpacing * 2.25
sampling = '{0} {1}'.format(ptSpacing, unit)
# Classify overlap points
arcpy.ddd.ClassifyLASOverlap(lasd, sampling)
# Classify ground points
arcpy.ddd.ClassifyLasGround(lasd)
# Filter for ground points
arcpy.management.MakeLasDatasetLayer(lasd, 'ground', class_code=[2])
# Generate DEM
arcpy.conversion.LasDatasetToRaster('ground', dem, 'ELEVATION',
'BINNING NEAREST NATURAL_NEIGHBOR',
sampling_type='CELLSIZE',
sampling_value=desc.pointSpacing)
# Classify noise points
arcpy.ddd.ClassifyLasNoise(lasd, method='ISOLATION', edit_las='CLASSIFY',
withheld='WITHHELD', ground=dem,
low_z='-2 feet', high_z='300 feet',
max_neighbors=ptSpacing, step_width=ptSpacing,
step_height='10 feet')
# Classify buildings
arcpy.ddd.ClassifyLasBuilding(lasd, '7.5 feet', '80 Square Feet')
#Classify vegetation
arcpy.ddd.ClassifyLasByHeight(lasd, 'GROUND', [8, 20, 55],
compute_stats='COMPUTE_STATS')
# Filter LAS dataset for building points
lasd_layer = 'building points'
arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=[6])
# Export raster from lidar using only building points
temp_raster = 'in_memory/bldg_raster'
arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
# Convert building raster to polygon
temp_footprint = 'in_memory/footprint'
arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
# Regularize building footprints
arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint,
method='RIGHT_ANGLES')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Lizenzinformationen
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst