I have created a DEM, DSM, and nDSM from a LiDAR Point Cloud using SAGA-GIS. I extracted the appropriate returns from the point cloud, then converted to grid, and then closed gaps to fill in any nodata regions.

I'm finding that my resultant rasters are still pretty noisy. For example, a region of pixels in the DSM that is obviously a tree or cluster of trees has several pixels with a very similar value to ground instead of the surrounding higher value pixels.

I've tried doing a majority filter on the DSM, but it didn't help.

Any suggestions for other filters that might help create more contiguous regions of pixels?

  • Have you performed any classifications on the LiDAR point cloud? What is what we do first. Then we produce the DEM/DSM after the point cloud classification. Commented Nov 21, 2013 at 18:25
  • @RyanGarnett - Unfortunately, we received the Point Cloud from a client without any metadata. There is a classification attribute that has data in it, but I have no idea what the numbers mean. I can't say I've ever done any LiDAR classification personally.
    – Brian
    Commented Nov 21, 2013 at 18:56
  • I myself am not a LiDAR expert, but I do know some. Can you do some "intelligent" analysis on the values to get an idea on the metadata values? If that doesn't turn out to be useful, maybe try doing filtering with polygon masks? Commented Nov 21, 2013 at 19:00
  • LAS classes can be determined based on format version.
    – Barbarossa
    Commented Nov 21, 2013 at 19:20
  • I would imagine that the vendor followed LAS standards in assigning their classification values. In LAS v1.3 the values are 0-1) not classified, 2) ground, 3) low vegetation, 4) med veg, 5) high veg, 6) building, 7) low point (noise), 8) Model Keypoint (mass point), 9) Water, 10-11) ASPRS reserved, 12) Overlap, 13-31) ASPRS reserved. Values vary by LAS version. Here are the standards for each version: asprs.org/Committee-General/… Commented Nov 21, 2013 at 19:21

2 Answers 2


I got good results with mDenoise. This tool uses the Sun's denoising algorithm which removes noise without filtering sharp edges like ridges or peaks. Good for mountainous areas especially high mountains.

You can define the threshold and the number of iterations. You have to try something around to get the best result.

Before denoising ASTER GDEM2: enter image description here

After denoising ASTER GDEM2 (60 iterations [-n], threshold 0,98 [-t] ): enter image description here


An option consists using the CanopyModel tool available from Fusion. According to the manual:

CanopyModel creates a canopy surface model using a LIDAR point cloud. By default, the algorithm used by CanopyModel assigns the elevation of the highest return within each grid cell to the grid cell center.

Two approaches to de-noise the DSM are:

  1. To use switches that smooths the DSM surface, such as the median filter (median:#) and the mean filter (smooth:#).
  2. To play with the cellsize argument. The higher it is, the lesser are chances of getting holes in the DSM. As a trade-off, the DSM will lose resolution.

The CanopyModel syntax is:

CanopyModel [switches] surfacefile cellsize xyunits zunits coordsys zone horizdatum vertdatum datafile1 datafile2 …

To build a Canopy Height Model (nDSM) use the switch ground:with the corresponding bare-earth DEM.

Your Answer

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

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