8
QGIS 2.8: Classificação de Campos com Python Jorge Santos 2015

QGIS 2.8: Classificação de Campos com Python

Embed Size (px)

DESCRIPTION

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.

Citation preview

  • QGIS 2.8: Classificao de Campos com Python

    Jorge Santos

    2015

  • 2

    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.

  • 3

    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

    Classificar como 2

    Caso contrrio, se a populao quilombola for superior a 50 famlias e inferior a 70 famlias

    Classificar como 3

    Caso contrrio, se a populao quilombola for superior a 70 famlias e inferior a 90 famlias

    Classificar como 4

    Caso contrrio, se a populao quilombola for superior a 90 famlias e inferior a 110 famlias

    Classificar como 5

    Caso contrrio, se a populao quilombola for superior a 110 famlias e inferior a 120 famlias

    Classificar como 6

    Caso contrrio, se a populao quilombola for superior a 120 famlias e inferior a 140 famlias

    Classificar como 7

    Caso contrrio, se a populao quilombola for superior a 140 famlias e inferior a 400 famlias

    Classificar como 8

    Caso contrrio, se a populao quilombola for superior a 400 famlias

    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:

  • 4

    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:

  • 5

    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 ()

    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.

  • 6

    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.

  • 7

    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?

  • 8

    Contatos

    Jorge Santos Consultor em Geotecnologias

    E-mail: [email protected]

    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.