Anda di halaman 1dari 8

QGIS 2.

8:
Classificao de Campos com Python

Jorge Santos
2015

Classificao de Campos Numricos com Python


Classificao de Campos um recurso ideal para diferenciar valores atravs de intervalos predefinidos. O exemplo mais
utilizado no site Processamento Digital a classificao de campos de acordo com os valores numricos da populao. Hoje,
vamos utilizar um exemplo dessa classificao para aplicao de simbologia nas comunidades quilombolas.

Classificao de Campos em outros aplicativos


Nos tpicos anteriores, eu criei tutoriais contendo os passos necessrios para execuo dessa dica nos aplicativos ArcGIS
10, ArcGIS 9.3, gvSIG e Quantum GIS 1.7.4. Hoje vamos testar esta tcnica no QGIS verso 2.8.

A Questo das Comunidades Quilombolas


De acordo com os dados em shapefile do INCRA, as comunidades quilombolas esto espacialmente distribudas por
diversas regies do Brasil. Nosso objetivo determinar o mapeamento destes grupos humanos atravs de polgonos com
representao de simbologia. A ideia utilizar o Geoprocessamento para gerar uma representao temtica, fornecendo a
localizao das famlias quilombolas por todo o Brasil.
Na imagem abaixo, temos algumas poligonais representando fragmentos de comunidades quilombolas. Os valores
numricos representam o total de famlias distribudas por rea delimitada:

Na Tabela de Atributos, o nmero de famlias quilombolas varia entre 0 e 3500 no arquivo shapefile fornecido, portanto,
nosso objetivo desenvolver a melhor metodologia para representao dessas comunidades no mapa.

Teste lgico para definio de intervalos


Para classificar as comunidades quilombolas de acordo com o nmero de famlias, o primeiro passo consiste em
identificar o campo ou coluna da Tabela de Atributos que armazena as informaes sobre o total de famlias. Ao abrir a tabela,
verificamos que o campo NR_FAMIL8 contm essa informao:

Os nmeros da tabela podem ser repetir, porm o algoritmo selecionado ir realizar uma varredura na coluna e
classific-los de acordo com o intervalo definido pelo analista. A classificao ser armazenada em outro campo.
No segundo passo, devemos estabelecer certos intervalos de classe e associar valores numricos aos intervalos. Vale
lembrar que a pesquisa pelos valores deve seguir os clssicos testes lgicos que voc provavelmente realizou no Microsoft Excel.
2

Esta etapa fica muito mais organizada se materializarmos as ideias atravs de textos. Na tabela abaixo, temos um
exemplo bem definido dos intervalos de classes com as composies lgicas:
Proposio Lgica

Resultado

Se a populao quilombola for inferior a 20 famlias

Classificar como 1

Caso contrrio, se a populao quilombola for superior a 20


famlias e inferior a 50 famlias
Caso contrrio, se a populao quilombola for superior a 50
famlias e inferior a 70 famlias
Caso contrrio, se a populao quilombola for superior a 70
famlias e inferior a 90 famlias
Caso contrrio, se a populao quilombola for superior a 90
famlias e inferior a 110 famlias
Caso contrrio, se a populao quilombola for superior a
110 famlias e inferior a 120 famlias
Caso contrrio, se a populao quilombola for superior a
120 famlias e inferior a 140 famlias
Caso contrrio, se a populao quilombola for superior a
140 famlias e inferior a 400 famlias
Caso contrrio, se a populao quilombola for superior a
400 famlias

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 programao 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 cdigo 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:

Execuo do Cdigo 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). No se esquea de verificar se o item Advanced
Interface est exibindo as ferramentas do painel Processar.

Com o algoritmo aberto, ajuste essas configuraes:


1 - Selecione o polgono 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 Preciso 0:

3 No item Expresso Global, cole o cdigo que est armazenado no arquivo classe.txt:

4 No item Frmula, precisamos chamar a funo reclass e indicar a coluna da Tabela de Atributos que contm o
total das famlias quilombolas. No shapefile, o campo ou coluna que contm essa informao chama-se NR_FAMIL8.
Digite a seguinte expresso no campo Frmula:

value = reclass (<NR_FAMIL8>)

5 No item Camada de Sada, selecione a opo 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 Sada. Voc pode remover este arquivo e
acessar o verdadeiro arquivo gerado pelo processo.
5

Para avaliar as mudanas, investigue o campo CLASSE. O cdigo Python classificou os valores de acordo com as regras
pr-definidas. Compare os resultados deste campo com os valores das famlias presentes no campo NR_FAMIL8.

Configurao da Simbologia por Categoria


Acesse as Propriedades do Camada Vetorial e faa a edio 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 numricos ou incluir nmeros e textos. Esta opo livre para o analista decidir.

O nmero de famlias quilombolas ser representado pelo intervalo de classes definido pelo analista. Mesmo com o
total de famlias sendo exibido sobre cada rea demarcada, a classificao de campos ajudar a ampliar a percepo dos dados
durante a criao de mapas temticos. O passo final consiste em utilizar o Compositor de Impresso para construir o mapa.

Ora, mas qual a finalidade de classificar campos com intervalos pr-definidos? Tente imaginar uma quantidade imensa
de cores para representar 3.500 famlias. Seria invivel, no mesmo?

Contatos
Jorge Santos
Consultor em Geotecnologias
E-mail: jorgepsantos@outlook.com
Skype: jorgepsantos2002
Processamento Digital Geotecnologias e Software Livre
Endereo: 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/

Atuao

Consultor para Projetos que envolvem Demandas de SIG/PDI;


Instrutor para Treinamento Avanado em Geotecnologias;
Instrutor para Treinamento Avanado no Processamento Digital de Imagens.