Plotar mapas no python

Um mapa permite representar o valor de uma variável espacialmente em uma região, sendo muito útil em diversos estudos. De modo geral, são necessários dois tipos de dados de entrada: uma camada com os valores de ao menos uma variável com a respectiva localização (latitude e longitude) de cada ponto e outra camada com os contornos geográficos e/ou políticos da região de interesse.

Exemplo de mapa com valores de altitude (em escala de cores) dos pontos informados
Exemplo de mapa com valores de altitude (em escala de cores) dos pontos informados

Arquivos que contêm dados geoespaciais em forma de vetor, conhecidos como shapefiles, trabalham como um conjunto de três arquivos, interligados por um único ID para cada unidade espacial: um principal (.shp), que traz o desenho do mapa propriamente, um índice (.shx), que é um indexador de informações para facilitar buscas, e um de banco de dados (.dbf), trazendo informações e atributos das unidades espaciais. Arquivos shapefile com os contornos geopolíticos do Brasil estão disponíveis para Download no FTP do IBGE (ou em outros links, como o do ArcGIS).

O Cartopy é um pacote Python projetado para processamento de dados geoespaciais visando produzir mapas e outras análises. Ele pode ser instalado no seu ambiente virtual do conda através do comando:

conda install -c conda-forge cartopy

O script disponível no Github (vinioger/plot_map) carrega um arquivo CSV com as informações de cada ponto georreferenciado (colunas “lat,lon,alt”, onde alt é o nome da variável a ser plotada, a altitude) e um shapefile com os contornos políticos do Brasil. Uma atualização (2021-04-07) permite imprimir o nome da ‘id’ junto ao ponto e faz uma condicional para salvar figura PNG (agora ajustada, com menos branco nas margens) ou somente exibir na tela (basta deixar em branco a variável ‘file_out’).

Como os dados estão definidos em coordenadas geográficas (latitude/longitude), deve-se aplicar o método “PlateCarree()” na projeção (parâmetro “projection”). Também são definidos os formatos dos valores e os eixos. Posteriormente, é acrescentada uma camada com os contornos geopolíticos em linhas pretas de largura 0.5. Por fim, são acrescentados os valores dos pontos e uma barra de cores. O mapa pode ser impresso na tela ou salvo em arquivo PNG.

Dicas: o site bboxfinder permite desenhar um retângulo ou outras formas geomátricas sobre mapa, retornando as coordenadas de seus vértices. Para mais informações sobre o território brasileiro (CSV com informações sobre todos os municípios do Brasil), clique no link.

3 comments

  1. Saudações prezado.
    Apreciei bastante esta sua postagem e tenho interesse nela. Eu sei como desenhar mapa mas ainda não sei como inserir ou seja, desenhar mapas com pontos tal como vc fez.
    Se vc poder me passar o código para inserir os pontos em um mapa agradeço.

    1. Olá, que bom que gostou da postagem, obrigado pela visita. O código que usei para fazer esse mapa e inserir os pontos está nesse link do Github (arquivo plot_map.py) https://github.com/viniroger/plot_map . Os pontos são dados no arquivo info_est.csv, também no link. Se forem poucos pontos, você pode montar essa tabela manualmente, ou consultar de um arquivo que já tenha.

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.