User Tools

Site Tools


nsw_lidar

This is an old revision of the document!


Page for documenting NSW lidar processing

Intro

NSW Spatial Services have undertaken a program to map all of NSW using lidar (light detecting and ranging) For details, see information on their elevation program.

Elevation data can best be accessed through the Geoscience Australia ELVIS program, and then processed with a GIS such as QGIS to create useful topographic maps.

Resources

Topographic maps

There are several primary data items for topographic maps that can be generated using the DEM data from the NSW Lidar. The main ones are:

  • Contours
  • Hydrology (Stream Network)
  • Clifflines

The steps below are works in progress to determine effective (the best?) ways to extract the various items out of the DEM data for use in topographic maps. Any feedback/suggestions of improvements are welcome.

Contours

Hydrology (Stream Network)

Fill Sinks

From the initial DEM, first step is to Fill Sinks. There are various related tools that will do this, including:

  • Fill Sinks
  • Fill Sinks (Wang and Liu)
  • Fill Sinks XXL (Wang and Liu)

Catchment Areas

Next is to create Catchment Areas. Again, there is a Catchment Area tool (in fact several), and six options within the tool. For the purpose of delineating watercourses in steep terrain, the choice of option probably makes little difference.

Clifflines

The steps below have been tested in the Blue Mountains, a region that has a significant number of relatively vertical sandstone cliffs. It may be less effective in different terrain.

Initial analysis of slope, aspect

SAGA → Terrain Analysis - Morphometry → Slope, Aspect, Curvature

Extract

Slope, Aspect 

using DEM and [1] Maximum Triangle Slope (Tarboton (1997)). I haven't tested any other algorithms.

Cliff areas can be identified using a range of 60-90 and 70-90 degrees on the Slope file. Using 60-90 degrees helps connect logical cliffs and avoid small breaks.

Initial Cleaning

Next convert data to 1 bit (1,2 not 0,1, as Sieve ignores 0s) using Raster Calculator. Formula is: (Slope > 0) + 1

Then Sieve resulting data using a Threshold of 100 and 8-connectedness to get rid of small non-connected cliffs. Note above that Sieve doesn't like 0s.

Also good to rerun Sieve with smaller Threshold (1-10) and 4-connectedness to a) get rid of some small dangles. b) fill small holes.

Additional smoothing can be done using a User Defined Filter with the following matrix. This will apply some smoothing by allowing you to reclassify the pixel values, and remove single pixel indentations like this:

000    000
101 -> 111
111    111

and single pixel protrusions like this:

000    000
010 -> 000
111    111

The main problem is that the matrix has to be defined each time in QGIS. There doesn't seem to be an option to load it. Possibly this can be done outside QGIS.

Matrix is:

0.0 0.5 0.0
0.5 0.5 0.5
0.0 0.5 0.0

If the original matrix is 0/1 then the cutoff will be 1.5

If the original matrix is 1/2 then the cutoff will be 3.5

This step could be run multiple times - some testing would need to be done to determine how many times.

Other options for cleaning the data include a plugin called LecoS, but this doesn't work on QGIS 3. Another possibility is Shrink and Expand - radius 1? But this also creates some new holes that didn't previously exist, so not ideal.

Thinning

Convert back to 0/1 data using Raster Calculator

Use Translate: set Output Data Type = Byte, set NoData = 0

Run r.thin - r.thin is quite picky about the input file format. Needs to be NULL/non-NULL (not float or int). The Translate process above provides this. The previous two steps could be combined into one. Also, this file may need to be explicitly saved (not just a temporary file?!)

Vectorising

Run r.to.vect: set Feature Type = line

Run v.clean: Cleaning Tool = rmdangle, Threshold = 5,10

nsw_lidar.1544352989.txt.gz · Last modified: 2018/12/09 21:56 by bushwalking

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki