Edytujesz chmurę punktów LiDAR, aby usunąć szum / wartości odstające obecne pod i nad ziemią?

10

Mam „brudne” dane LiDAR zawierające pierwsze i ostatnie zwroty, a także nieuchronnie błędy pod i nad poziomem powierzchni. (zrzut ekranu)

wprowadź opis zdjęcia tutaj

Mam pod ręką SAGA, QGIS, ESRI i FME, ale nie ma prawdziwej metody. Jaki byłby dobry przepływ pracy do wyczyszczenia tych danych? Czy istnieje w pełni zautomatyzowana metoda, czy w jakiś sposób usunęłbym ją ręcznie?

Robert Buckley
źródło
Czy dane w Twojej chmurze punktów mają klasyfikację niskiego / wysokiego hałasu (klasy 7 i 8 z specyfikacji Las 1.4 1.4)?
Aaron
Czego próbowałeś z którymkolwiek z tych programów i gdzie się z tym utknąłeś? Wygląda na to, że chcesz przedyskutować opcje, a nie zadać szczegółowe pytanie. Omawianie opcji jest zawsze w porządku w Pokoju GIS.
PolyGeo
1
Głosowanie w celu ponownego otwarcia, ponieważ moderator myli pytania, które pytają o oprogramowanie, z pytaniami, które pytają o metody / sposoby zrobienia czegoś. Odpowiedzi, które zawierają tylko oprogramowanie, nie są prawdziwymi odpowiedziami w tym kontekście. Wyjaśniam lepiej mój POV w gis.meta.stackexchange.com/questions/4380/… .
Andre Silva,
1
Wydaje się również, że nadmiernie zastosowano „zbyt szerokie” jednostronne zamknięcie: gis.meta.stackexchange.com/questions/4816/… . Myślę, że sprawa ma tutaj zastosowanie. To, co sprawia, że ​​pytanie jest osobliwe, to posiadanie wszystkich typów wartości odstających w chmurze punktów.
Andre Silva,

Odpowiedzi:

9

Wygląda na to, że masz wartości odstające:

  • i) pod powierzchnią ziemi;
  • ii) nad powierzchnią ziemi i pionowo wśród innych rzeczywistych cech naziemnych;
  • iii) punkty naziemne o wysokości większej niż wszystkie obiekty będące przedmiotem zainteresowania, na przykład te spowodowane przez chmury lub ptaki (nie pokazano tego na zdjęciu, ale zakładam, że tak może być).

W przypadku „i” opcja polega na zastosowaniu algorytmu filtra gruntu, który może uwzględnić „ujemne błędy”, aby uzyskać czystą chmurę punktów ziemi LiDAR. Zobacz algorytm Multiscale Curvature Classification (MCC) autorstwa Evansa i Hudaka (2007). Na stronie 4 jest powiedziane:

Negatywne błędy są częstym zjawiskiem w danych LiDAR, które może być spowodowane rozproszeniem fotonów w powracającym impulsie laserowym. Rozpraszanie wydłuża czas powrotu emitowanego impulsu laserowego do czujnika samolotu, nadmuchując obliczenia przebytej odległości, powodując błąd pomiaru, w którym wysokość powierzchni jest błędnie rejestrowana jako znajdująca się poniżej pomiarów otaczających. Należy zauważyć, że podejścia do klasyfikacji krzywizny mogą potencjalnie usunąć prawidłowe zwroty otaczające negatywne błędy, które mogą rozszerzyć artefakt krawędzi wokół negatywnego błędu, tworząc wyraźny efekt „krateru bombowego”. Aby rozwiązać problem negatywnych błędów, Haugerud i Harding zasugerowali ustawienie parametru tolerancji krzywizny na czterokrotność wielkości interpolowanej komórki i wybranie zwrotów przekraczających ten ujemny próg krzywizny. Należy jednak zauważyć, że w pewnych okolicznościach zwroty, które wydają się być negatywnymi błędami, mogą w rzeczywistości być prawidłowymi zwrotami (np. Dziury po zapadnięciach). Dlatego powyższą sugestię usunięcia potencjalnych negatywnych błędów można zaimplementować jako opcjonalną pętlę ostatniego modelu, którą w razie potrzeby można zastosować według uznania użytkownika.

Poniżej znajduje się post z przykładem użycia MCC-LIDAR:

Po uzyskaniu dokładnej chmury punktów naziemnych LiDAR w celu wykonania dokładnej DEM można znormalizować chmurę punktów i wykluczyć punkty znajdujące się pod powierzchnią DEM (te o wartościach ujemnych). Stosując to samo podejście, można również zająć się punktem o numerze „iii” usuwającym punkty powyżej pewnego stałego progu. Zobacz na przykład:

Następnie pozostawia nam „ii”, na co odpowiada odpowiedźlasnoise AlecZ zalecana przez LAStools. Będzie również obsługiwał „iii”, a być może także część „i” (LAStools wymaga licencji). Przytoczono tu także inne narzędzia stworzone specjalnie do sprawdzania / usuwania wartości odstających: filters.outliernarzędzie PDAL w odpowiedzi Charliego Parra, które zawiera szczegółowe wyjaśnienie sposobu działania tego narzędzia, i z tą zaletą, że PDAL jest wolnym oprogramowaniem.

Następnie to, co zostało z zautomatyzowanego procesu (jeśli występuje wartość odstająca), można usunąć ręcznie. Na przykład:


Evans, Jeffrey S. .; Hudak, Andrew T. 2007. Wieloskalowy algorytm krzywizny do klasyfikowania dyskretnego powrotu LiDAR w środowiskach leśnych . Transakcje IEEE dotyczące geologii i teledetekcji. 45 (4): 1029–1038.

Andre Silva
źródło
3

Ja polecam Pdal punkt abstratction danych biblioteki. Miałem dobry sukces przy użyciu PDAL do podobnego problemu z filtrowaniem. Lubię PDAL, ponieważ jest to oprogramowanie typu open source, zapewnia obsługę języka Python i ułatwia mi odtwarzanie przetwarzania i śledzenie moich parametrów filtrowania. Podoba mi się również, ponieważ ma „potoki”, w których można połączyć kilka kroków (np. Przyciąć, odfiltrować, a następnie wyeksportować) i wykonać je jednocześnie. Zauważ, że jeśli masz naprawdę duże chmury punktów, PDAL może nie być tak szybki jak niektóre inne rozwiązania (LASTools, QTM itp.).

Możesz rozwiązać problem odległych punktów za pomocą potoku PDAL podobnego do następującego:

{
"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"
    }
    ]
}

Ten potok odczytuje LAS, przycina go do określonego zakresu UTM, następnie wykonuje filtr, który zaznacza wszystkie odległe punkty, a następnie wykonuje drugi filtr, który zachowuje tylko niepozostałe punkty (tj. Flaga klasyfikacji! = 7), a następnie eksportuje do GeoTIFF o rozdzielczości 1 m. Filtr statystyczny oblicza średnią odległość najbliższego sąsiada, aby sprawdzić, czy punkt jest „zbyt daleko” od sąsiadów, a zatem jest wartością odstającą.

Z dokumentacji :

wprowadź opis zdjęcia tutaj

Charlie Parr
źródło
1
@AndreSilva edytowane! w zasadzie pyta, jaka jest „normalna” odległość, aby punkt mógł zostać utworzony przez sąsiadów (mean_k), a jeśli odległość do punktu jest za daleko (większa niż (mnożnik) * sigma powyżej średniej odległości), oznacza to, że jest on oznaczony jako wartość odstająca
Charlie Parr,
1

Ponieważ OP nie ograniczyło rozwiązań do oprogramowania typu open source, sugerowałbym Quick Terrain Modeler ( QT Modeler ). To wymaga licencji. Załaduj chmurę punktów w QT, a zasadniczo przechylisz ją, aby uzyskać żądany widok profilu, opasujesz klaster, który chcesz usunąć, i po prostu naciśnij klawisz Delete.

auslander
źródło
1

Miałem szczęście po prostu stosując zmienność ogniskową na interpolowanym rastrze. Następnie przypisujesz wartości wariancji do swoich punktów i używasz progu, aby usunąć lokalnie wysokie wariancje, reprezentujące duże odstępstwa od oszacowania lokalnego jądra.

Musisz upewnić się, że rozdzielczość interpolowanej powierzchni jest wystarczająco mała, aby uchwycić lokalną zmienność na poziomie punktu (ów). Rozmiar jądra również będzie miał wpływ, ale dla pojedynczych wartości odstających powinno wystarczyć okno 3x3. Możesz stracić kilka dodatkowych punktów słysząc i tam, ale z lidar masz dużo danych do stracenia.

Jeffrey Evans
źródło
1

Lastools zapewnia dokładnie to, czego potrzebujesz - automatyczne skrypty, które usuną wszystkie te punkty za Ciebie. Jest to jednak koszt licencji, ale jeśli jest to proces, który chcesz szybko wykonać jako zwykłe zadanie, użycie skryptu lasnoise z zestawu narzędzi jest idealną opcją.

Jak zauważył @Andre Silva, ArcGIS ma zestaw narzędzi lasów, z których można korzystać po uruchomieniu narzędzia do geoprzetwarzania Utwórz zestaw danych LAS. Stamtąd możesz przejść ręcznie, aby przeklasyfikować lub usunąć te punkty szumu. Wadą jest to, że nie jest tak intuicyjny ani skuteczny jak QT Modeler (sugerowany przez @auslander), prawdopodobnie najlepszy program do ręcznej wizualizacji / analizy / manipulacji plikami lasów, a także z kosztem licencji. ArcMap ograniczy liczbę widocznych punktów podczas edycji chmury punktów, co oznacza, że ​​prawdopodobnie będziesz musiał powiększyć obszary z hałasem, usunąć je lub przeklasyfikować, a następnie przejść w ramach ręcznego czyszczenia. Ale to załatwi sprawę.

AlecZ
źródło
1

Jak powiedział Andre Silva , MCC-LIDAR jest dobrą opcją do wyodrębnienia punktów naziemnych, ale z mojego doświadczenia będzie walczył, jeśli masz bardzo dużą chmurę punktów (500 milionów punktów lub nawet mniej). Innymi słowy, zwróci błąd i nie uruchomi algorytmu, nawet jeśli zmienisz ustawienia (parametry skali i krzywizny). Z mojego doświadczenia wynika, że ​​zachowuje niektóre „negatywne błędy” w danych.

Moją alternatywą jest odwrócenie chmury punktów (punkty pod ziemią wzrosną, a ziemia nad ziemią spadnie). Aby to uzyskać, ładuję dane do R i odwracam wysokość, a następnie uruchamiam MCC-LIDAR i ponownie odwracam dane. Prawdopodobnie możesz to zrobić w QGIS lub ArcGIS, ale w zależności od rozmiaru zestawu danych może to zająć trochę czasu.

Narzędzie PDAL ziemia jest również opcja dobre, jak to działa lepiej z większych zbiorów danych, ale ponownie, niektóre z punktów ryczeć ziemia nadal będzie zachowany. Odwrócenie zestawu danych ponownie pomoże rozwiązać ten problem.

Jeśli chodzi o punkty nad ziemią, moim najlepszym podejściem jest ręczne czyszczenie, a najlepsze narzędzie typu open source, jakie znalazłem, jest w CloudCompare. Wybierz Segmentw menu górnego paska i możesz usunąć wybrane punkty lub wszystkie pozostałe. Użyłem LAStools wcześniej ( lasviewnarzędzie) do tego, ale sposób działania interfejsu 3D nie jest tak przyjazny dla użytkownika.

Andre
źródło
Interesujące podejście polegające na odwróceniu chmury punktów w celu usunięcia negatywnych błędów. Czy łatwo było załadować 500 milionów punktów pointcloud w R?
Andre Silva,
Może to potrwać kilka minut. Zwykle przesyłam z pliku ASCII za pomocą fread z pakietu programistycznego data.table, w którym mogę bawić się z liczbą używanych wątków.
Andre
1

Jestem wsparciem technicznym GreenValley International, narzędzie do usuwania wartości odstających w naszym flagowym oprogramowaniu LiDAR360 może być użyte do maksymalnego usunięcia tych błędów, a tym samym do poprawy jakości danych.

Algorytm najpierw wyszuka sąsiednie punkty każdego punktu w sąsiedztwie zdefiniowanym przez użytkownika i obliczy średnią odległość od tego punktu do jego sąsiednich punktów. Następnie oblicza się średnią i standardowe odchylenie tych średnich odległości dla wszystkich punktów. Jeśli średnia odległość punktu od sąsiadów jest większa niż maksymalna odległość (maksymalna odległość = średnia + n * odchylenie standardowe, gdzie n jest liczbą wielokrotną zdefiniowaną przez użytkownika), zostanie uznana za wartość odstającą i zostanie usunięta z oryginału chmura punktów.

wprowadź opis zdjęcia tutaj

chenlh
źródło
-1

Jako opcja Open Source, 3D Forest ma kilka fajnych narzędzi do automatycznego filtrowania, a także ręczne narzędzia do czyszczenia chmur punktów. Być może będziesz musiał wypróbować różne parametry filtrów, aby uzyskać wymagany wynik. Mimo że jest zorientowany na leśne chmury punktów, wiele narzędzi jest przydatnych w dowolnej chmurze punktów.

A_NeriWinter
źródło