We follow the paper by J.B.Lindsay, J.M.H.Cockburn, H.A.J.Russell titled
An integral image approach to performing multi-scale topographic position analysis
to obtain a MultiscaleTopographicPositionImage map of continental Australia
at 90m and 30m resolution.
Download Australian continental scale MultiscaleTopographicPositionImage at 1 degree resolution from the national maps database here:
https://nationalmap.gov.au/#share=s-3JWz920JIl3MEOPNQ58v5krJU1c
Once the page loads, select Multi-scale Topographic Position.
We also use the WhiteboxBoxTools
software for creating local, meso, broad range MaxElevationDeviation.
We have a bash script to convert commonly used geotif format into .flt format data required by WhiteBoxTools. Our script uses gdal and
also outputs an intermediate .bil binary format data, also commonly
available via ArcGIS.
-
Convert
GeoTiffinto.flt:./tif_to_flt.sh foo bar
This script reads in a GeoTiff named foo.tif, and outputs a bar.flt
and a bar_bil.bil with the corresponding header and projection files.
This conversion has been tested using the tests/test_bil.py file. To
run the tests, use pytest tests/test_bil.py.
- Produce
MaxElevationDevationimages from DEM:
The script multiscale.sh produces the three local, meso and broad range
MaxElevationDevation outputs. Use it as the following:
./multiscale.sh dem
- Combine the three scales into RGB:
The three outputs are combined in this step to produce the multibanded RGB image following this excerpt from the paper by Lindsay et. al.:
The MTPCC image was created by combining the DEV max rasters of the local-,
meso-, and broad-scale ranges into the respective blue, green, and red
channels of a 24-bit color image. The three DEV max rasters were first
processed to linearly rescale their absolute grid cell values within the
range 0–2.58 to the output 8-bit range of 0–255. Grid cells occupying an
average landscape position within a particular range were therefore assigned
the lowest values after rescaling. Highly deviated locations (i.e.
exceptionally elevated or depressed sites) with input pixel values greater
than the 2.58 cutoff value were assigned an output value of 255. The cutoff
value of 2.58 was selected because the ±2.58 standard deviation from the
mean of a Gaussian distribution includes nearly 99% of the samples.
Here is how to use this script:
python multiscale_topographic_position_image.py -l dem_mag1.flt \
-m dem_mag2.flt -b dem_mag3.flt -i dem.tif -o multiscaled_dem.tif
The above will output a multiscaled_dem.tif, which is a RGB banded 8 bit
(0-255) integer for all three colours.
The three scripts above are combined into the the multiscale_all_in_one.sh.
Use it with the input dem.tif geotif as the following (without the .tif).
./multiscale_all_in_one.sh dem
The final result of this will be multiscaled_dem.tif with projection and
georeferencing information copied from the input dem.tif.
One will need to install WhiteboxBoxTools, gdal and need python with the following packages:
GDAL (this is the python binding for system installed gdal)
numpy
pytest (if testing)
Also create a symlink to the whitebox_tools:
sudo ln -s /path/to/whitebox-geospatial-analysis-tools/whitebox_tools/target/release/whitebox_tools /usr/local/bin/whitebox_tools
We also provide a script for conversion of ArcGIS .flt or .bil file into
geotif. Run this script as:
$ python flt_to_tif.py -i dem_mag1.flt -o dem_mag1.tif -r dem.tif