QGIS 2.8: Classificação de Campos com Python

713 visualizações

Publicada em

Classificação de Campos é um recurso ideal para diferenciar valores através de intervalos predefinidos. O exemplo mais utilizado é a classificação de campos de acordo com os valores numéricos da população. Hoje, vamos utilizar a linguagem Python para classificar o número de famílias nas comunidades quilombolas.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
713
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
22
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

QGIS 2.8: Classificação de Campos com Python

  1. 1. QGIS 2.8: Classificação de Campos com Python Jorge Santos 2015
  2. 2. 2 Classificação de Campos Numéricos com Python Classificação de Campos é um recurso ideal para diferenciar valores através de intervalos predefinidos. O exemplo mais utilizado no site Processamento Digital é a classificação de campos de acordo com os valores numéricos da população. Hoje, vamos utilizar um exemplo dessa classificação para aplicação de simbologia nas comunidades quilombolas. Classificação de Campos em outros aplicativos Nos tópicos anteriores, eu criei tutoriais contendo os passos necessários para execução dessa dica nos aplicativos ArcGIS 10, ArcGIS 9.3, gvSIG e Quantum GIS 1.7.4. Hoje vamos testar esta técnica no QGIS versão 2.8. A Questão das Comunidades Quilombolas De acordo com os dados em shapefile do INCRA, as comunidades quilombolas estão espacialmente distribuídas por diversas regiões do Brasil. Nosso objetivo é determinar o mapeamento destes grupos humanos através de polígonos com representação de simbologia. A ideia é utilizar o Geoprocessamento para gerar uma representação temática, fornecendo a localização das famílias quilombolas por todo o Brasil. Na imagem abaixo, temos algumas poligonais representando fragmentos de comunidades quilombolas. Os valores numéricos representam o total de famílias distribuídas por área delimitada: Na Tabela de Atributos, o número de famílias quilombolas varia entre 0 e 3500 no arquivo shapefile fornecido, portanto, nosso objetivo é desenvolver a melhor metodologia para representação dessas comunidades no mapa. Teste lógico para definição de intervalos Para classificar as comunidades quilombolas de acordo com o número de famílias, o primeiro passo consiste em identificar o campo ou coluna da Tabela de Atributos que armazena as informações sobre o total de famílias. Ao abrir a tabela, verificamos que o campo NR_FAMIL8 contém essa informação: Os números da tabela podem ser repetir, porém o algoritmo selecionado irá realizar uma varredura na coluna e classificá-los de acordo com o intervalo definido pelo analista. A classificação será armazenada em outro campo. No segundo passo, devemos estabelecer certos intervalos de classe e associar valores numéricos aos intervalos. Vale lembrar que a pesquisa pelos valores deve seguir os clássicos testes lógicos que você provavelmente realizou no Microsoft Excel.
  3. 3. 3 Esta etapa fica muito mais organizada se materializarmos as ideias através de textos. Na tabela abaixo, temos um exemplo bem definido dos intervalos de classes com as composições lógicas: Proposição Lógica Resultado Se a população quilombola for inferior a 20 famílias Classificar como 1 Caso contrário, se a população quilombola for superior a 20 famílias e inferior a 50 famílias Classificar como 2 Caso contrário, se a população quilombola for superior a 50 famílias e inferior a 70 famílias Classificar como 3 Caso contrário, se a população quilombola for superior a 70 famílias e inferior a 90 famílias Classificar como 4 Caso contrário, se a população quilombola for superior a 90 famílias e inferior a 110 famílias Classificar como 5 Caso contrário, se a população quilombola for superior a 110 famílias e inferior a 120 famílias Classificar como 6 Caso contrário, se a população quilombola for superior a 120 famílias e inferior a 140 famílias Classificar como 7 Caso contrário, se a população quilombola for superior a 140 famílias e inferior a 400 famílias Classificar como 8 Caso contrário, se a população quilombola for superior a 400 famílias Classificar como 9 A estrutura principal está pronta. Nos passos a seguir, vamos utilizar uma linguagem de programação para realizar a varredura em todos os valores da coluna e classificar esses valores de acordo com o resultado indicado na tabela acima. Linguagem Python O código da tabela foi escrito para a linguagem Python. Daqui por diante, você pode seguir esses procedimentos para aprender a executar scripts Python no QGIS. Baixe o arquivo classe.txt criado exclusivamente para atender essa tarefa:
  4. 4. 4 Execução do Código Python no QGIS Abra o painel Processar no QGIS 2.8 e procure pelo algoritmo Advanced Python Field Calculator (ele está localizado no subgrupo Vector Table Tools que faz parte do grupo Geoalgoritmos QGIS). Não se esqueça de verificar se o item Advanced Interface está exibindo as ferramentas do painel Processar. Com o algoritmo aberto, ajuste essas configurações: 1 - Selecione o polígono de entrada e digite o nome CLASSE para que o QGIS possa gerar uma nova coluna: 2 - Selecione o Tipo de Campo como Inteiro com Comprimento 10 e Precisão 0:
  5. 5. 5 3 – No item Expressão Global, cole o código que está armazenado no arquivo classe.txt: 4 – No item Fórmula, precisamos chamar a função reclass e indicar a coluna da Tabela de Atributos que contém o total das famílias quilombolas. No shapefile, o campo ou coluna que contém essa informação chama-se NR_FAMIL8. Digite a seguinte expressão no campo Fórmula: value = reclass (<NR_FAMIL8>) 5 – No item Camada de Saída, selecione a opção Salvar em Arquivo para gerar um novo arquivo shapefile: 6 – Digite o nome do arquivo shapefile que será criado: Execute o processo. O QGIS vai adicionar um arquivo chamado Camada de Saída. Você pode remover este arquivo e acessar o verdadeiro arquivo gerado pelo processo.
  6. 6. 6 Para avaliar as mudanças, investigue o campo CLASSE. O código Python classificou os valores de acordo com as regras pré-definidas. Compare os resultados deste campo com os valores das famílias presentes no campo NR_FAMIL8. Configuração da Simbologia por Categoria Acesse as Propriedades do Camada Vetorial e faça a edição de simbologia por Estilo Categorizado, selecionando o campo CLASSE gerado pela Calculadora Python. No item Legenda, defina as classes e as cores de acordo com o seu gosto. Você pode digitar os intervalos numéricos ou incluir números e textos. Esta opção é livre para o analista decidir. O número de famílias quilombolas será representado pelo intervalo de classes definido pelo analista. Mesmo com o total de famílias sendo exibido sobre cada área demarcada, a classificação de campos ajudar a ampliar a percepção dos dados durante a criação de mapas temáticos. O passo final consiste em utilizar o Compositor de Impressão para construir o mapa.
  7. 7. 7 Ora, mas qual a finalidade de classificar campos com intervalos pré-definidos? Tente imaginar uma quantidade imensa de cores para representar 3.500 famílias. Seria inviável, não é mesmo?
  8. 8. 8 Contatos Jorge Santos Consultor em Geotecnologias E-mail: jorgepsantos@outlook.com Skype: jorgepsantos2002 Processamento Digital – Geotecnologias e Software Livre Endereço: http://www.processamentodigital.com.br/ Twitter: http://twitter.com/jpsantos2002 Facebook: http://www.facebook.com/ProcessamentoDigital LinkedIn: http://br.linkedin.com/pub/jorge-santos/10/38b/8a4/ Atuação  Consultor para Projetos que envolvem Demandas de SIG/PDI;  Instrutor para Treinamento Avançado em Geotecnologias;  Instrutor para Treinamento Avançado no Processamento Digital de Imagens.

×