LAS-Überlappung klassifizieren (3D Analyst)

Zusammenfassung

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

Abbildung

Abbildung des Werkzeugs "LAS-Überlappung klassifizieren"

Verwendung

  • Durch eine gleichmäßige Verteilung von Punkten wird die Performance von nachgelagerten Werkzeugen verbessert. Daten, die von Punkten mit unregelmäßiger Verteilung abgeleitet werden, können eine unerwünschte Fehlerspanne aufweisen. Wenn LIDAR-Luftbildvermessungen LAS-Punkte aus überlappenden Flugbahnen aufweisen, haben die LAS-Daten in der Regel im Bereich der Überlappung eine höhere Punktdichte. Der Abtastwinkel von Punkten aus den unterschiedlichen Flugbahnen kann zudem sehr schwanken. Meist weisen Punkte mit größeren Abtastwinkeln eine größere Fehlerspanne als Punkte auf, deren Abtastwinkel näher am Nadir liegen. Durch die Klassifizierung von überlappenden Punkten können die LAS-Daten so gefiltert werden, dass eine konsistente Punktdichte erzeugt wird. Durch die Bezeichnung "Überlappung" können die Punkte gefiltert und aus Visualisierungen und nachgelagerten Analysen ausgeschlossen werden.

  • Das Punktquell-ID-Attribut eines LAS-Punktes bestimmt die Flugbahn, aus der der Punkt stammt. Mit diesem Attribut wird das Vorhandensein überlappender Punkte festgestellt. Die LAS-Daten werden in einer festgelegten Abtastschrittweite ausgewertet. Wenn Punkte mit unterschiedlichen Punktquell-IDs im ausgewerteten Bereich gefunden werden, wird anhand das Abtastwinkels ermittelt, welche Punktquell-ID die nicht überlappenden Punkte darstellt. Die Punktquell-ID des Punktes mit dem Abtastwinkel, der 0 bzw. Nadir am nächsten ist, bleibt als nicht überlappender Punkt erhalten. Die Punkte, die mit den übrigen Punktquell-IDs verknüpft sind, werden als überlappend gekennzeichnet.

    Die zum Auswerten der LAS-Punkte verwendete Stichprobengröße sollte etwa zwei- bis dreimal so groß sein wie der nominale Punktabstand der LAS-Daten. Eine größere Abtastschrittweite kann zu falsch klassifizierten Punkten führen. Mit kleineren Stichproben werden möglicherweise nicht ausreichend Punkte erfasst, um die überlappenden Punkte richtig zu identifizieren.

  • Dieses Werkzeug kann für gekachelte .las- oder .zlas-Dateien verwendet werden, die Punkt-Datensätze aus mehreren Flugbahnen kombinieren. Jede Datei wird unabhängig verarbeitet. Überlappende Punkte werden also nicht erkannt, wenn jede Flugbahn in einer gesonderten Datei gespeichert ist. Verwenden Sie das Werkzeug LAS kacheln, um solche Dateien zusammenzuführen.

  • Überlappende Punkten in Dateien der LAS-Version 1.4 mit den Punktdatensatzformaten 6 bis 8 wird das Überlappungsklassifizierungs-Flag zugewiesen. Dadurch können die Punkte ihren ursprünglichen Klassifizierungswert beibehalten. Überlappenden Punkten in allen anderen unterstützten .las-Dateien wird der Klassencodewert 12 zugewiesen. Wenn der Klassencodewert 12 von den .las-Eingabedateien verwendet wird, um etwas anderes als überlappende Scans darzustellen, können Sie diesen Punkten mit dem Werkzeug LAS-Klassencodes ändern vor dem Ausführen dieses Werkzeugs einen anderen Wert zuweisen.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-LAS-Dataset

Das gekachelte LAS-Dataset, das verarbeitet wird.

LAS Dataset Layer
Stichprobenentfernung

Der Abstand einer Dimension der quadratischen Fläche, die zum Auswerten der LAS-Daten verwendet wird. Falls Unbekannt als lineare Einheit angegeben wurde, wird die Einheit durch den Raumbezug der Eingabe-.las-Datei definiert.

Linear Unit
Verarbeitungsausdehnung
(optional)

Die Ausdehnung der Daten, die von diesem Werkzeug ausgewertet werden.

  • Aktuelle Anzeigeausdehnung Kartenansicht: Die Ausdehnung basiert auf der aktiven Karte oder Szene. Diese Option ist nur verfügbar, wenn eine aktive Karte vorhanden ist.
  • Ausdehnung eines Layers:Layer Die Ausdehnung basiert auf einem aktiven Karten-Layer. Verwenden Sie die Dropdown-Liste, um einen verfügbaren Layer auszuwählen, oder verwenden Sie die Option Ausdehnung von Daten in allen Layern, um die kombinierte Ausdehnung aller aktiven Karten-Layer mit Ausnahme der Grundkarte zu erhalten. Diese Option ist nur verfügbar, wenn eine aktive Karte mit Layern vorhanden ist.
  • Durchsuchen:Durchsuchen Die Ausdehnung basiert auf einem vorhandenen Dataset.
  • Schnittmenge der Eingaben Überschneiden: Die Ausdehnung basiert auf der kleinsten oder überschneidenden Ausdehnung aller Eingaben. Wenn sich keine Eingaben überschneiden, entsteht eine Nullausdehnung.
  • Vereinigungsmenge der Eingaben:Vereinigen Die Ausdehnung basiert auf der maximalen oder kombinierten Ausdehnung aller Eingaben.
  • Ausdehnung zurücksetzen Zurücksetzen: Die Ausdehnung wird auf den Standardwert zurückgesetzt.
  • Manuell eingegebene Koordinaten: Die Koordinaten müssen numerische Werte sein und im Koordinatensystem der aktiven Karte liegen.

    Die Karte verwendet möglicherweise unterschiedliche Anzeigeeinheiten.

Extent
Gesamte die Ausdehnung schneidende LAS-Dateien verarbeiten
(optional)

Gibt die Verwendung des Interessenbereichs an, indem Sie festlegen, wie .las-Dateien verarbeitet werden. Der Interessenbereich wird durch den Parameterwert Verarbeitungsausdehnung, den Parameterwert Verarbeitungsgrenze oder eine Kombination aus beiden definiert.

  • Deaktiviert: Es werden nur LAS-Punkte verarbeitet, die den Interessenbereich schneiden. Dies ist die Standardeinstellung.
  • Aktiviert: Wenn ein Teil einer .las-Datei den Interessenbereich schneidet, werden alle Punkte in dieser Datei verarbeitet, einschließlich derer außerhalb des Interessenbereichs.
Boolean
Statistiken berechnen
(optional)

Gibt an, ob für die vom .las-Dataset referenzierten LAS-Dateien Statistiken berechnet werden. 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.

  • Aktiviert: Es werden Statistiken berechnet. Dies ist die Standardeinstellung.
  • Deaktiviert: Es werden keine Statistiken berechnet.
Boolean
Pyramide aktualisieren
(optional)

Gibt an, ob die LAS-Dataset-Pyramide aktualisiert wird, nachdem die Klassencodes geändert wurden.

  • Aktiviert: Die LAS-Dataset-Pyramide wird aktualisiert. Dies ist die Standardeinstellung.
  • Nicht aktiviert: Die LAS-Dataset-Pyramide wird nicht aktualisiert.
Boolean

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Ausgabe-LAS-Dataset

Das zu ändernde LAS-Dataset.

LAS Dataset Layer

arcpy.ddd.ClassifyLasOverlap(in_las_dataset, sample_distance, {extent}, {process_entire_files}, {compute_stats}, {update_pyramid})
NameErläuterungDatentyp
in_las_dataset

Das gekachelte LAS-Dataset, das verarbeitet wird.

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 Unknown eingegeben wurden, wird die Einheit durch den Raumbezug der Eingabe-.las-Datei definiert.

Linear Unit
extent
(optional)

Die Ausdehnung der Daten, die von diesem Werkzeug ausgewertet werden.

  • MAXOF: Die maximale Ausdehnung aller Eingaben wird verwendet.
  • MINOF: Die minimale gemeinsame Fläche aller Eingaben wird verwendet.
  • DISPLAY: Die Ausdehnung entspricht der sichtbaren Anzeige.
  • Layer-Name: Die Ausdehnung des angegebenen Layers wird verwendet.
  • Extent-Objekt: Die Ausdehnung des angegebenen Objekts wird verwendet.
  • Eine durch Leerzeichen getrennte Zeichenfolge von Koordinaten: Die Ausdehnung der angegebenen Zeichenfolge wird verwendet. Koordinaten werden im Format X-Min, Y-Min, X-Max, Y-Max angegeben.
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 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. 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. Dies ist die Standardeinstellung.
  • NO_COMPUTE_STATSEs werden keine Statistiken berechnet.
Boolean
update_pyramid
(optional)

Gibt an, ob die LAS-Dataset-Pyramide aktualisiert wird, nachdem die Klassencodes geändert wurden.

  • UPDATE_PYRAMIDDie LAS-Dataset-Pyramide wird aktualisiert. Dies ist die Standardeinstellung.
  • NO_UPDATE_PYRAMIDDie LAS-Dataset-Pyramide wird nicht aktualisiert.
Boolean

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_las_dataset

Das zu ändernde LAS-Dataset.

LAS Dataset Layer

Codebeispiel

ClassifyLasOverlap: Beispiel 1 (Python-Fenster)

Im folgenden Beispiel 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