Data is one of the five levers to improve your geospatial performance. Although acquisition costs can be relatively prohibitive, Lidar data is becoming an increasingly affordable and viable option for GIS managers. This post will show how you can use this type of data to model 3D buildings with FME.

  • But why did we choose this specific example? For three reasons:
  • With climate change, GIS specialists are increasingly often being asked to simulate events such as flooding and fires.
  • A 3D visual can help both decision makers and the public to fully understand the impact of urban planning decisions.

As a GIS manager, you don’t always have the time to do that!

Although the ArcGIS suite has Lidar data management tools, we believe that FME makes more sense to simplify processing, add value to data and facilitate automation when processing large amounts of data.

For the example in this post, we used a set of open data for a particular area on the island of Montreal. More specifically, we downloaded:

Are you ready to take action and model your territory so you can fully satisfy the requirements of your colleagues, managers and residents? Just follow these four simple steps.

1. Integrate your LiDAR data

Once you’ve downloaded the data, it’s time to integrate them into FME and view them using the Inspector tool. FME will then associate a Lidar point cloud with specific components for each point, so you will be able to both access the attribute information of an element and view the cloud as a whole.

Inspector illustration based on a Lidar data tile.

2. Filter your data

After validating the consistency and structure of your source data, FME will let you filter them using several transformers. With PointCloudFilter, for instance, you can access point components and filter them according to what you need. To model your buildings, you’re going to want to separate the points by classification (ground, buildings, etc.). The illustration below represents the sequence of steps you’ll need to follow to achieve this result.

At this point, you need to associate the ground level elevation with the building footprints using ground class points to generate a homogeneous surface in raster format. A great transformer to use for this process is SurfaceModeller, which will generate a digital terrain model based on a configurable triangulation algorithm.

Raster illustration generated with our polygons representing building footprints.


3. Process your raster data

With this raster, you now have everything you need to associate its ground elevation with the polygons representing the outlines of the buildings. This is where the SurfaceDraper and BoundsExtractor transformers come in. At this point in the processing, you will have associations between the elevation of the digital terrain model and each of the nodes of the polygons. A final step will “force” the polygons to integrate an elevation (Z) component with 3DForcer.

Now that the elevation at ground level has been extracted and associated with each of the building footprints, you need to obtain your building roof elevations. To do this, select the Lidar points inside the building polygons. Just as you would for 2D data, you will now use the Clipper to split the Lidar tile into several objects, following the outlines of each of the buildings.

This is when you’ll be extracting the roof elevations. Using PointCloudStatisticsCalculator, select the maximum building elevation:

4. Extrude your buildings

If you have followed the previous steps correctly, you’re all set for the final step: the 3D extrusion of the buildings. You can now merge the elevation information with the building footprints using FeatureMerger.

Next, you can use Extruder and watch as the magic happens!

The images above show the representation of the extruded polygons in two different visualization tools, FME Inspector and QGIS. Keep in mind that this model was created with a series of processes developed in under an hour. Obviously, the result is not exactly true to reality because, for example, we are just using rough models of our building roofs.

This kind of modelling may be good enough for certain uses, or it could also be fine-tuned for clients with more specific requirements. We are obviously not trying to give you an optimal, foolproof method in this blog post; our goal is to showcase FME’s versatility in processing Lidar data and help you come up with new ideas.


Trying to get the best out of your LiDAR data?