LiDAR technology has given the spatial data world some of the largest data volumes we’ve ever seen. Many point clouds I’ve worked with in FME have been tens of gigabytes in size. Coming from a place about a decade ago where I thought I’d never need more than five whole gigabytes of storage space . . . that’s a pretty impressive statistic.
Sizes continue to grow. In 2007, our users saw point clouds representing one point per square meter for airborne data. In 2013, we’re seeing more like eight points per square meter for the same data.
So how do you use this massive amount of data to your advantage? Below are 14 ways we’ve seen people make the most out of this exciting data type.
1. Translate between point cloud and other data formats
Much like CAD, GIS, rasters, and other data types, LiDAR data is not limited to a single format. Point cloud formats we’ve seen at Safe include:
- ASTM E57
- LAS (compressed or not)
- Oracle Spatial Point Cloud
- Bentley Pointools POD
- Point Cloud XYZ
- RIEGL Laser Scan Database
- Terrasolid TerraScan
- Z+F LaserControl ZFS
The most popular formats are LAS and XYZ – but like my mom used to tell me, “popularity gets you nowhere.” Ok, maybe that advice was meant for a pimply teenager, but my point is that modern data processing requires flexibility. You need to be able to work in a variety of formats, translating not only “point cloud to point cloud”, but also “point cloud to anything” and “anything to point cloud”.
Maybe you have an XYZ point cloud and you want a .lasd file so you can use it in ArcGIS. Or maybe, like in this example, you need to convert your LAS point cloud to E57. The ability to translate your point cloud data between formats is more important than ever.
2. Combine point clouds with other data formats
A magical chasm opens in spacetime when you combine LiDAR data with other data types. Whether that’s CAD, GIS, rasters, vector data, 3D geometries, another point cloud, a reconstructed pirate map, or all of the above, your point cloud data just got interesting.
In this example, we’ve combined E57 point clouds with a DGN file of project boundaries and an ECW raster image. We applied colors from the raster and boundaries from the vector file, and generated a textured surface that you can easily send to your Great Aunt Myrtle in a 3D PDF. You could also add some 3D building geometries if you so desired. Goodbye, colorless and indistinguishable clump of dots.
3. Inspect LiDAR point components and values
That multi-gigabyte beast on your hard drive has no hope of transforming into a handsome prince if you can’t decipher it. A key step in any transformation is inspection, so open your point clouds for viewing to find out what components are involved.
With the right inspection tool, even the most enormous point cloud datasets will start to make sense.
4. Change a point cloud’s coordinate system
LiDAR data has come to us in a variety of coordinate systems (UTM, StatePlane, etc).
If you need to project the point cloud onto a map or combine it with other data, you can reproject it to another system just like any other type of spatial data.
5. Tile LiDAR data to speed up processing time
Tiling is when you chop the input features (points) into a series of tiles.
If you have a big point cloud and a lot of transformations to do, try tiling it and using parallel processing. It’ll make your old transformation time look like a sloth on sedatives. Of course, tiling is also useful if you need to generate smaller pieces of the point cloud for delivery.
6. Clip to a specific region in a point cloud
1.2 billion points isn’t a crazy number when dealing with LiDAR data. In fact, the word “billion” is pretty common. Chances are, you might not need all of those points in your output or analysis. Maybe you only want a specific region, like the area around a street.
Clipping is when you toss away the points outside of a defined boundary. This can be mega-helpful in creating a manageable size to work with. If you provide a 3D solid as your clipper shape, you can also perform a cubic clip.
In this example, we’ve applied a cubic clip to clean out everything but the ground from a point cloud of a street.
7. Reduce the number of points in a LiDAR dataset
“That’s great and all,” I hear you saying, “but what if I do need the whole region?”
So maybe you want a manageable size to work with, but you don’t want to clip out important features and make the earth look like it got crushed by a giant steamroller. Thinning a point cloud reduces its overall volume; for example, by removing every Nth point.
Here we’ve drastically thinned the point cloud without losing the gist of the dataset, resulting in sped-up processing time.
8. Create a surface model from a point cloud
If you’re interested in topography, you can make a 3D model out of your LiDAR dataset. Our stats show that a surface model transformation is one of the most popular point cloud tasks.
In draping this point cloud with RGB and DEM rasters, we were able to create a meaningful surface model and make sense of the original glob of points.
9. Split LiDAR data by component value
Splitting a point cloud means extracting points based on the value of a component. You can split by any component – classification, intensity, color, whatever.
In this point cloud, we can extract the yellow road markings by splitting the point cloud by color. The output will be a mini point cloud containing just the road lines, which we can turn into a vector feature.
10. Calculate and update point cloud extents
When I say calculating extents, I mean a metadata gathering of sorts. It can be helpful to inspect all the points and figure out the components that exist within your LiDAR dataset, then calculate the min and max value for each component so you know what kind of data you’re dealing with.
You can enforce the true extents on the data by checking the headers of the LiDAR file and comparing that information to the actual points.
11. Divide LiDAR data along a line
Given a line and a point cloud as input, you can generate point cloud slices (or profiles) along that line so you can use them for analysis.
Slicing and profiling is a great way to reduce the overall size of your LiDAR dataset and focus on what you need. In this example, we retrieved slices along a highway line and left the rest of the point cloud out, since the area around the highway is all we care about.
12. Set point cloud components manually
When writing a point cloud, you can manually set the components on your points – color being the most popular example. Just select the paintbrush tool in Microsoft Paint, paint over the first point, then choose another color and paint the second point, and keep doing that until you’ve hit all one billion … Kidding. Do it intelligently by overlaying the point cloud on a raster.
Of course, setting other components also leads to interesting results. For example, if you have a raster that has classes, you can transfer the classes over to your point cloud.
13. Apply point-by-point calculations to LiDAR data
Expanding on the last point, the values you use to set the components manually don’t need to be taken from, say, a raster. You can also leverage attributes and parameters and set the component values based on a calculation.
This example uses calculations to give us a great visualization for flood level predictions. We set the color component so every point below a certain elevation is blue, and every point above takes on the color from the overlaid raster.
14. Filter LiDAR data point-by-point
You can also use calculations to filter your point cloud. For example, we know that road signs are very reflective. (Unless you live in the woods or in one of those cities that doesn’t have any streets – in which case, this is me informing you that road signs are very reflective.) This reflectiveness would be represented in the intensity component of a LiDAR dataset. So if we create a filtering expression around the intensity component, we can extract the road signs.
You can see the road signs highlighted in red, having been extracted from the original point cloud behind it.
The potential for turning your point clouds into advanced and useful datasets is sure to keep growing, and there are certainly more than fourteen ways to work with this data already. What kinds of translations and transformations do you do with your LiDAR data? What do you find the most challenging?

Tiana Warner
Tiana is a Senior Marketing Specialist at Safe Software. Her background in computer programming and creative hobbies led her to be one of the main producers of creative content for Safe Software. Tiana spends her free time writing fantasy novels, riding her horse, and exploring nature with her rescue pup, Joey.
I always found myself looking for a specific tool when working with point clouds…. A tool that would allow you to turn the point cloud over, and sample the high spots. Just a sample that was definitive enough to extract a surface from the highest points, of an inverted point cloud. Just to look past all of the above ground features for a minute, and start from the ground level. At the time when I was working with LiDAR on a daily basis, I never found that tool. Now, a few years later, I wonder if it ever made the way into production….
Hi Dustan,
I am not sure I completely understand what you would like to achieve, but we definitely can invert point clouds very easily – check item #13 above – we can apply expressions to point components and coordinates in a point cloud, so I would just take, say, the max Z of your point cloud and subtract the z value of each point from it – this will give us the inverted point cloud. We will need just one transformer for that.
For sampling the high (or low) spots I would use clipping with a 3D solid (see item #6 above) – but here I am not sure, which approach you would use – would look for local maxes or mins, or just use a certain value for the whole dataset, or something totally different – maybe, if you could explain to me with a little bit more details your scenario, I would be able to say whether (or how) this can be achieved with FME.
Here is the link to a picture with two point clouds – original and inverted (and offset for visibility):
https://dl.dropboxusercontent.com/u/51907218/PC%26InvertedPC.jpg
Feel free to contact me with any question related to point cloud processing with FME.
Best regards,
Dmitri
Dmitri Bagh | Scenario Creation and Testing Analyst
Safe Software Inc.
T 604.501.9985 x 276
dmitri.bagh@safe.com | http://www.fmeusercentral.com | http://www.safe.com
I would like to be able to create a topographical survey from a LiDAR data set, but without having to remove all of the noise, and above ground information. When I would view the under-side of the point cloud, it would be a very clear view of the information. However, in the software I was using at the time (Cyclone) in order to create an accurate surface model you were required to extract the points you wanted to use in the creation of the mesh. Unless is was featureless, this could be very time consuming. I had always imagined a routine that would be able to take all of the busy work out of creating a mesh….
If I were to use this software to accomplish a task much like DEMO 4 could the software also put a point on each sign and have them listed as sign1, sign2, ect so that I could click each one and be sent to the signs location? I need to be able to put a point at each signs location that can be ultimately clicked on to bring up information on the sign (with in a different software)
in the video it was demo 4 on this web page it is example 14
Hi Brandyn,
You can use FME’s PointCloudExpressionEvaluator transformer to add metadata to every point based on a condition (ex. which sign that point belongs to). FME 2014 has greater flexibility with point cloud components, meaning you can certainly add the name of the sign and any other metadata you want shown during inspection. Clicking the point in your destination software will bring up all the information on that sign. As far as being sent to the sign’s location, that capability depends on what software you’re using to inspect the point cloud — but you can certainly identify the location of each point with FME.
If you intend to make a single point at the location of each sign with additional metadata on it, you could use the PointCloudFilter transformer to divide the points into a separate point cloud for each sign. Then you could use the CenterPointReplacer or PointCloudCoercer transformer to get a single point to represent each sign.
I hope that answers your question! Don’t hesitate to contact us if you would like more information.
Sincerely,
Tiana Warner
Any hints on getting lidar into misrostation or Forum 8?
We have gotten small xyz files in microstation the las failed. The xyz had no intensity and looked useless.
We have small lidar road sections in Forum 8 and tried their road building function on the cloud and it failed. Think the cloud is in the wrong format.
Hi David,
The native MicroStation point cloud format is POD, but it can convert LAS files into POD easily with the necessary components. It sounds like something might be wrong with your source data, in which case we can have a look. Are you able to send us a sample? http://fmepedia.safe.com/knowledgeSubmitCase
Thanks,
Tiana
hi,
is this software able to convert to local projection? For example WGS84 to RSO Kertau Malaysia.
thanks
Yes, FME supports over 5000 coordinate systems including the ones you mentioned. Information on working with coordinate systems can be found here: http://docs.safe.com/fme/html/FME_Coordinate_Systems/FME_Coordinate_Systems.htm
Cheers,
Tiana
Hello,
I have point cloud classified already in TeraScann, All points are allocated to one of five class. But now I would like to change class number ex. from 19 to 8. At this moment any point is classified as 8, I would like to ‘move’ all points classified as 19 to class 8.
How can I do it in FME? Can I?
Regards
Pawel
Hi Pawel,
Yes, this is a job for the PointCloudExpressionEvaluator transformer. You’d create a workspace that reads your TerraScan data, then set up that transformer to change the Class based on a formula. For example: “@if(@Component(classification)==19, 8,@Component(classification))” checks if a point’s classification is 19 and if so, changes it to 8.
Hope this helps!
Tiana
It works!
Thanks Tiana,
You are rock! 😉
How about data from Faro 3D software called Scene? File extension is .FLS.
Great article!
However, you have forgotten to mention another possible usage of point clouds.
Nowadays with tools like http://scenemark.com you can put the entire dataset with millions or even billions of points online on your website. Probably, the fastest way to show your data to your customers.
Great site and general info. The topic that should be pressing for point clouds is the noise removal especially “corn rows” these are caused by conflictions of 1.1 to 1.2 standards data formats colliding with 1.4 formats. The noise was labeled as 7 in 1.1 standards and now 1.4 has low and high noise. One would like to see ESRI and others sit down with ASPRS and work out a GIS / LIDAR formatting and transitional formats.
can i classify lidar data using this ? i wonder