::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
knitrsuppressPackageStartupMessages({
library(rgbif)
library(dplyr)
library(tidyr)
library(ggplot2)
library(ggpubr)
library(viridis)
library(sf)
library(geobr)
library(vegan)
library(knitr)
library(leaflet)
})
Pacotes utilizados
Fonte de dados
Os dados utilizados neste estudo foram obtidos por meio da função occ_download_get()
do pacote rgbif
no R, acessando diretamente a base de dados da Global Biodiversity Information Facility (GBIF). Foi realizado um download contendo exclusivamente registros de ocorrência da família Formicidae, totalizando 52.059 registros brutos.
occ_download_wait('0054387-250525065834625')
<<gbif download metadata>>
Status: SUCCEEDED
DOI: 10.15468/dl.5hksr5
Format: SIMPLE_CSV
Download key: 0054387-250525065834625
Created: 2025-06-18T14:31:33.117+00:00
Modified: 2025-06-18T14:37:51.920+00:00
Download link: https://api.gbif.org/v1/occurrence/download/request/0054387-250525065834625.zip
Total records: 52059
<- occ_download_get("0054387-250525065834625", overwrite = TRUE) %>%
dados_formigas occ_download_import()
Tratamento e filtragem
Seleção das variáveis relevantes:
Foram mantidas apenas as colunas com informações sobre o gênero (genus
), estado (stateProvince
) e coordenadas geográficas (decimalLatitude
, decimalLongitude
) e registros com qualquer campo NA
nas colunas selecionadas foram excluídos.
<- dados_formigas %>%
dados_filtrados select(genus, stateProvince, decimalLatitude, decimalLongitude) %>%
filter(!is.na(genus), !is.na(stateProvince),
!is.na(decimalLatitude), !is.na(decimalLongitude)) %>%
rename(
genero = genus,
estado = stateProvince,
latitude = decimalLatitude,
longitude = decimalLongitude
)
Padronização dos nomes dos estados e remoção de dados
<- function(estado) {
padroniza_estado <- tolower(estado)
estado <- gsub("ã", "a", estado)
estado <- gsub("á", "a", estado)
estado <- gsub("ă", "a", estado)
estado <- gsub("â", "a", estado)
estado <- gsub("é", "e", estado)
estado <- gsub("ê", "e", estado)
estado <- gsub("í", "i", estado)
estado <- gsub("ó", "o", estado)
estado <- gsub("ô", "o", estado)
estado <- gsub("ú", "u", estado)
estado <- gsub("ç", "c", estado)
estado <- trimws(estado)
estado
if (estado %in% c("amapa", "amapá")) return("Amapá")
if (estado %in% c("amazonas", "state of amazonas", "manaus")) return("Amazônas")
if (estado %in% c("ce", "ceara", "ceará")) return("Ceará")
if (estado %in% c("df", "distrito federal", "federal district")) return("Distrito Federal")
if (estado %in% c("espirito santo", "espírito santo", "esp�rito santo")) return("Espírito Santo")
if (estado %in% c("estado de sao paulo", "sp", "sao paulo", "são paulo", "s�o paulo", "sao paulo ", "Săo paulo")) return("São Paulo")
if (estado %in% c("goias", "goiás", "goi�s")) return("Goiás")
if (estado %in% c("maranhao", "maranhão")) return("Maranhão")
if (estado %in% c("mato grosso", "matto grasso")) return("Mato Grosso")
if (estado %in% c("mato grosso do sul", "matto grasso do sul", "morraria do sul")) return("Mato Grosso do Sul")
if (estado %in% c("mg", "minas gerais", "minas gerias")) return("Minas Gerais")
if (estado %in% c("para", "pará", "par�")) return("Pará")
if (estado %in% c("paraiba", "paraíba")) return("Paraíba")
if (estado %in% c("parana", "paraná", "paranã", "paran�")) return("Paraná")
if (estado %in% c("piaui", "piauí")) return("Piauí")
if (estado %in% c("rio de janeiro", "rio janeiro", "rio de janeira")) return("Rio de Janeiro")
if (estado %in% c("rondonia", "rondônia", "rond�nia", "rodonia", "rondónia")) return("Rondônia")
if (estado %in% c("santa catarina", "santa catarina (catharina)")) return("Santa Catarina")
if (estado %in% c("tocantins", "to")) return("Tocantins")
return(paste0(toupper(substring(estado, 1, 1)), substring(estado, 2)))
}
# 2. Criar a tabela já com estado corrigido direto
<- dados_formigas %>%
dados_filtrados select(genus, stateProvince, decimalLatitude, decimalLongitude) %>%
filter(!is.na(genus), !is.na(stateProvince),
!is.na(decimalLatitude), !is.na(decimalLongitude)) %>%
mutate(stateProvince = sapply(stateProvince, padroniza_estado)) %>%
rename(
genero = genus,
estado = stateProvince,
latitude = decimalLatitude,
longitude = decimalLongitude
)
#Criar um novo objeto só com registros que têm estado informado
<- dados_filtrados %>%
dados_com_estado filter(
!is.na(estado),
!= "",
estado != " ",
estado !grepl("Nao informado", estado, ignore.case = TRUE)
)
Remoção de registros com gênero ausente
<- dados_com_estado %>%
dados_validos filter(!is.na(genero), genero != "", genero != " ")
Conversão espacial e associação com biomas
Os registros com coordenadas geográficas foram convertidos para objetos espaciais com o pacote sf
, e posteriormente associados aos biomas brasileiros utilizando o shapefile oficial de biomas do Brasil (IBGE 2019), acessado via pacote geobr
.
# Baixar o shapefile de biomas
<- read_biomes(year = 2019)
biomas
# Transformar os dados em objeto espacial (geográfico)
<- st_as_sf(dados_validos,
dados_sf coords = c("longitude", "latitude"),
crs = 4326)
# Transformar os biomas para o mesmo CRS
<- st_transform(biomas, crs = 4326)
biomas
# Juntar os dados com os biomas por interseção espacial
<- st_join(dados_sf, biomas["name_biome"]) %>%
dados_com_bioma filter(!is.na(name_biome)) %>%
rename(bioma = name_biome)