# 2 – ArcGIS: Calculadora de Campo: Operações com Texto – 1

7

arcgis10b

Segundo tutorial sobre a Calculadora de Campo do ArcGIS. No tópico anterior apontamos algumas questões essenciais sobre  a Tabela de Atributos. Hoje vamos executar algumas operações com dados do tipo Texto.

Investigar Dados para Duplicar Colunas

Antes de duplicar uma coluna do tipo Texto, em primeiro lugar é preciso investigar o tipo de dado da coluna original para criar uma nova coluna no mesmo formato. O processo é simples: clique com o botão direito sobre o nome do campo para selecionar a opção Properties. Na tabela que compõe o shapefile ARQUIVO1.shp, vamos criar uma coluna chamada Bairro2  com o mesmo tipo de dado presente na coluna dos bairros:

Através da janela Propriedades do Campo (Field Properties), somos informados que o campo Bairro é do tipo Texto (String) com Comprimento (length) 254:

Para ser bem sucedido em nossas operações com a Calculadora de Campo, devemos criar um campo chamado Bairro2 contendo a mesma estrutura de dados do campo original. O tutorial anterior nos trouxe uma breve demonstração sobre como criar um novo campo na Tabela de Atributos do ArcGIS versões 9x e 10:

Além da opção acima, a guia Fields contém o tipo de dado de todos os registros da Tabela de Atributos. Ela pode ser acessada nas Propriedades da Camada (Layer Properties – clique com o botão direito sobre o arquivo shapefile na janela Table of Contents). Acessar a guia Fields é uma outra forma de investigação da estrutura do arquivo shapefile.

Use recurso para ocultar a visualização de alguns registros da tabela.

Copiar dados de texto a partir de um campo existente

Abra a Tabela de Atributos e siga os passos abaixo:

  • Investigue o tipo de dado da coluna original;
  • Crie um novo campo no mesmo formato;
  • Selecione o novo campo e acesse a Calculadora de Campo (Tecla de Atalho: CTRL + SHIFT + F).

Clique duas vezes sobre o campo que deseja duplicar. Em nosso exemplo, a Calculadora de Campo irá armazenar as strings do campo Bairro no campo criado recentemente:

Clique no botão OK. Os registros do campo Bairro serão copiados no campo Bairro2:

Copiar registros selecionados para um novo campo

Abra a Tabela de Atributos e selecione os registros que devem ser atualizados com Field Calculator.

  • Investigue o tipo de dado da coluna original;
  • Crie um novo campo no mesmo formato;
  • Selecione o novo campo e acesse a Calculadora de Campo.

Clique duas vezes sobre o campo que deseja duplicar. A Calculadora de Campo irá armazenar as strings selecionadas com a opção Calculate Selected Records Only habilitada. Clique no botão OK:

Apenas os registros selecionados serão copiados para o campo Bairro2:

Função Replace ( )

Acesse a Calculadora de Campo e digite o comando abaixo para substituir a palavra “São Cristóvão” por “S. Cristóvão”:

Replace([Bairro], "São Cristóvão", "S. Cristóvão")

A Calculadora de Campo substituiu o registro desejado e conservou os demais:

 

Preenchimento de campo com valores baseados em outro campo

Expressões Lógicas com VBScript

Para inserir uma expressão lógica na Calculadora de Campo, clique na opção Advanced (1) e cole o comando (2) abaixo:

if [Bairro] = “Bonsucesso” then
  [Resultado] = “Bonsucesso está OK”
end if

Na caixa abaixo da expressão, digite o campo que será atualizado (3) e clique novotão OK. Apenas os registros digitados na expressão lógica serão atualizados:

Bem, por enquanto é só. A segunda parte das operações com texto através da Calculadora de Campo será publicada no próximo post. Continue acompanhando!

7 Comentários

  1. Ola jorge primeiro parabens pelo site! muito bem feito.
    Gostaria de saber se posso por duas condicoes na funcao replace.
    por exemplo trocar Sao Cristovao por S. Cristovao e tambem S Cristovao por S. Cristovao

    • Oi Kebler,
      Seu problema pode ser resolvido com a formatação condicional. Vou falar desse asunto mais adiante, mas vou te dar a dica agora.

      Para ilustrar, temos uma tabela com três registros de “São Cristóvão” com formatação diferente dos demais:

      http://bit.ly/zuXGSa

      Montei a seguinte condição lógica:

      if [Bairro] = “SAO Cristóvão” then
      [Bairro2] = “São Cristóvão”
      elseif [Bairro] = “S. Cristóvão” then
      [Bairro2] = “São Cristóvão”
      elseif [Bairro] = “S Cristóvão” then
      [Bairro2] = “São Cristóvão”
      else [Bairro2] = “São Cristóvão”
      end if

      Cole o código acima no campo advanced: http://bit.ly/wHfoTo

      Todos os registros serão marcados como “São Cristóvão”

      Grande abraço, Jorge Santos

  2. TENHO UMA DUVIDA, EXEMPLO:
    O CAMPO “NOME” TEM O TIPO DE VIA E NOME DA VIA JUNTOS. EX: AVENIDA GETULIO VARGAS.
    QUERO SEPARAR O TIPO DO NOME E PENSEI NESSA CONDIÇÃO:
    SE “NOME” CONTEM AVENIDA (OU OUTRO TIPO), RETORNA AV NO CAMPO “TIPO”. COMO FAZ ESSA CONDIÇÃO NO FIELD CALCULATOR? ALGUÉM?

  3. Boa tarde, meu caro.

    Gostei muito do seu passo a passo. Se possível, gostaria de saber como faço para inserir uma fórmula em uma coluna da minha tabela, sendo que essa fórmula usará dados de outras colunas da mesma tabela.

    Um exemplo:

    Índice de compacidade da bacia:
    Kc= 0,28.P/A^(1/2)
    Sendo que:
    P: é o perímetro da bacia
    A: é a área da bacia
    0,28 é um coeficiente

    Ou seja, para o cálculo, preciso que a fórmula pegue os valores da coluna de PERÍMETRO e da ÁREA da bacia, sendo que a área será tirado a raiz quadrada ou elevado a 1/2, que é o inverso da raiz.

    Se alguém puder me ajudar, agradeço.

    Grande abraço.

  4. Olá Jorge. Sempre acompanho seu blog.

    Como faço para em nova coluna fazer uma classificação com base em classificações de outras colunas. Nesta postagem vc ensina a fazer com base em uma única coluna, mas estou querendo fazer com base em diferentes dados de outras 3 ou 4 colunas.

    Obrigado

DEIXE UMA RESPOSTA