Mapas Interativos com PyDeck: Visualização de Dados Geoespaciais

Um guia sobre como destacar o uso de mapas em projetos

Henrique W. Franco
Data Hackers
6 min readSep 6, 2023

--

Fonte: PyDeck

Todos sabem o impacto que uma boa visualização de dados gera na leitura de um projeto. Em determinadas situações, a utilização de mapas para apresentar informações torna-se uma abordagem altamente atraente. Dependendo do escopo e objetivo do projeto, desempenharão um papel primordial. Nesse sentido, uma ferramenta poderosa que se destaca na criação de visualizações geoespaciais é a biblioteca PyDeck.

Neste artigo, vou apresentar uma breve introdução sobre essa biblioteca e mostrar como pode ser uma ferramenta poderosa para enriquecer seus projetos. Além disso, você vai aprender um passo a passo para criar um mapa com a camada HexagonLayer.

PyDeck

O PyDeck é uma biblioteca Python de código aberto que facilita e torna chamativa a criação de visualizações de dados geoespaciais. Nesse contexto, os usuários podem criar mapas interativos com apenas algumas linhas de código.

Essa biblioteca integra-se ao Deck.gl, que oferece suporte a uma ampla variedade de camadas de mapas, incluindo marcadores, polígonos, mapas de calor e outras opções muito interessantes. Mas não acredite só na minha palavra, dê uma olhada no site oficial! Lá, você vai encontrar um monte de exemplos de mapas que vão te inspirar para o seu próximo projeto.

Dê uma conferida em alguns mapas que estão aqui embaixo para ter uma ideia do que você vai encontrar por lá:

Fonte: PyDeck

Como exemplo de como essa biblioteca pode ser utilizada, recentemente utilizei o mapa “HexagonLayer” em meu projeto de análise de dados de propriedades do Airbnb no Havaí. No caso, visto que o dataset disponibilizava as coordenadas de latitude e longitude, consegui mostrar a distribuição geográfica das propriedades desse arquipélago e identificar áreas com maior concentração de propriedades.

Desse modo, vou apresentar abaixo um passo a passo de como utilizar o mapa “HexagonLayer” dessa biblioteca.

1. Instalação da Biblioteca

Em primeiro lugar, é necessário instalar o PyDeck em seu ambiente Python. Caso esteja utilizando o Google Colab, pode instalar a biblioteca com o seguinte comando:

!pip install pydeck -q

Caso esteja usando outro editor de códigos, pode utilizar o comando a seguir. Inclusive, deixo um tutorial da Hashtag com explicações mais aprofundadas de importações de bibliotecas em Python.

pip install pydeck

2. Importação dos Módulos

No seu script Python, importe as bibliotecas necessárias, incluindo o PyDeck:

import pydeck as pdk
import pandas as pd
import numpy as np

3. Fonte dos Dados

Vou utilizar o arquivo ‘listings.csv’ obtido no portal Inside Airbnb. Optei por utilizar o arquipélago do Hawaii, mas fique à vontade para explorar novas localidades!

Fonte: Inside Airbnb

Para isso, pode copiar o endereço do link do arquivo ‘listings.csv’ e transformar para um DataFrame por meio do método .pd.read_csv do Pandas.

# Importação do arquivo csv e transformação para DataFrame
df = pd.read_csv('http://data.insideairbnb.com/united-states/hi/hawaii/2023-03-16/visualisations/listings.csv')

Caso o conjunto de dados seja muito extenso, pode-se utilizar o método .sample(), de modo a melhorar a performance do mapa interativo e aprimorar a visualização dos dados. Esse método permite extrair uma amostra aleatória representativa dos dados originais, tornando a visualização mais ágil e mantendo a integridade estatística das informações.

No código abaixo, há algumas considerações:

  • Um novo DataFrame, denominadodf_map, será criado a partir de uma amostragem aleatória do DataFrame original df por meio do método .sample();
  • frac=0.5 indica que estamos selecionando 50% dos dados originais aleatoriamente;
  • O random_state=0 é usado para garantir que a amostragem seja reproduzível, ou seja, sempre produza a mesma amostra quando o código for executado novamente.
Fonte: Autor

3. Criação do Mapa

O código abaixo foi retirado da própria documentação do PyDeck, especificamente do exemplo de utilização da camada HexagonLayer. Deixei comentários em todas as linhas para fornecer uma explicação do que cada pedaço de código realiza.

# Criação da camada
layer = pdk.Layer(
'HexagonLayer', # Definir camada com o mapa HexagonLayer
df, # DataFrame que contém seus dados
get_position=['longitude', 'latitude'], # Colunas que possuem long. e lat.
auto_highlight=True, # Realçar hexágonos quando cursor passar por cima
elevation_scale=50, # Altura dos hexágonos
pickable=True, # Permitir que os hexágonos sejam selecionáveis
elevation_range=[0, 3000], # Definir a faixa de altura dos hexágonos
extruded=True, # Dimensão da altura dos hexágonos
coverage=1) # Cobertura da camada

# Definição da visão
view_state = pdk.ViewState(
longitude= -156.8825854, # Verificar longitude no Google Maps
latitude= 20.5192427, # Verificar latitude no Google Maps
zoom=6, # Definir zoom inicial do mapa
min_zoom=5, # Especificar o nível de zoom mínimo permitido
max_zoom=15, # Especificar o nível de zoom máximo permitido
pitch=40.5, # Controlar inclinação do mapa
bearing=-27.36) # Definir rotação do mapa

# Combinação em um objeto 'Deck'
r = pdk.Deck(layers=[layer], initial_view_state=view_state)

# Salvando como html
r.to_html('hexagon-example.html')

No entanto, quero destacar alguns trechos do código acima para facilitar a criação do mapa:

  • Em primeiro lugar, é necessário selecionar atentamente as colunas do DataFrame que contenham informações de longitude e latitude (é possível que no seu conjunto de dados haja outros nomes para as variáveis que representam essas coordenadas);
Fonte: Autor
  • Além disso, é preciso encontrar as coordenadas corretas de longitude e latitude da localidade que você escolher para plotar um gráfico. Uma maneira simples de fazer isso é pesquisar a localização no Google Maps e copiar as coordenadas da barra de endereços. Veja um exemplo abaixo de como realizar esse processo:
Fonte: Autor
Pegar coordenadas de Latitude e Longitude pelo Google Maps. Fonte: Google Maps
  • Por fim, é possível salvar o mapa como HTML para colocar em sites ou outros projetos. Para realizar o download, é necessário selecionar a pasta ‘Arquivos’ no lado direito do Google Colab, conforme imagem abaixo:
Fonte: Autor
Fonte: Autor

Os demais trechos servem mais para personalizar o mapa. Nesse sentido, após criar a sua visualização geoespacial, você pode ajustar as outras linhas, como zoom e altura dos elementos gráficos, conforme às suas preferências e necessidades específicas.

4. Resultado

Abaixo, você pode conferir um GIF que mostra o resultado do mapa criado a partir do passo a passo acima. Com certeza esse tipo de visualização pode enriquecer seus projetos futuros!

Considerações Finais

Espero que você tenha aproveitado este artigo e que tenha sido uma fonte de inspiração! O PyDeck é uma ferramenta poderosa e que pode ser útil ter em seu arsenal de análise de dados. Com certeza as visualizações geradas com essa biblioteca vão chamar a atenção e adicionar um toque especial aos estudos em seu portfólio.

Se surgirem dúvidas ou se você quiser compartilhar suas próprias criações de mapas, sinta-se à vontade para deixar um comentário neste artigo.

Entre em contato comigo pelo:

Acesse meu portfólio para conferir outros projetos:

Estou sempre aberto para sugestões e melhorias!

Até mais!

--

--