RStudio project

Open the RStudio project that we created in the first session. I recommend to use this RStudio project for the entire course and within the RStudio project create separate R scripts for each session.

  • Create a new empty R script by going to the tab “File”, select “New File” and then “R script”
  • In the new R script, type # Session 3: Species threat data and save the file in your folder “scripts” within your project folder, e.g. as “3_ThreatData.R”

The IUCN Red List of threatened species is a useful resource when analysing diversity changes, species range changes and population changes: www.iucnredlist.org (IUCN 2019). It provides information on the global conservation status of species, specifically of animals, fungi and plant species. The IUCN has defined a set of criteria to evaluate the extinction risk of species. According to these criteria, species are classified into nine different categories although strictly only five categories describe the conservation status - from least concern to critically endangered [Fig. 1; IUCN (2012)].

**Figure 1. The IUCN red list categories. Adapted from [@IUCN2012].**

The IUCN distinguishes five criteria that are used to classify species into one of the three threatened categories (Fig. 1; IUCN (2012)):

  • A. Population size reduction
  • B. Extent of occurrence (B1) or Area of occupancy (B2)
  • C. Small population size and decline
  • D. Very small or restricted population
  • E. Quantitative analysis (probability of extinction within next 100 years)

All of this information (the red list category, the relevant assessment criteria, the population trends, etc.) are provided by the IUCN. We can look at all these information online, e.g. for the Eurasian lynx.

Of course, if you want to analyse your species data in light of these IUCN assessments, it can become very tedious to look up all information by hand. The IUCN red list team provides an API for this purpose, and the R package rredlist is a client to access this IUCN red list API. It requires an API key / a token to use the API. You have to indicate your research objectives for using the API.

1 Data

1.1 Mammal data

We will work with European mammals. The distribution data come from the IUCN range maps from practical 2 that I rasterised to European extent. Course participants can download the data from the moodle page (store in your data folder). For completeness, I show the code below for compiling the data.

# Read in mammal shapefile
mammals <- shapefile('data/MAMMTERR.shp')

# rough European extent
extent_eur <- c(-15,45,35,72)

# Crop SpatialPolygonsDataFrame to European extent
mammals_eur <- crop(mammals, extent_eur)

# Rasterise mammal range maps for European extent
r_mammals_eur <- lets.presab(mammals_eur, resol=1, presence = 1, origin = 1, seasonal = 1)

# Save the PresenceAbsence object
save(extent_eur, r_mammals_eur,file='data/r_mammals_eur.RData')

Load the PresenceAbsence object:

load('data/r_mammals_eur.RData')

# Remember how the PresenceAbsence objects look like:
str(r_mammals_eur,2)
## List of 3
##  $ Presence_and_Absence_Matrix: num [1:1491, 1:293] -14.5 -13.5 -12.5 -11.5 -10.5 -9.5 -8.5 -7.5 -6.5 -5.5 ...
##   ..- attr(*, "dimnames")=List of 2
##  $ Richness_Raster            :
## Loading required package: raster
## Loading required package: sp
## Formal class 'RasterLayer' [package "raster"] with 12 slots
##  $ Species_name               : chr [1:291] "Acomys cilicicus" "Acomys minous" "Alces alces" "Allactaga elater" ...
##  - attr(*, "class")= chr "PresenceAbsence"
# Plot the richness raster:
plot(crop(r_mammals_eur$Richness_Raster,extent_eur))

For merging the mammal distribution with the red list data, we will need the species names:

# Extract the species names from the PresenceAbsence object
names_mammals_eur <- colnames(r_mammals_eur$Presence_and_Absence_Matrix)[-c(1:2)]

1.2 IUCN Red list data

Course participants can download the data (mammals_eur_redlist_status.csv and mammals_eur_redlist_threats.csv) in the secured moodle folder (but please be aware that the IUCN terms of use apply!). External readers are advised to generate an API token:

library(rredlist)

# Generate your personal API token
rl_use_iucn()

1.2.1 IUCN red list status

If you have your own IUCN API key, you can easily download the information on species’ red list categories:

# Download red list category for single species using your personal API token "MY_IUCN_REDLIST_KEY"
(rl_search('Lynx lynx', key= MY_IUCN_REDLIST_KEY))
## $name
## [1] "Lynx lynx"
## 
## $result
##   taxonid scientific_name  kingdom   phylum    class     order  family genus
## 1   12519       Lynx lynx ANIMALIA CHORDATA MAMMALIA CARNIVORA FELIDAE  Lynx
##   main_common_name        authority published_year assessment_date category
## 1    Eurasian Lynx (Linnaeus, 1758)           2015      2014-04-20       LC
##   criteria population_trend marine_system freshwater_system terrestrial_system
## 1       NA           Stable         FALSE             FALSE               TRUE
##                                                                                                 assessor
## 1 Breitenmoser, U., Breitenmoser-Würsten, C., Lanz, T., von Arx, M., Antonevich, A., Bao, W. & Avgan, B.
##                              reviewer aoo_km2  eoo_km2 elevation_upper
## 1 Nowell, K., Hunter, L. & Mallon, D.      NA 42765298            5500
##   elevation_lower depth_upper depth_lower errata_flag
## 1               0          NA          NA        TRUE
##                                                                                                                               errata_reason
## 1 An errata version of the original assessment has been published to correct the typo "Mmountain Hares" which should read "Mountain Hares".
##   amended_flag amended_reason
## 1           NA             NA
# Download red list categories for all species
redlist_status <- do.call(rbind,lapply(names_mammals_eur,FUN=function(sp){
  rl_search(sp, key= MY_IUCN_REDLIST_KEY)$result
  }
  ))

Course participants can download the data from moodle and read it in:

redlist_status <- read.table('data/mammals_eur_redlist_status.csv', header=T, sep=';')

Here is an example of the kind of information in the table. Compare this to the information given on the IUCN website, e.g. for the Eurasian Lynx.

redlist_status[1:10,10:20]
##               authority published_year assessment_date category criteria
## 1   Spitzenberger, 1978           2019      2017-05-22       DD     <NA>
## 2            Bate, 1906           2019      2017-05-22       DD     <NA>
## 3      (Linnaeus, 1758)           2016      2015-09-27       LC     <NA>
## 4  (Lichtenstein, 1825)           2016      2016-09-08       LC     <NA>
## 5          Thomas, 1881           2019      2019-07-09       LC     <NA>
## 6          (Kerr, 1792)           2016      2016-09-08       LC     <NA>
## 7          Thomas, 1897           2016      2016-09-09       LC     <NA>
## 8        (Pallas, 1777)           2021      2020-08-26       VU       C1
## 9        (Pallas, 1771)           2016      2016-09-08       LC     <NA>
## 10       Heinrich, 1952           2016      2016-09-09       LC     <NA>
##    population_trend marine_system freshwater_system terrestrial_system
## 1           Unknown         FALSE             FALSE               TRUE
## 2           Unknown         FALSE             FALSE               TRUE
## 3        Increasing         FALSE             FALSE               TRUE
## 4        Decreasing         FALSE             FALSE               TRUE
## 5        Decreasing         FALSE             FALSE               TRUE
## 6        Decreasing         FALSE             FALSE               TRUE
## 7        Decreasing         FALSE             FALSE               TRUE
## 8        Decreasing         FALSE             FALSE               TRUE
## 9            Stable         FALSE             FALSE               TRUE
## 10          Unknown         FALSE             FALSE               TRUE
##                                                                                                                  assessor
## 1                                                                                              Gerrie, R. & Kennerley, R.
## 2                                                                                              Gerrie, R. & Kennerley, R.
## 3                                                                                                         Hundertmark, K.
## 4                Shenbrot, G., Tsytsulina, K., Batsaikhan, N., Avirmed, D., Tinnin, D., Sukhchuluun, G & Lkhagvasuren, D.
## 5                                                                                               Dando, T. & Kennerley, R.
## 6                                                             Tsytsulina, K., Formozov, N., Zagorodnyuk, I. & Sheftel, B.
## 7                                                                                      Eken, G., Bozdogan, M. & Molur, S.
## 8  Cassinello, J., Bounaceur, F., Brito, J.C., Bussière, E., Cuzin, F., Gil-Sánchez, J., Herrera-Sánchez, F. & Wacher, T.
## 9                Kaneko, Y., Kryštufek, B., Zagarondnyuk, I., Vohralík, V., Batsaikhan, N., Avirmed, D. & Sukhchuluun, G.
## 10                                                                                                             Meinig, H.
##                      reviewer
## 1                   Amori, G.
## 2                   Amori, G.
## 3  Brook, S.M. & McShea, W.J.
## 4                   Amori, G.
## 5                   Amori, G.
## 6                   Amori, G.
## 7                   Amori, G.
## 8    Herrero, J. & Michel, S.
## 9                   Amori, G.
## 10                  Amori, G.

We can now look at how many mammal species are listed in the different red list categories or many species have declining, stable or increasing population trends:

# Conservation status
table(redlist_status$category)
## 
##  CR  DD  EN  LC  NT  VU 
##   7  12  10 213  18  21
# Population trends
table(redlist_status$population_trend)
## 
## Decreasing Increasing     Stable    Unknown 
##         76          8        102         95

1.2.2 IUCN red list threats

The IUCN also assesses the main threats per species as you saw in the Eurasian lynx example. The Threat Classification Scheme can be found here.

If you have your own IUCN API key, you can easily download the information on species’ red list threats:

# Download red list threats for single species
rl_threats('Lynx lynx', key= MY_IUCN_REDLIST_KEY)
## $name
## [1] "Lynx lynx"
## 
## $result
##     code                                                         title  timing
## 1    2.1                           Annual & perennial non-timber crops Ongoing
## 2  2.1.2                                          Small-holder farming Ongoing
## 3  2.1.3                                         Agro-industry farming Ongoing
## 4    2.2                                       Wood & pulp plantations Ongoing
## 5  2.2.1                                      Small-holder plantations Ongoing
## 6  2.2.2                                     Agro-industry plantations Ongoing
## 7    2.3                                  Livestock farming & ranching Ongoing
## 8  2.3.1                                               Nomadic grazing Ongoing
## 9  2.3.2                     Small-holder grazing, ranching or farming Ongoing
## 10 2.3.3                    Agro-industry grazing, ranching or farming Ongoing
## 11   3.2                                            Mining & quarrying Ongoing
## 12   4.1                                             Roads & railroads Ongoing
## 13   5.1                        Hunting & trapping terrestrial animals Ongoing
## 14 5.1.1                       Intentional use (species is the target) Ongoing
## 15 5.1.2             Unintentional effects (species is not the target) Ongoing
## 16 5.1.3                                           Persecution/control Ongoing
## 17   5.3                                     Logging & wood harvesting Ongoing
## 18 5.3.5                                 Motivation Unknown/Unrecorded Ongoing
## 19   8.1 Invasive non-native/alien species/diseases (Canis familiaris) Ongoing
## 20 8.1.2                              Named species (Canis familiaris) Ongoing
##              scope            severity         score         invasive
## 1             <NA>                <NA> Low Impact: 3             <NA>
## 2             <NA>                <NA> Low Impact: 3             <NA>
## 3             <NA>                <NA> Low Impact: 3             <NA>
## 4             <NA>                <NA> Low Impact: 3             <NA>
## 5             <NA>                <NA> Low Impact: 3             <NA>
## 6             <NA>                <NA> Low Impact: 3             <NA>
## 7             <NA>                <NA> Low Impact: 3             <NA>
## 8             <NA>                <NA> Low Impact: 3             <NA>
## 9             <NA>                <NA> Low Impact: 3             <NA>
## 10            <NA>                <NA> Low Impact: 3             <NA>
## 11            <NA>                <NA> Low Impact: 3             <NA>
## 12            <NA>                <NA> Low Impact: 3             <NA>
## 13            <NA>                <NA> Low Impact: 3             <NA>
## 14            <NA>                <NA> Low Impact: 3             <NA>
## 15            <NA>                <NA> Low Impact: 3             <NA>
## 16            <NA>                <NA> Low Impact: 3             <NA>
## 17            <NA>                <NA> Low Impact: 3             <NA>
## 18            <NA>                <NA> Low Impact: 3             <NA>
## 19 Minority (<50%) Negligible declines Low Impact: 4 Canis familiaris
## 20 Minority (<50%) Negligible declines Low Impact: 4 Canis familiaris
# Download red list threats for all species
redlist_threats <- do.call(rbind,
                           lapply(seq_len(length(names_mammals_eur)),FUN=function(i){
                             xi <- rl_threats(names_mammals_eur[i], key= MY_IUCN_REDLIST_KEY); 
                             if(length(xi$result)) {
                               data.frame(species=names_mammals_eur[i],xi$result) 
                               }
                             }
                             ))

Course participants can download the data from moodle and read it in:

redlist_threats <- read.table('data/mammals_eur_redlist_threats.csv', header=T, sep=';')

The threats are ordered hierarchically from broad threat type to very detailed threat, e.g.:

  • 2 Agriculture & aquaculture > 2.2 Wood & pulp plantations > 2.2.1 Small-holder plantations
  • 5 Biological resource use > 5.4 Fishing & harvesting aquatic resources > 5.4.3 Unintentional effects: subsistence/small scale (species being assessed is not the target)[harvest]

Here is an example of the kind of information in the table. For more details, please have a look at the IUCN website, e.g. the Eurasian lynx example, and at the Threat Classification Scheme.

redlist_threats[sample(nrow(redlist_threats),10),-c(1:2)]
##                                          title  timing             scope
## 1109                        Oil & gas drilling Ongoing   Minority (<50%)
## 296  Abstraction of ground water (unknown use) Ongoing Majority (50-90%)
## 102                  Logging & wood harvesting Ongoing   Minority (<50%)
## 967                  Diseases of unknown cause Ongoing Majority (50-90%)
## 920                          Roads & railroads Ongoing              <NA>
## 434                        Persecution/control Ongoing Majority (50-90%)
## 75            Named species (Myocastor coypus) Ongoing              <NA>
## 48                       Housing & urban areas Ongoing              <NA>
## 943                 Named species (Ovis aries) Ongoing              <NA>
## 422                              Other impacts  Future      Whole (>90%)
##                        severity            score         invasive
## 1109        Negligible declines    Low Impact: 4             <NA>
## 296  Slow, Significant Declines Medium Impact: 6             <NA>
## 102  Slow, Significant Declines    Low Impact: 5             <NA>
## 967              Rapid Declines Medium Impact: 7             <NA>
## 920                        <NA>    Low Impact: 3             <NA>
## 434         Very Rapid Declines   High Impact: 8             <NA>
## 75                         <NA>    Low Impact: 3 Myocastor coypus
## 48                         <NA>    Low Impact: 3             <NA>
## 943                        <NA>    Low Impact: 3       Ovis aries
## 422                     Unknown          Unknown             <NA>

We can extract many useful information from this table, for example, when specific threats occurred.

table(redlist_threats$timing)
## 
##                   Future                  Ongoing Past, Unlikely to Return 
##                       35                     1106                       28

Exercise:

Explore the threats table. For example,

  • Pick a species and identify which threats are causing rapid declines and slow declines.

2 Mapping hotspots of threatened species

Next, we analyse the distribution of threatened species. To do so, we combine the red list status information with the distribution data. Specifically, we extract all species that belong to a specific threat category and then compute the species richness of these species per cell and map this.

For example, we can extract all species that are classified as vulnerable:

(subset(redlist_status,category=='VU')$scientific_name)
##  [1] "Ammotragus lervia"        "Arvicola sapidus"        
##  [3] "Dinaromys bogdanovi"      "Gazella cuvieri"         
##  [5] "Gazella dorcas"           "Gazella subgutturosa"    
##  [7] "Lepus castroviejoi"       "Lepus corsicanus"        
##  [9] "Mesocricetus auratus"     "Miniopterus schreibersii"
## [11] "Myomimus roachi"          "Myotis capaccinii"       
## [13] "Nyctalus lasiopterus"     "Panthera pardus"         
## [15] "Plecotus sardus"          "Rangifer tarandus"       
## [17] "Rhinolophus mehelyi"      "Spalax graecus"          
## [19] "Spalax zemni"             "Ursus maritimus"         
## [21] "Vormela peregusna"

Using the red list information we can then map spatial hotspots of species wit, meaning the species richness of species falling into this red list category.

library(raster)

# Identify all vulnerable species 
vu_spp <- subset(redlist_status,category=='VU')$scientific_name

# Identify all least concern species
lc_spp <- subset(redlist_status,category=='LC')$scientific_name

# Now, we extract the distribution data for the VU and LC species groups, make rasters, stack these and plot
# Calculate species richness
richness_RL_status <- data.frame(r_mammals_eur$Presence_and_Absence_Matrix[,1:2],
  richness_vu = rowSums(r_mammals_eur$Presence_and_Absence_Matrix[,vu_spp]),
  richness_lc = rowSums(r_mammals_eur$Presence_and_Absence_Matrix[,lc_spp]))

# Make raster and plot
spplot( rasterFromXYZ(richness_RL_status))

Exercise:

Map species richness of all species belonging to the threatened categories (CR, EN, VU) and species richness of all species belonging to the non-threatened categories (NT, LC).

  • Discuss the patterns. Where are hotspots of threatened species?

3 Mapping hotspots of threats

We can also analyse the spatial distribution of threats. To do so, we need to extract the species that are affected by a particular threat in a particular time period. Then we can extract the distribution data for these species, compute the species richness and map this in space.

# Which ongoing threats are the most common ?
sort(table(subset(redlist_threats, species %in% names_mammals_eur & timing=='Ongoing')$title), decreasing=T)[1:10]
## 
##  Hunting & trapping terrestrial animals     Annual & perennial non-timber crops 
##                                      80                                      66 
##            Livestock farming & ranching Intentional use (species is the target) 
##                                      59                                      48 
##                   Agro-industry farming               Logging & wood harvesting 
##                                      40                                      38 
##                     Persecution/control                Scale Unknown/Unrecorded 
##                                      36                                      35 
##                 Type Unknown/Unrecorded                   Housing & urban areas 
##                                      35                                      34
# Identify the species experiencing threats from hunting
mammals_threat1 <- subset(redlist_threats,title=="Hunting & trapping terrestrial animals" & species %in% names_mammals_eur)$species
# Identify the species experiencing threats from agriculture, specifically non-timber crops 
mammals_threat2 <- subset(redlist_threats,title=="Annual & perennial non-timber crops" & species %in% names_mammals_eur)$species

# Map species experiencing threats from hunting
plot(rasterFromXYZ(
  data.frame(
    r_mammals_eur$Presence_and_Absence_Matrix[,1:2],
    rowSums(r_mammals_eur$Presence_and_Absence_Matrix[,mammals_threat1]))), 
  main="Hunting & trapping terrestrial animals")

# species experiencing threats from agriculture, specifically non-timber crops 
plot(rasterFromXYZ(
  data.frame(
    r_mammals_eur$Presence_and_Absence_Matrix[,1:2],
    rowSums(r_mammals_eur$Presence_and_Absence_Matrix[,mammals_threat2]))), 
  main="Annual & perennial non-timber crops")

Exercise:

  • Pick two other ongoing threats and map the species richness of those mammals affected by these threats.
  • Pick a future and a past threat and map the species richness of those mammals affected by these threats.

Interpret.

References

IUCN. 2012. IUCN Red List Categories and Criteria: Version 3.1. Gland, Switzerland; Cambridge, UK: IUCN.
———. 2019. The IUCN Red List of Threatened Species. Version 2019-2. http://www.iucnredlist.org. Downloaded on 27 October 2019.