Update release GRASS GIS 7.4.4

For those who missed it, a new update release GRASS GIS 7.4.4 is available since the 4th of January. It mainly brings bugfixes, but it also includes an important new function, the module r.mapcalc.simple. This module is especially important for a better integration with QGIS. It therefore has already been dubbed the “QGIS friendship” release :).

For more information, see the detailed announcement on https://trac.osgeo.org/grass/wiki/Release/7.4.4-News. For an overview of the new features in the 7.4 release series see New Features in GRASS GIS 7.4.

 

Advertisements

Data exploration in GRASS GIS – boxplots

I am currently working on some exercises for which I need data about municipalities in the Netherlands. A good place to look for such data is the CBS (Dutch Central Bureau of Statistics). One data layer is vector layers of the dutch municipalities and neighborhoods, which include demographic data.

One of the first things I normally do when exploring new data is to look at the distribution of the data. For example by creating a histogram using the d.vect.colhist addon (see my earlier post). But what if I want to compare the distribution of different groups or samples? In such a case I find boxplots more convenient. However, there is no tool in GRASS GIS to create boxplots, so I had a look at the d.vect.colhist addon code and adapted the code to create boxplots instead of histograms.

An example

Let’s for example look at the average population densities of the municipalities.

The average population density (number of inhabitants / km2) per municipality in 2017. Source: CBS.

What if I want to compare the distribution of the average population density per provinces Dutch provinces? You can install the addon (see the end of this post) and run d.vect.colbp on the command line or the console. This will open a window with different tabs.

In the first tab, you can define a column in the attribute table to plot (here BEV_DICHTH, which is the column with the population density) and a column that will be used to group the data (here provincie, which gives the names of the provinces the municipality belongs to). As you can see in the screenshot above, you have a few options to change the plot (layout). In this case, I choose to rotate the x-axis labels so they do not overlap. The resulting plot looks like:

The distribution of the average population densities of the Dutch municipalities per province.

You can of course also use the command line. In this case I will plot the boxplots horizontally using the ‘h flag’.

d.vect.colbp -h map=gemeenten@CBS column=BEV_DICHTH \
    where="AANT_INW > 1" plot_output=example_1.png \
    group_by=provincie order=ascending --overwrite

With will give you the plot below.

The distribution of the average population densities of the Dutch municipalities per province.

The add-on does not provide further options to change the appearance of the plot, as the main idea is to use this for quick exploration of your data, similar to the other plotting tools in GRASS GIS. However, you can save the plot as a svg file, and further edit it in e.g., Inkscape.

Testing the add-on

I probably will try to integrate the option to create boxplots in the existing d.vect.colhist add-on, but for now it is available as a separate addon on Github for testing. For GRASS GIS version 7.2 and above, you can use g.extension; simply type on the command line:

g.extension d.vect.colbp \
    url=https://github.com/ecodiv/d.vect.colbp

I am sure there is a lot to improve as this was a rather quick hack, so any feedback will be most welcome. If you try it out and run into problems, please let me know (suggestions for improvements are of course also welcome).

Terrain attribute selection in environmental studies

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).

Continue reading “Terrain attribute selection in environmental studies”

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). Continue reading “Climate data sets, which one to select?”

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”