knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE, fig.width = 8, fig.height = 8) # Packages -------------------------------------------------------------------- suppressPackageStartupMessages({ suppressWarnings({ library("GIFT") library("knitr") library("kableExtra") }) }) options(tinytex.verbose = TRUE)
knitr::include_graphics("../man/figures/biodiv_gottingen_logo.png") knitr::include_graphics("../man/figures/GIFT.png")
This vignette shows how to work with the API, how it relates to the GIFT R package, and how the R functions in the package are interdependent.
The API endpoint is https://gift.uni-goettingen.de/api/extended/index.php.
We then have several queries, listed in the table below, that allow
retrieving distinct tables.
The name in the Query column of the table below has to be used as the query
argument. As an example, here is the query that leads to the environmental
raster metadata table:
https://gift.uni-goettingen.de/api/extended/index.php?query=env_raster
Note that the endpoint changes depending on the version of GIFT you are
querying. For example, with the same table as above, we can retrieve the table
as it was in GIFT version 2.0:
https://gift.uni-goettingen.de/api/extended/index2.0.php?query=env_raster
While this API does not require authentication, there is a password-protected
API leading to some restricted content in the different tables. Restricted
content can be,for example, some checklists that need the approval of their
provider before being used. This API can be communicated upon request.
Here is the list of the 24 available queries, their arguments and the GIFT R
functions in which they are called. There is no rate-limitation for any of
these queries except for species and phylogeny, which retrieves the data in
chunks.
# GIFT_traits_raw => reference_traits traits_raw # GIFT_traits_meta => traits_meta # GIFT_traits => traits # GIFT_taxonomy => taxonomy # GIFT_taxgroup => taxonomy # GIFT_species_lookup => names_matched names_matched_unique # GIFT_species_distribution => species_distr overlap # GIFT_species => species # GIFT_richness => taxonomy, traits_cov, species_num # GIFT_regions => regions # GIFT_references => references # GIFT_overlap => overlap_misc # GIFT_no_overlap => overlap # GIFT_lists => lists # GIFT_env_meta_raster => env_raster, references_citavi # GIFT_env_meta_misc => env_misc, references_citavi # GIFT_env => geoentities_env_misc, geoentities_env_raster # GIFT_checklists_raw => taxonomy, checklists # GIFT_checklists_conditional => lists, taxonomy # GIFT_checklists => lists, taxonomy, overlap # GIFT_phylogeny => phylogeny
query_table <- data.frame( Query = c("checklists", "env_misc", "env_raster", "geoentities_env_misc", "geoentities_env_raster", "lists", "names_matched", "names_matched_unique", "overlap", "overlap_misc", "phylogeny", "references_citavi", "references", "reference_traits", "regions", "species", "species_distr", "species_num", "taxonomy", "traits", "traits_cov", "traits_meta", "traits_raw", "versions"), Arguments = c("listid (integer)\n, taxonid, namesmatched, filter", "", "", "envvar", "layername, sumstat", "", "genus, epithet", "genus, epithet", "taxon, startat", "layer", "taxon, startat, limit", "", "", "", "", "startat, limit", "nameid", "taxonid", "", "traitid, biasref, biasderiv, startat, limit", "traitid, taxonid", "", "traitid, deriv, biasderiv, refid", "" ), R_function = c( "GIFT_checklists_raw()", "GIFT_env_meta_misc()", "GIFT_env_meta_raster()", "GIFT_env()", "GIFT_env()", "GIFT_lists(), GIFT_checklists_conditional(), GIFT_checklists()", "GIFT_species_lookup()", "GIFT_species_lookup()", "GIFT_species_distribution(), GIFT_no_overlap(), GIFT_checklists()", "GIFT_overlap()", "GIFT_phylogeny()", "GIFT_env_meta_raster(), GIFT_env_meta_misc()", "GIFT_references()", "GIFT_traits_raw()", "GIFT_regions()", "GIFT_species()", "GIFT_species_distribution()", "GIFT_richness()", "GIFT_taxonomy(), GIFT_taxgroup(), GIFT_richness(), GIFT_checklists_raw(), GIFT_checklists(), GIFT_checklists_conditional()", "GIFT_traits()", "GIFT_richness()", "GIFT_traits_meta()", "GIFT_traits_raw()", "All GIFT functions" ) ) kable(query_table, "html") %>% kable_styling(full_width = FALSE)
Some more details:
# Query for trait and chunks # Default value for end is 10000 # https://gift.uni-goettingen.de/api/extended/index.php?query=traits& # traitid=1.1.1&biasref=1&biasderiv=1&startat=100000&limit=10 # To retrieve the geojson paste0("https://gift.uni-goettingen.de/geojson/geojson_smaller", ifelse(GIFT_version == "beta", "", GIFT_version), "/", entity_ID[i], ".geojson")
Arrows in the figure below connect interdependent functions, i.e. functions
that call other functions. Function names are colored according to the larger
category to which they belong.
knitr::include_graphics("../man/figures/GIFT_network_functions.png")
Denelle, P., Weigelt, P., & Kreft, H. (2023). GIFT—An R package to access the Global Inventory of Floras and Traits. Methods in Ecology and Evolution, 00, 1–11. https://doi.org/10.1111/2041-210X.14213.
Weigelt, P., König, C. & Kreft, H. (2020) GIFT – A Global Inventory of Floras and Traits for macroecology and biogeography. Journal of Biogeography, https://doi.org/10.1111/jbi.13623.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.