Skip to main content

I have a point cloud with a certain class. This class will be scattered and in clusters within the point cloud, and I want to a) identify these clusters and b) create a point feature layer for the lowest point within these clusters and get the height. 

 

Is this possible with FME? 

It depends what kind of clusters, but if these clusters are not overlapping in XY, one way to identify these is to use a HullReplacer. The pointcloud need to be coerced to a single multipoint first using a PointCloudToPointCoercer, else the HullReplacer will not work.

Then use the PointCloudStatisticsCalculator to find the lowest z and a PointCloudFilter to find the points with this z.

Attached sample workspace demonstrating this.


It works great except for places where the clusters are intersecting at y (as you maybe mentioned).

So the clusters im interested in are the pink ones, and here i will only get three values which is the lowest one, is there a way to do this and get all values? 

 


The classic way to do this is to flip the data over one axis, so you can apply a 2d transformer also from the side. This way you will be able to split the single cluster in 3 seperate clusters. Not easy but doable. Can you share a sample of your data? Just clip a 30 meter buffer and use an offsetter with  random kilometers in x,y,z to anonimize it.


Here is a testfile containing that exact pole in the picture


Sample workspace. It first creates the clusters in 2d, then rotates the data 90 degrees over x and creates clusters again, grouped by the 2d cluster id’s.

 


This worked perfectly! So grateful!