[pdal] Filtering out coplanar points

Bradley Chambers brad.chambers at gmail.com
Mon Apr 25 09:10:04 PDT 2016


Etienne,

Are you hoping to put together a pipeline using existing PDAL (and possibly
PCL) filters? Or are you open to creating something new altogether?

I think you will have the best luck going the latter route, although you
may have some success coding up your algorithm in Python, using the
programmable filter [1], in which case you can use PDAL out of the box. PCL
can even be used in front of the Python code to generate normals - it just
wouldn't be available to you within the Python environment.

It'll be up to you to determine the best approach for scoring your points,
but the framework for building your algorithm using PDAL and PCL should all
be in place. I'd be tempted to write a new PDAL plugin that implements a
filter [2] and leverages some of PCL's modules (e.g., computing normals,
SAC segmentation, etc.). The ground filter in our PCL plugin [3] should
give you a good feel for how such a filter would be organized and built.

Best of luck!

Brad

[1] http://www.pdal.io/stages/filters.programmable.html
[2] http://www.pdal.io/tutorial/writing-filter.html
[3]
https://github.com/PDAL/PDAL/blob/master/plugins/pcl/filters/GroundFilter.cpp


On Mon, Apr 25, 2016 at 10:58 AM Etienne B. Racine <etiennebr at gmail.com>
wrote:

> Hi list,
>
> I'm looking for a way of thinning a point cloud by scoring points
> according to the information they bring according to an interpolated
> surface (such as a DEM). PDAL can filter points randomly either on a grid
> or systematically, but I'd like to keep points that indicate an inflection
> and remove points that are within a plane tolerance (since they don't bring
> much information if the points are linearly interpolated to a surface). I
> know PCL can compute normals, could that be leveraged to provide a smarter
> way to thin a point cloud or harnessing the progressive morphological
> filter? I haven't found much relevant literature on that, but there must
> be. I probably don't have the right terminology. If you have any insights,
> I'd appreciate.
>
> One way to think about it would be to
>
>    - Generate a DEM with the whole set of points;
>    - For each point in dataset:
>    - remove a point and generate another DEM;
>       - compare the change in elevation (or volume or whatever metric you
>       want) using e.g. RMSE;
>       - associate RMSE value to the removed point;
>    - Remove point with lowest RMSE, repeat until you reach a user-defined
>    threshold.
>
> This would be tedious, there's probably a better way. I thought it might
> trigger some ideas or help people send me in the right direction.
>
> Etienne
> _______________________________________________
> pdal mailing list
> pdal at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pdal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pdal/attachments/20160425/7dc55de5/attachment.html>


More information about the pdal mailing list