Solved

Generate simple trees from Point Cloud (LIDAR)

  • 22 February 2018
  • 7 replies
  • 57 views

Hello,

I want to create simple mesh trees from Point Cloud (LIDAR) in FME.

 

And the closest thing I came to was with the "PointCloudSurfaceBuilder" transformer.

Can anybody help me with this, please.

 

The file is the way I want the final trees look like (it seems like it is about 8 piece of pentagon polygons for each tree).

And the file is the closest I came in FME.

I attach the FME-Workbench file and the input LAS file (and it looks like this ).

Best regards,

Jonas

icon

Best answer by redgeographics 27 February 2018, 15:14

View original

7 replies

Userlevel 4
Badge +25

Your point cloud is waaaaaay too detailed. You could try thinning it (PointCloudThinner) but I doubt you'd get to the desired result.

One idea I had when I was looking into this a while ago was try and represent a tree by several stacked cylinders. So at x cm vertical intervals lump the points together (buffer them and dissolving the buffers, find all points that intersect the buffer and create a hull for those, determine the diameter of the hull and then place a cylinder with that diameter and thickness centered on the centerpoint. Still clunky but it might just work. I don't think I have a workspace that shows that though.

Your point cloud is waaaaaay too detailed. You could try thinning it (PointCloudThinner) but I doubt you'd get to the desired result.

One idea I had when I was looking into this a while ago was try and represent a tree by several stacked cylinders. So at x cm vertical intervals lump the points together (buffer them and dissolving the buffers, find all points that intersect the buffer and create a hull for those, determine the diameter of the hull and then place a cylinder with that diameter and thickness centered on the centerpoint. Still clunky but it might just work. I don't think I have a workspace that shows that though.

Hi redgeographics,

 

Okay, thanks for checking this out.

 

Yes, maybe that is working, I dont know.

 

I am sorry but I need every detailed help I can get in this case...

 

How about a AutoCAD blocksymbol that replace the height and width of the trees LAS data? But how do I do that in FME?

 

Thanks in advance!

 

Best regards,

 

Jonas
Userlevel 4
Badge +25

If you turn the point cloud into individual points (PointCloudCoercer) you can buffer/dissolve them to create an outline that more or less confirms to the tree shape. Using a CoordinateExtractor before the buffering gives you the coordinate values, you can then have the Dissolver create a list of the z-values and use a ListRangeExtractor to get the min and max height out of the tree. For the diameter it's a bit trickier but getting the bounds from the tree shape (minus a bit to account for the buffering) and then get the average of the x and y difference should give you a relatively accurate estimate (unless the tree is awkwardly shaped). From there you could start building your idealised version.

I don't usually work with AutoCAD so I'm not sure either how a block would be used, but it sounds like a viable approach.

If you turn the point cloud into individual points (PointCloudCoercer) you can buffer/dissolve them to create an outline that more or less confirms to the tree shape. Using a CoordinateExtractor before the buffering gives you the coordinate values, you can then have the Dissolver create a list of the z-values and use a ListRangeExtractor to get the min and max height out of the tree. For the diameter it's a bit trickier but getting the bounds from the tree shape (minus a bit to account for the buffering) and then get the average of the x and y difference should give you a relatively accurate estimate (unless the tree is awkwardly shaped). From there you could start building your idealised version.

I don't usually work with AutoCAD so I'm not sure either how a block would be used, but it sounds like a viable approach.

Hi again redgeographics,

 

I have tested your suggestion now and it worked great but I cannot figure out the last part that replace the centerpoint with a symbol that I can scale in size (I tried the Pointstyler without success).

 

Is there someone else out there how can help with this?

 

Thanxs alot redgeographics!

 

Best regards,

 

Jonas

If you turn the point cloud into individual points (PointCloudCoercer) you can buffer/dissolve them to create an outline that more or less confirms to the tree shape. Using a CoordinateExtractor before the buffering gives you the coordinate values, you can then have the Dissolver create a list of the z-values and use a ListRangeExtractor to get the min and max height out of the tree. For the diameter it's a bit trickier but getting the bounds from the tree shape (minus a bit to account for the buffering) and then get the average of the x and y difference should give you a relatively accurate estimate (unless the tree is awkwardly shaped). From there you could start building your idealised version.

I don't usually work with AutoCAD so I'm not sure either how a block would be used, but it sounds like a viable approach.

Hi again,

 

Now I have help with the DWG Symbol solution at https://knowledge.safe.com/questions/64958/replace-point-with-symbol-from-a-dwg.html?

 

So I close this question.

 

Best regards,

 

Jonas

 

 

Hi this is a similar problem i have - but i want to export powerline lidar points into linear strings of best fit and write a dxf - any ideas

thanks

 

Badge +20

Hi this is a similar problem i have - but i want to export powerline lidar points into linear strings of best fit and write a dxf - any ideas

thanks

 

You can classify the points belonging to powerlines (lasstools), filter just that class, 3D buffer points, dissolve and extract centerline.

Reply