Monday, November 29, 2010

Auto-classifying LiDAR points as ground returns with MCC-LIDAR

I tried out this free C++ program MCC-LIDAR downloadable from one of the SourceForge project sites. It is designed to classify LiDAR data points in LAS format as ground using the Multiscale Curvature Classification algorithm - hence the name MCC-LIDAR. Although the program is still in release candidate status, I found the output classification result to be surprisingly good, as shown in the sample shaded relief of the bare-earth surface screenshots below.

The program is a batch executable, meant to be executed from the Command Prompt. One of the difficult thing in using MCC-LIDAR is determining the two required numbers for the program - the scale (-s) and the curvature (-t) parameters.

Determining the scale parameter
For my sample LAS file, the way I went about it was to calculate the average point density for all returns, e.g. 1.107 points per square meter. Then invert the number and get the square root to get an initial scale parameter.
S = SQRT(1/1.107)= 1
You may have to vary the scale parameter number up or down by 0.1 and run the classification a few times to see which number gives the best result for the LAS dataset. In my test file, the best value was 2.0.

Determining the curvature parameter
I started out with 0.3 as my terrain seems relatively flat. I presume I would need a higher value if my terrain is more rolling. As before, it may be necessary to vary this number and examine the results for the best value. In my case, 0.3 was the best.

Running the classification
At the Windows Command Prompt, type in the following:
C:\>"\Program Files\MCC-LIDAR 1.0rc2\bin\mcc-lidar.exe" -s 2.0 -t 0.3 input.las output.las

Processing messages will appear... and the output LAS file is eventually created.

The profile view of the output classified LAS file is shown below. Note the classified ground points in purple.
And compare the screenshots below of the Digital Surface Model (DSM) with the classified results at the top of this page. They look almost as good as any output from any commercial program.

However, the MCC-LIDAR program can only classify ground points. It currently does not do anything to the non-ground points - it just retains the original point classifications; if it was Unclassified in the source LAS file, it will still be Unclassified in the output LAS file. It would be more useful it this program can classify the vegetation points as Low Vegetation class.


  1. Hey,

    Which software did you use for viewing this classified las files?


  2. Hi Stavbic,
    it was FugroViewer from Fugro.

  3. Hi,

    For me the binary crashes before the output file is created.

    I am doing this on Windows 7

    Any suggestions?

  4. Hi
    Ehat software did you use to show the bare-earth surface shots?

  5. This comment has been removed by a blog administrator.

  6. Sajad, FugroViewer was the software used.