Skip To Content

Gebäude aus LAS klassifizieren

Zusammenfassung

Klassifiziert Dachpunkte von Gebäuden in LIDAR-Daten

Abbildung

Klassifizierung von Dachpunkten von Gebäuden.

Verwendung

  • Für die LAS-Daten müssen Bodenpunkte klassifiziert worden sein, damit Sie Dachpunkte von Gebäuden klassifizieren können. Wenn noch keine Bodenpunkte klassifiziert wurden, können Sie das Werkzeug Boden aus LAS klassifizieren verwenden. Die Bodenpunkte müssen den Klassencodewert 2 aufweisen. Ist dies nicht der Fall, verwenden Sie das Werkzeug LAS-Klassencodes ändern, um den Klassencode entsprechend neu zuweisen.

  • LAS-Punkte mit den Klassencodewerten 0 und 1 werden ausgewertet, um zu bestimmen, ob sie in die für die Identifizierung von Gebäudedächern angegebenen Mindestfläche und -höhe hineinpassen. Vorhandene klassifizierte Gebäudepunkte mit einem Klassencodewert von 6 werden auch verwendet, um zu ermitteln, ob benachbarte Punkte zu einer Ebene passen, die dieselbe Struktur verbindet. Bei diesem Vorgang wird ein optimierter RANSAC-Algorithmus verwendet, der mit einem nach dem Zufallsprinzip ausgewählten Ursprungspunkt beginnt, der möglicherweise dazu führt, dass es bei den Klassifizierungsergebnissen geringfügige Abweichungen zwischen den Ausführungen gibt.

  • Wenn kleine Cluster aus Punkten, die nicht zu Gebäuden gehören, irrtümlich klassifiziert werden, sollten Sie den Parameter Mindestfläche erhöhen, um die Einbeziehung dieser Punkte auszuschließen. Wenn dagegen Gebäude vom Werkzeug ausgeschlossen worden zu sein scheinen, können Sie eine kleinere Fläche verwenden, damit die fehlenden Regionen erfasst werden. Eine Verarbeitungsausdehnung oder ein Grenzpolygon kann bereitgestellt werden, um die zu verarbeitende Region weiter einzugrenzen, was beim Testen der Ergebnisse von experimentellen Werten hilfreich sein kann.

  • Das Werkzeug eignet sich für die Verarbeitung von LIDAR-Luftbildvermessungen. LAS-Dateien, die aus Quellen wie Luftbildmessungs-Punktwolken erstellt wurden, führen aufgrund der höheren Wahrscheinlichkeit von Rauschpunkten zu weniger zuverlässigen Ergebnissen.

  • Dieses Werkzeug funktioniert am besten, wenn die LAS-Punkte eine gleichmäßige Punktdichte aufweisen. LIDAR-Luftbildvermessungen weisen in der Regel eine Überlappung bei der Abdeckung auf. Dadurch entstehen Bereiche mit dichteren Punkt-Clustern. Die Einbindung dieser Punkte führt zu einer Verzerrung des nominalen Abstands der Punkte und erzeugt Überlassungsfehler bei der Überlappung von Regionen sowie Unterlassungsfehler bei nicht überlappenden Bereichen. Beste Ergebnisse erzielen Sie, wenn Sie das Werkzeug LAS-Überlappung klassifizieren zum Klassifizieren von überlappenden Punkten verwenden und den Wert Durchschnittlicher Punktabstand ändern, um eine Schätzung des nominalen Punktabstands außerhalb der Überlappungsbereiche bereitzustellen.

    Hinweis:

    Einige Luftbildvermessungen enthalten eine Gesamtüberlappung in Rückgaben aus mehreren Scans und erzeugen dadurch eine gleichmäßige Verteilung von überlappenden Punkten. Bei einer gleichmäßigen Punktverteilung ist es für dieses Werkzeug nicht erforderlich, überlappende Punkte zu klassifizieren.

Syntax

ClassifyLasBuilding_3d (in_las_dataset, {min_height}, min_area, {compute_stats}, {extent}, boundary, {process_entire_files}, point_spacing)
ParameterErläuterungDatentyp
in_las_dataset

Das LAS-Dataset, das klassifiziert werden soll.

LAS Dataset Layer
min_height
(optional)

Die Höhe vom Boden, die den niedrigsten Punkt festlegt, von dem aus Dachpunkte identifiziert werden.

Linear Unit
min_area

Die kleinste Fläche aus koplanaren Punkten, die verwendet wird, um das Vorhandensein eines Gebäudedaches festzustellen.

Areal Unit
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 Symbolisierungsoptionen des LAS-Dataset-Layers nur die in den LAS-Dateien vorhandenen LAS-Attributwerte anzuzeigen.

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

Feature Layer
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
point_spacing

Der durchschnittliche Abstand von LAS-Punkten, der verwendet wird, um das Vorhandensein von Gebäudedächern festzustellen. Dieser Wert entspricht standardmäßig dem für das LAS-Dataset berechneten durchschnittlichen Abstand.

Linear Unit

Codebeispiel

ClassifyLasBuilding – Beispiel 1 (Python-Fenster)

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

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

arcpy.ClassifyLasBuilding_3d('Highland.lasd', minHeight='9 feet', 
                             minArea='30 Square Feet', compute_stats=True)
ClassifyLasBuilding – Beispiel 2 (eigenständiges Skript)

Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.

'''****************************************************************************
       Name: Tile & Classify LAS Files
Description: Creates & classifies tiled LAS files.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math

in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset


try:
    # Create temp LAS dataset to reference LAS files that will be tiled
    temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
    arcpy.management.CreateLasDataset(in_las, temp_lasd)
    arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4, 
                      point_format=7, file_size=300)
    arcpy.management.Delete(temp_lasd)
    arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
    arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
    arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
                                  noise='All Noise', compute_stats='COMPUTE_STATS')

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

Lizenzinformationen

  • ArcGIS Desktop Basic: Erfordert 3D Analyst
  • ArcGIS Desktop Standard: Erfordert 3D Analyst
  • ArcGIS Desktop Advanced: Erfordert 3D Analyst

Verwandte Themen