Hello group;
As it says in the subject, I've been experimenting with the -contours option in LASthin, using clouds that have been generated by Pix4D. I generally have 500 to 750 points per cubic metre, my clouds range from 50 million to 1 billion points and they cover relatively small areas as compared to airborne - nothing larger than 250 Ha.
Martin, first let me say that this option together with adaptive thinning is a stroke of genius. I need to thin my clouds down under 20,000 points so they can be used to generate surfaces and then contours in AutoCAD Civil 3D. Prior to this option appearing, the contours were too complex and included too many small islands and pits. Now they look much more like what people expect to see. Maybe they aren't as correct, but they are more acceptable to the human eye.
Anyway, I've found that when I use small contour intervals, such as 0.25m, the thinning its too aggressive. It probably wasn't envisioned for this purpose so that's fine.
Consider the following:
- Start with a cloud that has been subject to low noise removal similar to your blog posts and adaptive thinning with AdaptiveVTol set to 0.1 and AdaptiveTin set to 1.0. This produces a cloud that greats excellent mosaics, by the way.
- Now classify ground according to the canopy method in your block post
- Thin the results with AdaptiveVTol set to 0.25 and AdaptiveTin set to 10.0. This produces a cloud has about 50% more points than I really want. It also has points very near the modulo 0.25 elevations that tend to produce ugly contours.
- Redo the thin with -contours 0.25 and far too many points are removed. Finer details that were present in #3 above are generally gone.
To find out what was happening, I tried to simulate the -contours option in CloudCompare. I created a new Scalar field that was (4 * Z) - int(4 * Z). Basically all I had was decimal numbers from 0 and approaching 1.0. Next I filtered points by value into clouds where the scalar field contained a value as shown below. The last number is the point count
- Original cloud from step 3 : 24,634
- >= 0.1 and <= 0.9 : 19,686
- >= 0.2 and <= 0.8 : 15,723
- >= 0.3 and <= 0.7 : 9,907
- >= 0.4 and <= 0.6 : 5,970
- >= 0.45 and <= 0.55 : 958
- Redone cloud from step 4 : 5,669
Each of these clouds was brought into C3D and contours generated. Knowing the site, I though the best balance between detail and choppiness was the cloud with 15,723 points, but I expect each site will be different. It also looks like the -contours option is keeping the middle 20% (#5 above) though the algorithm is probably different.
Martin, would it be possible to add an option to -contours so that I could say -contours 0.25 60, meaning optimize removal of points to keep those furthest away from the contour interval, but keep (in this case) the middle 60%? Your implementation may be different, but in the end I'm looking for some way to control how aggressively points are removed.
Thanks and I hope people find this useful!