Skip To Content

LAS-Überlappung klassifizieren

Zusammenfassung

Klassifiziert LAS-Punkte aus überlappenden Scans von LIDAR-Luftbildvermessungen.

Abbildung

Überlappung aus LAS klassifizieren

Verwendung

  • Nicht klassifizierte überlappende Punkte können bei Vorgängen, bei denen wie etwa beim Werkzeug Gebäude aus LAS klassifizieren eine gleichmäßige Punktverteilung vorausgesetzt wird, zu unerwünschten Ergebnissen führen. Aus solchen Punkten abgeleitete Daten können auch eine unerwünschte Fehlerspanne aus Rückgaben mit größeren Abtastwinkeln aufweisen. Durch die Klassifizierung überlappender Punkte können diese ausgeschlossen werden, um eine regelmäßigere Punktverteilung von hochwertigeren Rückgaben zu erzielen.

  • Mit diesem Werkzeug werden die Eingabe-LAS-Daten dateiweise verarbeitet. Daher dürfen die LAS-Dateien kein überlappendes Coverage aufweisen. Wenn die LAS-Dateien ein überlappendes Coverage aufweisen, können sie mit dem Werkzeug LAS kacheln zu nicht überlappenden Dateien zusammengeführt werden.

  • Das Punktquell-ID-Attribut eines LAS-Punktes liefert Informationen zu der Flugbahn, aus der er stammt. Dieses Werkzeug verarbeitet LAS-Daten in Kacheln, indem es ermittelt, ob mehrere Punktquell-IDs vorhanden sind und dann die ID mit dem größeren Abtastwinkel als Überlappung identifiziert. Wenn in einer zu verarbeitenden Fläche mehrere Punkte mit derselben Punktquell-ID vorhanden sind, werden alle Punkte mit derselben Punktquell-ID des Punktes mit dem größeren Abtastwinkel als Überlappung klassifiziert. Daher sollte die zum Auswerten der LAS-Punkte verwendete Stichprobengröße ca. zwei- bis dreimal so groß sein wie der nominale Punktabstand der LAS-Daten. Größere Kachelgrößen sollten vermieden werden, da sonst die Gefahr besteht, dass Punkte mit kleineren Werten für den Abtastwinkel falsch klassifiziert werden. Bei kleineren Stichprobengrößen werden möglicherweise nicht genügend Punkte erfasst, um überlappende Punkte ordnungsgemäß zu identifizieren und zu klassifizieren.

  • Überlappenden Punkten in LAS-Dateien mit der Versionsnummer 1.4 und einem Punktdatenformat zwischen 6 und 8 wird das Klassifizierungs-Flag "Überlappung" zugewiesen, wobei ihr ursprünglicher Klassencodewert erhalten bleibt. Überlappenden Punkten in allen anderen unterstützten LAS-Dateien wird der Klassencodewert 12 zugewiesen. Wenn der Klassencodewert 12 von den Eingabe-LAS-Dateien bereits verwendet wird, um etwas anderes als überlappende Scans darzustellen, kann diesen Punkten mit dem Werkzeug LAS-Klassencodes ändern vor dem Ausführen dieses Werkzeugs ein anderer Wert zugewiesen werden.

Syntax

ClassifyLasOverlap_3d (in_las_dataset, sample_distance, {extent}, {process_entire_files}, {compute_stats})
ParameterErklärungDatentyp
in_las_dataset

Das zu verarbeitende gekachelte LAS-Dataset.

LAS Dataset Layer
sample_distance

Der Abstand einer Dimension der quadratischen Fläche, die zum Auswerten der LAS-Daten verwendet wird. Dieser Wert kann als Zahl und Wert der linearen Einheit wie "3 Meter" ausgedrückt werden. Wenn keine linearen Einheiten angegeben oder als Unbekannt eingegeben wurden, wird die Einheit durch den Raumbezug der Eingabe-LAS-Datei definiert.

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
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

Abgeleitete Ausgabe

NameErklärungDatentyp
out_las_dataset

Das zu ändernde LAS-Dataset.

LAS-Dataset-Layer

Codebeispiel

ClassifyLasOverlap: Beispiel 1 (Python-Fenster)

Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.

arcpy.env.workspace = 'C:/data'

arcpy.ddd.ClassifyLasOverlap('Denver_2.lasd', '1 Meter')
ClassifyLasOverlap: 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