Como substituir um item na Tabela de Atributos no ArcGIS e QGIS?

Aprenda como utilizar a calculadora de campo (Field Calculator) do ArcGIS e QGIS para substituir vários itens da tabela de atributos ao mesmo tempo.

Todo mapa precisa de retoques.

Seja porque a sua primeira tentativa deixou ele desagradável, seja porque alguém pediu para modificar algum dado. Normalmente, é o segundo.

Em algumas situações, essas alterações são rápidas, basta modificar uma cor aqui, outra lá, trocar as configurações da escala e esta tudo pronto.

Entretanto, nem todas as solicitações são assim fáceis. Algumas precisam modificar todo o nosso banco de dados, ou seja, toda a nossa Tabela de Atributos.

Imagine a seguinte situação, a qual exploraremos neste tutorial, você fez o mapa de uso e ocupação do solo de uma determinada área de estudo e dividiu os usos em:

  • Pastagem;
  • Área Urbana;
  • Reflorestamento;
  • Agricultura;
  • Vegetação Secundária Estágio Inicial;
  • Vegetação Secundária Estágio Médio; e
  • Vegetação Secundária Estágio Avançado.

Até aqui, tudo bem.

Mas vamos supor que o empreendedor quer modificar o mapa e, ao invés de utilizar os termos Pastagem, Área Urbana, Reflorestamento e Agricultura, ele queira utilizar “Áreas Antropizadas”.

Se você tem poucos polígonos no seu shapefile de uso do solo, este processo pode ser rápido, mas e se você tiver mais de 100? 1.000? Vai fazer um por um? Não.

Acompanhe a nossa postagem e descubra como utilizar a calculadora de campo (“Field Calculator”) para resolver este problema no ArcGIS e QGIS.

Preparando um Arquivo para o Tutorial

No ArcGIS, a criação de um shapefile pode ser realizada pelo ArcToolbox. Nele, procure pela ferramenta Create Feature Class, a qual encontra-se dentro de Data Management Tools > Feature Class.

Nela, você irá fornecer dados como localização do shape a ser criado (Feature Class Location), nome do arquivo (Feature Class Name) e tipo da geometria (Geometry Type).

Os outros dados são opcionais.

Com o shapefile criado, desenhe alguns polígonos e insira as classes que apresentamos acima na tabela de atributos. A figura abaixo mostra o shapefile que criamos e sua respectiva tabela de atributos.

Shapefile criado para conduzir o tutorial do Blog 2 Engenheiros.
Shapefile criado para conduzir o tutorial do Blog 2 Engenheiros.

No QGIS, a criação de shapefiles é realizada clicando no menu Camada, Criar Camada, e em seguida, Nova Camada Shapefile.

Uma janela será aberta e você que terá que preencher dados como tipo da geometria (ponto, linha ou polígono), sistema de coordenada e campos existentes na tabela de atributos.

Ao clicar em OK, o QGIS irá solicitar onde você quer salvar o novo arquivo. A figura abaixo mostra o resultado.

Shapefile criado para conduzir o tutorial do Blog 2 Engenheiros.
Shapefile criado para conduzir o tutorial do Blog 2 Engenheiros.

Substituição no ArcGIS

Agora, com o nosso shapefile em mãos, iremos realizar a modificação solicitada pelo nosso empreendedor.

Lembre-se que modificações realizadas na tabela de atributos sem ligar o modo de edição são permanentes.

Clique com o botão direito sobre o shapefile e selecione Open Attribute Table (Abrir Tabela de Atributos). Em seguida, iremos criar uma nova coluna, de forma a não perder a informação original que iremos alterar.

Em seguida, vamos acrescentar uma nova coluna, iremos chamar ela de uso_solo2 (a criação de novas colunas se dá clicando em Table Options e Add Field).

Uma nova janela será aberta solicitando o nome da nova coluna e os tipos de dados que serão inseridos. No nosso caso, são dados do tipo Texto.

Quando você criar essa nova coluna, clique sobre ela com o botão direito e selecione a opção Field Calculator. Nela iremos utilizar uma função do tipo python para substituir vários processos com apenas algumas linhas de código.

Antes de escrever o código Python, lembre-se de marcar a opção “Python” (no topo da janela) e “Show Codeblock”, o que habilitará o “Pre-Logic Script Code”, onde iremos inserir o código abaixo.


def TrocarB2E( Valor ):
  if Valor == "Pastagem" or Valor == "Área Urbana" or Valor == "Reflorestamento" or Valor == "Agricultura":
    return u"Área Antropizada"
  else:
    return Valor

Este código irá receber um determinado Valor, e se ele for igual à Pastagem, ou a Área Urbana, ou à Reflorestamento, ou à Agricultura, irá retornar como resultado o texto Área Antropizada, caso contrário, irá retornar o próprio valor de entrada.

Após preencher este código no campo “Pre-Logic Script Code”, na caixa de texto seguinte, a qual leva o nome da coluna (no nosso caso, é uso_solo2), iremos escrever a nossa função, abrir parênteses e inserir a coluna uso_solo para converter os valores, conforme código abaixo.


TrocarB2E( !uso_solo! )

O resultado, assim como os campos preenchidos pelo Field Calculator, são apresentados na figura a seguir.

Código python e resultados da operação com Field Calculator no ArcGIS
Código python e resultados da operação com Field Calculator no ArcGIS.

Substituição no QGIS

No QGIS, com o nosso shapefile já adicionado, vamos acessar a tabela de atributos dele clicando sobre ele com o botão direito e selecionando Abrir Tabela de Atributos (“Open Attribute Table”).

Na tabela de atributos, há um botão com o ícone de um ábaco, clique sobre ele (ou utilize o atalho Ctrl+I). Esse procedimento irá abrir a Calculadora de Campo do QGIS (“Field Calculator”).

Lembre-se de marcar a caixa Criar Novo Campo (“Create New Field”) para que o processo gere uma nova coluna com os novos valores.

Na janela para inserção do código, utilize o código abaixo, onde cada linha representa uma condição e o resultado esperado dela.


CASE
  WHEN "uso_solo" IS 'Pastagem' THEN 'Área Antropizada'
  WHEN "uso_solo" IS 'Área Urbana' THEN 'Área Antropizada'
  WHEN "uso_solo" IS 'Reflorestamento' THEN 'Área Antropizada'
  WHEN "uso_solo" IS 'Agricultura' THEN 'Área Antropizada'
  ELSE "uso_solo"
END

Após clicar em OK, uma nova coluna será gerada com as novas classes. A figura abaixo apresenta o procedimento e o resultado no QGIS.

Procedimento e resultado do Field Calculator no QGIS.
Procedimento e resultado do Field Calculator no QGIS.

Note que no Field Calculator do QGIS, há uma diferenciação do nome das colunas (as quais utilizam aspas duplas) e textos (que utilizam aspas simples).

Lembre-se de sempre colocar a linha contendo o ELSE, caso contrário, o QGIS irá substituir os itens solicitados e apagar os outros.

No código que utilizamos, criamos vários “casos”, sendo que quando (“when”) o valor do campo é igual à um determinado valor, o resultado (“then”) é apresentado logo em seguida.

Lembre-se que esse procedimento também pode ser feito para números inteiros, possibilitando substituir valores de um intervalo por outros.

Caso tenha alguma dúvida, fique a vontade e deixa ela nos comentários que estaremos respondendo assim que possível.



Clique na figura abaixo e assine nossa lista de emails para receber nosso ebook "Como criar mapas de localização com ArcGIS 10.x".


Author: Fernando BS

Engenheiro Ambiental e de Segurança do Trabalho. Atua nas áreas de recuperação ambiental, geoprocessamento e ciência do solo. Busca soluções utilizando softwares como ArcGIS, R e MATLAB.

Deixe uma resposta

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