IUCN distribution data
How well-represented are Uruguayan species in the IUCN Red List spatial database
IUCN species distribution maps are widely used to conduct spatial analyses. However, these data are not always as accurate in some areas of the globe. Uruguay, in particular, has a severe lack of information on the distribution of its species. Luckily, last year the first comprehensive open-access biodiversity database in the country was made available by Biodiversidata. We are going to use this data to check how well represented are these species in the IUCN Red List database.
Let’s see !
The vertebrates species list includes 664 tetrapod species.
## # A tibble: 4 x 2
## # Groups: class [4]
## class n
## <chr> <int>
## 1 Amphibia 50
## 2 Aves 430
## 3 Mammalia 116
## 4 Reptilia 68
To analyse the data available in IUCN for Uruguay we are going to use the function rl_occ_country
from the package rredlist
. This function enables us to get country occurrence by species name.
Function
Let’s create a function (getIUCNSpeciesInUy
) to find if the species recorded in Uruguay are documented as extant in the country according to IUCN.
library(rredlist)
library(taxize)
library(tidyverse)
getIUCNSpeciesInUy <- function(data){
speciesIsinUy <- data.frame(species= character(),
presence=character(),
establishmentMeans=character(),
numCountries= numeric(),
stringsAsFactors = FALSE)
for (species in data$species){
isInUy <- rl_occ_country(species)
if (isInUy$count == 0) {
speciesIsinUy_species <- data.frame(species= species,
presence= 'NOT FOUND',
establishmentMeans= NA,
numCountries=NA,
stringsAsFactors = F)
speciesIsinUy <- rbind(speciesIsinUy, speciesIsinUy_species)
}
else if ('UY' %in% isInUy$result$code) {
speciesIsinUy_species <- data.frame(species= species,
presence= isInUy$result$presence[isInUy$result$code=='UY'],
establishmentMeans=isInUy$result$origin[isInUy$result$code=='UY'],
numCountries=isInUy$count,
stringsAsFactors = F)
speciesIsinUy <- rbind(speciesIsinUy, speciesIsinUy_species)
}
else {
speciesIsinUy_species <- data.frame(species= species,
presence= 'Not recorded in UY',
establishmentMeans= 'Not recorded in UY',
numCountries=isInUy$count,
stringsAsFactors = F)
speciesIsinUy <- rbind(speciesIsinUy, speciesIsinUy_species)
}
}
return(speciesIsinUy)
}
The function needs an object (dataframe) with a column named species
,
which will be used for the search.
- If the species is not found within the IUCN database, a ‘NOT FOUND’ message will be retrieved, and we will later need to check if we can find a synonym species in IUCN.
- Else, if the species name is found in IUCN, the function will search if it is recorded in Uruguay (code = ‘UY’).
- Then, if the species is found in Uruguay the function will retrieve
the presence status (
presence
), establishment means (establishmentMeans
) and just as a curiosity, the number of countries the species is recorded in (numCountries
). - Else, if the species is not found in Uruguay, it will retrieve ‘Not recorded in UY’.
Run
Lets run the function with our data:
IUCNSpeciesInUy <- getIUCNSpeciesInUy(speciesList_Tetrapods)
This function might take a while to run, depending on the size of your species list 🍵 🍪
Explore
So, let’s see how it went.
IUCNSpeciesInUy %>%
select(-numCountries) %>%
head(n=20)
## species presence establishmentMeans
## 1 Dendropsophus sanborni Extant Native
## 2 Elachistocleis bicolor Extant Native
## 3 Boana pulchella Extant Native
## 4 Leptodactylus gracilis Extant Native
## 5 Leptodactylus latinasus Extant Native
## 6 Leptodactylus mystacinus Extant Native
## 7 Leptodactylus latrans Extant Native
## 8 Melanophryniscus montevidensis Extant Native
## 9 Odontophrynus americanus Extant Native
## 10 Odontophrynus maisuma NOT FOUND <NA>
## 11 Physalaemus gracilis Extant Native
## 12 Pleurodema bibroni Extant Native
## 13 Pseudis minuta Extant Native
## 14 Pseudopaludicola falcipes Extant Native
## 15 Rhinella arenarum Extant Native
## 16 Rhinella dorbignyi Extant Native
## 17 Scinax granulatus Extant Native
## 18 Scinax squalirostris Extant Native
## 19 Argenteohyla siemersi Extant Native
## 20 Rhinella diptycha Not recorded in UY Not recorded in UY
According to IUCN, 76 species in our databse are not considered extant in the country. There’s a species considered extinct (Blastocerus dichotomus) and one as possibly extinct (Chrysocyon brachyurus). But, what about those NOT FOUND? We need to check on their synonym species.
To find synonym species, we can use the function synonyms
from the package taxize
. First, filter the species not found for IUCN, then create a new list with this species and run the function getSynonym
. Finally, run the function to check for these species again.
getSynonym <- function(species){
species_synonym <- synonyms(species, db='itis', rows=1)
if(is.na(species_synonym) || is_empty(species_synonym[[1]])){
species_synonym$synonym <- 'NOT FOUND'
}
else {
species_synonym$synonym <- species_synonym[[1]]$syn_name[1]
}
return(species_synonym$synonym)
}
synonym_IUCNSpeciesInUy <- IUCNSpeciesInUy %>%
filter(presence=='NOT FOUND') %>%
mutate(speciesSynonym=map_chr(species, getSynonym))
Once we have checked if the synonyms are still not found in the IUCN database - therefore not assessed - we have all the information we need.
So, let’s explore the final results:
Data on IUCN | Number of Species | % |
---|---|---|
Extant | 559 | 84.2 |
Extinct Post-1500 | 1 | 0.2 |
Not assessed | 22 | 3.3 |
Not recorded in UY | 81 | 12.2 |
Possibly Extinct | 1 | 0.2 |
Around 12% of the species occurring in Uruguay are not recorded as present in the country according to the IUCN distribution maps. Also, these species seem to be more range restricted, as they are recorded in less countries (mean=18.1, sd=25), while the extant species are present in more countries (mean=24.2, sd=42.5).
And, that’s all !
Take this gaps in mind next time you want to map species using IUCN species range maps.