Seach and retrieve data from the Global Biodiverity Information Facilty (GBIF)
rgbif
is an R package to search and retrieve data from the Global Biodiverity Information Facilty (GBIF). rgbif
wraps R code around the GBIF API to allow you to talk to GBIF from R.
Install from CRAN
install.packages("rgbif")
Or install the development version from GitHub
::install_github("ropensci/rgbif") remotes
Load rgbif
library("rgbif")
Search by type of record, all observational in this case
occ_count(basisOfRecord='OBSERVATION')
Records for Puma concolor with lat/long data (georeferened) only. Note that hasCoordinate
in occ_search()
is the same as georeferenced
in occ_count()
.
occ_count(taxonKey=2435099, georeferenced=TRUE)
All georeferenced records in GBIF
occ_count(georeferenced=TRUE)
Records from Denmark
isocodes[grep("Denmark", isocodes$name), "code"]
denmark_code <-occ_count(country=denmark_code)
Number of records in a particular dataset
occ_count(datasetKey='9e7ea106-0bf8-4087-bb61-dfe4f29e0f17')
All records from 2012
occ_count(year=2012)
Records for a particular dataset, and only for preserved specimens
occ_count(datasetKey='e707e6da-e143-445d-b41d-529c4a777e8b', basisOfRecord='OBSERVATION')
Get possible values to be used in taxonomic rank arguments in functions
taxrank()
name_lookup()
does full text search of name usages covering the scientific and vernacular name, the species description, distribution and the entire classification across all name usages of all or some checklists. Results are ordered by relevance as this search usually returns a lot of results.
By default name_lookup()
returns five slots of information: meta, data, facets, hierarchies, and names. hierarchies and names elements are named by their matching GBIF key in the data.frame
in the data slot.
name_lookup(query='mammalia') out <-
names(out)
$meta out
head(out$data)
$facets out
$hierarchies[1:2] out
$names[2] out
Search for a genus
name_lookup(query='Cnaemidophorus', rank="genus")
z <-$data z
Search for the class mammalia
name_lookup(query='mammalia')
w <-$data w
Look up the species Helianthus annuus
name_lookup(query = 'Helianthus annuus', rank="species")
m <-$data m
The function name_usage()
works with lots of different name endpoints in GBIF, listed at http://www.gbif.org/developer/species#nameUsages.
name_usage(key=3119195, language="FRENCH", data='vernacularNames')
The function name_backbone()
is used to search against the GBIF backbone taxonomy
name_backbone(name='Helianthus', rank='genus', kingdom='plants')
The function name_suggest()
is optimized for speed, and gives back suggested names based on query parameters.
head( name_suggest(q='Puma concolor') )
Get data for a single occurrence. Note that data is returned as a list, with slots for metadata and data.
occ_get(key=855998194)
Get many occurrences. occ_get
is vectorized
occ_get(key=c(855998194, 240713150))
Note: The maximum number of records you can get with occ_search()
and occ_data()
is 100,000. See https://www.gbif.org/developer/occurrence
By default occ_search()
returns a dplyr
like output summary in which the data printed expands based on how much data is returned, and the size of your window. You can search by scientific name:
occ_search(scientificName = "Ursus americanus", limit = 20)
Or to be more precise, you can search for names first, make sure you have the right name, then pass the GBIF key to the occ_search()
function:
name_suggest(q='Helianthus annuus', rank='species')$key[1]
key <-occ_search(taxonKey=key, limit=20)
You can index to different parts of the oupu; here, the metadata:
occ_search(taxonKey=key)$meta
You can choose what fields to return. This isn’t passed on to the API query to GBIF as they don’t allow that, but we filter out the columns before we give the data back to you.
occ_search(scientificName = "Ursus americanus", fields=c('name','basisOfRecord','protocol'), limit = 20)
Most parameters are vectorized, so you can pass in more than one value:
c('Cyanocitta stelleri', 'Junco hyemalis', 'Aix sponsa')
splist <- sapply(splist, function(x) name_suggest(x)$key[1], USE.NAMES=FALSE)
keys <-occ_search(taxonKey=keys, limit=5)
Using thet GBIF map web tile service, making a raster and visualizing it.
map_fetch(taxonKey = 2480498, year = 2000:2017)
x <-library(raster)
plot(x)