Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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 in stead 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?

share|improve this question
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. – Ryan Garnett Nov 21 '13 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 Nov 21 '13 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? – Ryan Garnett Nov 21 '13 at 19:00
LAS classes can be determined based on format version. – Barbarossa Nov 21 '13 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:… – Jeffrey Evans Nov 21 '13 at 19:21

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

share|improve this answer
You learn something new everyday – If you do not know- just GIS Dec 22 '15 at 18:32

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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