Extracting Trees from LiDAR and derived DSM

07-28-2017 04:48 AM
New Contributor

Hi everyone,

I'm relatively new to the ArcGIS game and am currently doing a masters project trying to extract trees in order to identify changes in the carbon storage of urban forests over time using LiDAR data. In order to eliminate small vegetation from the derived normalised DSM, I have applied a conditional function that has removed pixels <3m.

The issue I am having is that I cannot find a way to differentiate between trees and buildings in the resulting raster layer. Unfortunately, the class codes have been incorrectly assigned in the original LAS data meaning that everything has been classified as vegetation so I couldn't use the codes to extract vegetation. 

Are there any other methods of extracting vegetation using just LiDAR data or DSMs? Any help would be much appreciated!



0 Kudos
8 Replies
Frequent Contributor

Have a look at this blog, should help get you started.


Also, does your .las files have intensity values?  That is another way to help distinguish rooftops from natural features.(i.e. trees).

Esri Esteemed Contributor

There is also in ArcGIS Pro the  Classify LAS Building—Help | ArcGIS Desktop  tool to classify buildings.  You could extract the points that remain unclassified (and which are no ground, see Classify LAS Ground—Help | ArcGIS Desktop ) and apply the Classify LAS By Height—Help | ArcGIS Desktop to classify the trees (assuming you don't have electric transmission tower and other objects).

Esri Esteemed Contributor

In addition there is a toolbox called 3D Sample Tools (see https://www.arcgis.com/home/item.html?id=fe221371b77940749ff96e90f2de3d10 ) that I have used to extract trees from LiDAR data and I used that to create a 3D representation of the trees for the 3D distance to overhead power lines. See blog post here:


New Contributor II

This is an awesome toolset!!! Thank you!

0 Kudos
New Contributor

Thanks for the quick response! I've been able to classify the buildings and ground with the first two tools you mentioned. Following that, how would I extract only the points that remain unclassified in order to run the "Classify LAS By Height" tool? 

0 Kudos
Esri Esteemed Contributor

The tool will only consider the class code 0 and 1 (Never classified and Unclassified):

0 Kudos
Esri Contributor

Hello Jonny,

This is the writer of the blog that Ian Murray referenced and developer of the tool to extract tree points.  If you are trying to get volume of trees, I would focus on using the Z-Range method option of the LAS Point Statistics As Raster.   Here's the link for it:



This will create a DEM showing the distance between first and last return, it's what I use in the tool Ian mentioned.  

Tree Volume.  

So the area between the red and the light blue I think is what you are trying to get.      Once you create the Z-Range using LAS Point Statistics as Raster, you will need to remap the say -100 to 8 foot as no data.  The red and dark blue line shows what will be 0 or no data in the raster using LAS Point Statistics as Raster with Z-Range method.   This will give you that area as a raster, then you can use the Surface Volume tool with the plane height set to 0.


Hope this helps,

Arthur Crawford - Esri

New Contributor

Hey Arthur,

I need to estimate trees per acre of an area that I have Lidar data on. I've downloaded your toolbox (Trees From LiDAR) but when I try to open it, I get an error message saying "The tool is not licensed". I have all the necessary licenses and I use ArcGIS Pro 2.7. I don't need to visualize the trees, but only estimate the number of trees per acre. Is this tool appropriated for this task? Any other suggestion on a workflow to accomplish this? 

Thank you very much!

0 Kudos