Bearbeiten der LiDAR-Punktwolke, um unter und über der Erde vorhandene Rauschen / Ausreißer zu entfernen?

10

Ich habe "schmutzige" LiDAR-Daten, die erste und letzte Rückgaben sowie unvermeidlich Fehler unter und über der Oberfläche enthalten. (Bildschirmfoto)

Geben Sie hier die Bildbeschreibung ein

Ich habe SAGA, QGIS, ESRI und FME zur Hand, aber keine echte Methode. Was wäre ein guter Workflow, um diese Daten zu bereinigen? Gibt es eine vollautomatische Methode oder würde ich sie irgendwie manuell löschen?

Robert Buckley
quelle
Haben Ihre Punktwolkendaten ein niedriges / hohes Rauschen klassifiziert (Klassen 7 und 8 aus Las Specs 1.4 R6)?
Aaron
Was haben Sie mit einem dieser Softwareprodukte versucht und wo sind Sie dabei hängen geblieben? Sie möchten anscheinend Optionen diskutieren, anstatt eine gezielte Frage zu stellen. Das Besprechen von Optionen ist im GIS-Chatraum immer in Ordnung.
PolyGeo
1
Abstimmung zum erneuten Öffnen, da der Moderator Fragen, die nach Software fragen, mit Fragen verwechselt, in denen nach Methoden / Möglichkeiten gefragt wird, etwas zu tun. Antworten, in denen nur Software aufgelistet ist, sind in diesem Zusammenhang keine echten Antworten. Ich erkläre meinen POV besser in gis.meta.stackexchange.com/questions/4380/… .
Andre Silva
1
Es scheint auch, dass der „zu breite“ einseitige Abschluss übermäßig genutzt wurde: gis.meta.stackexchange.com/questions/4816/… . Ich denke, der Fall trifft hier zu. Was die Frage einzigartig macht, ist, dass alle Arten von Ausreißern in der Punktwolke vorhanden sind.
Andre Silva

Antworten:

9

Sie scheinen Ausreißer zu haben:

  • i) unter der Erdoberfläche;
  • ii) über der Bodenoberfläche und vertikal unter anderen oberirdischen realen Merkmalen;
  • iii) oberirdische Punkte mit einer Höhe, die größer ist als alle interessierenden Objekte, beispielsweise solche, die durch Wolken oder Vögel verursacht werden (dies ist auf dem Bild nicht dargestellt, aber ich gehe davon aus, dass dies auch der Fall sein könnte).

Für 'i' besteht die Option darin, einen Bodenfilteralgorithmus zu verwenden, der 'negative Fehler' berücksichtigen kann, um eine saubere LiDAR-Bodenpunktwolke zu erhalten. Siehe den MCC-Algorithmus (Multiscale Curvature Classification) von Evans und Hudak (2007). Es wird auf Seite 4 gesagt:

Negative Fehler treten häufig in LiDAR-Daten auf, die durch die Streuung der Photonen in einem zurückgegebenen Laserpuls verursacht werden können. Durch Streuung wird die Zeit verlängert, die ein emittierter Laserpuls zum Flugzeugsensor zurückkehrt, wodurch die Berechnung der zurückgelegten Entfernung erhöht wird, wodurch ein Messfehler verursacht wird, bei dem die Oberflächenhöhe fälschlicherweise als unter den umgebenden Messungen liegend aufgezeichnet wird. Es sollte beachtet werden, dass Krümmungsklassifizierungsansätze möglicherweise gültige Rückgaben in Bezug auf negative Fehler entfernen können, wodurch das Kantenartefakt um einen negativen Fehler erweitert werden kann, um einen deutlichen „Bombenkrater“ -Effekt zu erzeugen. Um negative Fehler zu beheben, schlugen Haugerud und Harding vor, den Krümmungstoleranzparameter auf das Vierfache der interpolierten Zellengröße einzustellen und Rückgaben auszuwählen, die diesen negativen Krümmungsschwellenwert überschreiten. Es sollte jedoch beachtet werden, dass Renditen, die als negative Fehler erscheinen, unter bestimmten Umständen tatsächlich gültige Renditen sein können (z. B. Dolinen). Daher kann der vorhergehende Vorschlag zum Entfernen potenzieller negativer Fehler als optionale letzte Modellschleife implementiert werden, die bei Bedarf nach Ermessen des Benutzers verwendet werden kann.

Unten finden Sie einen Beitrag mit einem Beispiel zur Verwendung von MCC-LIDAR:

Sobald Sie eine genaue LiDAR-Bodenpunktwolke haben, um ein genaues DEM zu erstellen, können Sie die Punktwolke normalisieren und Punkte ausschließen, die sich unter der DEM-Oberfläche befinden (solche mit negativen Werten). Mit dem gleichen Ansatz ist es auch möglich, die Punktnummer 'iii' zu adressieren, um Punkte über einem festen Schwellenwert zu entfernen. Siehe zum Beispiel:

Dann lässt er uns mit ‚II‘, das von adressiert AlecZ Antwort zu empfehlen lasnoisevon LAStools. Es wird auch 'iii' und möglicherweise auch einen Teil von 'i' verarbeiten (LAStools erfordert jedoch eine Lizenz). Andere Tools, die speziell zum Überprüfen / Entfernen von Ausreißern entwickelt wurden, wurden hier zitiert: PDALs filters.outlierTool in Charlie Parrs Antwort, das eine detaillierte Erklärung der Funktionsweise des Tools enthält, und mit dem Vorteil, dass PDAL eine freie Software ist.

Was vom automatisierten Prozess übrig bleibt (falls vorhanden), kann dann manuell entfernt werden. Zum Beispiel:


Evans, Jeffrey S.; Hudak, Andrew T. 2007. Ein Multiskalen-Krümmungsalgorithmus zur Klassifizierung von LiDAR mit diskreter Rückgabe in bewaldeten Umgebungen . IEEE-Transaktionen zu Geowissenschaften und Fernerkundung. 45 (4): 1029 & ndash; 1038.

Andre Silva
quelle
3

Ich empfehle PDAL die Punktdaten-Abstratationsbibliothek. Ich hatte gute Erfolge mit PDAL für ein ähnliches Filterproblem. Ich mag PDAL, weil es Open Source ist, Python-Unterstützung bietet und es mir einfach macht, die Verarbeitung zu reproduzieren und meine Filterparameter zu verfolgen. Ich mag es auch, weil es 'Pipelines' hat, in denen Sie mehrere Schritte verketten können (z. B. zuschneiden, filtern, dann exportieren) und sie gleichzeitig ausführen können. Beachten Sie, dass PDAL bei sehr, sehr großen Punktwolken möglicherweise nicht so schnell ist wie einige andere Lösungen (LASTools, QTM usw.).

Sie können das Problem der abgelegenen Punkte mit einer PDAL-Pipeline beheben, die der folgenden ähnelt:

{
"pipeline": [
    "input_utm.las",
    {
        "type":"filters.crop",
        "bounds":"([401900,415650],[7609100,7620200])"
    },
    {
        "type":"filters.outlier",
        "method":"statistical",
        "mean_k":12,
        "multiplier":2.0
    },
    {
        "type":"filters.range",
        "limits":"Classification![7:7]"
    },
    {
      "filename":"output.tif",
      "resolution":1.0,
      "output_type":"mean",
      "radius":3.0,
      "bounds":"([401900,415650],[7609100,7620200])",
      "type": "writers.gdal"
    }
    ]
}

Diese Pipeline liest einen LAS ein, schneidet ihn bis zu einem bestimmten UTM-Umfang zu, führt dann einen Filter aus, der alle abgelegenen Punkte kennzeichnet, führt dann einen zweiten Filter aus, der nur nicht abgelegene Punkte beibehält (dh das Klassifizierungsflag! = 7), und exportiert dann nach ein GeoTIFF mit einer Auflösung von 1 m. Der statistische Filter führt eine Berechnung der mittleren Entfernung zum nächsten Nachbarn durch, um zu testen, ob ein Punkt "zu weit" von seinen Nachbarn entfernt ist und daher ein Ausreißer.

Aus der Dokumentation :

Geben Sie hier die Bildbeschreibung ein

Charlie Parr
quelle
1
@AndreSilva bearbeitet! Im Wesentlichen wird gefragt, was ein "normaler" Abstand für einen Punkt ist, um von seinen (mean_k) Nachbarn gebildet zu werden. Wenn der Abstand für einen Punkt zu weit ist (größer als (Multiplikator) * Sigma über dem mittleren Abstand), wird er als gekennzeichnet ein Ausreißer
Charlie Parr
1

Da OP die Lösungen nicht auf Open Source beschränkte, würde ich Quick Terrain Modeler ( QT Modeler ) vorschlagen . Es ist eine Lizenz erforderlich. Laden Sie die Punktwolke in QT, und kippen Sie sie im Wesentlichen, um die gewünschte Profilansicht zu erhalten. Binden Sie den zu entfernenden Cluster mit einem Gummiband ab und klicken Sie einfach auf Löschen.

auslander
quelle
1

Ich hatte Glück, einfach eine Fokusvarianz für ein interpoliertes Raster zu verwenden. Anschließend weisen Sie Ihren Punkten die Varianzwerte zu und verwenden einen Schwellenwert, um lokal hohe Varianzen zu entfernen, die große Abweichungen von der lokalen Kernelschätzung darstellen.

Sie müssen sicherstellen, dass die Auflösung der interpolierten Oberfläche klein genug ist, um lokale Abweichungen auf Punktniveau zu erfassen. Die Größe des Kernels wirkt sich ebenfalls aus, aber für einzelne Ausreißer sollte ein 3x3-Fenster ausreichen. Möglicherweise verlieren Sie ein paar zusätzliche Punkte, aber mit Lidar haben Sie genügend Daten zur Verfügung.

Jeffrey Evans
quelle
1

Lastools bietet genau das, was Sie benötigen - automatisierte Skripte, mit denen alle diese Punkte für Sie entfernt werden. Hierfür fallen jedoch Lizenzkosten an. Wenn dies jedoch ein Prozess ist, den Sie schnell als reguläre Aufgabe ausführen möchten, ist die Verwendung des Lasnoise-Skripts aus dem Toolset die perfekte Option.

Wie @Andre Silva feststellte, verfügt ArcGIS über ein Las-Toolset, das Sie nach dem Ausführen des Geoverarbeitungswerkzeugs "LAS-Datensatz erstellen" verwenden können. Von dort aus können Sie diese Rauschpunkte manuell neu klassifizieren oder löschen. Der Nachteil ist, dass es sich nicht um einen so intuitiven oder effektiven Prozess handelt wie QT Modeler (vorgeschlagen von @auslander), wahrscheinlich das beste Programm zum manuellen Visualisieren / Analysieren / Bearbeiten von Las-Dateien und mit Lizenzkosten. ArcMap begrenzt die Anzahl der sichtbaren Punkte beim Bearbeiten Ihrer Punktwolke. Dies bedeutet, dass Sie wahrscheinlich Bereiche mit Rauschen vergrößern, entfernen oder neu klassifizieren und dann als Teil eines manuellen Bereinigungsprozesses durchlaufen müssen. Aber das wird den Job erledigen.

AlecZ
quelle
1

Wie Andre Silva gesagt hat, ist MCC-LIDAR eine gute Option, um die Grundpunkte zu extrahieren, aber meiner Erfahrung nach wird es schwierig sein, wenn Sie eine sehr große Punktwolke haben (500 Millionen Punkte oder noch weniger). Mit anderen Worten, es wird ein Fehler zurückgegeben und der Algorithmus wird nicht ausgeführt, selbst wenn Sie die Einstellungen (Skalierungs- und Krümmungsparameter) ändern. Nach meiner Erfahrung bleiben auch einige der "negativen Fehler" in den Daten erhalten.

Meine Alternative dazu ist das Umkehren der Punktwolke (die Punkte unter der Erde werden nach oben und die über der Erde nach unten gehen). Um dies zu erreichen, lade ich die Daten in R und invertiere die Höhe, führe dann MCC-LIDAR aus und invertiere die Daten erneut. Sie könnten dies wahrscheinlich in QGIS oder ArcGIS tun, aber je nach Größe Ihres Datasets kann dies eine Weile dauern.

Der PDAL-Tool Ground ist auch eine gute Option, da er mit größeren Datensätzen besser funktioniert, aber auch hier bleiben einige der Punkte unter Ground erhalten. Das Invertieren des Datensatzes hilft erneut, dieses Problem zu lösen.

Für die oberirdischen Punkte ist mein bester Ansatz eine manuelle Reinigung, und das beste Open-Source-Tool, das ich dafür gefunden habe, ist CloudCompare. Sie wählen Segmentim Menü der oberen Leiste und können entweder die ausgewählten Punkte oder alle anderen entfernen. Ich habe zuvor LAStools ( lasviewTool) verwendet, aber die Funktionsweise der 3D-Oberfläche ist nicht so benutzerfreundlich.

Andre
quelle
Interessanter Ansatz zum Umkehren der Punktwolke, um negative Fehler zu entfernen. War es einfach, eine 500-Millionen-Punkte-Punktwolke in R zu laden?
Andre Silva
Es kann einige Minuten dauern. Normalerweise lade ich aus einer ASCII-Datei mit fread aus dem Entwicklungspaket data.table hoch, wo ich mit der Anzahl der zu verwendenden Threads herumspielen kann.
Andre
1

Ich bin ein technischer Support von GreenValley International. Das Tool zum Entfernen von Ausreißern in unserer Flaggschiff-Software LiDAR360 kann verwendet werden, um diese Fehler so weit wie möglich zu entfernen und damit die Datenqualität zu verbessern.

Der Algorithmus sucht zuerst nach den Nachbarpunkten jedes Punkts innerhalb einer benutzerdefinierten Nachbarschaft und berechnet die durchschnittliche Entfernung vom Punkt zu seinen Nachbarpunkten. Dann werden der Mittelwert und die Standardabweichung dieser durchschnittlichen Abstände für alle Punkte berechnet. Wenn die durchschnittliche Entfernung eines Punkts zu seinen Nachbarn größer als die maximale Entfernung ist (maximale Entfernung = Mittelwert + n * Standardabweichung, wobei n eine benutzerdefinierte Mehrfachzahl ist), wird er als Ausreißer betrachtet und aus dem Original entfernt Punktwolke.

Geben Sie hier die Bildbeschreibung ein

Chenlh
quelle
-1

Als Open Source-Option bietet 3D Forest einige nützliche Tools zum automatischen Filtern sowie manuelle Tools zum Bereinigen von Punktwolken. Möglicherweise müssen Sie verschiedene Filterparameter verwenden, um das gewünschte Ergebnis zu erzielen. Obwohl es sich an Waldpunktwolken orientiert, sind viele Tools in jeder Punktwolke nützlich.

A_NeriWinter
quelle