Hackeando o R: visualizando atributos em mapas no R

No Hackeando o R de hoje, vamos mostrar como fazer a visualização de dados distribuídos em uma malha (como um mapa) dentro do R. Para isso, iremos introduzir funcionalidades básicas do pacote terra, e conectar seus resultados ao ggplot2 usando o pacote rasterVis.

Iremos utilizar duas fontes de dados para o exercício: o mapa de UFs do Brasil disponível no NEREUS, e a imagem de distribuição da agricultura ao redor do mundo em 2010, classificada por principais produtos e a predominância de irrigação/chuvas como fonte de água. Tais dados são de classes diferentes: o mapa, que está em formato shapefile (.shp), é uma coleção de vetores que descreve características do mundo real, como no caso a divisão entre os estados; por outro lado, a imagem é uma malha de pixels que percorre o mundo inteiro, e possui uma codificação para cada pixel, indicando qual seria o atributo em cada posição do mapa global. Os dados em malha são chamados de rasterizados, e no nosso caso estão disponíveis em um arquivo TIFF (.tif).

Para abrirmos esses dados, vamos carregá-los com o terra. Para abrir dados vetorizados, utilizamos a função vect(), enquanto que dados rasterizados utilizam a função rast. Abaixo, abrimos cada um e plotamos seus resultados:

library(terra)

munip = vect('estados/UFEBRASIL.shp')
irrig = rast('dados_irrigacao_GFSAD1KCD.tif')

plot(munip)


plot(irrig)

Agora, digamos que queremos apenas analisar os dados do Brasil. Para fazer isso, podemos utilizar a função mask(), que sobrepõe a imagem no mapa de vetores, e transforma em NA todos os dados que estão fora do mapa. Note que dentro da mask utilizamos crop(); essa função recorta a imagem original, para que a imagem final tenha extensões do mapa de vetores.

recorte = mask(crop(irrig, munip), munip)

 

Feito isso, podemos então visualizar diretamente os dados brasileiros. Queremos trabalhar com o ggplot2 devido a seu grande número de funcionalidades, porém ele não recebe objetos do tipo SpatRaster. Então, utilizamos a função gplot() do pacote rasterVis, que interage com esses objetos e recebe argumentos do ggplot. Abaixo, visualizamos o gráfico final:

library(rasterVis)
library(ggplot2)
library(stringr)

gplot(recorte, maxpixels = 1000000) + geom_tile(aes(fill = factor(value)))+
ggtitle("Distribuição da produção agrícola em relação ao uso de irrigação em 2010",
subtitle = 'Dados classificados por principais produtos e oferta de água') +
scale_fill_manual(values = c('#414952', '#c42f0e', '#ff773d',
'#de9f00', '#3dccff', '#0495c9',
'#4824ff', '#140078', '#00ba63',
'#bdbdbd'),
labels = lapply(c('Dados não identificados',
'Irrigação: Arroz e trigo',
'Irrigação: Trigo, arroz, cevada e soja',
'Irrigação: Trigo, milho, arroz, algodão e pomares',
'Chuva: Trigo, arroz, soja, cana-de-açúcar, milho e mandioca',
'Chuva: Trigo e cevada',
'Chuva: Milho e soja',
'Chuva: Trigo, milho, arroz, cevada, soja',
'Plantação em pequena quantidade',
'Sem dados',
''), str_wrap, 30)) +
theme_minimal() +
theme(legend.title = element_blank(),
panel.grid = element_blank(),
axis.text = element_blank(),
axis.title = element_blank(),
legend.key.height=unit(1, "cm"))

_____________________

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

O que é e como funcionam Sistemas Multi-Agentes

Sistemas multi-agentes (MAS) representam uma nova forma de estruturar aplicações de inteligência artificial, especialmente úteis para lidar com problemas complexos e distribuídos. Em vez de depender de um único agente generalista, esses sistemas são compostos por múltiplos agentes especializados que colaboram, competem ou se coordenam para executar tarefas específicas. Neste post, explicamos o que são os MAS, seus principais componentes (como LLMs, ferramentas e processos) e as arquiteturas mais comuns.

O que é um Vector Database e como criar um com LangChain

Nesta postagem, mostramos como construir um pipeline simples de RAG (Retrieval-Augmented Generation) usando o LangChain, o modelo Gemini 2.0 Flash e o Vector Database Chroma. Utilizamos como exemplo o Relatório de Inflação de junho de 2025 do Banco Central do Brasil. O fluxo envolve o download e leitura do PDF, divisão do texto com RecursiveCharacterTextSplitter, geração de embeddings com Gemini, armazenamento vetorial com Chroma e busca semântica para responder perguntas com base no conteúdo do relatório. É uma aplicação prática e didática para economistas que desejam integrar IA ao seu fluxo de análise.

Automatizando a Construção de Códigos em Python com LangGraph

Neste post, mostramos como construir um agente de código em Python utilizando LangGraph, LangChain e Gemini. A proposta é construir um protótipo para automatizar o ciclo completo de geração, execução e correção de código com o uso de LLMs, organizando o processo em um grafo de estados.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.