Skip to main content
Solved

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

  • February 28, 2023
  • 8 replies
  • 546 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.

Best answer by valerieprivat

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.

View original
Did this help you find an answer to your question?

8 replies

jonas_nelson
Enthusiast
Forum|alt.badge.img+19

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.

 

 


ebygomm
Influencer
Forum|alt.badge.img+32
  • Influencer
  • March 1, 2023

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,


ebygomm
Influencer
Forum|alt.badge.img+32
  • Influencer
  • March 2, 2023
valerieprivat wrote:

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?


hlouie
Contributor
Forum|alt.badge.img+15
  • Contributor
  • March 2, 2023

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 

 

 


  • Author
  • Best Answer
  • March 2, 2023

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


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings