Question

Point cloud, geometry based point reduction?

  • 25 July 2016
  • 1 reply
  • 2 views

Badge

Hi, I have a .las point cloud with 22.5M points representing a drone surveyed ground surface. I was wondering if FME had something equivalent to AutoCAD Civil3D's surface simplification via edge contraction? This basically reduces the number of points in a tin surface by calculating a change in grade between nearest points and removes points that would result in the least amount of change to the original surface. After running the surface simplification you end up with less points in flatter areas and retaining a higher density near surface grade breaks, greatly reducing the number of points but also retaining as much of the surface accuracy as possible.

The AutoDesk documentation doesnt explain much:

 

"Contracts triangle edges to single points. The location of the point to which an edge is contracted is chosen so that the change to the surface is minimal. Each edge contraction results in the removal of one point."

I've used PointCloudThinner in other workspaces, but it's not the appropriate method for my current task. The PointCloudThinner "keep every Nth point" essentially removes points randomly with no way of knowing if it is removing a crucial piece of geometry. Civil3D's simplification method can be pretty slow on larger surfaces, so I wanted to see if FME could do the same type of processing, hopefully faster.

Any ideas are appreciated, thanks!

_Kevin


1 reply

Badge +5

Hello Kevin,

As far as I am aware FME does not currently contain a Transformer that does this, although TinThinner would be a great name for it.

I have once written something similar to this in the PythonCaller, using the normals of triangles to determine whether they are positioned in a similar direction. This was quite a bit of work though, and I wouldn't recommend that without some programming background.

The three questions that popped up thinking about this were:

  1. Would you remove the point and retriangulate the remaining surface, or replace an edge with a point removing two triangles?
  2. When is a new surface 'good enough' compared to the old one?
  3. When do you stop improving, i.e. untill everything is above a certain margin, or a strict number of passes?

Some of the steps of such an algorithm could be made in FME, but there would still be a fair bit of math involved I think.

Reply