Solved

How to extract from a Lidar point cloud the local maximum Z and its X and Y coordinates for each building footprint ?

  • 28 February 2023
  • 8 replies
  • 111 views

 Hi,

I am a beginner on FME and I have some difficulties.

I would like to extract from my LiDAR point cloud, the local maximum elevation with the x and y coordinates of each building footprint.

I have as input :

- a LiDAR point cloud

- the footprint of each building in format shp.

As output, I would like to have a .txt file with the maximum z of each point as well as the x and y coordinates of the maximum, all in the same .txt file.

I was able to extract the LiDAR points for each building footprint using the Clipper tool.

Then I used the PointCloudStatisticsCalculator tool.

I get my zmax for each building as a table. But I can't get them together in one .txt file with x and y coordinates.

Would you have an idea to solve my problem?

Thanks in advance.

icon

Best answer by valerieprivat 2 March 2023, 22:44

View original

8 replies

Badge +12

Hi! There's possibly a much neater way (there usually is with FME), but ONE approach might be to

1) Use a PointCloudCoercer to turn the point clouds into Individual Points, then

2) Use a Coordinate Extractor to save the coordinates as attributes

3) Use a Sorter to sort by the z attribute in descending order , and

4) Use a Sampler to sample just the first 1 Feature.

Now you should have 1 point (the one with the highest z coordinate in the point cloud, together with attributes for x, y and z, and should be able to write that to a .txt file.

Hi,

Thank you for your quick answer.

Your solution works very well, but it doesn't quite answer my problem.

I did not express myself well.

I have a LAS file that I cut into several entities with the Clipper tool. Then I want to determine the maximum of each of these entities.

When I follow your advice, the CoordinateExtractor tool only gives me the coordinates of the first point of each entity, so I do not get the maximum.

I thank you in advance.

 

 

Userlevel 1
Badge +10

So using the point cloud statistics calculator you have the maximum z but not the x, y location of that point?

If that's the case try

PointCloudFilter using @Component(z)==@Value(z.max) then a PointCloudCoercer and a CoordinateExtractor

Hi,

Thank you for your answer.

I can extract the zmax of each of my entities, but I still can't get the corresponding x and y, despite your advice.

Thanks in advance,

Userlevel 1
Badge +10

Hi,

Thank you for your answer.

I can extract the zmax of each of my entities, but I still can't get the corresponding x and y, despite your advice.

Thanks in advance,

Are you able to share some sample data?

Badge +11

Maybe, CoordinateExtractor for each vertex of Building Footprint, explode list, then CloudStatisticsCalculator for Minimum, Maximum, Mean, Sum, Range, Standard Deviation, Median... of the point.

 

Question, I'm going thru something similar.

I've got a LiDAR point cloud, separated out by Building, how did you create Polygons for each building point cloud?

 

2023-03-02_13-22-49 

 

 

Hi,

First of all, I would like to thank you for the time spent trying to solve my problem, I found a solution.

Here are the key steps:

1) I apply a Counter on each building right of way (shp format).

2) I use a Clipper with as clipper the shp file and clippee the las file.

3) I use the PointCloudStatisticsCalculator tool to get my zmax

4) I apply a PointCloudCoerce for each point

5) I extract the x, y and z coordinates of each point with the CoordinateExtractor tool

6) I make a test : z=zmax to get the maximum points of each building.

7) I just have to set the parameters of the output file.

Hi,

Here is a link that could correspond to your question to create polygons from a point cloud:

https://community.safe.com/s/article/derive-a-boundary-from-a-lidar-point-cloud

Reply