9

I have a large point cloud (LAS file) and I am trying to thin this using a complex technique. I know it is possible to thin a point cloud using simple techniques such as extracting every nth point. However the point cloud I am working with is more dense in some areas and less dense in other areas. I would like to be able to thin the cloud so that the denser areas are thinned more heavily than the less dense areas. To do this manually one could create a grid and select certain number of points within each cell. (ie one at each corner and one in the center) However this point cloud is much too large for this task. I am trying to figure out if there are any existing solutions to this problem such as a complex selection query, other automated process, or existing software application that could be used.

3
  • +1. One option to try is the command line ThinData from Fusion. In this answer I explain how it works. Howard's answer seems promising too. Let us know if they work for your situation. Tks. Commented Dec 11, 2015 at 19:52
  • Using a tool like MeshLab http://meshlab.sourceforge.net/ would allow you to easily compare the suggestions by Andre Silva. It sounds like your data set is small enough to be interactive in this context.
    – orbatos
    Commented Dec 11, 2015 at 23:35
  • Found this question on the hot network questions, joined up here just to post this comment. Not knowing anything about the data set or field this still seem to be crying out for 'PCA' dimension reduction techniques (principle component analysis). Perhaps some solutions use this ? Commented Dec 11, 2015 at 23:53

4 Answers 4

13

It sounds like you want either a voxel-based thinning or maybe a Poisson-based one. PDAL can do either. See PDAL's tutorial on the topic at https://pdal.io/tutorial/sampling/index.html

PDAL sampling.

As far as the size of the file, please define "large". Just about any technique except simple rank decimation (remove n-th points) is going to want to have access to the entire file in memory. Other options would require a more sophisticated two-stage index+sampling technique to avoid that requirement.

4
  • Thank you, this looks very useful, I haven't come across this and will take a look right now. As far as size I'm looking at about 3 million points.
    – Bodkinz
    Commented Dec 11, 2015 at 18:45
  • 3 million points == smallish end of LiDAR datasets. Large enough to start causing trouble with memory and such might be a 100 million or so. Commented Dec 11, 2015 at 18:49
  • Good to know, I'm relatively inexperienced with LiDAR but I have a feeling that PDAL is exactly what I was looking for, I was previously searching for answers in global mapper, GRASS, SAGA, and laspy etc...
    – Bodkinz
    Commented Dec 11, 2015 at 18:55
  • The PDAL pipelines make it easy to keep track of your processing parameters and reproduce or batch process your work. Commented Jan 24, 2018 at 22:43
6

You can give lasthin or lasduplicate from LAStools a try. With lasthin you can keep the '-lowest', '-highest', '-random', or most '-central' point on a 2D grid in the x/y plane with user-defined '-step 0.5' size. With lasduplicate you can specify to remove all points that are '-nearby 0.005' in 3D from all previously appearing points. See the linked README file for more details.

2
  • 1
    By the way, why do you have two accounts? You should probably merge them. Commented Dec 13, 2015 at 21:24
  • I have found those tools useful, but neither of them would help accomplish thinning that retains more points where the data is densest, as OP seeks. Commented Apr 16, 2017 at 4:14
3

You can use FUSION's ThinData command for this (Documentation p.130). ThinData is really handy because it allows you to thin point cloud data to a desired pulse density per square unit. From FUSION's documentation:

ThinData [switches] OutputFile Density CellSize DataFile

ThinData allows you to thin LIDAR data to specific pulse densities. This capability is useful when comparing analysis results from several LIDAR acquisitions that were collected using different pulse densities. ThinData is also useful when the density within a single LIDAR data set is not uniform. This is often the case with data collected from a slow-flying helicopter or when flightline overlap was not closely monitored. ThinData has also been used in simulation experiments to assess the effect of LIDAR pulse density on the accuracy of estimated forest inventory metrics such as overall tree height.

1

You can use LiDAR360, download the 30 days free trial version from GreenValley International website. LiDAR360 offers three methods for subsampling: minimum point spacing, sampling rate, and octree. Minimum point spacing method needs to set a minimum point spacing between two points so that the minimum three-dimensional distance between any two points in the sampled point cloud will not be less than this value. Sampling rate method needs to set the percentage of reserved points. In this mode, LiDAR360 will randomly retain the specified number of points. Reserved Points = Total Number of Points * Sample Rate. Octree method allows users to select an "octree" subdivision level and build 3D voxels for the input point cloud. Only the point closest to each voxel center will be retained.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.