LAS-Rauschen klassifizieren (3D Analyst)

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

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})
ParameterErklärungDatentyp
in_las_dataset

Das zu verarbeitende LAS-Dataset.

LAS Dataset Layer
method

Es wird die Rauscherkennungsmethode verwendet.

  • ISOLATIONDie räumliche Nähe von LAS-Punkten wird in gekachelten Volumen analysiert, um Rauschmesswerte zusammen mit einer höhenbasierten Rauscherkennung zu ermitteln. Dies ist die Standardeinstellung.
  • RELATIVE_HEIGHTAlle Punkte unter der angegebenen minimalen Höhe von der Bodenoberfläche und über der maximalen Höhe von der Bodenoberfläche werden als Rauschen identifiziert.
  • ABSOLUTE_HEIGHTAlle Punkte unter der angegebenen minimalen Höhe und über der maximalen Höhe in Bezug auf Normalnull werden als Rauschen identifiziert.
String
edit_las

Gibt an, ob als Rauschen identifizierte LAS-Punkte reklassifiziert werden.

  • CLASSIFYRauschpunkte werden reklassifiziert. Dies ist die Standardeinstellung.
  • NO_CLASSIFYRauschpunkte werden nicht klassifiziert.
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.

  • WITHHELDRauschpunkten wird das zurückgehaltene Klassifizierungs-Flag zugewiesen.
  • NO_WITHHELDRauschpunkten wird das zurückgehaltene Klassifizierungs-Flag nicht zugewiesen. Dies ist die Standardeinstellung.
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.

  • COMPUTE_STATSEs werden Statistiken berechnet.
  • NO_COMPUTE_STATSEs werden keine Statistiken berechnet. Dies ist die Standardeinstellung.
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.

  • PROCESS_EXTENTEs werden nur LAS-Punkte verarbeitet, die den Interessenbereich schneiden. Dies ist die Standardeinstellung.
  • PROCESS_ENTIRE_FILESWenn ein Teil einer LAS-Datei den Interessenbereich schneidet, werden alle Punkte in dieser LAS-Datei verarbeitet, einschließlich derer außerhalb des Interessenbereichs.
Boolean
out_feature_class
(optional)

Die Ausgabepunkt-Features, die die als Rauschen identifizierten LAS-Punkte darstellen.

Feature Class

Abgeleitete Ausgabe

NameErklärungDatentyp
out_las_dataset

Das zu ändernde LAS-Dataset.

LAS-Dataset-Layer

Codebeispiel

ClassifyLasNoise – Beispiel 1 (Python-Fenster)

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')
ClassifyLasNoise – Beispiel 2 (eigenständiges Skript)

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

Verwandte Themen