Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I'm searching for algorithms or open source tools I could use to detect breaklines from a LIDAR dataset; more specifically, from the terrain points of the dataset. At the moment the only thing I've found are some articles based on edge detection for buildings and roads.

I suppose there are some algorithms based on point clouds, or maybe even for digital elevation models I could use.

Any suggestion would be highly appreciated.

share|improve this question

1 Answer 1

I'm reformulating this answer to a more suitable approach than the previous version.

A possible solution would consist of three steps:

  1. Generate a high resolution bare-earth model DEM. Refer to this thread for further advice.
  2. Extract slope information from the DEM. Tweak the pixel size to assign slope values according to type of breaklines in the study area. For example, if the breaklines occur within narrow spots, choose a smaller cell size to detect them.
  3. Filter pixels or coordinates with slope information higher than a certain threshold (e.g. higher than 40 degrees).

The program command GridMetrics available in Fusion/LTK allows the extraction of topographic metrics, when it is used together with the switch topo. See below GridMetrics syntax:

GridMetrics /topo:dist,lat groundfile heightbreak cellsize outputfile datafile

Explanation of GridMetrics' arguments:

  • Gridmetrics is the program command itself (a .exe file),

  • The switch topo admits two arguments. According to Fusion's manual:

Compute topographic metrics using the groundfile(s) and output them in a separate file. Distance is the cell size for the 3 by 3 cell analysis area and lat is the latitude (+north, -south).

  • groundfile is the bare-earth DEM (a .dtm1 file).

1 If the bare-earth model is available with extension .asc convert it to .dtm using the ASCII2DTM tool.

  • heightbreak and cellsize are arguments used to compute non topographic metrics (not important in this context).
  • outputfile is the file where there will be the slope information (a .csv file which can be further converted to ASCII raster format).
  • datafile is the LiDAR cloud (a .las file).

Example:

This is how I wrote the GridMetrics command on my computer to generate slope information (with 10 meter resolution) from a lidar cloud provided as example by Fusion.

c:\Fusion\GridMetrics /topo:10,+north C:\LIDAR\Fusion_example_data\4800K_ground_surface.dtm 2 10 C:\LIDAR\Fusion_example_data\4800K_topometrics.csv C:\LIDAR\Fusion_example_data\lda_4800K_data.las

This is how the outputfile file looks like:

enter image description here

Then, I used the CSV2GRID command to convert the slope column (the 6th column) values into and .asc file format.

c:\Fusion\CSV2GRID C:\LIDAR\Fusion_example_data\4800K_topometrics_topo_metrics.csv 6 C:\LIDAR\Fusion_example_data\4800K_topometrics.asc

This is the resulted slope map (4800K_topometrics.asc) with degrees as the measurement unit.

enter image description here

Now, to detect the breaklines one would need to establish a slope threshold that bests suits the study, and clip such pixels.

In the upper left corner of our map there are the higher slopes observed (> 40 degrees). See the pictures below, which illustrate that area.

enter image description here

This would be the most closer we'd get from a breakline in this scene.

enter image description here

share|improve this answer

Your Answer

 
discard

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.