Representing bird atlas data (SABAP2) on a map

In a previous post, I plotted maps of my sampling sites for fynbos-endemic birds on a map, overlaying a polygon representing the fynbos to get an idea of how well I was covering the range of these birds. Unfortunately, the polygon (downloaded from SANBI) delineates the fynbos “biome” rather than fynbos as a vegetation type, so it includes areas of lowland renosterveld and strandveld vegetation which are not utilised by fynbos endemic birds.

How then should I go about representing the ranges of these birds on my maps? The shapefiles I was using could delineate vegetation at a finer scale, so I could have plotted only those fynbos vegetation types suitable for my species (Cape sugarbird and orange-breasted sunbird). I struggled to get the subsetting to work for this though. I’m sure it could be done, but I  thought of a better resource that would show ranges based on actual obervations: atlas data. In South Africa, atlassing began in 1987 with the first South African Bird Atlas Project (SABAP1)  which ran until 1991. SABAP2 started in 2007 and is set to continue indefinitely, allowing researchers to monitor trends in range and relative abundance. The data are collected by members of the public, i.e. citizen scientists, of which more than 2000 have participated, submitting over 170 000 checklists! Data is collected at the pentad scale, i.e. 5 minute squares (approx. 9 x 9 km).

Species data can be viewed on the SABAP2 website: Here is a link for Cape sugarbird. The page displays a google maps layer with the atlas data overlaid at quarter degree square resolution (you can get a finer resolution for an area by clicking on one of the cells). The cells are coloured by reporting rate (the proportion of checklists for that cell in which the species was recorded). I’ve included an image of what their online map looks like below. The first thing you’ll notice is the colour scheme they use for reporting rate. The colours seem to be chosen more or less at random and progress from orange (low reporting rate) to green to blue to red and finally pink (high reporting rate). It makes me a little ill… but more than that, I think it makes it difficult to discern areas of high and low reporting rate.


Species map for Cape sugarbird from the SABAP2 website, with QDGCs coloured by reporting rate (with a less than desirable colour scheme).

So, how to get this data into R and plot it on a map of my own? Well, the SABAP2 data is available for free. Download it as a .csv file by clicking on the “Pentad level summary” link below the map on the species page. Then, you can load the data onto R with a few simple lines of code. The file contains information for all of the more than 30 000 pentads in the atlas area, so you will want to keep only those in which your species has been recorded. Also, reporting rate will be somewhat misleading in pentads with low coverage, so I (somewhat arbitrarily) excluded pentads with less than four checklists.

Next, read in some other spatial data including the provincial boundaries and outline of South Africa and the sampling locations. Also read in the biomes shapefile and, crop the SA border and convert spatial objects to data frames for use with ggplot (better explained in previous post, here). After that, all that remains is to get the .csv file of the SABAP data into a format that will allow us to plot a raster of reporting rate in ggplot.

The final lines of code plot both figures on the same canvas using the multiplot function from the inlabru library. The end result:


Sampling locations and SABAP reporting rate for Cape sugarbird and orange-breasted sunbird. You’ll notice that I used single-hue colour schemes to show reporting rate.

A link to the full code including other maps here.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s