Introduction

The IUCN Red List of Threatened Species is the most widely used information source on species extinction risk, relying on a number of objective criteria. It has been used to raise the awareness of conservation problems and facilitate subsequent inclusion in lists of legally protected species, guide conservation efforts and funding, measure site irreplaceability and vulnerability, influence environmental policies and legislation and evaluate and monitor the state of biodiversity. The IUCN criteria are based on, among others, population size and decline, geographic range, fragmentation and the spatial extent of threats.

The R package red performs a number of spatial analyses based on either observed occurrences or estimated ranges. Importantly, given the frequent shortcomings of available data, the package allows the calculation of confidence limits for EOO, AOO and the RLI. It outputs geographical range, elevation and country values, maps in several formats and vector data for visualization in Google Earth. The raw data accepted by most functions are:

The main functions are:

Example

I provide an example of a typical session using red. Start by loading the package and retrieving species records:

library(red)
data(red.records)
spRec = red.records

Ten unique records for Hogna maderiana (Walckenaer, 1837), a spider endemic to Madeira Island, have longitude and latitude data. Users can provide their own distribution data in either longitude/latitude (projected automatically to metric units) or any metric system such as UTM (in which case make sure that all data are in the same zone). One can calculate EOO and AOO (in km2) and extract information on the countries occupied:

eoo(spRec)
aoo(spRec)
countries(spRec)

For species whose records are known to be complete or at least depict their entire geographic range this is the basic information to be used in assessments. For further analyses a set of environmental layers are needed in raster format. These can be either:

The function red.setup will download worldclim, elevation, and global land cover data at 30 arc-second and rescale them to 5 arc-minute resolutions (approx. 1 and 10 km respectively). The second resolution will be automatically chosen whenever the raw EOO (without modelling) is above 100000 km2 as it considerably speeds up the modelling and is much above the threshold of 20000 km2 for the category Vulnerable. For H. maderiana all data are available within red. One of these is the elevation for the region that can be used to extract information on species altitudinal range.

data(red.layers)
spRaster <- red.layers
altRaster <- spRaster[[3]]
elevation(spRec, altRaster)
raster::plot(altRaster)
points(spRec)

Note that one record is in the sea. This may be due to spatial inaccuracy of the record or missing environmental data at the edges of the mainland or an island. In such cases, it might be good to move such points to the closest cell with environmental data.

raster::plot(altRaster)
points(spRec, col="red")
spRec = move(spRec, spRaster)
points(spRec)

Unusual records can also be due to misidentifications, erroneous data sources or errors in transcriptions. These outliers can often be detected by looking at graphs of geographical or environmental space.

outliers(spRec, spRaster)

One might want to carefully look at records 1 and 5 (the ones at the southern coast of the island) as their environmental fingerprint is somewhat different from all other records as revealed by their distance to the centroid of the PCA.

It is now possible to attempt mapping the species distribution.

distrRaw <- map.points(spRec, spRaster)

Note that the output is a list with a raster depicting all the cells where the species is recorded and a second element with the respective values for EOO and AOO.

raster::plot(distrRaw[[1]])
distrRaw[[2]]

This map and values obviously assume that the records represent the entire range of the species. Yet, this is seldom true and in most cases some kind of extrapolation is justified. I propose two options within red to overcome the limitations of data. Often a species has a very restricted habitat and one generally knows where this habitat occurs. In such cases, using the distribution of the known habitat patches may be enough to accurately map the species. If one knows the spider species is currently restricted to forest areas.

spHabitat <- spRaster[[4]]
spHabitat[spHabitat != 4] <- 0
spHabitat[spHabitat == 4] <- 1
raster::plot(spHabitat, legend = FALSE)
points(spRec)

If one assumes the species does not currently occur outside forests that once occupied most of the island or in many of the small, isolated, forest patches, the following function retrieves only habitat patches known to be occupied.

distrHabitat <- map.habitat(spRec, spHabitat, move = FALSE)
raster::plot(distrHabitat[[1]], legend = FALSE)

The output is again a list with a raster depicting all the cells where the species is potentially present and a second element with the original and modelled values for EOO and AOO.

distrHabitat[[2]]

It is also possible to move points outside forest areas to the closest cell with forest, in case these points do not represent subpopulations lost in the past (due to deforestation) but are due to georeferencing error, by setting parameter move = TRUE.

The second option available in red to overcome data deficiency is performing species distribution modelling (SDM) using Maxent. This technique however requires careful consideration of biases. SDMs are prone to spatial bias due to clumped distribution records derived from accessibility of sites, emphasis of sampling on certain areas in the past, etc. A thinning algorithm used in red eliminates records closer than a given distance to any other record. A number of random runs are made and the single run that keeps as many as possible of the original records is chosen.

thinRec <- thin(spRec, 0.1)
plot(spRec, col = "red")
points(thinRec)

In this case, no records are closer than 10% of the maximum distance between any two after thinning.

Overfitting is also a possibility in SDMs if the number of records is low compared to the number of predictor variables (environmental or other layers). The following function reduces the number of dimensions through either PCA or eliminating highly correlated layers:

spRaster <- raster.reduce(red.layers[[1:3]], n = 2)
raster::plot(spRaster)

Note that land use was not used as it is a categorical variable.

Only after all pre-processing of occurrence and climatic plus land use data is it possible to model the distribution.

IUCN requires maps to support the assessments, and red has the possibility of exporting them in several formats, namely kml:

par(mfrow = c(1,1))
map.draw(spRec, distrHabitat[[1]])
kml(distrHabitat[[1]], filename = "spMap.kml")

As an alternative or exploratory step, there is a function that performs most of this process in an automated way for multiple species (map.easy).

Finally, it is possible to calculate the Red List Index for single or multiple taxa simultaneously, including the calculation of confidence limits through bootstrapping:

rliData <- matrix(c("LC","LC","EN","EN","EX","EX","LC","CR","CR","EX"), ncol = 2, byrow = TRUE)
colnames(rliData) <- c("2000", "2010")
rliData
rli(rliData)
rliData <- cbind(c("Arthropods","Arthropods","Birds","Birds","Birds"), rliData)
rliData
rli.multi(rliData, boot = TRUE)

Repositories

https://CRAN.R-project.org/package=red

https://github.com/cardosopmb/red

Citation

Cardoso, P. (2017) red - an R package to facilitate species red list assessments according to the IUCN criteria. Biodiversity Data Journal.



cardosopmb/red documentation built on May 13, 2020, 2:04 p.m.