Este post traz um tutorial de como elaborar mapas de hexágonos no QGIS.
O que são Mapas Hexagonais?
Mapas hexagonais, como o próprio nome sugere, são mapas cuja representação espacial é composta de hexágonos de tamanho igual, a partir de uma grade hexagonal. São bastante comuns em jogos de tabuleiro e de estratégia, e tem se tornado frequentes em mapas temáticos, tanto na escala urbana como regional.
Quais as vantagens de usar grades hexagonais?
Dentre as principais vantagens, pode-se citar:
1. A distância entre o centroide de uma célula hexagonal e todas as demais adjacentes é igual. diferente de uma grade quadrada, onde as distâncias diagonais são maiores que as cartesianas. Isto é importante em análises de medição de distâncias métricas.

2. Todas as células hexagonais possuem o mesmo tamanho. Isto permite que valores espacializados possam ser representados na mesma escala, o que é um desafio em estudos e trabalhos na escala urbana e regional, nos quais a unidade espacial adotada (limite municipal, setores censitários etc.) possuem uma grande discrepância de tamanhos, o que dificulta na visualização dos dados.
Nesse sentido, o tamanho igual entre as células também cria um tipo de “normalização” na inserção de dados, visto que os valores ou informações contidos podem ser interpretados para recortes espaciais iguais.
3. Células adjacentes compartilham todas as arestas. Isso significa que nenhum local ficará descoberto de dados, como pode ocorrer na representação com círculos, por exemplo.
4. Facilita a leitura de dados. Todos os mapas são, em maior ou menor medida, uma simplificação do espaço e, por consequência, da realidade – e isto é proposital, pois facilita a compreensão das informações que querem ser exibidas. Portanto, por mais que seja uma geometria pouco real, mas todas as suas vantagens citadas acima, em conjunto, facilitam a leitura de determinados dados, em que a precisão da geometria não é um fator determinante.
No exemplo abaixo, perca como é difícil identificar as cores que representam a população dos municípios mais próximos ao litoral, pelo fato de usas áreas serem menores. Ao transformar os dados em mapa hexagonal, apesar de algumas distorções nos valores (visto que são somatórios de populações por hexágono, e não mais por limite municipal), é mais fácil de ler e interpretar os dados no mapa como um todo. Além disso, há a “normalização” dos valores mostrados, pois vão estar divididos na mesma escala espacial (de cada hexágono).

Tutorial: Criando Mapas Hexagonais no QGIS
O tutorial será feito na versão 3.26.2 do QGIS. Para o exemplo abaixo, será feito o mapa da quantidade de linhas de ônibus na Região Metropolitana de João Pessoa Paraíba, Brasil.
Este tutorial considera que você já tenha conhecimentos básicos de QGIS e, portanto, saiba configurar o Sistema de Referência de Coordenadas (SRC) do projeto. Caso ainda não esteja familiarizado com isso, recomendamos que veja este arquivo aqui.
Passo 1: Insira o(s) arquivo(s) vetorial(is) com os dados que quer transformar em hexágonos
Para inserir novas camadas no seu projeto, clique em “Camada” > “Inserir “Gerenciador de fonte de dados”, ou utilize o atalho Ctrl + L. Opcionalmente, você pode inserir ícones de atalhos para facilitar a tarefa.

Clique nos três pontos (“…”) e procure no seu computador as camadas que deseja.

Para o exemplo, serão importadas as camadas de linhas de ônibus, obtidas no OpenStreetMap e a da área urbana da região metropolitana, modelada a partir da base de faces de logradouros do IBGE.

Passo 2: Instale o complemento MMQGIS
A grade hexagonal e a junção espacial de dados é feita pelo plug-in MMQGIS. Para instalá-lo, clique em “Complementos” > “Gerenciar e Instalar Complementos…”

Clique na aba “Tudo” e, na barra de pesquisa, digite “mmqgis”. Clique em “Instalar Complemento”. Após a instalação, clique em “Fechar”.

Passo 3: Crie a grade hexagonal
Clique em “MMQGIS” > “Create” > “Create Grid Layer”.

Agora configure as opções (recomendamos seguir a ordem usada abaixo):
Em “Geometry Type“, escolha a opção “Hexagons“;
Em “Units“, recomendamos usar a opção “Layer Units“, para usar a unidade de medida do SRC da camada, ou “Project Units“, para usar o SRC do projeto atual;
Em “Extent“, clique na opção “Layer Extent“, para que a grade hexagonal seja do tamanho e nos limites de uma determinada camada;
Em “Layer“, indique a camada que quer usar como referência para a criação da grade hexagonal;
Em “X Spacing” e “Y Spacing“, defina o tamanho de cada célula hexagonal. Note que os valores são interdependentes, e o maior valor dos 2 será a distância do centroide entre hexágonos adjacentes. Não há um valor correto, pois isto depende da escala a ser trabalhada e o nível de detalhamento da informação que vai ser espacializada. Mas tenha em mente que uma grade com poucos hexágonos é processada mais rapidamente, mas pode simplificar demais a representação gráfica (o que pode gerar prejuízos para a qualidade dos dados); uma grade com muitos hexágonos, além de demorar demais o processamento, pode perder o efeito de simplificação das geometrias. Encontre um bom senso entre tamanho da célula e quantidade de dados. Neste exemplo, as células possuem 250 metros no valor x;
Em “Output File Name“, clique nos três pontos e indique o local e nome do arquivo que vai conter a grade hexagonal;
Por fim, clique em “Aplicar”. Ao concluir a criação da grade, clique em “Fechar”.

Você criou uma grade hexagonal! Agora, é importante recortá-la para ficar nas dimensões e geometria do objeto que você quer usar como base (neste exemplo, recortar a grade para os limites da área urbana da região metropolitana). Isto vai reduzir o tempo de processamento futuramente, ao realizar a junção espacial, pois as feições sem dados não passarão pelo processamento.

Um dos caminhos seria selecionar as feições da grade que interseccionam com a camada da área urbana, e salvá-las como uma nova camada. Para isto, clique em “Vetor” > “Investigar” > “Selecionar por localização…”.

Na opção “Selecionar feições de”, escolha a camada da grade hexagonal. O predicado geométrico é “Interseccionam”.
Na opção “Ao comparar com as feições do”, selecione a camada de referência que você usou no começo do passo para gerar a grade (neste caso, a área urbana da região metropolitana).
Em “Modificar seleção atual por”, clique na opção “Crie uma nova seleção”.
Clique em “Executar”. Ao terminar o processo, clique em “Fechar”.

Agora salve esta seleção como uma nova camada. Clique com o botão direito na camada da grade hexagonal, e depois clique em “Exportar” > “Guardar elementos como…”

Na tela que aparecer, selecione o formato (recomendamos shapefile). Clique nos três pontos para indicar o nome do arquivo e o local de salvamento. Indique o SRC da camada e marque a opção “Salvar somente feições selecionadas”. Clique em OK para salvar a camada. Se a opção “Adicionar arquivo salvo ao mapa” estiver selecionada, a nova camada já será automaticamente importada para o seu projeto no QGIS.

Agora a sua grade hexagonal possui a extensão e formato da sua base geográfica.

Agora é preciso inserir os dados que você quer na grade hexagonal. Para o exemplo, vamos calcular a quantidade de linhas de ônibus que passam por hexágono. Primeiro, deixe a camada da grade recortada e a camada que contém os dados a serem importados ativas, para que o plug-in MMQGIS possa identificá-las ao configurar o processamento. Agora, clique em “MMQGIS” > “Combine” > “Spatial Join”.

Em “Output Shape (Target) Layer“, selecione a camada da grade recortada;
Em “Spatial Operation” clique em “Intersects“. Assim, o plugin vai computar cada linah de ônibus que interseccionar com cada hexágono da grade;
Em “Data (Join) Layer“, selecione a camada que possui os dados a serem interseccionados. No caso deste exemplo a camada de linhas de ônibus;
A opção “Fields” não será usada aqui, mas é importante saber do que se trata dela: caso você queira importar os valores contidos na tabela de atributos, você pode selecionar quais campos serão importados para o novo arquivo. Exemplo: se você quisesse fazer um mapa hexagonal de renda, nesta opção você iria selecionar o campo que contém os dados de renda. No caso deste tutorial, como somente vamos contar a quantidade de vetores que se interseccionam, esta etapa não é necessária;
Em “Field Operation“, selecione a operação a ser realizada. Para o exemplo, selecionamos “Sum“, para que seja calculada a soma (contagem) de todas as feições (linhas) que intersectam a grade. As outras opções disponíveis são “First” (valor da primeira feição a tocar), “Proportional Sum” (soma proporcional à área de intersecção), “Average” (calcula a média dos valores dentro de um hexágono), “Weighted Average” (média ponderada) e “Largest Proportion” (maior proporção do valor no hexágono);
Em “Output File Name“, indique o nome do arquivo e o local de salvamento.
Clique em “aplicar”. Observe que, dependendo do tamanho da grade e do tipo e quantidade de informações a ser inserida, o processamento pode demorar. Quando concluir, clique em “Fechar”.

Pronto! Uma nova grade hexagonal foi inserida no seu projeto! Sendo que esta agora possui dados na sua tabela de atributos.

Agora manipule o banco de dados para mostrar os dados na grade hexagonal. perceba que, quando utilizada a opção de dados “Sum”, na etapa anterior, uma coluna “COUNT” (contagem) foi criada. É nela que contém a quantidade de feições intersectastes por hexágono.
Agora você tem um mapa hexagonal temático!

Note que, mesmo se você importar dados de uma tabela de atributos para o mapa hexagonal, a coluna “COUNT” vai aparecer, pois, por padrão, o plug-in também identifica quantas feições da camada com dados interseccionou com a camada hexagonal – o que, dependendo da situação, pode gerar informações interessantes.
E aí? Que tipos de informações vocês querem representar em um mapa hexagonal? Conta pra gente nos comentários!
Até a próxima! Bons estudos!
Muito bom esse tutorial, eu já tinha feito um com dados de pontos, pela pelo menu vetor do qgis mesmo. Um jeito legal de representar os dados ali de setores censitários é tirar o contorno dos polígonos.
CurtirCurtido por 1 pessoa