Tutorial: Point cloud data filteren

Site: OpenCourseWare for GIS
Cursus: Point cloud processing met QGIS en PDAL wrench
Boek: Tutorial: Point cloud data filteren
Afgedrukt door: Guest user
Datum: maandag, 16 september 2024, 21:57

1. Introductie

In de vorige tutorial hebben we gedownloade point cloud-tiles samengevoegd tot een virtuele puntenwolk (VPC) laag. In deze tutorial gaan we de point cloud-gegevens filteren om bepaalde kenmerken af te leiden. We passen een filter toe op het classificatieattribuut om de hoogtepunten van gebouwen af te leiden. Vervolgens gebruiken we expressies om punten boven een bepaalde hoogte af te leiden. Ten slotte proberen we vegetatiepunten af te leiden door een filter te gebruiken met het ReturnNumber attribuut. Na deze tutorial ben je in staat om:

  • de attribuutstatistieken van een puntenwolk te controleren
  • puntenwolken te filteren op basis van het classificatieattribuut
  • puntenwolken te filteren met behulp van expressies. 
We gaan één LAZ-tile gebruiken voor deze tutorial. Je kunt bijvoorbeeld tile 65DN1_07.LAZ gebruiken, die het grootste deel van het centrum van Middelburg beslaat.

2. Bekijk de statistieken van de point cloud-attributen

Laten we eerst controleren welke attributen beschikbaar zijn die we kunnen gebruiken om de punten in de point cloud-laag te filteren.

1. Klik in het Lagen-paneel met de rechtermuisknop op de point cloud-laag en kies Eigenschappen... in het contextmenu.


2. Klik in het Laageigenschappen dialoogvenster op de Statistieken tab.


In bovenste tabel kan je de attributen en hun statistieken zien (minimum, maximum, gemiddelde, standaardafwijking). In de onderste tabel kan je de statistieken voor het classificatieattribuut zien. De kolom Aantal toont het aantal punten in de klasse en de kolom % toont het percentage punten met die klasse.

Uitleg van de attributen
Atrribuut Beschrijving
x, y, z Lokatieinformatie
GpsTime

Het tijdstip waarop de laserpuls werd geregistreerd

Intensity

De sterkte van de teruggekeerde laserpuls

ReturnNumber De volgorde waarin de laserpuls werd teruggekaatst
NumberOfReturns

Het totale aantal terugkaatsingen voor een gegeven laserpuls

Classification

Een code die het type object definieert dat de laserpuls heeft gereflecteerd

ScanAngleRank of ScanAngle

De hoek waaronder de laserpuls werd uitgezonden vanaf de sensor

RGB en Infrared Kleurinformatie van een punt
ScanDirectionFlag De richting waarin de scanner bewoog toen de puls werd uitgezonden
EdgeOfFlightLine Een teken die aangeeft of het punt zich aan de rand van een vluchtlijn bevindt
UserData Gebruikersgedefinieerde gegevens
PointSourceID Een ID voor de bron van de puntgegevens
Amplitude Sterkte van de gereflecteerde puls
Reflectance Hoeveelheid laserlicht dat door het doelobject wordt teruggekaatst naar de sensor
ScannerChannel Kanaalnummer van een LiDAR scanner

We kunnen deze attributen gebruiken voor het visualiseren van point cloud-gegevens.

3. Klik in het Lagen-paneel op  om het Laag opmaken paneel te openen.
4. Zorg ervoor dat je de punten ziet met de RGB renderer, Verander de Rode band van Red naar Infrared. Laat de rest hetzelfde.

Nu worden vegetatiepunten in het rood weergegeven:



5. Verander nu de renderer naar Classificatie.
  • Welke klassen zie je?
  • Hoe komt dit overeen met de infrarood reflectie van vegetatie?

6. Verander nu de renderer naar Attributen per kleurverloop en kies als Attribuut NumberOfReturns.

7. Klik op de pijl naast Kleurverloop, kies Alle kleurverlopen en kies dan YlGn (van geel naar groen).

  • Hoe komt dit overeen met de infrarood visualisatie van vegetatie?


Je heb gezien dat er veel nuttige informatie in de attributen zit. In de volgende hoofdstukken zullen we de attributen gebruiken om de point cloud-gegevens te filteren.

3. Filteren met het classification attribuut

Laten we eerst de punten filteren die zijn geclassificeerd als gebouw.

1. Ga in het Toolbox Processing paneel naar Puntwolk extractie | Filteren.


2. Selecteer in het Filteren dialoogvenster de point cloud-tile als Invoerlaag en klik op  bij Filter expressie.

Nu kan je een expressie formuleren. In de linkerbovenhoek zie je de beschikbare attributen in de point cloud-laag en in de rechterbovenhoek zie je de waarden van een geselecteerd attribuut. Voor de meeste attributen worden de statistieken weergegeven. Voor het classification-attribuut wordt het nummer van de klasse en de beschrijving weergegeven.

3. Selecteer in het Attributen-paneel het Classification-attribuut en bekijk de klassen in het Waarden-paneel.


Nu kunnen we een expressie formuleren om punten geclassificieerd als Gebouw eruit te filteren.

4. Dubbelklik op het Classification-attribuut zodat het verschijnt in het Filterexpressie-veld. Klik vervolgens op het 'is gelijk' teken onder Operatoren zodat het wordt toegevoegd aan de filterexpressie.


5. Dubbelklik nu op 6: Gebouw in het Waarden-paneel om het toe te voegen aan de filterexpressie.

De filterexpressie zou er nu zo uit moeten zien:


6. Klik op Testen om te controleren of de expressie geldig is.

Als je de volgende popup ziet is de expressie geldig:


7. Klik op OK om de Query resultaten-popup te sluiten.

8. Klik in het Expressie voor puntenwolk-dialoogvenster op OK om de filterexpressie aan het Filteren-dialoogvenster toe te voegen.

In het Filteren-dialoogvenster kan je ook het Bereik bijsnijden als dat nodig is. Hier passen we de filterexpressie toe op de volledige point cloud-laag.

9. Gebrfuik  om de uitvoerbestandsnaam te kiezen, bijvoorbeeld gebouwen.laz.


10. Klik op Uitvoeren om het filter toe te passen.

11. Klik op Sluiten om het dialoogvenster af te sluiten als de tool gereed is.

QGIS zal het LAZ-bestand automatisch op de achtergrond converteren naar het COPC-formaat.

12. Verberg na de automatische conversie naar het COPC-formaat de originele point cloud-laag in het Lagen-paneel, zodat we de punten van de gebouwen in de gebouwen-laag kunnen zien.


Nu hebben we het Classification-attribuut gebruikt om voorgedefinieerde klassen uit de point cloud-laag te filteren. In het volgende hoofdstuk gaan we filters toepassen op andere attributen.

4. Filteren met expressies

In het vorige hoofdstuk hebben we de punten gefilterd die als gebouwen waren geclassificeerd. In dit hoofdstuk zullen we filterexpressies maken met behulp van andere attributen.

Laten we eerst punten filteren op basis van hun hoogte met behulp van het Z-attribuut. We gaan punten filteren die hoger zijn dan 25 meter.

1. Ga in het Toolbox Processing-paneel naar Puntwolk extractie | Filteren.

2. Zorg er in het Filteren-dialoogvenster voor dat de originele point cloud-laag (bijvoorbeeld 65DN1_07) is geselecteerd als de Invoerlaag en klik op   om de Filter Expressie te formuleren in het Expressie voor puntenwolk-dialoogvenster.

3. Formuleer en test de expressie Z > 25.


4. Klik op OK als de expressie geldig is en ga terug naar het Filteren-dialoogvenster.

5. Sla het resultaat op als hoog.laz in klik op Uitvoeren.


6. Bekijk het resultaat.

Misschien zijn we niet zo geïnteresseerd in gebouwen maar in stedelijk groen. Laten we kijken of we een filter kunnen gebruiken om vegetatiepunten eruit te filteren.

7. Ga weer naar de Filteren tool.

8. Zorg er in het Filteren-dialoogvenster voor dat de originele point cloud-laag (bijvoorbeeld 65DN1_07) is geselecteerd als de Invoerlaag en klik op   om de Filter Expressie te formuleren in het Expressie voor puntenwolk-dialoogvenster.

We gaan het ReturnNumber attribuut gebruiken. We nemen aan dat als ReturnNumber groter is dan 1, we te maken hebben met vegetatiepunten.

9. Formuleer de expressie, test de geldigheid en klik op OK.


10. Sla het resultaat op als vegetatie.laz en klik op Uitvoeren.


11. Klik op Sluiten als de tool klaar is en bekijk het resultaat. Zoom in om de details te bekijken.

  • Zien we nu alleen de vegetatiepunten?
  • Als het niet alleen vegetatiepunten zijn, wat zijn de andere punten dan vooral?

Laten we kijken of we de filterexpressie kunnen aanpassen, zodanig dat we minder gebouwen als vegetatiepunten selecteren.

12. Ga terug naar de Filteren tool en formuleer de volgende expressie:

ReturnNumber > 1 AND Classification != 6

gebruik de knoppen om de operatoren en attributen toe te voegen.

Met deze expressie worden punten gefilterd die een ReturnNumber groter dan 1 hebben en tegelijkertijd niet als gebouwen zijn geclassificeerd (waarde 6 van het Classification-attribuut).


13. Test en pas de filter toe als de expressie geldig is. Sla het resultaat op als vegetatie2.laz.

14. Bekijk het resultaat.

  • Is het resultaat nu beter?
  • Probeer het resultaat verder te verbeteren door de filterexpressie aan te passen.


5. Filters gebruiken in andere point cloud tools

In sommige van de point cloud-processing tools kun je op een vergelijkbare manier als we in deze tutorial hebben gedaan een filter toevoegen. De tool wordt dan alleen toegepast op de gefilterde punten. Je kunt de filterexpressie toevoegen onder Geavanceerde Parameters in de dialoogvensters van de tools die filtering ondersteunen, bijvoorbeeld de Clippen-tool: