This is an old revision of the document!
Table of Contents
Mapping from NSW Lidar
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.
It can then processed with a GIS such as QGIS to create useful topographic maps. Instructions below are specifically for use with QGIS, though the general outline may be useful for other GISs.
Topics
The original topics here are being progressively moved to their own pages
Managing DEMs
- Merging DEMs - how to merge DEMs in QGIS
- Managing large DEMs - while data can be downloaded in an ad hoc manner, if you are regularly processing NSW DEMs, it is better to have the DEM tiles already downloaded. This page provides steps to do this in an automated manner.
Topographic maps
There are several primary data items for topographic maps that can be generated using the DEM data from the NSW Lidar.
- Hydrologically correct DEM - prior to further operations, it is usually important to make sure that your DEM is free of depressions. Otherwise these will mess up streams and possibly contours.
Once you have a depressionless DEM, the following items can be generated:
- Clifflines
Styles
- Styling - download basic style files
Automation
- Basic map creation - a set of PyQGIS scripts that will create (and optionally save) a basic topographic map. This map can be used in QField
Mobile apps
- QField - QField is an excellent Android app for for viewing projects created with QGIS
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.
Clifflines
The steps below are being developed for use in the Blue Mountains, a region that has a significant number of relatively vertical sandstone cliffs. It may be less effective in different terrain.
This is more a set of ideas than a fully fledged process. The main aims are to get a set of steps that can largely be automated, and that create cliffline vectors that are running in the correct direction. There is still some way to go on this!
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 say 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 > 60) + 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
Dumping Ground / WIP
Resources
GRASS - r.geomorphon function information page. This is a different approach that could be taken for landform classification. Yet to be tested.
Training lession for QGIS 3.4 on GRASS Setup and basic use. Specific GRASS setup is required to use any GRASS functions in QGIS.
GRASS GIS example of terrain analysis using r.geomorphon
Geomorphons - a pattern recognition approach to classification and mapping of landforms paper.
Multiscale topographic position - WhiteboxTools blog post.
Multiscale topographic position image - WhiteboxTools function - user manual entry