O Bioma Stats é um pacote em R criado para facilitar o processamento e a análise de dados geoespaciais, com foco em uso e cobertura da terra (Land Use and Land Cover - LULC) no território brasileiro. O pacote foi desenvolvido para automatizar fluxos de trabalho complexos em análises ambientais, desde o download dos dados até a visualização dos resultados, sendo uma ferramenta acessível até para usuários iniciantes no R.
Com o Bioma Stats, o usuário pode automatizar várias etapas da análise ambiental, tornando o processo mais eficiente e menos suscetível a erros. O pacote é recomendado para pesquisadores de diversas áreas interessados em realizar análises ambientais com dados georreferenciados de maneira prática e intuitiva.
O Bioma Stats é disponibilizado apenas na versão de teste e
deve ser instalado diretamente de repositório do GitHub
(iep-ferreira/biomastats).
Para quem já instalou versões anteriores do programa, recomenda-se a remoção do pacote e a reinicialização da sessão do R.
remove.packages("biomastats")O pacote devtools é requerido para a instalção do
programa. Para instalar e carregar o pacote devtools, use
os comandos a seguir:
#install.packages("devtools") # deixar comentado se houver instalação prévia
library(devtools)Após carregar o devtools, o usuário deverá instalar e
carregar o pacote biomastats.
devtools::install_github("iep-ferreira/biomastats")library(biomastats)No programa Bioma Stats, o usuário pode importar um recorte via
polígono em .shp ou definir uma área a partir de
coordenadas centrais e da forma do recorte.
O usuário tem a opção de indicar o caminho do shapefile
a ser carregado. O próprio Bioma Stats contém alguns exemplos de
arquivos .shp alocados na subpasta
./biomastats/shp/, a qual é encontrada na biblioteca
pessoal do R após a instalação do programa. Para acessar o seu caminho,
utilize o comando system.file como ilustrado a seguir:
(path_package <- system.file(package = "biomastats"))O recorte pode ser visualizado, antes da análise, com auxílio dos
pacotes sf e mapview. No código a seguir, o
arquivo .shp com as delimitações da fazenda Lagoa do Sino,
da UFSCar de Buri - SP, é carregado e visualizado.
ufscar_shp <- file.path(path_package, "shp/UFSCar.shp")# install.packages("sf")
# install.packages("mapview")
library(sf)
library(mapview)
mapview(sf::read_sf(ufscar_shp))Outra forma de definir o recorte é a partir dr coordenadas centrais.
Com as coordenadas centrais, a forma e o tamanho do recorte desejados
pelo pesquisador, a função make_polygon do programa Bioma
Stats é capaz de criar o .shp automaticamente. Neste caso,
o usuário deve informar a latitude (lat), a longitude
(lon), o diâmetro (size, em km) e a forma
desejada (shape = circle, hexagon
ou square), como demonstrado a seguir:
make_polygon(lat = -23.605, lon = -48.529, size = 2.5, shape = "hexagon")Neste exemplo, criou-se uma região hexagonal de \(2,5\)km de diâmetro, centrada na
localização do campus Lagoa do Sino. Observe que o .shp foi
automaticamente salvo como polygon.shp no diretório
shp da biblioteca pessoal do R biomastats.
shp_path <- file.path(path_package, "shp/polygon.shp")
mapview(sf::read_sf(shp_path))Os dados de uso e ocupação do solo são carregados e pré-processados
pela função load_rasters. Há duas formas de carregar os
dados: (i) download automático e (ii) importação de arquivo pessoal.
Download automático: ao especificar um recorte, o
programa realiza automaticamente o download dos mapas e os armazena em
um diretório local selecionado pelo usuário (
"./meus-mapas/" , por exemplo). As imagens são guardadas
para uso posterior, evitando downloads duplicados.mapas <- load_rasters(shape_path = ufscar_shp, start = 1985, end = 2021, method = "download",
export_folder_path = "./meus-mapas/")O fornecimento dos mapas é realizado por um protocolo de armazenamento e distribuição colaborativo, a partir de links compartilháveis armazenados de arquivos públicos armazenados em links de colaboradores do projeto. Observe que a rede de compartilhamento é pequena e, portanto, o fornecimento de mapas pode ser suscetível a instabilidades da rede.
Importação de arquivo pessoal: nessa abordagem, o
usuário deve ter realizado o download prévio das coleções de uso e
ocupação do solo da Plataforma MapBiomas https://mapbiomas.org/.
Para carregar as imagens, basta que o usuário forneça o caminho da pasta
onde se encontra a coleção desejada e escolha, como método, a opção
“library”.mapas <- load_rasters(shape_path = shp_path, start = 1985, end = 2021, method = "library",
import_folder_path = "./minha-colecao/")Observe que, em ambos os casos, o usuário deve também especificar os
anos de início (start) e fim (end) do estudo.
O Bioma Stats mapas anuais de uso e ocupação do solo e a sétima coleção
do MapBiomas, usanda neste trabalho, contém dados de 1985 a 2021.
O download automático é ideal quando a área de estudo é
limitada a poucos milhares de \(km^2\)
e o usuário não deseja gastar tempo com o download de toda a coleção do
MapBiomas. No entanto, o tempo gasto no pré-processamento é excessivo
para recortes maiores, como estados inteiros e biomas, sendo preferível
o segundo método de carregamento para situações como essas.
Os mapas pré-processados no Bioma Stats podem ser exportados e
distribuídos como objeto de dados do R (Rdata). Dessa
forma, os resultados podem ser compartilhados com outros pesquisadores
ou guardados para análises futuras.
save(mapas, file = "./meus-recortes/biomastats_ufscar_exemplo.Rdata")Todas as informações relevantes são recuperadas quando o usuário
carrega o arquivo .Rdata. O pacote Bioma Stats contém dois
arquivos já recortados, para serem usados como exemplos, disponíveis na
subpasta examples do diretório do pacote, na biblioteca
pessoal do R. Com o código a seguir, carregamos o objeto
mapas, que contém os dados de uso e ocupação do solo
previamente recortados para a fazenda Lagoa do Sino, da UFSCar de Buri -
SP.
exp_path <- file.path(path_package, "examples/biomastats_ufscar_exemplo.Rdata")
load(exp_path)Os objetos do Bioma Stats possuem atributos como horizonte de tempo
(time_range), delimitações do recorte (shape)
e rasters recortados e reprojetados para WSG84 (rasters).
Eles podem ser acessados diretamente, usando o comando $.
mapas$time_range## [1] 1985 2021
A função get_area do Bioma Stats faz o cálculo de área
das classes da paisagem e corrige o seu valor de acordo com as
coordenadas dos pixels. As áreas são exportadas na forma de tabela
estruturada, organizadas por classe da paisagem e ano.
results <- get_area(mapas, plot_type = "areaplot")
head(results$aggregate_data, 6)## land_class year area land_class_name
## 3 3 1985 0.311 Forest Formation
## 4 4 1985 0.020 Savanna Formation
## 11 11 1985 0.705 Wetland
## 12 12 1985 0.006 Grassland
## 15 15 1985 4.229 Pasture
## 21 21 1985 1.023 Mosaic of Uses
O atributo time do resultado fornece ao usuário o
gráfico de séries temporais para todas as classes de uso e ocupação do
solo existentes na paisagem. Há duas opções para o gráfico das séries
temporais: plot_type = "areaplot" ou
plot_type = "profile".
results$timeAdicionalmente, comando land_vis permite ao usuário
visualizar o mapa de uso e ocupação da área para o ano de sua escolha.
As cores e legendas seguem o padrão seguem normas técnicas e foram
importados da plataforma MapBiomas.
land_vis(mapas, year = 1990)land_vis(mapas, year = 2020)O comando land_dist apresenta a distribuição de classes,
em termos de área total, para o ano de referência. As opções são gráfico
de colunas (type = "barplot") e de pizza
(type = "pie").
land_dist(results, year = 2020, type = "barplot")land_dist(results, year = 2020, type = "pie")O Bioma Stats também apresenta um módulo para a reclassificação e
métricas da paisagem. O módulo é integrado com o programa
landscapemetrics do R e possui uso intuitivo: na função
biomastats_metrics, o usuário precisa passar o objeto no
padrão biomastats, o horizonte de tempo, a zona de fuso horário, o
hemisfério ("south" ou "north") e as métricas
de interesse ("Frag. Avg. Area (ha)",
"Edge Length (m)",
"Edge Density (m/ha)",
"Total Reclassified Area (ha)",
"Aggregation Index (%)",
"Number of Fragments"
). Ao fazer metrics = "keep.all", todas as métricas
existentes no programa serão calculadas.
Automaticamente, o programa abrirá uma janela seletora para a escolhas de classes de uso e ocupação do solo.
plot_teste <- biomastats_metrics(mapas, start = 1985, end = 2020, zone="20", hemisphere ="south", metrics = "keep.all")Janela seletora de classes. Fonte: Projeto Bioma Stats, 2024
As métricas são exportadas na forma de tabela, como retorno da função
biomastats_metrics:
head(plot_teste$metrics_table, 6)## Year Frag. Avg. Area (ha) Edge Length (m) Edge Density (m/ha)
## 1 1985 0.9856075 1660.0 2.417469
## 2 1986 1.0284600 1660.0 2.417469
## 3 1987 3.6853150 1594.2 2.321644
## 4 1988 2.6568550 3776.1 5.499160
## 5 1989 4.0452760 6000.5 8.738569
## 6 1990 5.6458169 10913.3 15.893114
## Total Reclassified Area (ha) Aggregation Index (%) Number of Fragments
## 1 1.971215 50.00000 2
## 2 2.056920 52.63158 2
## 3 3.685315 81.94444 1
## 4 10.627420 77.77778 4
## 5 20.226380 81.40590 5
## 6 45.166535 85.01984 8
Elas também podem ser visualizadas em gráficos de séries temporais, como ilustram os exemplos a seguir:
plot_teste$area_plotplot_teste$ai_plotAs saídas gráficas do Bioma Stats são objetos oriundos do
pacote gráfico ggplot2. Dessa forma, os gráficos podem ser
customizados usando a sintaxe introduzida por Hadley Wickham no
ggplot2. Por exemplo, abaixo usamos a sintaxe do
ggplot2 para mudar a cor dos pontos e remover as grades de
fundo.
# install.packages("ggplot2")
library(ggplot2)
plot_teste$ai_plot +
geom_point(color = "red") + # Troca a cor dos pontos para azul (pode trocar por outras cores)
theme_minimal() + # Aplica um tema minimalista no fundo
theme(
panel.grid = element_blank() # Remove todas as grades
)O Bioma Stats contém um dicionário de classes, indicando seus códigos, níveis hierárquicos, nomes em Português e Inglês, e cores padronizadas pela norma brasileira do IBGE.
No exemplo a seguir, o dicionário é carregado a partir do comando
dict_build e, com os códigos processados em
biomastats_metrics, os nomes das classificações usadas são
recuperados.
dicti <- biomastats:::dict_build()
dicti$class[dicti$code %in% plot_teste$classes]## [1] "Cotton" "Other Perennial Crops" "Citrus"
## [4] "Coffee" "Other Temporary Crops" "Rice"
## [7] "Soybean" "Perennial Crop" "Sugar Cane"
## [10] "Temporary Crop" "Agriculture"
O Bioma Stats também apresenta recurso para visualizar os
mapas após a reclassificação. A função reclass_map processa
objetos exportados pela função biomastats_metrics e, para
usá-la, o usuário precisa apenas informar o objeto exportado
(obj = plot_teste, por exemplo) e o ano de interesse.
reclass_map(obj = plot_teste, year = 1985)reclass_map(obj = plot_teste, year = 2020)Se você deseja:
Sugerir novas funcionalidades ao programa
Reportar erros
Solicitar suporte técnico
Colaborar com o projeto
A equipe do CeMECA - UFSCar Lagoa do Sino agradece ao Projeto MapBiomas pela disponibilização das coleções de uso e cobertura da terra. Os dados utilizados neste estudo são provenientes do MapBiomas – Coleção 7 da Série Anual de Mapas de Cobertura e Uso do Solo do Brasil, acessados em outubro de 2023 em https://mapbiomas.org.
A equipe do CeMECA - UFSCar Lagoa do Sino agradece ao Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) pelo fomento 406540/2023 - 3.
Agradeço a equipe CeMECA pela colaboração no desenvolvimento e teste do Programa Bioma Stats: - Kaik Octaviano Fontana - Pré-processamento de dados - Cristiano Augusto de Souza - Funções de visualização - Paulo Guilherme Molin (ctb) - Consultoria em GIS - Mateus Faria Santa - Funções de visualização - Ruth Silva Souza - Funções de visualização - Victor de Camargo Gomes - Métricas de paisagem - Ana Beatriz Oliveira Prado - Aquisição de dados e sistemas de comunicação - Ronan Emmanuel de Paula Ferreira - Sistemas de comunicação - Gustavo Bilia Marques - Aquisição de dados e sistemas de comunicação - João Vitor Valença Stefanini - Sistemas de comunicação e visualização
Agradeço aos prof. pesquisadores, membros do Projeto Universal CNPq 406540, e que assessoram a equipe de desenvolvimento do Bioma Stats em diversas frentes:
O código-fonte deste programa está protegido por direitos autorais e é regido pela Licença GNU Affero General Public License (GNU AGPL) versão 3.0 ou posterior. Qualquer redistribuição ou modificação do código-fonte deve ser realizada de acordo com os termos desta licença.
É crucial destacar que a GNU AGPL estabelece a necessidade de que os autores do software sejam devidamente reconhecidos em qualquer redistribuição ou modificação efetuada no código-fonte original. Tal premissa se constitui como um requisito imprescindível para assegurar o respeito aos direitos autorais dos criadores do software, bem como para manter a transparência e a credibilidade do software, objetivos estes que são de grande relevância para toda a comunidade de usuários e desenvolvedores de software livre. Consequentemente, é fundamental observar tal exigência ao utilizar o programa.
A documentação deste programa foi confeccionada com a ajuda do modelo de linguagem GPT-4, desenvolvido pela OpenAI. O GPT-4 é uma ferramenta de inteligência artificial avançada que utiliza técnicas de aprendizado profundo para gerar texto natural em diversos idiomas e áreas de conhecimento. Agradecemos à OpenAI pelo fornecimento desta ferramenta e reconhecemos a sua contribuição na elaboração desta documentação.
Ao utilizar este programa, você concorda em cumprir os termos e condições estabelecidos pela Licença GNU Affero General Public License (GNU AGPL) versão 3.0 ou posterior. Para obter mais informações sobre a licença, consulte o arquivo “LICENSE” que acompanha este programa ou acesse o seguinte link: https://www.gnu.org/licenses/agpl-3.0.html.