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.

Thursday, November 25, 2010

Shift an entire layer with Global Mapper

Sometimes I have to provide sample geospatial data to vendors for product testing or for troubleshooting software problems. But I do not want to give them the actual location of the data, in which case I have to move the data away from the actual geographic location. Global Mapper provides a simple layer shift command to do this but it is hidden away in a pop up menu some where. To do this, do the following:

  1. Start up Global Mapper. Open up the file for shifting.

  2. If the Overlay Control Center is not displayed, press ALT+c.

    The Overlay Control Center is displayed.

  3. In the Overlay Control Center list box, mouse right click on the layer to shift.

    A pop up menu appears.

  4. Choose Shift Selected Layer(s) a Fixed Distance.

    The Specify Offset to Apply to Point(s) dialog box appears.

  5. In the X/Longitude Offset field, type in the horizontal offset, e.g. 1000.
  6. In the Y/Latitude Offset field, type in the vertical offset, e.g. 2000.
  7. Click OK.

    The layer is shifted.
  8. Save the layer. 

Monday, November 22, 2010

Monitor New Zealand Earthquakes with this Google Gadget

This gadget will allow you to subscribe to the New Zealand GeoNet real-time earthquake rss feed. It shows the latest earthquakes as color coded (by depth and age) icons with tool tips on a Google Maps backdrop - the older the earthquake, the more transparent the icon will look.

The gadget has a list tab which displays the earthquake information as a text list with hyperlinks for more details - the list can be sorted by the earthquake magnitude, depth as well as the date-time. Using the list, you can easily find and locate the largest, the latest or the deepest earthquakes.

You can leave this gadget on the screen and it will update itself as it receives the latest feed. Upon receiving the data, it will automatically zoom to the latest earthquake epicenter. Clicking on an earthquake icon will bring up more information about the earthquake from the GeoNet site.

Monday, November 15, 2010

A Google Gadget for monitoring natural disasters

You can use this gadget to monitor natural disasters around the world as published by the Global Disaster Alert and Coordination System (

It shows the latest natural disasters like earthquakes, volcano eruptions, tropical cyclones, and floods as color coded icons with tool tips on a Google Maps backdrop; the icon colors indicate the alert level - green, orange, and red. The icon will look more transparent the older the event was published.

There is also a list view which can be used to sort the natural disaster events according to the date/time, region, and disaster type. Clicking on the icon will bring up more details about the disaster event.

Monday, November 8, 2010

Global Mapper 12's new Generate Watershed function

Global Mapper 12 was just recently released. A major enhancement was the inclusion of a terrain watershed creation function - the Generate Watershed command. I thought of trying out generating some drainage lines and basins on real LiDAR data. An example of the result is shown below.

Here are the steps I took to generate the watershed data.
  1. Start up Global Mapper 12 and load in a digital elevation model as shown below.

  2. Select File | Generate Watershed.

    The Watershed Generation Options dialog box appears.

  3. Change the X axis and Y axis Resolution if necessary.
  4. In the Depression Fill Depth field, type in a maximum depth value e.g. 1.

    Note: to turn off depression filling, enter 0.
  5. Click OK.

    Processing messages appear.

  6. If you want to generate the watershed basin polygons, then toggle on Create Watershed Areas Showing Drainage to Streams in the Watershed Generation Options dialog box. 

Monday, November 1, 2010

Split an area polygon with Global Mapper

Global Mapper has a rich set of editing tools but most of them are hidden away in pop up menus depending on the context. One of them is the Split Selected Area(s) at Selected Vertices command. As the name suggests, you can use this command to split one or more polygons. Here's how to use it.
  1. Start up Global Mapper. Either load in a polygon vector file or digitize a polygon such as the one shown below.

  2. By default, the vector vertices are not shown. Press SHIFT+v to display the vertices.

  3. Press ALT+d or click the Digitizer Tool  icon.

    The cursor changes to a cross hair with the label Edit.
  4. Press down CTRL and select the two vertices at the locations where you want to split.

    The selected vertices are highlighted in red.

  5. Now press the right mouse button.

    A pop up menu appears.

  6. Choose Split Selected Area(s) at Selected Vertices.

    The polygon is split into two parts.