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 :