I'm reformulating this answer to a more suitable approach than the previous version.
A possible solution would consist of three steps:
- Generate a high resolution bare-earth model DEM. Refer to this thread for further advice.
- 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.
- 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).
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:
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.
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.
This would be the most closer we'd get from a breakline in this scene.