These are chat archives for PDAL/PDAL

7th
Mar 2018
Nicholas Pilkington
@nickponline
Mar 07 06:14
Hey guys, I have a point cloud contains some stockpiles. Are there some PDAL filters or pipeline I can look at somewhere that would be able to detect them automatically? I've looked at the ground classification filters like pmf but not getting good results. I've currently trying this: https://gist.github.com/nickponline/16d661e25116cad08f73479bcd5f8748
Nicholas Pilkington
@nickponline
Mar 07 06:21
Also is it possible to have more that one writers, I want to write out the pointcloud after the pmf stage. If I put a writer there PDAL fails at the next stage saying: PDAL: filters.range: Invalid dimension name in 'limits' option: 'Classification'
Andrew Bell
@abellgithub
Mar 07 12:14
You can chain writers, but you must specify the types explicitly: { "type": "writers.las", "filename":"out.las"}, {"type":"writers.gdal", "filename":"out.tiff"}
Howard Butler
@hobu
Mar 07 14:20
@nickponline no filters.stockpile, but we would probably merge a patch that implemented it if you or your team developed one
chambbj
@chambbj
Mar 07 14:22
Some of the parameter choices are a bit questionable too. The PMF distance of 0.1 seems very small, especially considering that you’ve voxelized at 0.5. LOF isn’t giving you anything here (it doesn’t classify anything as noise), so you might want to read up on how it’s used and what it gives you to decide whether or not it’s really needed.
Nicholas Pilkington
@nickponline
Mar 07 17:24
@abellgithub I would like two .las writers, but one writing out an intermediate stage of the pipeline and the other the final stage, is that possible?
@chambbj Thanks for the comments, the low distance was added because without it the detected stockpiles do not extend to include the base, they just include the peasks
chambbj
@chambbj
Mar 07 17:26
:+1: I was confused and reading that as your cell_size anyway.
Nicholas Pilkington
@nickponline
Mar 07 17:27
Ok cool, yeah I was just experimenting with different values. I looked back at the source paper, but a bit difficiult to see what they control in the context of trying to pick out a stockpile.
Should I be volelizing at all?
chambbj
@chambbj
Mar 07 18:07
i don’t know your data, so it’s hard to tell - i can tell you that because you are using the PCL-based voxel grid, you are losing all fields in your LAS point records that are not XYZIRGB - that may or may not be an issue for you - PDAL has alternate sampling filters too, that retain actual points and their full point record
Nicholas Pilkington
@nickponline
Mar 07 18:47
Ah! It that was is causing that? That was driving me mad. Why does that happen, the docs don't say anything about that.
Is filters.sample a good alternative?
chambbj
@chambbj
Mar 07 19:14

I thought it was documented somewhere, but even I am having a hard time finding it now. In the case of filters.voxelgrid the reason is simple. VoxelGrid returns the centroid of the points in the voxel, not one of the actual returns. If you want to do something close to this, you could use filters.voxelcentroidnearestneighbor, which also computes the centroid, but then returns the point that was nearest the centroid.

I like filters.sample for thinning (it’s also good for removing “duplicate” points and normalizing density if you have overlapping scans).

The more general reason why the PCL filters drop the dimensional information has to do with how PCL goes about templating different point types. We cannot really account for every possible schema that may work it’s way through a PDAL pipeline.

Nicholas Pilkington
@nickponline
Mar 07 19:24
Thanks @chambbj that makes sense.