QGIS 2.8 - Processamento Digital

Propaganda
QGIS 2.8:
Classificação de Campos com Python
Jorge Santos
2015
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.
2
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
Caso contrário, se a população quilombola for superior a 50
famílias e inferior a 70 famílias
Caso contrário, se a população quilombola for superior a 70
famílias e inferior a 90 famílias
Caso contrário, se a população quilombola for superior a 90
famílias e inferior a 110 famílias
Caso contrário, se a população quilombola for superior a
110 famílias e inferior a 120 famílias
Caso contrário, se a população quilombola for superior a
120 famílias e inferior a 140 famílias
Caso contrário, se a população quilombola for superior a
140 famílias e inferior a 400 famílias
Caso contrário, se a população quilombola for superior a
400 famílias
Classificar como 2
Classificar como 3
Classificar como 4
Classificar como 5
Classificar como 6
Classificar como 7
Classificar como 8
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:
3
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:
4
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.
5
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.
6
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?
7
Contatos
Jorge Santos
Consultor em Geotecnologias
E-mail: [email protected]
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.
8
Download