R

Como Analisar Dados Geoespaciais no R com sf e ggplot2

Escrito por Erick Faria · 3 min. >
Dados Geoespaciais no R

Neste post, vamos explorar como realizar análise de dados geoespaciais no R utilizando os pacotes sf e ggplot2. Analisar dados geoespaciais é fundamental para entender a distribuição espacial de fenômenos e tomar decisões baseadas em localização. Vamos criar um conjunto de dados de exemplo e abordar várias técnicas para manipular e visualizar dados geoespaciais.

Por que Usar sf e ggplot2 para Análise Geoespacial?

O pacote sf (Simple Features) é amplamente utilizado para manipulação de dados geoespaciais no R. Ele oferece uma interface simples e eficiente para trabalhar com diferentes tipos de dados espaciais. Já o ggplot2 é um pacote poderoso para visualização de dados, e quando combinado com sf, permite criar mapas e visualizações espaciais de alta qualidade.

Trabalhando com Dados Geoespaciais no R

Instalando e Carregando os Pacotes Necessários

Primeiro, vamos instalar e carregar os pacotes sf e ggplot2:

# Dados Geoespaciais no R
# Instalando os pacotes sf e ggplot2
install.packages("sf")
install.packages("ggplot2")

# Carregando os pacotes
library(sf)
library(ggplot2)

Criando um Conjunto de Dados Geoespaciais de Exemplo

Vamos criar um conjunto de dados geoespaciais com pontos representando algumas cidades brasileiras:

# Dados Geoespaciais no R
# Criando um data frame com coordenadas de cidades brasileiras
cidades <- data.frame(
  Nome = c("São Paulo", "Rio de Janeiro", "Belo Horizonte", "Salvador", "Brasília"),
  Latitude = c(-23.5505, -22.9068, -19.9167, -12.9714, -15.7942),
  Longitude = c(-46.6333, -43.1729, -43.9345, -38.5014, -47.8822)
)

# Convertendo o data frame para um objeto sf
cidades_sf <- st_as_sf(cidades, coords = c("Longitude", "Latitude"), crs = 4326)

Visualizando Dados Geoespaciais

Criando um Mapa com ggplot2

Vamos usar o ggplot2 para criar um mapa simples mostrando a localização das cidades:

# Dados Geoespaciais no R
# Criando um mapa com ggplot2
ggplot(data = cidades_sf) +
  geom_sf() +
  geom_text(aes(label = Nome), vjust = -1, hjust = 1) +
  ggtitle("Localização de Cidades Brasileiras") +
  theme_minimal()

Manipulando Dados Geoespaciais

Calculando Distâncias Entre Pontos

Podemos calcular as distâncias entre as cidades usando a função st_distance:

# Dados Geoespaciais no R
# Calculando distâncias entre cidades
distancias <- st_distance(cidades_sf)
print(distancias)

Transformando Sistemas de Coordenadas

Podemos transformar os dados para diferentes sistemas de coordenadas usando a função st_transform:

# Dados Geoespaciais no R
# Transformando para o sistema de coordenadas UTM
cidades_utm <- st_transform(cidades_sf, crs = 32723)

Trabalhando com Polígonos

Criando e Visualizando Polígonos

Vamos criar um polígono representando uma área de interesse e visualizá-lo:

# Dados Geoespaciais no R
# Coordenadas do polígono
poligono_coords <- matrix(c(
  -47.0, -23.0,
  -46.0, -23.0,
  -46.0, -24.0,
  -47.0, -24.0,
  -47.0, -23.0
), ncol = 2, byrow = TRUE)

# Criando o polígono
poligono <- st_polygon(list(poligono_coords))

# Convertendo para sf
poligono_sf <- st_sfc(poligono, crs = 4326)

# Criando um mapa com o polígono
ggplot() +
  geom_sf(data = poligono_sf, fill = "lightblue", color = "blue") +
  geom_sf(data = cidades_sf) +
  ggtitle("Polígono de Área de Interesse e Cidades") +
  theme_minimal()

Analisando Dados Espaciais

Interseção de Polígonos

Podemos calcular a interseção de polígonos para determinar quais cidades estão dentro da área de interesse:

# Dados Geoespaciais no R
# Interseção de cidades com o polígono
interseccao <- st_intersection(cidades_sf, poligono_sf)
print(interseccao)

Visualizações Avançadas

Mapas de Calor

Podemos criar mapas de calor para visualizar a densidade de pontos em uma área:

# Dados Geoespaciais no R
# Criando um mapa de calor das cidades
ggplot(data = cidades_sf) +
  stat_density2d(aes(x = st_coordinates(cidades_sf)[,1], y = st_coordinates(cidades_sf)[,2]), geom = "polygon", fill = "red", alpha = 0.5) +
  ggtitle("Mapa de Calor das Cidades Brasileiras") +
  theme_minimal()

Para mais informações sobre como utilizar o R para análise de dados, confira outros conteúdos no meu blog:

Considerações Finais

Espero que este guia tenha sido útil para aprender como analisar dados geoespaciais com os pacotes sf e ggplot2 no R. A prática é essencial para dominar essas técnicas, então encorajo você a experimentar e aplicar esses métodos em seus próprios projetos de análise de dados.

Para aprimorar suas habilidades com o R e se tornar mais eficiente na análise de dados geoespaciais, é importante também fortalecer sua compreensão em ciência de dados. Recomendamos o livro Fundamentos em R: Guia Completo para Iniciantes, disponível na Amazon, que oferece uma introdução abrangente ao R.

Junte-se à nossa comunidade no Twitter e inscreva-se no nosso canal do YouTube para acessar mais tutoriais, dicas e recursos. Continue praticando e explorando novas maneiras de analisar dados geoespaciais no R, e fique atento para mais guias e tutoriais que compartilharemos.

Escrito por Erick Faria
Engenheiro de Dados com Ph.D. em Geografia e experiência em análise espacial e geoprocessamento. Expertise em processamento de grandes volumes de dados geoespaciais, imagens de satélite e dados de mercado, utilizando ferramentas como Spark, Databricks e Google Earth Engine. Experiência em projetos de mercado de carbono, modelos preditivos para investimentos agrícolas e liderança de projetos de dados em saúde pública. Habilidades em Python, R, SQL e diversas ferramentas de engenharia de dados. Profile