I created very high dense point cloud of some forest plots using terrestrial laser scanner. Then removed points above 1.3 meter to see the coarse woody debris (Fallen dead trees). Attached is the shaded DEM of the sample plot with coarse woody debris inside red ellipse.

enter image description here

Plot also consists of small trees, part of the stems of trees below 1.3 meter, ground and small rocks. From the image woody debris is discernible with its continuous shape. I am looking for the tool to extract woody debris from this image. Arcmap, Envi or any open source software would be perfect, and I also have basic Python knowledge if coding is helpful.

  • 2
    Is your LiDAR classified? Automatic ground/nonground would help here. Automatic algorithms should classify your fallen debris as buildings (above ground with no ground points under), you could try converting your building class (or low/medium veg class) to a TIN with Esri and convert the TIN to triangle resources.arcgis.com/en/help/main/10.1/index.html#//…, delete really long sided triangles (python required), dissolve and ignore small ones. All of these metrics will require experimentation and probably some manual checking to remove aberrations. Dec 17, 2018 at 0:19
  • Thank you @ Michael Stimson. I have ground and vegetation classified, but I will try building classification to see if it can detect woody debris. TIN method sounds like more manual work which may not be ideal for my case as I have 96 1 hectare plots.
    – Sher
    Dec 17, 2018 at 0:31
  • Tinning and decimating should reduce the number of areas to inspect by omitting anything that is too small to be considered contiguous but from experience there will be a small number of areas that appear to be contiguous but are not.. contiguity is easily detected by the eye but not so easy to detect by algorithm; machine learning may be of help but I have no experience in this field to persuade/dissuade you from this course of action. Personally I wouldn't rely solely on a software process without verifying the results. Dec 17, 2018 at 0:45
  • 1
    I'm not sure if this has been done before. I would attempt to use a fully convolutional network that does image segmentation such as a U-net: deeplearning.net/tutorial/unet.html.
    – Aaron
    Jan 11, 2019 at 13:52
  • 1
    Can you post an example image without the red ellipse?
    – BERA
    Aug 15, 2019 at 5:40

1 Answer 1


To add to what has been said by Michael, I would recommend computing the surface roughness of your DEM using the Rumple index or a simliar metric. You can also perform the roughness estimate on the point cloud itself as long as the ground points have been classified.

You may be able to classify the type of debris you are interested in based on the roughness values alone, but you will also be able to compare how the roughness of the DEM and the point cloud compare to one another. This can help you verify the validity of your DEM as well as the locations of your coarse woody debris.

Here is a link to a package that can compute the rumple index in R: https://rdrr.io/cran/lidR/man/rumple_index.html

And here is a python program that does something similar albeit statistically different: https://github.com/BodoBookhagen/PC_geomorph_roughness


To visualize the roughness of your DEM as a raster layer, use gdal function gdaldem to create roughness and terrain ruggedness maps.

gdaldem roughness path/to/dem.tif path/to/output.tif [-compute_edges] 

gdaldem TRI path/to/dem.tif path/to/output.tif [-compute_edges] 

  • Thank you @Gory G. Rumple index function in R returning only one index for whole plot, I was expecting grid map of roughness index. las <- readLAS('a-4.las') chm = grid_canopy(las,0.1,p2r()) roughness = rumple_index(chm) Could you please let me know how do I change a code to make a roughness index map?
    – Sher
    Aug 19, 2019 at 3:08
  • 1
    @Sher To make the roughness map you may want to use GDAL. There is a function called "gdaldem" that will do this for you in one line of code. You can also make a terrain ruggedness index (TRI) raster using your DEM as the input. I'll add the code onto my response above.
    – Kartograaf
    Aug 19, 2019 at 16:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.