Removing Grasses, Trees and Shrubs from Point Clouds - This is a Must Read!

Any of you out there flying drones or using scanners to collect point cloud data and having trouble with Grass (that could have a totally different meaning if you live in CO of course) … or trees or shrubs on the ground surface - maybe this could help you A LOT …

I have had two conversations this week and then one a few years back where this was raised as an issue - and it got me thinking about the Point Cloud Processor and how it can be used to solve this problem - and it does help A LOT!

If you take a point cloud that covers an area of ground that is covered in grasses or shrubs or yucca plants or trees (Deciduous trees) and there’s a big word for a Wednesday … and you want to find the ground - when you think about it the ground is (or should be) the lowest point in any grid square (no matter how large or small the grid square is. If the shrubs are eg 3’ high then using a vertical tolerance of 6’ (+/- 3’) would cover it, if the Trees are 40’ high then a vertical tolerance of 50’ will cover it - the command will grid your site and find the lowest point in every grid cell. You should use a small grid size to minimize the effect on the actual terrain shape. The trick is to find the right Grid Size Mix with a large vertical tolerance.

Here are some examples of the results - here is the latest one I tried for a flight in Nevada where they have a similar issue to the Hawaiian example further down - i.e. where they have a shrub that grows all over the lava fields that makes it a royal pain to remove the shrubs from the point clouds

We have made a few changes this week to the Point Cloud Processor as follows

  1. We found that the Lowest and Highest Options were not working correctly - we have fixed that - the Lowest Option now creates better results than are shown below
  2. We changed the Lowest and Highest Options so that the point we store is the actual 3D location of the Lowest Point in each grid cell - this removes bias from the resulting point cloud and surface - the resulting surfaces where they are sloped is significantly improved.

To use the tool for Veg Removal use a small max grid size e.g. 1.0’ or 2.0’ (but not too small) along with a high vertical tolerance greater than any object elevation that you are trying to remove i.e. if you have 3’ brush use at least 7’ and for 60’ trees use at least 70’. In reality you can enter 100 or 1000 and you will get the same result. Remember that the smaller the grid cell, the less likely you are to find a ground shot in the cell so the less likely that “Lowest” will help you, so pick a cell size that will be effective with the vegetation you are trying to eliminate.

Remember also that different areas of the site may need different treatments in terms of how you reduce the point data - hard areas like pavement and parking lots with curb and gutter likely need more detail around the curb areas and around the crown of pavement than a vegetated area etc. Clean dirt once a site has been cleared can be approached differently to the vegetated surface pre - construction etc.

Nevada Shrub Example

Here is the Point Cloud as surveyed - no cleaning

Here is the point cloud after processing with Point Cloud Processor (1.5’ Grid)

Here is the surface pre cleaning (one small area - all points)

Here is the surface post cleaning (with no additional editing) (1.5’ Grid)

Here is the surface post cleaning (with no additional editing) (2.0’ Grid)

Here is a surface slice through the Pre and Post Surfaces

Hawaiian Lava Field Example

Here is the Point Cloud as surveyed - no cleaning

Here is the point cloud after processing with Point Cloud Processor (2’ Grid)

Here is the surface pre cleaning - All Point Data

Here is the entire surface post cleaning (with no additional editing) (2’ Grid)

Here is the entire surface post cleaning (with no additional editing) 1.0’ Grid)

You can see that with a smaller grid that some spiking starts to appear where there was not a ground shot within the 1’ grid that when you use a 2’ grid is entirely absent (above)

Here is a surface slice through the Pre and Post Surfaces (2’ Grid Example)

New Hampshire Tree Example

This survey starts out with 140,268,942 points and ends up with just 50,749 Points after cleaning - a 99.96% reduction in data and an almost perfectly clean surface - a few minor edits and you have a workable surface model.

Here is the Point Cloud as surveyed - no cleaning

Point Cloud after cleaning

Here is the surface post cleaning (one small area - all points) - 2.5’ Grid

10 Likes

Are you using mean or lowest on these examples?

1 Like

Lowest is the filter being used and also a large vertical tolerance filter - some of the trees are 60’ tall so you need a vertical tolerance greater than 60’ to eliminate them all. The update that is pending is doing an even better job when using Lowest now as it is holding the position of the lowest or highest point and only placing the mean point when you select the mean location - this is now holding all of the slopes better and with a small enough grid to give the resolution required but not so small that no ground points can be seen (i.e. when you use e.g. a 0.5’ grid it is less likely to see a ground point than if you use a 1’ grid or a 2’ grid etc. So the trick here is to do a first pass with a grid like 1.0’ to remove the brush and canopy and then a second pass on the reduced file to further reduce the point count as needed using the Mean filter.

Alan

Alan

2 Likes