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: | zaterdag, 23 november 2024, 13:26 |
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.
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.
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?
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: