library(sf)
library(raster)
library(tidyverse)
#install.packages("ConR")
library(sp)
library(ConR)
This is an R Notebook which illustrates the relevance of geometric operations for addressing real-world problems. Geometric operations can be understood as those operations that in some way change the geometry of geospatial objects (Lovelace et al., 2018).
This notebook is based on the vignettes for the R packages rgbif and ConR. The rgbif library provides access to Global Biodiversity Information Facility (GBIF) data. The ConR library supports largeāscale multispecies preliminary conservation assessments using distribution data (Dauby et. al, 2017).
In summary, ConR provides functions to compute metrics needed for preparing reports to the IUCN Red List of Threatened Species. The IUCN Red List is a comprehensive inventory of the global conservation status of plant and animal species. It uses a set of criteria to evaluate the extinction risk of thousands of species and subspecies. This list is recognized as an authoritative source for biological diversity.
The GBIF provides access to taxonomic data about a country and can easily be downloaded using either the GBIF website or using the rgbif R package (hosted by OpenSci)
After registering in the GBIF website, I looked for plants ocurrences data in the Colombian Amazonian. After some minutes, the GBIF tool informed that a dataset was ready for downloading. The dataset was identified as DOI10.15468/dl.gdbuny. The URL for downloading the dataset is http://api.gbif.org/v1/occurrence/download/request/0004951-181108115102211.zip
Now, we can proceed to downloading and unzipping this dataset from R:
#install.packages("rgbif")
library(rgbif)
library(dplyr)
col_gbif <- occ_download_get(key = "0004951-181108115102211", overwrite = TRUE) %>%
occ_download_import(col_gbif_download, na.strings = c("", NA))
## Download file size: 6.5 MB
## On disk at /Users/ivanlizarazo/Documents/datos/g4d/notebooks/0004951-181108115102211.zip
Letās review the structure of the dataset:
col_gbif
Note that the data has been compiled by the Instituto Amazónico de Investigaciones CientĆficas SINCHI is a non-profit research institute of the Government of Colombia charged with carrying out scientific investigations on matters relating to the Amazon Rainforest, the Amazon River and the Amazon Region of Colombia for its better understanding and protection. The word sinchi, is a word in Quechua that means āstrongā or āfierceā.
One important feature of GBIF data is that the rows include different taxonranks such as Kingdom, Family, Genus and Species. This means that when we summarise the data, we need to ensure that we have selected the right category of data.
We can quickly summarise the number of plant occurrences by kingdom using the dplyr package.
library(tidyverse)
col_gbif %>% drop_na(kingdom) %>% count(kingdom, sort = TRUE)
The value of n is the number of occurrence records in the dataset by kingdom and should not be confused with the number of species.
We can count the number of occurrence records for each species as follows. Note that we filter the taxonrank column to select species.
col_gbif %>% filter(taxonRank == "SPECIES") %>% count(species) %>% arrange(desc(n))
We can see that the top species in terms of occurrence records is Virola elongata. This is a tree that can grow up to 40 metres tall. The more or less cylindrical bole is straight and up to 50cm in diameter. The tree is harvested from the wild as a source of oil and latex. It is also harvested for its wood.
To get a quick overview of the number of occurrence records by taxonrank we can simply change the count to count by taxonrank. This is not very exciting except perhaps to note the occurrence records for species, subspecies and variety.
library(tidyverse)
col_gbif %>% count(taxonRank)
If we are interested in mapping the data later on we will probably want to get a grip on the species occurrence records for plants to check whether the dataset is flooded with plant observation data. Again we can do this quite easily.
col_gbif %>% count(class, sort = TRUE) %>% drop_na(class) %>% filter(n > 500) %>%
ggplot(aes(x = reorder(class, n), y = n, fill = class)) + geom_bar(stat = "identity",
show.legend = FALSE) + labs(x = "SPECIES", y = "Number of Occurrence Records (observations)") +
coord_flip()
Note that Magnoliopsida is the scientific name of the paraphyletic class of vascular plants that produce flowers and seeds usually with two cotyledons, also known as the dicotyledons.
Letās look for ocurrences of Virola sebifera an Amazonian tree whose entire range is likely to have vanished by 2050 BBC, 2004
col_gbif %>% filter(species == "Virola sebifera")
Note that there are only 31 ocurrences of Virola sebifera registered in this dataset.
The Extent of Occurrence (EOO) is āthe area contained within the shortest continuous imaginary boundary which can be drawn to encompass all the known, inferred or projected sites of present occurrence of a taxon, excluding cases of vagrancyā" (IUCN 2012)
Before computing the E00 we need to transform the gbif data into the structure required by the ConR package. It needs a data frame with three columns:
virola <- col_gbif %>% dplyr::filter(genus == "Virola") %>%
select(decimalLatitude, decimalLongitude, species)
print(virola)
## # A tibble: 740 x 3
## decimalLatitude decimalLongitude species
## <dbl> <dbl> <chr>
## 1 1.74 -69.8 Virola venosa
## 2 3.09 -67.8 <NA>
## 3 0.97 -71.3 Virola elongata
## 4 -0.86 -71.8 Virola elongata
## 5 1.5 -75.6 Virola elongata
## 6 1.26 -70.1 Virola elongata
## 7 -0.66 -72.1 Virola elongata
## 8 -1.02 -69.6 <NA>
## 9 NA NA Virola schultesii
## 10 1.32 -75.6 Virola divergens
## # ... with 730 more rows
Now, the dataset is ready for computing the EOO:
EOO.results <- EOO.computing(virola, export_shp = T)
## [1] "Skipping 13 occurrences because of missing coordinates for Virola schultesii"
summary(EOO.results)
## Length Class Mode
## Virola albidiflora 1 -none- numeric
## Virola caducifolia 1 -none- numeric
## Virola calophylla 2 -none- list
## Virola carinata 2 -none- list
## Virola crebrinervia 1 -none- numeric
## Virola decorticans 2 -none- list
## Virola divergens 2 -none- list
## Virola duckei 2 -none- list
## Virola elongata 2 -none- list
## Virola flexuosa 2 -none- list
## Virola loretensis 2 -none- list
## Virola marlenei 2 -none- list
## Virola mollissima 2 -none- list
## Virola multicostata 1 -none- numeric
## Virola multinervia 2 -none- list
## Virola obovata 1 -none- numeric
## Virola parvifolia 2 -none- list
## Virola pavonis 2 -none- list
## Virola peruviana 2 -none- list
## Virola sebifera 2 -none- list
## Virola surinamensis 2 -none- list
## Virola venosa 1 -none- numeric
library(rnaturalearth)
library(sp)
#world countries
sp::plot(ne_countries(country='colombia'), border="grey",
main="EOO for Virola Sebifera - Convex Hull")
sp::plot(EOO.results[[20]][[2]], col="red", add=TRUE)
Note that the default method for computing the EOO uses the āconvex hullā concept. However, this concept may not be useful always. In that case, it is possible to apply the concept of āalpha hullā. See IUCN guidelines and Alpha Hull
#install.packages("alphahull")
library(alphahull)
EOO.results2 <- EOO.computing(virola, method.range = "alpha.hull",
export_shp = T, alpha=3)
## [1] "Skipping 13 occurrences because of missing coordinates for Virola schultesii"
summary(EOO.results2)
## Length Class Mode
## Virola albidiflora 1 -none- numeric
## Virola caducifolia 1 -none- numeric
## Virola calophylla 2 -none- list
## Virola carinata 2 -none- list
## Virola crebrinervia 1 -none- numeric
## Virola decorticans 2 -none- list
## Virola divergens 2 -none- list
## Virola duckei 2 -none- list
## Virola elongata 2 -none- list
## Virola flexuosa 2 -none- list
## Virola loretensis 2 -none- list
## Virola marlenei 2 -none- list
## Virola mollissima 2 -none- list
## Virola multicostata 1 -none- numeric
## Virola multinervia 2 -none- list
## Virola obovata 1 -none- numeric
## Virola parvifolia 2 -none- list
## Virola pavonis 2 -none- list
## Virola peruviana 2 -none- list
## Virola sebifera 2 -none- list
## Virola surinamensis 2 -none- list
## Virola venosa 1 -none- numeric
#
sp::plot(EOO.results2[[20]][[2]], col="red", main="EOO for Virola Sebifera - Alpha Hull")
sp::plot(ne_countries(country='colombia'), border="grey", add=TRUE)
The function subpop.comp estimates the number of subpopulations using the circular buffer method (Rivers et al., 2010). Each unique occurrence is buffered with a circle of a defined radius and overlapping circles are merged to form a single subpopulation, while nonoverlapping circles are considered to represent separate subpopulations.
Although the number of subpopulations is not directly taken into account for assessments based on criterion B, this information is requested for the submission of full assessments to the IUCN Red List.
The argument Resol_sub_pop must be given and defines in kilometres the radius of the circles around each occurrence.
SUB <- subpop.comp(virola, Resol_sub_pop=50)
## [1] "Skipping 13 occurrences because of missing coordinates for Virola schultesii"
SUB
## $`Virola albidiflora`
## $`Virola albidiflora`$`Number of subpopulation`
## [1] 2
##
## $`Virola albidiflora`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -76.36916, -72.35084, -1.88237, 2.05241 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola caducifolia`
## $`Virola caducifolia`$`Number of subpopulation`
## [1] 1
##
## $`Virola caducifolia`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -72.64916, -71.75084, -0.272186, 0.6321969 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola calophylla`
## $`Virola calophylla`$`Number of subpopulation`
## [1] 9
##
## $`Virola calophylla`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -77.19916, -69.06084, -4.533432, 3.112745 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola carinata`
## $`Virola carinata`$`Number of subpopulation`
## [1] 7
##
## $`Virola carinata`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -76.07916, -67.46084, -4.523426, 4.323313 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola crebrinervia`
## $`Virola crebrinervia`$`Number of subpopulation`
## [1] 1
##
## $`Virola crebrinervia`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -75.19916, -74.30084, -0.5921949, 0.3121864 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola decorticans`
## $`Virola decorticans`$`Number of subpopulation`
## [1] 1
##
## $`Virola decorticans`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -72.66916, -71.33084, -1.392277, -0.1078066 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola divergens`
## $`Virola divergens`$`Number of subpopulation`
## [1] 4
##
## $`Virola divergens`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -76.07916, -69.59084, -4.213253, 1.772346 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola duckei`
## $`Virola duckei`$`Number of subpopulation`
## [1] 4
##
## $`Virola duckei`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -77.34916, -71.66084, -1.062233, 4.613479 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola elongata`
## $`Virola elongata`$`Number of subpopulation`
## [1] 7
##
## $`Virola elongata`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -77.56916, -67.36084, -4.26328, 5.954394 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola flexuosa`
## $`Virola flexuosa`$`Number of subpopulation`
## [1] 3
##
## $`Virola flexuosa`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -74.17916, -69.05084, -1.5323, 3.973128 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola loretensis`
## $`Virola loretensis`$`Number of subpopulation`
## [1] 7
##
## $`Virola loretensis`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -74.44916, -69.06084, -4.253275, 1.162245 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola marlenei`
## $`Virola marlenei`$`Number of subpopulation`
## [1] 7
##
## $`Virola marlenei`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -73.30916, -69.28084, -4.133211, 2.622571 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola mollissima`
## $`Virola mollissima`$`Number of subpopulation`
## [1] 3
##
## $`Virola mollissima`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -72.55916, -69.72084, -4.273286, -0.1578042 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola multicostata`
## $`Virola multicostata`$`Number of subpopulation`
## [1] 2
##
## $`Virola multicostata`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -72.17916, -69.80084, -4.153221, -0.507778 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola multinervia`
## $`Virola multinervia`$`Number of subpopulation`
## [1] 7
##
## $`Virola multinervia`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -77.07916, -69.28084, -4.253275, 2.192445 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola obovata`
## $`Virola obovata`$`Number of subpopulation`
## [1] 1
##
## $`Virola obovata`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -72.60916, -71.71084, -1.052232, -0.1478047 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola parvifolia`
## $`Virola parvifolia`$`Number of subpopulation`
## [1] 7
##
## $`Virola parvifolia`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -75.78916, -69.12084, -2.972692, 2.792628 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola pavonis`
## $`Virola pavonis`$`Number of subpopulation`
## [1] 10
##
## $`Virola pavonis`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -77.34916, -66.95084, -4.453386, 4.35333 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola peruviana`
## $`Virola peruviana`$`Number of subpopulation`
## [1] 6
##
## $`Virola peruviana`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -76.09916, -67.46084, -4.253275, 4.493409 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola sebifera`
## $`Virola sebifera`$`Number of subpopulation`
## [1] 15
##
## $`Virola sebifera`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -77.08916, -67.43084, -3.332833, 6.725031 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola surinamensis`
## $`Virola surinamensis`$`Number of subpopulation`
## [1] 5
##
## $`Virola surinamensis`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -76.18916, -69.39084, -4.433375, 1.88237 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
##
##
## $`Virola venosa`
## $`Virola venosa`$`Number of subpopulation`
## [1] 1
##
## $`Virola venosa`$subpop.poly
## class : SpatialPolygons
## features : 1
## extent : -70.20916, -69.31084, 1.28766, 2.192445 (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
sp::plot(SUB[["Virola sebifera"]][["subpop.poly"]], col="red")
sp::plot(ne_countries(country='colombia'), border="grey", add=TRUE)
Using the IUCN.eval function, it is possible to get a data frame that provides several paramaters as well as the preliminary IUCN category.
col_gbif
tmp <- col_gbif %>% dplyr::filter(genus == "Virola") %>%
select(decimalLatitude, decimalLongitude, species, genus)
tmp
nvirola <- tmp %>%
filter(!is.na(decimalLatitude)) %>%
filter(!is.na(species))
nvirola
MyResults <- IUCN.eval(nvirola, Cell_size_AOO = 10)
##
|
| | 0%
## Warning in .IUCN.comp(x, NamesSp = as.character(unique(x$tax)), DrawMap
## = DrawMap, : EOO statistic is not computed for Virola albidiflora because
## there is less than 3 records
##
|
|=== | 5%
## Warning in .IUCN.comp(x, NamesSp = as.character(unique(x$tax)), DrawMap
## = DrawMap, : EOO statistic is not computed for Virola caducifolia because
## there is less than 3 records
##
|
|====== | 9%
##
|
|========= | 14%
##
|
|============ | 18%
## Warning in .IUCN.comp(x, NamesSp = as.character(unique(x$tax)), DrawMap =
## DrawMap, : EOO statistic is not computed for Virola crebrinervia because
## there is less than 3 records
##
|
|=============== | 23%
##
|
|================== | 27%
##
|
|===================== | 32%
##
|
|======================== | 36%
##
|
|=========================== | 41%
##
|
|============================== | 45%
##
|
|================================ | 50%
##
|
|=================================== | 55%
##
|
|====================================== | 59%
## Warning in .IUCN.comp(x, NamesSp = as.character(unique(x$tax)), DrawMap =
## DrawMap, : EOO statistic is not computed for Virola multicostata because
## there is less than 3 records
##
|
|========================================= | 64%
##
|
|============================================ | 68%
## Warning in .IUCN.comp(x, NamesSp = as.character(unique(x$tax)), DrawMap =
## DrawMap, : EOO statistic is not computed for Virola obovata because there
## is less than 3 records
##
|
|=============================================== | 73%
##
|
|================================================== | 77%
##
|
|===================================================== | 82%
##
|
|======================================================== | 86%
##
|
|=========================================================== | 91%
##
|
|============================================================== | 95%
## Warning in .IUCN.comp(x, NamesSp = as.character(unique(x$tax)), DrawMap =
## DrawMap, : EOO statistic is not computed for Virola venosa because there is
## less than 3 records
##
|
|=================================================================| 100%
## [1] "Number of species per category"
##
## EN LC or NT VU
## 8 8 6
## [1] "Ratio of species per category"
##
## EN LC or NT VU
## 36.4 36.4 27.3
Note that the codes for the IUCN Categories are: - LC: Least Concern - NT: Near Threatened - VU: Vulnerable - EN: Endangered - CR: Critically Endangered
The NT category is assigned here for taxa with a number of location lower than 14 and higher than 10, with EOO higher or equal to 20,000 km2 and with AOO higher or equal to 2,000 km2.
According to the output there are 8 endangered species, 8 near threatened and 6 vulnerable. None of this species was considered as a critically endangered specie.
As result of running the IUCN.eval function, a PNG map per specie is save in the IUCN_results_map directory. A sample of the output maps is presented here:
IUCN Virola albidiflora
IUCN Virola carinata
IUCN Virola elongata
IUCN Virola decorticans
IUCN Virola loretensis
IUCN Virola sebifera
IUCN Virola peruviana
IUCN Virola multinervia
According to the documentation, the map.res function in the ConR package provides four maps showing in grid cells of a given resolution : number of records, species richness, number of threatened species (CR+EN+VU) and proportion of threatened species.
First, we need a land sp object:
colombia <- ne_countries(country='colombia')
Then, we can continue. The function call needs to be like this
library(crayon)
##
## Attaching package: 'crayon'
## The following object is masked from 'package:ggplot2':
##
## %+%
cat(blue("map.res(Results, Occurrences, country_map=NULL, Resol=1, threshold=0,
LatMin=NULL, LatMax=NULL, LongMin=NULL,
LongMax=NULL, export_map=FALSE, file_name=NULL, export_data=FALSE"))
## map.res(Results, Occurrences, country_map=NULL, Resol=1, threshold=0,
## LatMin=NULL, LatMax=NULL, LongMin=NULL,
## LongMax=NULL, export_map=FALSE, file_name=NULL, export_data=FALSE
These are the arguments: - Results: The default output of IUCN.eval applied to multiple species
Occurrence: A dataframe
country_map: A SpatialPolygonsDataFrame or SpatialPolygons showing for example countries or continent borders
I tried map.res several times, changing some parameter values each time, with no success. I used the following sintaxis:
cat(green("map.res(MyResults, Occurrences=nvirola, country_map=colombia, export_map=TRUE, threshold=0,
LatMin=-3,LatMax=3,LongMin=-78, LongMax=-68, Resol=0.1"))
## map.res(MyResults, Occurrences=nvirola, country_map=colombia, export_map=TRUE, threshold=0,
## LatMin=-3,LatMax=3,LongMin=-78, LongMax=-68, Resol=0.1
Every time the result was dissapointing:
cat(red("Error in ConR::map.res(MyResults2, Occurrences = as_data_frame(nvirola), : Results and Occurrences input files have different number of species"))
## Error in ConR::map.res(MyResults2, Occurrences = as_data_frame(nvirola), : Results and Occurrences input files have different number of species
In the following chunks, my code tweaks are shown. They did not work really, but just for the record here you are:
MyResults %>% count(taxa) %>% arrange(desc(taxa))
nvirola %>% count(species) %>% arrange(desc(species))
levels(MyResults$taxa)
## [1] "Virola albidiflora" "Virola caducifolia" "Virola calophylla"
## [4] "Virola carinata" "Virola crebrinervia" "Virola decorticans"
## [7] "Virola divergens" "Virola duckei" "Virola elongata"
## [10] "Virola flexuosa" "Virola loretensis" "Virola marlenei"
## [13] "Virola mollissima" "Virola multicostata" "Virola multinervia"
## [16] "Virola obovata" "Virola parvifolia" "Virola pavonis"
## [19] "Virola peruviana" "Virola sebifera" "Virola surinamensis"
## [22] "Virola venosa"
MyResults2 <- MyResults %>%
mutate(taxa = as.character(taxa))
MyResults2 %>% count(taxa) %>% arrange(desc(taxa))
This was my last try:
cat(blue("map.res(MyResults2, Occurrences=as_data_frame(nvirola), country_map=colombia, export_map=TRUE, threshold=0,
LatMin=-3,LatMax=3,LongMin=-78, LongMax=-68, Resol=0.1"))
## map.res(MyResults2, Occurrences=as_data_frame(nvirola), country_map=colombia, export_map=TRUE, threshold=0,
## LatMin=-3,LatMax=3,LongMin=-78, LongMax=-68, Resol=0.1
Note that this is a notebook written for teaching purposes. This means this is still a work in progress.
Bis bald!!!
Dauby, G. et al. 2017. ConR: An R package to assist largeāscale multispecies preliminary conservation assessments using distribution data. Ecology and Evolution 7(24): 11292-11303.
IUCN. 2012. IUCN Red List Categories and Criteria: Version 3.1. Second edition. Gland, Switzerland and Cambridge, UK: IUCN. http://www.iucnredlist.org/technical-documents/categories-and-criteria
IUCN Standards and Petitions Subcommittee. 2016. Guidelines for Using the IUCN Red List Categories and Criteria. Version 12. Prepared by the Standards and Petitions Subcommittee. http://www.iucnredlist.org/documents/RedListGuidelines.pdf
Lovelace, R., Nowosad, J. & MuenchowG, J. Geocomputation with R. https://geocompr.robinlovelace.net/
Rivers MC, Bachman SP, Meagher TR, Lughadha EN, Brummitt NA (2010) Subpopulations, locations and fragmentation: applying IUCN red list criteria to herbarium specimen data. Biodiversity and Conservation 19: 2071-2085. doi: 10.1007/s10531-010-9826-9