Species occurrence records can be used to approximate species ranges and generate preliminary conservation assessments. While comprehensive Red list assessments need a through case-by-case evaluation, preliminary assessments can help to speed up this process, by focussing on potentially threatened species.
After this exercise you will be abler to * Approximate species range sizes based on occurrence records * Conduct an automated preliminary conservation assessment for multiple species based on occurrence records and Criterion B of the International Union for the conservation of Nature.
CalcRangeSize
)IUCN.eval
)library(speciesgeocodeR)
library(ConR)
library(readr)
library(dplyr)
library(rredlist)
library(jsonlite)
dat <- read_csv("inst/occurrence_records_clean.csv") %>% dplyr::select(species,
decimallongitude = decimalLongitude, decimallatitude = decimalLatitude)
# Based on EOO
rs <- CalcRangeSize(dat)
A geospheric convex hull is a first approximation for a species range. However, some simple refinement might be desirable, for instance to limit the range only to biome where a given species has been recorded.
# Limited to biomes with records Load Olson et al 2001 biomes
biom <- WWFload(x = "inst")
names(biom)
rs_biome <- CalcRangeSize(dat, biome = biom)
range <- data.frame(rs, rs_biome)
You can use the ConR package for a preliminary conservation assessment orientated on the IUCN Red list Criterion B. T His is based on the EOO we have encountered above and additionally the Area of Occupancy and the number of subpopulations.
# Format input data
inp <- dat %>% dplyr::select(ddlat = decimallatitude, ddlon = decimallongitude,
tax = species)
# Preliminary assessment
ev <- IUCN.eval(inp)
ev
To obtain the the IUCN status of species using the r package rredlist, you need a token for the Redlist API.
# iucn.key <- 'Your token'
sp.list <- ev$taxa %>% as.character()
iucn <- data.frame()
# get conservation status from IUCN
for (i in 1:length(sp.list)) {
print(i)
pick <- jsonlite::fromJSON(rl_search_(sp.list[i], key = iucn.key))$result
# write.table(pick, 'inst/secondary_woodyness_iucn_criteria.txt', append =
# T, col.names = F, row.names = F)
iucn <- bind_rows(iucn, pick)
Sys.sleep(1)
}
Now we can combine the automated assessment with the existing IUCN assessments, to compare them.
out <- ev %>% left_join(iucn, by = c(taxa = "scientific_name"))
# compare the important indices
test <- out %>% select(taxa, automated_eoo = EOO, automated_AOO = AOO, automated_Category_CriteriaB = Category_CriteriaB,
iucn_eoo = eoo_km2, iucn_aoo = aoo_km2, iucn_year = published_year, iucn_category = category,
iucn_criteria = criteria)
# plot for easy evaluation
plo <- test %>% filter(!is.na(iucn_category)) %>% mutate(iucn_eoo = parse_numeric(iucn_eoo))
ggplot(data = plo) + geom_abline(slope = 1, intercept = 0) + geom_point(aes(x = automated_eoo,
y = iucn_eoo)) + theme_bw()
ggplot(data = plo) + geom_abline(slope = 1, intercept = 0) + geom_point(aes(x = automated_AOO,
y = iucn_aoo)) + theme_bw()
write_csv(test, "inst?conservation_assessment.csv")