Generating LiDAR Raster Surface Model

This video will walk you through the process of generating LIDAR surface models from point cloud data using ArcGIS. One of the confusing things about ArcGIS is that LAS files do not show up automatically in our catalog. So under Customize, Arc Catalog Options, we can go into the files type, and we can add the ability to view LAS files within our catalog.

In the file type window, simply enter the file extension. You don't need the dot before LAS. Give a description, and then finally, choose one of the fancy icons you have in your Windows System folder. Simply refresh your view in Arc Catalog, and now you'll be able to see your LAS files alongside your other geospatial data sets.

If you want to work with LIDAR data in LAS format within ArcGIS, you first have to create an Esri LAS Dataset container. To do this, just go to File, New, and choose LAS Dataset. Here, I've created a new LAS dataset, and I'm just going to rename it LAS Dataset.

Now that you've created the LAS dataset container, you'll want to add LAS files. But before you do that, go into the LAS dataset Properties, and check the box for Store Relative Path Names. This will allow you to move your LAS dataset and associated LAS files to different locations without worrying about breaking the path names. Now click on the LAS Files tab, click on the Add File button, and browse to the location of your LAS file. In this particular example, I've just got one LAS file called PointCloud, so I'll go ahead and add that to my LAS dataset.

Now let's do some data exploration by moving over to the Statistics tab. Statistics are not calculated automatically, so I need to calculate them by clicking on the Calculate button. Once the process is finished running, you can see that I have information on the returns, the attributes, the classification codes, and the classification flags.

This type of information is going to be really important for me as I seek to make various LIDAR surface models from the single LIDAR PointCloud dataset. What's great about this LIDAR dataset is that the contractor classified ground points, meaning that we'll be able to generate a digital elevation model that strips away above-ground features like trees and buildings. Finally, it's a good idea to confirm our coordinate system so we know what units we're working with.

Now that we've populated our last dataset, we can move over to ArcMap and visualize our LIDAR data. To begin, I'm going to load in some imagery as a reference, and then I'm going to load in the last dataset. By default, ArcGIS will display the points according to their elevation, but don't be alarmed if you don't see the points when you're zoomed out. Due to limitations of ArcMap, you'll only see a red extent rectangle. But when you zoom in, the points will be displayed.

To most effectively work with your LAS dataset, you'll want to make use of the LAS Dataset toolbar. So I'm going to right-click in the gray space above my other toolbars, and access the LAS Dataset toolbar. It's easy to adjust the symbology for the PointCloud. In addition to colorizing the points by elevation, we can also colorize them by Class or Return number.

The Profile Tool is one of the best ways to develop a deeper understanding of your LIDAR PointCloud data. You can access it from the LAS dataset by simply clicking on the LAS Dataset profile view icon. Then, you're going to draw a line, click, and define a rectangle.

This launches the Profile View window. The Profile View allows you to view your LIDAR PointCloud data on a horizontal plane. You can zoom in to specific locations. In this case, I've located a building along with some adjacent trees.

Now I can change the symbology from the LAS Dataset toolbar, and then if I click on the Refresh button in the Profile View, it's updated in the Profile View window. I'm making adjustments to the symbology to better understand the classification and return numbers in my LIDAR dataset. I've concluded that we have enough information to generate both ground and above-ground surface models using this PointCloud data.

I first want to create a raster surface model that consists of only the ground returns. This is sometimes called the DEM, or Digital Elevation Model. To do this, I'm going to have to create a LAS Dataset Layer file. A LAS Dataset Layer file can contain only a subset of a LAS points, so I'm going to use the Make LAS Dataset Layer tool.

The input is going to be my LAS dataset. I'm going to give a name for the output layer. So this is not a new file, it's just a layer file within my ArcMap document. And then, I'm going to make some selections.

The first thing I'm going to do is choose my class codes. I'm going to choose class 2, which if you recall, corresponds to the ground returns. I'm going to keep all return values, and simply click OK. But notice that a new layer file appears in my ArcMap table of contents called Ground. These are the points only corresponding to the ground returns.

To create a raster surface model from these ground returns, I'm going to have to use a geoprocessing tool. Under Conversion Tools, To Raster. I'm going to run the LAS data to Raster tool. The Input LAS Dataset's going to be that ground return layer that I just created.

I'm going to create an output raster, and I'm going to call it DEM, short for Digital Elevation Model. I'm going to add the .IMG extension to put it in the ERDAS IMAGINE format. ERDAS IMAGINE format is a great format for large rasters.

I want the value field to be elevation. This means that each pixel value will have the elevation value, but I'm going to change the interpolation method to triangulation. It's been my experience the natural neighbor interpolation method works best.

Now as we scroll down to the bottom here, you can see the output data type is FLOAT is fine, but I want to change my sampling conditions. I want to make my sample value, which is my cell size specified by the sampling type, to be 1.5. This is a little bit coarser than the points spacing from the dataset but it'll make my dataset a little bit more manageable in terms of the size. I'm going to click OK, and this will start the raster generation process.

So while this is running, we'll do a quick recap of what we just did. We created a layer file with only the ground points, and then we fed that into a rasterization tool. We're creating a new raster in which each pixel is going to have an elevation based on the ground returns, and it's going to have a resolution of 1.5 meters.

Now that we have our new raster data set called DEM, short for Digital Elevation Model, we probably want to go in and change the symbology, and apply a nice color ramp to make it easier to interpret. Hillshade layers can really improve our ability to understand elevation data, so we'll create a hillshade layer using the Image Analysis functions. We can open those under Windows, Image Analysis. This displays the Image Analysis toolbar.

First, I'm going to select the raster that I want to process, the DEM. And then under Processing, I'm going to go down to the hillshade function, and choose the appropriate color ramp. I'm just going to use gray here. And then I'm going to click on that shaded relief button. This generates a virtual hillshade layer on the fly so instantaneously.

Now, I'm going to slide that down below my DEM layer. I'm going to select both of them, create a new Group layer. And then finally, I'm going to go into the properties of that DEM layer, and adjust the transparency to around 35% so that the hillshade layer appears underneath it. Using the Digital Elevation Model, we're able to clearly make out topographic features such as the small stream here that would otherwise be difficult to detect using imagery alone.

Our first step in creating a surface model that represents above-ground features is to create a new LAS dataset layer consisting of only the first returns. Once we have the first returned LAS layer, we can go into our Geo Processing Results tab, and open up the LAS Dataset to Raster tool that we ran to create the DEM. This ensures that we use the exact same settings.

We simply replace the Input LAS Dataset, and change the name of the output raster. We'll call it DSM, for Digital Surface Model, and then click down, confirm all the other settings have remained unchanged, and then click OK to generate the raster model. Once we have our new raster surface model, DSM-- or Digital Surface Model-- just as before, we'll adjust the symbology by applying a nice color ramp, and then use the Image Analysis tools to generate a virtual hillshade layer to improve the interoperability of this raster dataset.

A Digital Surface Model not only includes elevation for the entire terrain, but also the features that are above the ground surface, such as buildings, trees, and utility lines. Thus, it's the type of layer you want to use for analyses, such as line of sight. However, it's not particularly useful for measuring the height of individual features, and that's because it does not have the height relative to the ground. In order to do this, we'll need to create something called a NDSM, or Normalized Digital Surface Model. You'll notice that in our DSM that we have here, there's a bit of an elevation gradient as we move from the left side of the screen to the right, meaning that elevation is increasing from west to east.

Once we have our DSM and DEM raster models, it's very easy to generate the NDSM, or Normalized Digital Surface Model. We'll simply enter an expression into the raster calculator. We'll take the DSM, and subtract the DEM. The end product is going to be a new raster that has the pixel values with the elevation above ground. We'll navigate to the output raster dialogue, and call this new raster NDSM, and give it the .IMG extension.

Just as we did with our other raster surface models, we'll go in and adjust the symbology. Because this raster represents the height above ground, it's likely you'll want to adjust the stretch type to a min-max. Furthermore, you'll probably want to edit the high-low values. You often get some spurious values, so it's a good idea to start at 0. And then, to enter some cut off point for your vertical threshold.

We're not going to bother generating a new hillshade for the NDSM. We'll use the hillshade from the DSM, because from a visual analysis standpoint, it'll work just fine. So we'll simply copy and paste it, and rearrange the NDSM so it's over the copy of the hillshade DSM layer, and then adjust the transparency accordingly. With the NDSM enabled, we can use the Identify tool to get the heights of some of these buildings. The heights return are in meters because that's the vertical units used for the LIDAR dataset.

In this video, we showed you how to use ArcGIS to generate LIDAR surface models. We used the ground returns in the LAS file to produce a DEM, or Digital Elevation Model. We used the first returns to produce a DSM, or a Digital Surface Model. And then, we took the DSM, subtracted the DEM to creating an NDSM, Normalized Digital Surface model, in which each pixel represents the height above ground.