Primeiras aulas do curso GeoPandas Parte 1: trabalhando com dados Geoespaciais

GeoPandas Parte 1: trabalhando com dados Geoespaciais

Introdução ao GeoPandas - Introdução

Seja bem vindo ao curso de GeoPandas do nosso instrutor Rodrigo! Para iniciar esse treinamento, recomendamos que você já tenha feito o curso de introdução ao Pandas da Alura, ou já tenha tido contato com essa biblioteca do Python, pois assumiremos que você já tem alguns conhecimentos basicos que serão utilizados no GeoPandas.

O GeoPandas, que é uma extensão do Pandas, é um projeto open source idealizado para possibilitar e facilitar o trabalho com dados espaciais e georreferenciados utilizando a linguagem Python.

Mas por que trabalhar com dados georreferenciais?

Os cientistas de dados precisam desenvolver a habilidade de trabalhar com qualquer tipo de dados, em qualquer formato, como texto, vídeo, áudio, entre outros. Dispositivos, como os nossos smartphones, enviam informações o tempo todo, dentre elas um componente especial: a localização em que eles estão. Dessa forma, as informações nas nossas redes sociais, por exemplo, são georreferenciadas - afinal, os lugares que frequentamos são bons indicadores das nossas experiências.

Nesse contexto, é interessante aprendermos a trabalhar com esse tipo de dado, cada vez mais comum no mercado, entendendo como eles são medidos e como tratá-los.

Nesse curso, trabalharemos com um dataset que, à primeira vista, não tem muita relevância: são duas colunas com latitude e longitude, ou seja, pontos de localização no globo. Aprenderemos, então, a incrementar e gerar valor sobre essas informações.

Quando estivermos bastante avançados no curso, teremos criado, por exemplo: um mapa de clusters, que podem ser expandidos para revelar outros clusters; mapas com marcadores que trazem determinadas informações; mapas de calor (heatmaps), que também podem ser expandidos de forma a analisar regiões mais específicas; e mapas que permitem traçar as fronteiras de determinadas regiões e associá-las a outros tipos de informações.

E, para tudo isso, usaremos a biblioteca GeoPandas.

Esperamos que você aproveite esse curso no seu trabalho e nos seus estudos. Vamos começar?

Introdução ao GeoPandas - Instalação do GeoPandas

Para iniciarmos nosso curso de GeoPandas, precisaremos preparar o ambiente do nosso projeto. Na página do GeoPandas, é possível encontrar alguns exemplos e explicações sobre o funcionamento da biblioteca, importantes para nos familiarizarmos com ela.

Recentemente, foi lançada a versão 0.4.0 do Geopandas. Porém, utilizaremos a versão anterior, 0.3.0, pois algumas dependências dessa biblioteca causam conflitos em versões mais recentes.

Assim como no curso de Pandas, utilizaremos a distribuição Anaconda3 na versão 5.2.0, que pode ser baixada no repositório do Anaconda.

O Anaconda já vem com várias bibliotecas para data science pré-instaladas, mas o GeoPandas não é uma delas. Portanto, faremos essa instalação por meio do Prompt de Comando, utilizando conda install geopandas==0.3.0.

Finalizada a parte inicial, o Prompt mostrará quais pacotes serão baixados, removidos ou atualizados. Teremos, então, que confirmar essas alterações com y (de yes), e aguardar o resto da instalação.

Após alguns minutos, seremos informados de que o processo foi concluído. Podemos testar se o GeoPandas foi testado corretamente utilizando os comandos import geopandas e geopandas.__version__, que deverá retornar 0.3.0.

Ainda se tratando da configuração de ambiente, note que, quando executamos o Jupyter a partir do Anaconda Navigator, ele sempre inicia na pasta em que o Anaconda foi instalado. Porém, existem situações em que desejamos iniciar o projeto em uma pasta diferente, e, ao menos no Windows, existe um "macete" para isso.

Criaremos, em algum diretório da nossa máquina, uma pasta "Geopandas", que abrigará o nosso projeto. Para iniciarmos o projeto dentro dessa pasta, precisaremos acessá-la no Prompt de Comando (o que pode ser feito com cd e o endereço copiado da pasta).

Em seguida, escreveremos o comando jupyter notebook e pressionaremos "Enter". Com isso, o notebook será iniciado nessa pasta.

Existe ainda outra forma de fazermos essa inicialização. Na pasta desejada, basta criarmos um novo documento de texto (botão direito, "Novo > Documento de Texto"), renomeando-o com a extensão .bat (por exemplo, Start Jupyter.bat). Então, clicaremos com o botão direito nesse arquivo e selecionaremos "Editar". No corpo do arquivo, escreveremos novamente o comando jupyter notebok, e clicaremos em "Salvar". Agora, toda vez que executarmos o arquivo Start Jupyter.bat, nosso notebook será iniciado nessa pasta.

Agora que configuraremos nosso ambiente, podemos iniciar nosso projeto com o GeoPandas!

Introdução ao GeoPandas - O primeiro mapa

Antes de prosseguirmos no curso, criaremos uma nova pasta no nosso projeto. Para isso, na tela inicial do Jupyter (http://localhost:8888/tree), clicaremos em "New > Folder". Em seguida, selecionaremos a caixa ao lado da nova pasta e clicaremos em "Rename" para renomeá-la como "02.Iniciando com o Geopandas".

Dentro dessa pasta, criaremos nosso primeiro notebook clicando em "New > Python 3". No nosso caso, nomeamos esse notebook como "01.Conhecendo o Geopandas".

Na primeira célula, pressionaremos "Esc > 1" para criar um campo markdown de título (semelhante ao <h1></h1>), e escreveremos "Entendendo o Funcionamento do Geopandas".

Feito isso... vamos falar um pouco do GeoPandas?

O GeoPandas é um projeto open source que foi criado para tornar a manipulação de dados geoespaciais no Python uma tarefa mais simples. Ele estende as estruturas de dados do Pandas, que são o dataframe e o series, possibilitando a manipulação e tratamento de arquivos dessa natureza.

Além disso, ele possui uma série de dependências importantes, dentre elas: o shapely, que dá suporte a operações geométricas; o fiona, que permite acessar arquivos com informações geográficos; e o Matplotlib (juntamente com o http://localhost:8888/tree), que permite a plotagem de gráficos e figuras geométricas.

Iniciamos um projeto Python justamente importando as bibliotecas que iremos utilizar. Primeiramente, usaremos %matplotlib inline, uma configuração para permitir que os mapas apareçam diretamente no nosso notebook, ao invés de serem exibidos em uma janela diferente. Além disso, importaremos o geopandas com o apelido gpd.

%matplotlib inline
import geopandas as gpd

Agora precisamos importar os dados que utilizaremos no curso, que provêm do Instituto Brasileiro de Geografia e Estatística.

É possível encontrar esses arquivos na internet (no endereço ftp://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2017/UFs/), mas recomendamos que você baixe o .zip que disponibilizamos para evitar diferenças entre os dados.

Com "Esc > 2", criaremos um subtítulo "Fonte de Dados" (formatado de maneira semelhante a um <h2></h2>. Na raiz do nosso projeto do Jupyter, criaremos uma pasta "01.Dados", dentro da qual extrairemos a pasta "Mapas" contida no arquivo Mapas.zip. Nela, temos outra pasta "RJ", contendo quatro arquivos: 33MUE250GC_SIR.dbf, 33MUE250GC_SIR.prj, 33MUE250GC_SIR.shp e 33MUE250GC_SIR.shx.

Iniciaremos a importação com gpd.read_file('../01.Dados/Mapas/RJ/33MUE250GC_SIR.shp') - os dois pontos (..) indicam que queremos sair da pasta do projeto, e em seguida é passado o caminho do arquivo desejado. Atribuiremos o retorno a uma variável rj, e pressionaremos "Shift + Enter" para executar a célula.

Com type(rj), podemos verificar o tipo de arquivo que foi criado - nesse caso, geopandas.geodataframe.GeoDataFrame. Executando somente a variável rj, temos como retorno uma visualização do arquivo, semelhante à tabela abaixo:

IDCD_GEOCODMNM_MUNICIPgeometry
014683300100ANGRA DOS REIS(POLYGON ((-44.33207951767609 -23.023835479182...
114693300159APERIBÉPOLYGON ((-42.08950238077959 -21.6289329293311...
214703300209ARARUAMAPOLYGON ((-42.22525542277279 -22.5925335128971...
314713300225AREALPOLYGON ((-43.16007457995859 -22.2000478703121...
414723300233ARMAÇÃO DOS BÚZIOS(POLYGON ((-41.9842653529651 -22.7445758290788..

Nela, temos um ID, o código do município no IBGE (CD_GEOCODM), o nome do município (NM_MUNICIP) e a coluna geometry, que consiste em um conjunto de geoseries. Futuramente aprenderemos a criar colunas desse tipo e entenderemos melhor como funcionam essas informações.

A coluna geometry nos possibilita trabalhar justamente com os dados geográficos. Por exemplo, podemos chamar a função rj.plot() - uma das funcionalidades do Matplotlib embutidas no GeoPandas - para plotar o mapa do estado do Rio de Janeiro:

mapa do estado do rio de maneiro

Ainda é possível fazermos diversas configurações de modo a visualizarmos de maneira mais clara as informações do mapa. No nosso caso, vamos mudar a cor de preenchimento (color='white') e a cor dos limites para preto (edgecolor='black'), além de aumentarmos o tamanho da figura em que o mapa é plotado (figsize=(15,8)):

rj.plot(color='white', edgecolor='black', figsize=(15,8))

mapa em preto e branco do estado do rio de janeiro

Cada linha do nosso dataset representa um dos municípios nesse mapa. Repare que Angra dos Reis, por exemplo, apresenta um POLYGON precedido de parênteses ((). Isso porque seu geometry consiste, na verdade, de um multipolygon, pois existem duas áreas diferentes do mapa que representam esse município: a parte continental e a ilha.

parte do mapa do estado do rio de janeiro, com setas indicando o território continental de angra dos reis e a ilha que faz parte do mesmo município

A seguir, vamos aprender a criar a coluna geometry manualmente utilizando o shapely. Até lá!

Sobre o curso GeoPandas Parte 1: trabalhando com dados Geoespaciais

O curso GeoPandas Parte 1: trabalhando com dados Geoespaciais possui 169 minutos de vídeos, em um total de 58 atividades. Gostou? Conheça nossos outros cursos de Data Science em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Data Science acessando integralmente esse e outros cursos, comece hoje!

Plus

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85
à vista R$1.020
Matricule-se

Pro

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas