Skip to main content
I need to run approx 10K zipped LAS ASPRS files and generate an xyz file with 5 m grid using ground values.
Looking for a workflow to do this.

Are your LAS files already classified? Do you have enough memory/disk space on your computer?

You can read LAS files directly from zip then use PointCloudFilter to filter on ground (classification=2) and send to PointCloudCombiner (or skip it, i'll explain).

To get the 5m grid send everything to a SurfaceModeller with DEM 5m spacing and send the output of DEMPoints port to a PointCloudCombiner (you can skip the previous Combiner as it is redundant).

Just write as Point Cloud XYZ and your done.

It is advised to generate a Hull of you data: pointcloud to PointCloudToPointCoercer -> some multipoint option, HullAccumulator (Concave and 10m alpha value) and use the hull to clip DEMPoints output.

Keep in mind that this operation will be very memory and disk intensive!


Are your LAS files already classified? Do you have enough memory/disk space on your computer?

You can read LAS files directly from zip then use PointCloudFilter to filter on ground (classification=2) and send to PointCloudCombiner (or skip it, i'll explain).

To get the 5m grid send everything to a SurfaceModeller with DEM 5m spacing and send the output of DEMPoints port to a PointCloudCombiner (you can skip the previous Combiner as it is redundant).

Just write as Point Cloud XYZ and your done.

It is advised to generate a Hull of you data: pointcloud to PointCloudToPointCoercer -> some multipoint option, HullAccumulator (Concave and 10m alpha value) and use the hull to clip DEMPoints output.

Keep in mind that this operation will be very memory and disk intensive!

LAS files are classified and resources are not an issue.

I read the LAS from zip (962258 pts) and limited to ground (2) via PointCloudFilter (or PointCloudSplitter).

I ran the ground points from the PointCloudFilter to PointCloudPropertyExtractor to extract xyz and then to PointCloudCoercer which results in 327,070 points.

 

I ran the LAS into a HullAccumulator (Concave, Alpha=10) and to a Clipper and the PointCloudCoercer to the clippee and got 327,070 inside pts as expected.

I sent the inside pts to SurfaceModeller with a 5m grid and wrote out 28,056 DEMPoints to a CSV writer. All I got out were the _elevation values. I want x y z values in a 5 m tab delimited grid. Adding a CoordinateExtractor before the writer appears to have solved the issue.

 

 

 


LAS files are classified and resources are not an issue.

I read the LAS from zip (962258 pts) and limited to ground (2) via PointCloudFilter (or PointCloudSplitter).

I ran the ground points from the PointCloudFilter to PointCloudPropertyExtractor to extract xyz and then to PointCloudCoercer which results in 327,070 points.

 

I ran the LAS into a HullAccumulator (Concave, Alpha=10) and to a Clipper and the PointCloudCoercer to the clippee and got 327,070 inside pts as expected.

I sent the inside pts to SurfaceModeller with a 5m grid and wrote out 28,056 DEMPoints to a CSV writer. All I got out were the _elevation values. I want x y z values in a 5 m tab delimited grid. Adding a CoordinateExtractor before the writer appears to have solved the issue.

 

 

 

Use https://docs.safe.com/fme/2021.2/html/FME_Desktop_Documentation/FME_ReadersWriters/pointcloudxyz/pointcloudxyz.htm Point Cloud XYZ Writer


Reply