Terrain attribute selection in environmental studies

Terrain attribute selection

Exploring species-environment relationships is important for amongst others habitat mapping, biogeographical classification, conservation, and management. And it has become easier with (i) the advance of a wide range of tools, including many open source tools, and (ii) availability of more relevant data sources. For example, there are many tools with which it is relatively easy to create a wide range of derived terrain variables using digital elevation (DEM) or bathymetric (DBM) models. However, the ease of use of many of these tools, especially when used by non-experts, may lead to the selection of arbitrary or sub-optimal set of variables. In addition, derived variables will often be highly correlated (Lecours et al. 2017).

The paper by Lecours et al. (2017) focuses on terrain attributes and provides a framework for the selection of the best sub-sets of terrain attributes. In addition, the paper aims to explore the relationship between the importance of these groups and terrain complexity. To this end, they compare a large number of terrain attributes that can be derived from digital terrain models using a range of different commercial and open source tools.

Based on their analysis they come with a recommended set of attributes, which include the 1) relative difference to mean value, 2) local standard deviation, 3) easterness, 4) northerness, 5) local mean, and (6) slope. Together these variables were found to account for most of the main terrain properties and the variation in these properties.

It is thereby  important to stress that for any real-life application, the selection of variables should foremost be based on their relevancy for the intended targets. For example, based on the ecology of a species, measures such as terrain wetness index could be more important for some species, while slope could be more important for others. Unfortunately, the lack of species specific information provides an impediment for an informed variable selection. In such cases, framework as proposed by Lecours et al. may help at least help to avoid covariation / multicollinearity and redundancy when selecting sets of explanatory variables.

Different tools to compute terrain attributes

An additional objective of Lecours et al. (2017) was to explore existing GIS software to compute available local terrain attributes. They compared 11 different commercial and open-source software. The open source tools they included are Diva-GIS, SAGA GIS, uDig and QGIS. For QGIS I suppose the authors looked at the GDAL tools available (QGIS provides also access to e.g., GRASS GIS, SAGA GIS, and Orfeo toolbox, as well as a large number of addons). Missing from this list, to my surprise, is GRASS GIS.  GRASS GIS is a well established open source GIS tools, especially in the academic world, and it offers an interesting set of tools for the computation of the main topographic attributes. These include:

  • r.slope.aspect – slope, aspect, curvatures, first and second order partial derivatives
  • r.param.scale – elevation, slope, aspect, profile curvature, plan curvature, longitudinal curvature, cross-sectional curvature, maximum curvature, morphometric features
  • r.neighbors – average, median, mode, minimum, maximum, range, standard deviation, variance, diversity, interspersion)
  • r.topidx – topographic wetness index

In addition there are a number addons that compute different topographic or terrain attributes, such as:

In short, in GRASS GIS you can compute all main terrain attributes, and some more. And if there is no tool to compute your favourite terrain attribute. In that case, there is always the versatile r.mapcalc function. With its powerful syntax, including a neighbourhood modifier, it offers a very flexible tool to define your own functions and neighbourhood filters.


Lecours, V., Devillers, R., Simms, A. E., Lucieer, V. L. & Brown, C. J. Towards a framework for terrain attribute selection in environmental studies. Environmental Modelling & Software 89, 19–30 (2017).

Climate data sets, which one to select?

For species or vegetation modelling, one of the first choices to make is the selection of explanatory variables, which in most cases will include climatic or bioclimatic data sets. One of the most widely used global climate data sets in biogeographic and ecological research is from Worldclim (Hijmans et al., 2005). Alternative global rainfall data sets are from TAMSAT TARCAT (Maidment et al., 2014) and CHIRPS (Funk et al., 2014). The Worldclim data layers are based on an interpolation of average monthly climate data from weather stations. The other two data sets combine weather station data with satellite observations to improve accuracy where in situ rainfall measurements are sparse. All three data sets are available from the KITE resources website as part of the Africlim dataset (Platts et al. 2015).

Uncertainty in data sets based interpolation of weather station data can be highly uncertain, especially in mountainous and poorly sampled areas (Hijmans, et al., 2005). This is certainly an issue in eastern Africa, which is a topographically diverse region with a relative poor coverage of weather stations. On the other hand, rainfall estimates based on satellite imagery have issues as well. I am not a climatologists and I don’t find it easy to determine which data set I should use. But I can of course start by comparing the data sets. Below, I compare the long-term average annual rainfall data. Note that the Worldclim data set is representative for the time period 1950-2000, while the other two data sets are based on data from 1983-2012.

Click on image to enlarge /  open in slide-show

The images above show the mean annual rainfall. It is immediately evident that the average rainfall distribution as estimated by the TAMSAT data set deviates considerably from the other two estimates. Especially the low rainfall estimates for three of the five s0-called water towers of Kenya (Mount KenyaAberdare Range and the Mau Forest range) and Mount Kilimanjaro in Tanzania raise question marks.

In GRASS GIS it is easy to quickly compare two maps using the bivariate scatterplot tool in the Map display toolbar. Just select two raster layer and select the tool. You can further tweak the graph using the plot and text settings, and export it as png image or print it. Note that if you print it to file, you’ll get a PS (postscript) file, which you can further edit in e.g., Inkscape.

Click on image to enlarge /  open in slide-show

Below you see the scatterplots of Worldclim versus TAMSAT, Worldclim versus CHIRPS and TAMSAT versus CHIRPS (click on images to enlarge). They illustrate that there are large discrepancies in the estimated mean annual rainfall, and a R2 are between 0.73 and 0.8.

Click on image to enlarge /  open in slide-show

Another convenient tool, available from the toolbar in the Map display toolbar, is the profile analysis tool. With this tool you can display the values of one or more raster layers along a line which you can draw on the map canvas. This is particularly handy to see how two or more maps differ.

Click on image to enlarge /  open in slide-show

Below you can see the rainfall values along a transect I drew across the Kenyan highlands. The peaks in the graph are where the transect crosses Mount Kenya, the Aberdares and the Mau forest complex. The blue, red and green lines give the values of respectively the Worldclim, TAMSAT and CHIRPS dataset. The rainfall profile of TAMSAT suggests there is not much differences in annual rainfall between the mountain tops and the lowlands in between. The Worldclim and CHIRPS profiles are more alike, but with the Worldclim providing considerably higher estimates for the mountain peaks then CHIRPS.

Kenyan highlands
Mean annual rainfall values along a transect across the Kenyan highlands

It would be good to find out more about the differences between the Worldclim and CHIRPS estimates. For example, are these differences all due to data errors (in one or both data layers) or was the period 1983 – 2012 in fact drier than the 1950 – 2000 period? But that is a question I might get into later. For now it seems clear, to me at least, that the TAMSAT data has some issues, especially for the Kenyan highlands, suggesting it to be unsuitable for use in ecological or biogeographic studies in east Africa.


  • Funk, Chris, Pete Peterson, Martin Landsfeld, Diego Pedreros, James Verdin, Shraddhanand Shukla, Gregory Husak, James Rowland, Laura Harrison, Andrew Hoell & Joel Michaelsen. The climate hazards infrared precipitation with stations—a new environmental record for monitoring extremes. Scientific Data 2, 150066.
  • Hijmans, R.J., S.E. Cameron, J.L. Parra, P.G. Jones and A. Jarvis, 2005. Very high resolution interpolated climate surfaces for global land areas. International Journal of Climatology 25: 1965-1978.
  • Maidment, R., D. Grimes, R.P.Allan, E. Tarnavsky, M. Stringer, T. Hewison, R. Roebeling and E. Black (2014) The 30 year TAMSAT African Rainfall Climatology And Time series (TARCAT) data set. Journal of Geophysical Research 119 (18), 10,619–10,644.
  • Platts PJ, Omeny PA, Marchant R (2015). AFRICLIM: high-resolution climate projections for ecological applications in Africa. African Journal of Ecology 53, 103-108.


QGIS 2.10 Pisa is out!

The new QGIS 2.10 (Pisa) has been released, with many great new features, tweaks and enhancements. Check out the changelog for the highlights (you’ll need some time, it is again an impressive list of improvements and new features).

The source code and binaries for Windows, Debian and Ubuntu are already available via the large download link on the QGIS home page.  More packages will follow as soon as the package maintainers finish their work.

A big thanks to the developers, this is again an impressive piece of work!

Update of r.forestfrag addon for GRASS GIS 7.0

Riitters et al. (2000) proposed a quick approach to measure the degree of forest fragmentation that could be relatively easily implemented and which only required a map with forest and non-forest. Following their approach, Sylla consult created a shell script for GRASS GIS 6.4 to create a raster layer with six categories (non-forest, patch, transitional, edge, perforated, interior and undetermined) as a measure of forest fragmentation. See their blog post with an explanation how the script works or the above-cited article for a more in-depth description.

I adapted the script to make it work on GRASS 7.0, including some further improvements, such as the option to select the size of the moving window, the option to trim the output layer to avoid the edge effect that comes with moving-window calculations and the option to keep intermediate layers.

I have now rewritten the script as a Python addon. See here for the manual page. Continue reading “Update of r.forestfrag addon for GRASS GIS 7.0”

Locus Map Pro carries its support for MBTiles to the next level

I wrote before about the MBtiles format, a convenient format to store tiled maps in a single portable sqlite database. Probably the easiest way to create them is with Tilemill, as described here. The format is supported by amongst others QGIS, but it is especially suitable for use with map viewers on your mobile device.

The format is now supported by various mobile map viewers, including e.g., Geopaparazzi and OruxMaps. One I like for its rich set of features is Locus Map Pro. I normally only write about open source, but I think the developer of this app deserves some credit for being one of the first (as far as I am aware of) to support the MBtiles format.  Up to very recently you could only view maps in MBtiles format (similar to the other viewers mentioned above), but with the latest update support for the UTFgrid feature has been added.This basically adds interactivity to your map.
Continue reading “Locus Map Pro carries its support for MBTiles to the next level”

Rescale your raster data layer

Sometimes you want to rescale a raster layer, e.g., to reduce the number of categories, or to create a common scale for different raster layers. Very basic of course, so you can expect to find an appropriate function in any self-respecting GIS software. Just be aware that different terms are being used for the same thing, e.g., scale in gdal, rescale in GRASS and normalize in SAGA GIS. Below a few ways to do this using my favourite GIS programs: GRASS GIS, QGIS, SAGA GIS or gdal. Continue reading “Rescale your raster data layer”