Lab 7 - Part 2: More Lidar in ArcGIS Pro
Introduction
This exercise is a continuation of Lab 7 Part 1 - Working with Publicly Available Lidar in ArcGIS Pro. The same lidar dataset of Montgomery Woods will be used and the raster products created in the previous exercise will also be used. This lab exercise will focus on visualizing the lidar derived data products and extracting further information from the lidar data.
About the Data
This data is lidar points clouds data available through the USGS 3D Elevation Program through the National Map. The area of interest is Montgomery Woods State Natural Reserve in Mendocino County. The reserve originated with a nine-acre donation by Robert Orr in 1945 and has since been enlarged to 2,743 acres by purchases and donations from Save the Redwoods League. A 367.5-foot redwood at Montgomery Woods was once thought to be the tallest tree in the world. Taller trees have since been found in Humboldt Redwoods State Park and Redwoods National Park, but Montgomery Woods is still noted for its lofty giants. The lidar data was collected in 2016.
View Data in 3D
- Copy your data from the previous Lab from Z: or Google Drive to your local workstation. Open ArcGIS Pro and open up the previous map project with the Montgomery Woods lidar. At this point that data should be cleaned-up, with points re-classified and raster surface models updated.
- Let's spend some time exploring the 3D viewing options. Click on the existing 3D scene you created in the previous lab exercise or convert an existing 2D scene into a 3D (Local Scene)
- Check out the LASD layer first. In the 3D view you can see all points and pan/move the area around. You can control the display of the LAS points in the 3D map the same as you can in 2D. Play around with the data and navigation. Turn off the LASD layer when you are done looking at it. This will speed up the rendering times.
- Right-click on the Ground element under the Elevation Surfaces group at the bottom of the Content Pane and select Add Elevation Source. Select the DEM, CHM & DSM from the project folder then click OK. Remove the default "WorldElevation3D/Terrain3D" layer.
![](../images/elevation-surface.png)
- Any layer added to the 2D layers group will be draped over the elevation surface. Note that the DEM is the bare ground elevation and terrain, while the DSM includes the elevation of the above ground vegetation in addition to the ground. Turn the two elevation surface layers on and off to see the differences between the two.
![](../images/dem.JPG)
- Now add the Imagery Basemap to your 3D map. This will display a recent satellite or aerial image or the area. Try turning on and off the different layers and experimenting with the display options. Turn on the various height model rasters and see how they look in the 3D scene. For more information on navigating in scenes and linking scenes check out the Navigate maps and scenes in ArcGIS Pro video. Either stay in the 3D scene or return to the 2D scene for the next steps.
Calculate Point Density for Ground and Aboveground Points
The most effective way to determine the canopy density is to divide the study area into small, equal-sized units through rasterization. In each raster cell, you compare the number of above-ground points to the total number of points to estimate the density or cover percentage. The process will create a raster where the values range from 0 to 1, with 0 representing no canopy cover and 1 representing total or 100% cover.
- Ensure the points in the LAS Dataset are filtered to only show the ground points and withheld and noise points are excluded.
Make sure you have also run Step 62-63 of the previous lab and have re-classified the erroneous points.
-
Use the LAS Point Statistics As Raster tool to calculate the ground point count for each cell setting the sampling value at 30.
- Now filter the points so only the medium and high vegetation classes are selected. This will exclude lower ground vegetation from the canopy cover analysis.
- Repeat step 18 for the aboveground points, keeping the cell size the same. When you are done you will have two files showing the pointy density for the ground and aboveground points
Create Model in ArcGIS Pro to calculate the Canopy Density (cover %)
To properly calculate the percent canopy cover, we need to convert any resulting NoData cells to 0 so that subsequent operations treat a cell with no points as 0. This is accomplished using the IsNull geoprocessing tool followed by the Con geoprocessing tool. An easy way to do this is to use the ArcGIS Pro ModelBuilder. The ModelBuilder is used to create, edit, and manage geoprocessing models that automate those tools. Models are workflows that string together sequences of geoprocessing tools, feeding the output of one tool into another tool as input. ModelBuilder can also be considered a visual programming language for building workflows and is very similar to the ENVI Modeler environment.
![](../images/lidar-density.png)
- On the Analysis tab, in the Geoprocessing group, click ModelBuilder. This will launch the ModelBuilder window.
![](../images/modelbuilder.png)
- To add data to your model, drag layers from the map Contents and datasets from the Project into the model. The layers and datasets are added to the model and displayed as input data variables. Add the ground point density (count) ‘gcount.tif’ file to the model by dragging it into the model window.
- To add a geoprocessing tool to your model, ensure the model view is active, then start typing to search for under Tools in the ModelBuilder pane and double-click a tool to add it to the model. Alternatively, you can drag a geoprocessing tool into the model from the Geoprocessing pane or Catalog pane. Add the Is Null tool to the model.
- Connect the point density raster to the Is Null tool setting it as the Input raster for the tool. Next, add the Con tool and connect the output raster from the Is Null tool to the Con tool, selecting it as the Input conditional raster.
![](../images/count-model.png)
- Double click on the Con tool. Under the Expression parameters Where select Value is equal to 1. Set the Input true value to 0. This means that when there are null pixels (identified by a 1 value in the previous tool) they will be converted to 0s and if not (false), they will retain their original value (from the ground point count file).
![](../images/Con-tool-model.png)
- Add parameter to the input (point count raster) by right clicking and selecting Parameter. This will add a parameter input window when you run this model as a geoprocessing tool. Right click again and rename the initial input to a more generic title like Point Density Raster.
- Right click on the final green output file and select Parameter. This will allow you to select the file name and location that the final file will be saved to. Rename the node to a more generic name like Clean Point Density Raster.
![](../images/density-model.jpg)
- Save your model! Save in your project toolbox as Clean Up Point Density (or something similar).
- Even though we “parameterized" the input and output rasters, the model still defaults to using the ground count dataset. This isn't going to make much sense if you share your model or toolbox with other people or use the tool on different datasets. To remove the default dataset, double-click the Point Density input element and delete the path, then click OK. Some of the elements in your model may turn gray. This signifies that a value must be provided before the model can successfully run.
![](../images/delete-gcount.png)
- Roll over each of the elements and check to see if there are any paths or file names listed for the tools. If so, open and delete the path/filename. Save your model.
![Model](../images/final-model.jpg)
- Run your model but run it from the geoprocessing tools or from the toolbox. An input dialog will open and you can specify the files for the input and where/how to save the output file. Run the tool using the ground density raster and again using the aboveground density raster and save the output files (clean ground and abg points) in your raster folder. You will need to upload your toolbox with your model as one of the turn-ins for this lab.
Calculate Cover Model
To calculate the cover or canopy density we need to add the aboveground and bare earth rasters together to get a total count per cell using the Plus geoprocessing tool to get the total points (ground + vegetation above 6ft). Note that all the count rasters you've made so far are long data types. You need one raster to be floating point to get floating-point output from the Divide geoprocessing tool that you will use. To generate a float raster, use the output raster from the Plus geoprocessing tool as input to the Float geoprocessing tool. Then finally we will use the Divide geoprocessing tool to compare the aboveground count raster and the floating-point total count raster. This gives you the ratio from 0.0 to 1.0, where 0.0 represents no canopy and 1.0 very dense canopy.
- Add the “LidarTool.txb” (provided with in the lab data folder) toolbox to your project by selecting Toolbox under the Insert tab in the main tool ribbon.
- In the catalog pane locate the toolbox. There should be one tool in the toolbox entitled Canopy Cover. Right click on the Canopy Cover model and select open.
- This model has been created to simplify the process of calculating the cover. Notice that all the various nodes are gray instead of colored. This means that the data has not been specified in the model and the user will be prompted to select appropriate input files and where/how to save the output files when the tool is run.
- Run the Canopy Cover tool through the geoprocessing pane or Catalog pane. Select the appropriate ground and above ground rasters for the inputs and save the file as canopy.tif in your rasters folder.
- When the process is complete you should have a file in your map that represents the canopy density, with 1 being 100% cover and 0 indicating no cover.
Locate the Trees Greater than 350ft Tall
- Use the Raster Calculator to locate the trees with canopies greater than 350 feet tall. Use your final cleaned up CHM layer in the raster calculator expression. The result should be a binary raster, with ‘1‘ values indicating canopy greater than 350 ft.
![](../images/raster-calc.png)
- Open the Attribute Table for the “talltrees” layer you just created and select the row containing the “1” values. The pixels with 1 values should now be highlighted light blue on the map. You could also use the Select by Attribute function to select the pixels where the value field is equal to 1.
![](../images/selectbyattribute.png)
- Take a look at the results and compare the pixels to the canopy height model. Notice that the pixels are grouped together and several pixels represent an individual tree. Now we will create polygons from these selected pixels so each group of pixels is grouped together into a single polygon. Run the Raster to Polygon tool to accomplish this. Select the “talltrees” as the input file from the drop down. Field should be set to Value and save the polygon as tree-polygon.shp and run the tool.
![](../images/raster-polygon.png)
- Now we have a shapefile with polygons showing the locations of the tallest tree canopies. For visualization and mapping purposes we will also create a point shapefile showing the locations of the tallest trees. To do this run the Feature To Point tool. Select the tree polygons as the input feature and name the outpost feature class as tree-points.shp and run the tool.
- We now have the locations of the tallest trees. Review your final locations and cleaned-up tree-points layer removing any erroneous or duplicate points. If you make any edits you will need to save your edits (under the Edit tab in the main toolbar) before completing the last steps.
- Create a slope layer from the DEM file using the Slope geoprocessing tool or using the Raster Function
- The Extract Multi Values to Points tool extracts pixel values at point feature location from one or more rasters and records the values to the attribute table of the point feature class. Under input rasters add the canopy height, elevation (dem) and slope value. Then run the tool.
![](../images/multuvalues.png)
- You should now have a point feature layer that includes the elevation, height and slope attributes of the locations of the tallest trees. Open the attribute table for the point layer.
- Now we will add the coordinates of the points to the attribute table. Run the Calculate Geometry Attributes geoprocessing tool. Select the tree-points layer as the input feature. We will add two new fields for the latitude and longitude (see below). The latitude is the y coordinate and longitude the x-coordinate. Select Decimal Degrees as the coordinate format and Current Map for the coordinate system and run the tool. Now the coordinates have been added to the attribute table. Copy the information from the attribution into a spreadsheet.
Find the Highest and Lowest Elevation
- Using some of the same above methodology find the lowest and highest ground elevation areas in the reserve and create a point feature that shows the locations. Consider using the Raster to Point Conversion tool rather than the Raster to Polygon to simplify the process.
Create Hillshades and Maps
-
Create hillshades for the CHM, DEM and DSM. You can either use the Raster Functions tool to generate a hillshade on the fly (no file is saved) or use the Hillshade geoprocessing tool to save a hillshade for each layer. These will be used to create the final maps.
- Create three maps, one showing the canopy cover percent, one with the canopy height model and one showing the elevation. All maps should use the appropriate hillshades to provide relief shading, the maps may be 2D or 3D. The elevation map should display the bare earth terrain, elevation color ramp and the low and high elevation location. For the canopy height map use either the DMS or CHM hillshade, the canopy height in color and optionally the locations of the tallest trees.
Turn In