Mapas de densidade populacional com dados do IBGE e QGIS

[última atualização: 28/03/2016]

Como usuário antigo de Sistemas de Informações Geográficas, venho sempre testando softwares gratuitos e/ou de código aberto como alternativa ao ArcGIS, que é caro e, bem, muito mais cheio de problemas do que seria de se esperar para um software dessa faixa de preço. Já testei o MapWindows, TerraView, QuantumGIS, OpenJump, gvSIG e alguns outros que nem consigo me lembrar. Até alguns anos atrás, foram os dois últimos que me pareceram os melhores, mas ainda assim sentia que, para trabalhos mais exigentes, o ArcGIS ainda era a melhor opção.

Recentemente isso mudou. O antigo QuantumGIS, agora chamado apenas de QGIS, evoluiu muito ao longo dos anos e tem se mostrado extremamente robusto, poderoso em suas funcionalidades e ao mesmo tempo amigável ao usuário, mesmo para os menos experientes. Chamam a atenção, especialmente, a baixíssima taxa de problemas ao rodar análises espaciais (que no ArcGIS vez ou outra resultam em erros fatais, fechando o programa e perdendo o que havia sido feito) e a velocidade de processamento, mesmo em grandes camadas de dados.

Por isso, resolvi fazer esse tutorial que, ao mesmo tempo que pode ser uma boa introdução ao QGIS, cobrindo alguns aspectos essenciais e dando um primeiro “empurrãozinho” a quem quer aprendê-lo, pode se revelar útil para quem busca realizar esse tipo de mapa, muito comum em estudos urbanos.

Antes da construção do mapa propriamente dito, é importante considerarmos algumas operações básicas do QGIS, que servirão de bases para todos os passos posteriores.

Operações básicas

Interface

A interface do QGIS é muito simples: à esquerda ficam o navegador de arquivos e as camadas de informação já inseridas no projeto; à direita fica a visualização dos dados, isto é, o mapa.

Adicionar uma camada de dados

Para adicionar uma nova camada de dados, que é o procedimento mais comum, navegue até a pasta em que os arquivos da camada se encontram usando o navegador (1), clique sobre o nome do arquivo e o arraste para (2). A camada deve aparecer em (3). Se não aparecer, clique em Exibir > Zoom Ver Tudo para ajustar o zoom para todo o limite da camada de dados.

Salvar e abrir um arquivo do QGIS

Um projeto do QGIS é composto por um arquivo que salva a referência a todas as camadas em uso, bem como sua simbologia. Para salvar, vá em Projeto > Salvar… e selecione a pasta desejada. Para abrir um projeto salvo anteriormente, vá em Projeto > Abrir e navegue até a pasta em que se encontra o arquivo.

Fazer um mapa temático

Para fazer um mapa temático, o procedimento base é selecionar a forma de representação de uma camada de dados. Para isso, clique com a direita sobre o nome da camada em (2) e selecione Propriedades. Em seguida, é preciso selecionar o tipo de mapa a ser elaborado, o que por sua vez depende do tipo de informação que está sendo mapeada:

  • Se a camada de dados possui apenas um tipo de dado a ser mostrado (por exemplo, escolas) e eles não precisam ser diferenciados, selecionar “Símbolo Simples”;
  • Se a camada de dados possui informação de natureza qualitativa (por exemplo, usos do solo), selecionar “Categorizado”;
  • Se a camada de dados possui informação de natureza quantitativa (por exemplo, densidade), selecionar “Graduado”.

Agora é preciso selecionar qual a coluna da tabela de atributos será usada para fazer o mapa.

Por fim, clique em “Classificar” e, em seguida, em OK.

1. Captura dos shapefiles dos setores censitários do IBGE

  • Baixar os setores no site do IBGE. Procure na seção Download > Geociências> organizacao_do_territorio > malhas_territoriais > malhas_de_setores_censitarios__divisoes_intramunicipais > censo_2010 > setores_censitarios_shp. Em seguida, clique no nome do estado desejado.
  • O arquivo contém 1 shapefile composto por 4 arquivos com diferentes extensões. Abrir o arquivo no QGis (o nome começa com o código do estado – 2 dígitos – e depois “SEE” e mais alguns códigos). Para abrir o arquivo, navegue pelo HD utilizando o Browser localizado à esquerda até chegar à pasta desejada, clique e arraste o arquivo para a janela Layers (2).
  • O mapa de todo o estado deve aparecer em (3). Agora é preciso separar apenas os setores do Município desejado; para isso vamos selecionar por atributos: no menu, vá em Camada > Consulta> 2 cliques em NM_MUNICIP; 1 clique em “=”; 1 clique em “Tudo”; 2 cliques no nome do município desejado;
  • Na caixa “Provider specific filter expression” deve aparecer algo como (NM_MUNICIP=’Nome do município’);

  • Clicar Ok – apenas os setores censitários do município devem aparecer agora em (3);
  • Clicar com a direita sobre o nome do layer > Salvar Como…;
  • Certifique-se que a opção “Format” está marcada como shapefile;
  • Em Salvar como clique em “Buscar” e selecionar a pasta e o nome do novo arquivo a ser criado. Sugestão: Municipio_UTM_Sirgas.shp;
  • Em SRC, clique em no pequeno botão localizado à direita da lista de seleção; Em “Filtro”, digitar “sirgas 2000”;
  • Na lista “Sistema de referência de coordenadas do world”, selecionar “SIRGAS 2000 / UTM zone XXS”; consultar imagem abaixo para saber qual o número da faixa UTM em que seu município se encontra. Essa operação é muito importante porque é através dela que o mapa será posicionado corretamente sobre a superfície da terra, e permitirá o cálculo de distâncias e áreas.

Fonte: aqui.

  • Clicar em Ok;
  • Clicar em Ok novamente;

 

  • Iniciar novo arquivo do zero clicando no ícone “Novo” no canto superior esquerdo (pode descartar as alterações);
  • Adicionar o shapefile que foi criado usando o mesmo procedimento descrito anteriormente, usando o navegador (1) – clicar no ícone de atualizar no navegador se o arquivo criado não aparecer na lista;
  • Clicar com a direita sobre o nome do layer e selecionar Abrir Tabela de Atributos;
  • Clicar em “Alternar modo de edição” na janela de atributos (primeiro botão à esquerda);
  • Clicar em “Abrir calculadora de campo” (primeiro botão à direita);
  • Marcar a caixa de seleção “Criar um novo campo”;
  • Em “Nome do novo campo” digitar “area_ha”;
  • Em “Tipo do novo campo” selecionar “Número decimal (real)”;
  • Em “Precisão”, digitar 3;
  • Em “Funções”, expanda “Geometria” e clique duas vezes em “$area” – essa expressão deve aparecer na janela ao lado (Expressão);
  • Na janela “Expressão”, digitar “/10000” (sem as aspas) logo após o “$area” (para dividir a área do setor censitário, que estará em metros, por 10.000, para calculá-la em hectares);
  • Ok;
  • Se os valores não aparecerem, clique no título da coluna;
  • Na janela da tabela de atributos, clique em “Salvar alterações” (segundo botão da esquerda para a direita);
  • Clicar em “Alternar modo de edição” (primeiro botão à esquerda) para sair do modo de edição (alguns botões voltam a ficar desabilitados);

 

2. Captura dos dados alfanuméricos de cada Município – Censo

Uma vez tendo a base com os setores censitários, é preciso adicionar as informações alfanuméricas do Censo. No nosso caso, estamos interessados na população em cada um dos setores.

Essas informações são obtidas em um conjunto de tabelas que o IBGE disponibiliza separadamente dos setores. Nossa tarefa é, primeiro, identificar em qual tabela e qual coluna está a informação que desejamos adicionar aos setores; segundo, vincular essa tabela aos setores, para que o QGIS possa saber qual linha da tabela corresponde a qual setor censitário.

  • Baixar as tabelas de dados alfanuméricos em: ibge.gov.br > Download > Estatística > Censos > Censo Demográfico 2010 > Resultados do Universo > Agregados por Setores Censitario;
  • Baixe o arquivo correspondente ao Estado desejado e descompacte o arquivo ZIP para uma pasta de fácil acesso em seu HD (evite o Desktop; prefira caminhos simples como c:/dados);
  • Se o link não funcionar, tente mudar de navegador (para o Internet Explorer, por exemplo);
  • No QGis, em um arquivo em branco, adicionar a tabela CSV (ex.: Basico_SC.csv): Camada > Adicionar Camada > Adicionar camada a partir de um texto delimitado… Certifique-se de que as configurações estão como na imagem abaixo

  • Selecionar por atributos apenas os setores do Município desejado: Camada > Filtrar > 2 cliques em “Nome_do_municipio”; 1 clique em “Like”; 1 clique em “Tudo”; 2 cliques no nome do município desejado;
  • Na caixa “Fornecedor de expressão de filtragem específica” deve aparecer algo como “Nome_do_municipio” LIKE ’Nome do município’;
  • Caso o nome do seu município contenha acentos, substitua todas as ocorrências por um underline: “Nome_do_municipio” LIKE ’Nome do munic_pio’;
  • Clicar Ok
  • Abrindo a tabela de atributos (clicar com a direita > Abrir tabela de atributos) apenas os setores censitários do município desejado devem estar aparecendo agora;
  • Clicar com a direita sobre o nome do layer > Salvar Como…
  • Na opção “Formato” selecione “Comma Separated Value [CSV]”;
  • Em Salvar como… clique em “Buscar” e selecione a pasta e o nome do novo arquivo a ser criado: Municipio_Basico.csv
  • Atualize o vista no Navegador (1) (primeiro botão à esquerda) e insira a tabela recém-criada (Municipio_Basico.csv) arrastando-a para (2)
  • Remova a tabela antiga, para não confundir (Basico_SC.csv);
  • Para verificar se deu tudo certo, clique com a direita sobre o nome da nova tabela e vá em Propriedades > Campos. Verifique se o campo “Cod_setor” possui o tipo “Qstring”. Se sim, você pode pular para o passo 3 abaixo. Se o campo está como Integer ou Double, isso quer dizer que ele está definido como um número e isso criará problemas no momento de fazer a vinculação dessa tabela alfanumérica com o shapefile, em cuja tabela o campo correspondente está como String (texto).
  • Precisamos então converter o campo para texto: clicar com a direita sobre o nome da tabela e > Abrir Tabela de Atributos;
  • Clicar em “Alternar modo de edição” na janela de atributos (primeiro botão à esquerda);
  • Clicar em “Abrir calculadora de campo” (primeiro botão à direita);
  • Marcar a caixa de seleção “Criar um novo campo”;
  • Em “Nome do novo campo” digitar “CODIGO_S”;
  • em “Tipo do novo campo” selecionar “Texto (string)”;
  • em “Largura do campo de saída”, digitar 20;
  • Em “Funções”, expandir “Conversões” e clicar duas vezes em “tostring”;
  • Ainda em “Funções”, expandir “Campos e valores” e clicar duas vezes em COD_SETOR;
  • No campo “Expressão” insira um parênteses para fechar a expressão: tostring( “COD_SETOR”);
  • Ok;
  • Abra a tabela de atributos e confira se o novo campo foi criado com o código de cada setor;
  • Na janela da tabela de atributos, clique em “Salvar alterações” (segundo botão da esquerda para a direita);
  • Clicar em “Alternar modo de edição” (primeiro botão à esquerda) para sair do modo de edição (alguns botões voltam a ficar desabilitados);

3. Vincular o shapefile dos setores censitários às informações da tabela

Agora que temos os setores censitários prontos (com um campo criado com a área em hectares) e a tabela de atributos com a informação de população, precisamos vincular um ao outro.

  • Seguindo o procedimento de inserção de camadas já descrito, inserir no mapa os dois produtos anteriores: o shapefile com os setores (Municipio_UTM_Sirgas.shp) e a tabela com os dados do Censo (Municipio_Basico.csv);
  • Clicar com a direita sobre o nome do layer de setores > Propriedades > União…;
  • Clicar no sinal de adicionar (+) abaixo à esquerda;
  • Em “Unir Camada”, certifique-se que “Municipio_Basico.csv” está selecionado;
  • Em “Unir campo”, selecione o campo que foi convertido para string: “CODIGO_S”;
  • Em “Campo alvo”, selecione o campo “CD_GEOCODI”;
  • Ok;
  • Ok novamente;
  • Abra a tabela de atributos do shapefile dos setores e veja que os campos da tabela Basico foram acrescentados à tabela do shape;
  • Agora já é possível fazer os mapas, mas antes é preciso salvar o projeto: no menu superior Projeto > Salvar – Selecione a pasta desejada e o nome do arquivo.

4. Calculando a densidade habitacional

Para completar as informações básicas, vamos calcular a densidade; para isso, precisamos do layer dos setores vinculado à tabela de dados do IBGE;

  • Se a tabela do layer de setores ainda não estiver aberta, abra-a e clique em “Alternar modo de edição” na janela de atributos (primeiro botão à esquerda);
  • Clique em “Abrir calculadora de campo” (primeiro botão à direita);
  • Certifique-se de que “Create a New Field” esteja marcado;
  • Em “Nome do novo campo” digitar “dens_ha”;
  • Em “Tipo do novo campo” selecionar “Número decimal (real)”;
  • Em “Precisão”, digitar 3;
  • Em “Funções”, expanda “Campos e valores” e clique duas vezes no campo que termina com “V002”, que é o campo que possui os dados de população do setor censitário;
  • Clique em “/” (sinal de divisão) abaixo de “Expressão”;
  • Em “Funções” > “Campos e valores” clique duas vezes no campo “area_ha”;
  • Ok;
  • Abra a tabela de atributos e confira se o novo campo foi criado com a densidade de cada setor;
  • Na janela da tabela de atributos, clique em “Salvar alterações” (segundo botão da esquerda para a direita);
  • Clicar em “Alternar modo de edição” (primeiro botão à esquerda) para sair do modo de edição (alguns botões voltam a ficar desabilitados);

5. Fazer o mapa temático

  • Clique duas vezes sobre o layer dos setores > Estilo;
  • Onde está selecionado “Símbolo simples”, troque para “Graduado”;
  • Em “Coluna”, selecione o campo desejado:
    1. V001 – Domicílios particulares permanentes ou pessoas responsáveis por domicílios particulares permanentes;
    2. V002 – Moradores em domicílios particulares permanentes ou população  residente em domicílios particulares permanentes;
    3. V003 – Média do  número  de  moradores  em  domicílios  particulares permanentes (obtida pela divisão de V002 por V001);
    4. V005 – Valor do  rendimento  nominal  médio  mensal  das  pessoas responsáveis por domicílios particulares permanentes (com e sem rendimento);
    5. V009 – Valor do  rendimento  nominal  médio  mensal  das  pessoas  de  10 anos ou mais de idade (com e sem rendimento).
    6. dens_ha – Densidade habitacional (habitantes/hectare);
  • No nosso caso, queremos este último, dens_ha, mas a mesma lógica vale para os outros campos destacados acima;
  • Selecione de 5 a 10 classes em “Classes”;
  • Clique em “Classificar”;
  • Em “Cor da declividade”, selecione a combinação de cores desejada;
  • Ok.
  • O mapa deve aparecer na janela (3). Se as cores ficarem estranhas, com um único setor escuro e todo o resto muito claro, experimente modificar o tipo de classificação na caixa de diálogo de Simbologia para “Quantil”.
  • Para saber como montar uma composição em uma folha com tamanho exato, títulos, legendas e escalas, veja esse tutorial.

Save

36 thoughts on “Mapas de densidade populacional com dados do IBGE e QGIS”

  1. Depois que baixei as tabelas de dados alfanuméricos, vocês falaram pra adicionar o arquivo .DBF.
    Mas no zip dessas tabelas, não tem nenhum arquivo .DBF, apenas no arquivo que baixei no começo do tutorial.
    Até tem um arquivo “Basico_RJ” mas ele é extensão .xls e .csv o que é .dbf tem o nome “33SEE250GC_SIR.dbf”.

    Qual o arquivo devo adicionar?

    1. Olá!
      Tem razão. Por algum motivo eu já tinha as tabelas em DBF aqui no meu computador e acabei não me dando conta de que não constavam do arquivo baixado.
      Atualizei o post para que seja possível abrir o arquivo CSV. Há um passo a mais, mas a imagem explica quais são as configurações exatas para fazer a inserção.

  2. Ah ótimo, agora faz sentido! Muito obrigada!
    Outra dúvida, preciso fazer dois mapa com os bairros do rio de janeiro, um vinculado a uma planilha excel com números de moradores de cada bairro e outro vinculado a outra planilha excel com números de postos de trabalho de cada bairro. Montei a planilha com números que consegui pelo site da prefeitura do Rio e não pelo site do IBGE, muda alguma coisa? Tem alguma outra dica que possa me ajudar? Não tenho muito conhecimento no QGis, mas aos poucos to tentando aprender.

    1. Não muda nada, a única coisa que você precisa ficar atenta é que as planilhas tenham um campo em comum com as tabelas dos shapefiles (normalmente é o código do bairro ou do setor censitário, dependendo da unidade espacial adotada).

  3. Olá,

    eu gostei muito do tutorial e me ajudou bastante, porém tenho uma pergunta que foge um pouco ao tema.

    Eu estou tentando cruzar os dados da cidade de Curitiba, os shapes que eles fornecem, com os shapes do IBGE porém ambos estão em áreas diferente do mapa e também não estão com o mesmo formato de linhas, para ficar mais claro: O desenho de curitiba segundo o IBGE está de um jeito e o dos shapes do municipio de Curitiba está de outro.

    Tem alguma forma de eu tranformar os shapes para eles ficarem iguais? Os shapes de Curitiba tiveram que ser convertidos de SAD-69/original para SIRGAS-2000, não sei se isso teve alguma influência. Acho que os shapes do IBGE já estão em SIRGAS-2000.

    Se puder me ajudar ficaria grata, é para um trabalho na faculdade!

    1. Olá!
      A princípio eles deveriam ficar da mesma forma, alinhados sem problemas. Provavelmente em algum ponto do percurso você selecionou o fuso incorreto. Para Florianópolis, por exemplo, o fuso é o 22. Para saber o de Curitiba você deve consultar o mapa e selecionar o correto.

    1. Esse site do IBGE é sempre meio problemático mesmo. Você chegou a tentar com outro navegador? Tenta com o Internet Explorer para ver se funciona.

      1. Olá, Renato. Estou com o mesmo problema. Tentei em mais de um navegador e não adiantou. Sabes o que pode estar acontecendo? Obrigado!

  4. Olá,
    Estou tentando fazer o tutorial, porém quando chego na etapa onde devo selecionar apenas o município, o mapa do estado desaparece e fica sem mapa nenhum (não apareceu Florianópolis, tentei com outros municípios e também não funcionou). A minha janela “Ferramenta de Consulta” (Query Builder) aparece exatamente igual como a imagem do tutorial, porém quando aperto Ok, o (3) fica em branco.
    Também não entendi o que é o SRC (o meu qgis está em inglês, não sei se tem alguma diferença).
    Obrigada

    1. Adriana,
      Precisaria de mais informações para tentar identificar o motivo do erro. O SRC é o sistema de coordenadas a ser utilizado. Em inglês, é CRS. Essa etapa é muito importante e talvez seja o que está criando o problema que você descreve.

  5. Olá Renato, ótimo tutorial! No meu arquivo está ocorrendo um problema na parte da tabela.. na calculadora, quando faço a parte “to_string( “Cod_setor” )” como você explicou aparece a seguinte mensagem: “Impossível adicionar um novo campo ao provedor.”

    O que devo fazer?

    Obg

    1. Olá!
      Eu atualizei o tutorial, você pode fazer a parte que checa se o Cod_Setor já está em String? Qualquer coisa avise aqui, ok?

  6. Prezado Renato,
    Consegui realizar o tutorial por interio com os dados que eu precisava e deu tudo certo. Porém eu gostaria de salvar/exportar para o Google Earth. Quando salvamos como o shape classificado dos municípios aparece apenas o contorno dele no Google Earth. É possível que este arquivo vá com os municípios preenchidos com suas cores classificadas?
    Muito Obrigado!

  7. Olá Renato, você costuma fazer trabalhos? Gostaria de fazer um orçamento com você para dois mapas de densidade de uma cidade média, se por caso você trabalhar com isto me retorne nos comentários, obrigado pela atenção!

  8. Olá Renato,
    não estou conseguindo salvar em DBF, não aparece essa opção de formato para mim e então não consigo seguir adiante. Por acaso consegue saber o que estou fazendo de errado?

    obrigada desde já!

    1. Olá!
      Qual versão do QGIS você está usando? Eu notei que, dependendo da versão, o nome dos formatos muda, mas eles continuam existindo. Por exemplo, para shapefile, já encontrei “Esri Shapefile” e só “Shapefile”. Então talvez o DBF esteja ali, mas com outra grafia.

      1. Tatiele e Mauro,
        Atualizei o post para lidar com isso. Vocês podem salvar diretamente em CSV. Pelo que testei aqui, isso até elimina a necessidade de converter o campo “Cod_setor” para string depois.

  9. Olá Renato,
    Baixei o shape file do estado de São Paulo no site do IBGE e selecionei a cidade de São Paulo. Nesse arquivo, são 18.953 setores censitários no município. Porém, nos arquivos em tabela do IBGE são 18363 setores censitários. O que eu faço? Por quê os números não batem?

    1. Claudio,
      Não sei te responder. Deveria ser exatamente igual. Vale a pena checar quais são esses que estão faltando (através de um mapa temático simples usando um campo qualquer da tabela), talvez sejam áreas de proteção ambiental sem nenhum tipo de ocupação.

  10. boa tarde Claudio!
    Estou buscando informacoes sobre densidade de condominios verticais em cidades do Estado de Sao Paulo.
    Voce poderia me indicar alguma fonte de informacao?
    Cordialmente,

  11. Olá! No primeiro passo, temos:
    “1. Captura dos shapefiles dos setores censitários do IBGE
    Baixar os setores no site do IBGE. Procure na seção Download > Estatística > Censos > Censo Demográfico 2010 > Resultados do Universo > Agregados por Setores Censitario. Em seguida, clique no nome do estado desejado.
    O arquivo contém 4 shapefiles. Abrir o arquivo dos setores no QGis (o nome começa com o código do estado – 2 dígitos – e depois “SEE” e mais alguns códigos). Para abrir o arquivo, navegue pelo HD utilizando o Browser localizado à esquerda até chegar à pasta desejada, clique e arraste o arquivo com a extensão *.SHP para a janela Layers (2).”
    Todavia, ao baixar os arquivos do site do IBGE, temos apenas arquivos de tabela. Entendo que você colocou depois o passo a passo de como converter o arquivo de CSV para um shape file, só que essa tabela precisa estar anexada a um shape file antes de virar informação em um mapa.
    Consegue me ajudar?
    Obrigada

  12. Muito obrigado pelo tutorial Prof. Roberto!
    Sou estudante de bacharelado em Gestão de Políticas Públicas pela Universidade de São Paulo.

    Estou estudando como Trabalho de Conclusão de Curso o atendimento da população de de São Bernardo do Campo (SP) pelos equipamentos públicos da cidade (considerando as redes municipal, estadual, federal e privada). Para tanto, estou estudando como a população está distribuída nos setores censitários e inserindo a partir de uma planilha CSV os equipamentos públicos a partir de suas coordenadas geográficas. Você saberia dizer se há como eu identificar no QGIS os equipamentos conforme seu tipo (tais como educação, cultura, saúde…)? Assim, teria eles no mapa aparecendo com símbolos diferentes. Eles já aparecem classificados na tabela de atributos, mas não sei como fazer essa classificação.

    Abraços!

    1. Sim, Leonardo, é bem simples representar cada equipamento de acordo com sua classificação na tabela. Para isso, clique duas vezes sobre o layer, vá em estilo, selecione “Categorized” ao invés de “Símbolo único” e selecione o campo da tabela que contém as classificações. Depois, clique em “Classify” para aparecerem todos os valores. Em seguida, é só selecionar um símbolo para cada tipo de equipamento.
      Att,
      Renato.

  13. Boa noite,
    estou encontrando problemas para calcular a densidade populacional do pará ( estado inteiro) pois existe locais do setor censitario em que o V002 está vazio (NULL), como proceder?

  14. Teria como você fazer um tutorial em vídeo no youtube explicado passo a passo como proceder para a elaboração do mapa de densidade usando os dados dos setores censitários do IBGE?

    1. Houve algum problema com o tutorial já existente? Se houver alguma dúvida posso tentar complementá-lo para saná-la.

    1. Você precisa definir que um novo campo deve ser criado, e então colocar esse nome. Você provavelmente está tentando preencher um campo já existente.

Deixe uma resposta

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