rgbif的使用

生物分布数据库

  • GBIF:全球生物多样性信息平台,收集全球生物在哪里被发现的点位数据
  • OBIS:海洋生物多样性信息系统,专门管海洋生物的分布点位

一、注册

# 到官网注册后,设置账号密码邮箱,存到R的环境配置文件(.Renviron)中
install.packages("usethis")
usethis::edit_r_environ()
# 在打开的文本编辑器中填写注册成功的账号密码邮箱,左上角显示文件名为.Renviron
GBIF_USER="jwaller"
GBIF_PWD="safe_fake_password_123"
GBIF_EMAIL="jwaller@gbif.org"

二、下载数据

install.packages("rgbif")
library(rgbif)

## 1.发出下载请求
# 请求下载分类单元2436775下所有物种分布记录。默认下载格式是zip
# pred_default():默认的质量筛选,封装了常用过滤条件
gbif_download <- occ_download(pred_default(),pred("taxonKey", 2436775),format = "SIMPLE_CSV")  # 返回的是下载编号

## 2.查询下载状态
# 通过生成的链接或任务编号查询下载状态。会一直更新状态,直到完成下载
occ_download_wait(gbif_download)  # 通过任务编号查询下载状态

## 3.导入R
d <- occ_download_get(gbif_download) %>%
  occ_download_import()
gbif_download <- occ_download(pred_default(),pred("taxonKey", 2333562),format = "SIMPLE_CSV")
occ_download_wait(gbif_download)
d <- occ_download_get(gbif_download) %>%
  occ_download_import()

三、查找功能

1. 查物种在数据库中的ID(Taxonomy)

属(genus)、科(family)、目(order)、纲(Class)、门(phylum)、界(kingdom)、分类阶元(rank)

name_backbone():单条查询。将输入的学名匹配到 GBIF 官方的主干分类库(GBIF Backbone Taxonomy)

## 1.单条查询
name_backbone("Calopteryx splendens")    # 输入拉丁学名

name_backbone_checklist():批量查询

## 2.批量查询
# 输入向量
name_list <- c("Cirsium arvense", "Calopteryx splendens", "Puma concolor")
name_backbone_checklist(name_list)
# 输入数据框。scientificName指定要查询的物种名。kingdom指定界
name_data <- data.frame(
  scientificName = c(
    "Cirsium arvense (L.) Scop.", # a plant
    "Calopteryx splendens (Harris, 1780)", # an insect
    "Puma concolor (Linnaeus, 1771)", # a big cat
    "Ceylonosticta alwisi (Priyadarshana & Wijewardhane, 2016)", # newly discovered insect 
    "Puma concuolor (Linnaeus, 1771)", # a mis-spelled big cat
    "Fake species (John Waller 2021)", # a fake species
    "Calopteryx" # Just a Genus 
    ), 
  kingdom = c("Plantae","Animalia","Animalia","Animalia","Animalia","Johnlia","Animalia"))

name_backbone_checklist(name_data)
# To return more than just the 'best' results, run
# name_backbone_checklist(name_data,verbose=TRUE) 

返回多个匹配,默认只返回最佳匹配

# 添加verbose=TRUE
name_backbone("Glocianus punctiger",verbose=TRUE)

2. 模糊查询

name_suggest():模糊 / 联想查名称(亚种、不完整名)

name_suggest('zebrafish')  # 查不到。只能查到含有这个单词的物种

3. 跨库查询

name_lookup:跨库查分类(其他名录数据)

a <- name_lookup("zebrafish")$data

4. 查层级、俗名

name_usage:查分类(层级关系、俗名、全量信息)

通过key或name查询

# 查下级分类(目/科/属)
library(dplyr)
name_usage(name="Osteichthyes", data="children")$data %>% 
filter(!is.na(nubKey)) %>%
glimpse()

name_usage(key="121446385", data="children")$data
# 查俗名
name_usage(key = 103996835, data = "vernacularNames")$data
# A tibble: 4 × 3
   taxonKey vernacularName language
      <int> <chr>          <chr>   
1 103996835 leopard danio  ""      
2 103996835 zebra danio    ""      
3 103996835 zebra fish     ""      
4 103996835 zebrafish      ""

 

posted @ 2026-05-01 13:28  asaca_r  阅读(64)  评论(0)    收藏  举报