install.packages(c("rgbif", "CoordinateCleaner", "leaflet", "dplyr"))Mapa de ocorrências a partir do GBIF
Herbários e biodiversidade
Mapas
Baixar registros de uma espécie no GBIF, limpar coordenadas problemáticas e fazer um mapa interativo.
Nível: intermediário · Pacotes: rgbif, CoordinateCleaner, leaflet · Requer internet · Baixar script
Os blocos de código desta página não são executados no site (dependem de internet e da base do GBIF no momento da consulta). Copie e rode no seu computador.
1. Instale os pacotes
2. Baixe os registros
O occ_search() é bom para explorar até alguns milhares de registros. Para artigos, use occ_download(), que gera um DOI citável para o conjunto de dados.
library(rgbif)
library(dplyr)
especie <- "Ecclinusa guianensis"
res <- occ_search(
scientificName = especie,
hasCoordinate = TRUE,
hasGeospatialIssue = FALSE,
limit = 5000
)
occ <- res$data |>
select(species, decimalLongitude, decimalLatitude, countryCode,
institutionCode, catalogNumber, year, basisOfRecord)
nrow(occ)3. Limpe as coordenadas
O CoordinateCleaner marca registros suspeitos: coordenadas em capitais, centroides de países, sedes de instituições (herbários!), coordenadas iguais a zero, no mar etc.
library(CoordinateCleaner)
flags <- clean_coordinates(
occ,
lon = "decimalLongitude", lat = "decimalLatitude",
countries = "countryCode", species = "species",
tests = c("capitals", "centroids", "equal", "gbif",
"institutions", "zeros", "seas")
)
summary(flags)
occ_limpo <- occ[flags$.summary, ] # mantém só os registros aprovados
# Remove duplicatas de coordenadas
occ_limpo <- distinct(occ_limpo, decimalLongitude, decimalLatitude, .keep_all = TRUE)
Dica
A limpeza automática não substitui o olhar do taxonomista: confira a identificação dos registros fora da distribuição esperada antes de excluí-los ou mantê-los.
4. Mapa interativo
library(leaflet)
leaflet(occ_limpo) |>
addProviderTiles("Esri.WorldImagery", group = "Satélite") |>
addTiles(group = "Mapa") |>
addCircleMarkers(
~decimalLongitude, ~decimalLatitude,
radius = 4, stroke = FALSE, fillOpacity = 0.8, color = "#f3969a",
popup = ~paste0("<b>", institutionCode, "</b> ", catalogNumber,
"<br>Ano: ", year)
) |>
addLayersControl(baseGroups = c("Satélite", "Mapa"))5. Salve os dados
write.csv(occ_limpo, "dados/ocorrencias_limpas.csv", row.names = FALSE)Referências
- CHAMBERLAIN, S. et al. rgbif: Interface to the Global Biodiversity Information Facility API. https://CRAN.R-project.org/package=rgbif
- ZIZKA, A. et al. 2019. CoordinateCleaner: standardized cleaning of occurrence records from biological collection databases. Methods in Ecology and Evolution 10: 744-751.