knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.pos="H" )
The bromeliad package contains estimated distributions for 2395 species of the pineapple family (Bromeliaceae) plus three functions to access and visualize this data: get_range
, map_species
, map_richness
. The included ranges were estimated from occurrence records, using different algorithms, including climate suitability models based on climate, convex hulls and geospatial buffering. Make sure to check Zizka et al. 2019 for the methodology of range estimation.
You can install bromeliad using the devtools package. If you want to visualize species richness patterns, you also need to install speciesgeocodeR.
library(devtools) #install_github("idiv-biodiversity/bromeliad") #install_github("azizka/speciesgeocodeR") library(bromeliad) library(speciesgeocodeR)
If you want to use data for all bromeliaceae, you can access them directly via the dataset using data()
. If you are only interested in a subset of the species you can use the get_range
function to select species based on taxonomy (scientific name, canonical name, genus, subfamily) or traits (life form, range size, conservation assessment), or a combination of those.
You can select one or multiple species and visualize their range as per species map. The type argument controls what kind of range estimation is selected.
# range polygon based on scientific name with authorities dat <- get_range(scientific = "Aechmea mexicana Baker") # presence absence model dat <- get_range(scientific = "Aechmea alba Mez", type = "binary") #modelled habitat suitability dat <- get_range(scientific = "Aechmea alba Mez", type = "suitability") # based on canonical name dat <- get_range(canonical = "Aechmea mexicana") # multiple species dat <- get_range(canonical = c("Aechmea mexicana", "Aechmea alba")) # Species maps map_species(canonical = "Aechmea mexicana")
\pagebreak
You can also use higher rank taxa to select multiple species at once.
# one genus dat <- get_range(genus = "Aechmea") # multiple genera dat <- get_range(genus = c("Aechmea", "Zizkaea")) # subfamily dat <- get_range(subfamily = "Pitcairnioideae") #Richness pattern map_richness(dat)
\pagebreak
Or based on traits and conservation status.
#life form dat <- get_range(life_form = "epiphyte") map_richness(dat) # conservation status dat <- get_range(assessment = c("CR", "VU"))
\pagebreak
Different criteria can also be combined, for instance to get all species of Aechmea classified as critcally endangered, endangered or vulnerable.
dat <- get_range(genus = "Aechmea", assessment = c("CR", "EN", "VU")) map_richness(dat)
\pagebreak
To write one of the taxonomy and conservation assessment as a table, use
data(taxonomy_traits) write.csv(taxonomy_traits, "georeferenced_bromeliad_occurrences.csv")
To write the ranges as a shape file, use
library(sf) st_write(dat, "distribution_ranges.shp")
To write the georeferenced occurrences as a table, use
data(georef_additions) write.csv(georef_additions, "georeferenced_bromeliad_occurrences.csv")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.