TUTORIAL Trabalhando com a base de dados no QGIS: Operações com Texto QGIS www.processamentodigital.com.br
O Processamento Digital é um Canal de Conteúdo GEO oferecido pela HEX Tecnologias Geoespaciais Inovadoras, que traz ao público interessado nas Tecnologias Geoespaciais o que há de novo no setor. Este canal foi idealizado com o objetivo de ajudar o público, trocar informações e gerar debates acerca dos temas da área.
ÍNDICE Identificação de Atributos... 4 Atributos de Texto e Número... 4 Campo de Texto (String)... 4 Trabalhando com Comandos de Texto no QGIS... 5 Comando Left... 5 Comando Right... 7 A Concatenação de Colunas... 8 A Largura de um Campo de Texto... 8 Criação de um Novo Campo de Texto... 9 Adicionar Espaços na Concatenação... 10 O Comando lower... 11 O Comando upper... 12 O Comando title... 12 O Comando replace... 13 O Comando substr... 14 O Comando substr: Posição dos Caracteres... 15 Organizar o campo VALIDACAO com substr... 16 O Comando length... 18 Trabalhando com Conversões... 19 Conversão de Número para Texto... 19 A função tostring... 19. www.processamentodigital.com.br
Este documento traz um passo a passo com mais uma aplicação da Calculadora de Campo do QGIS com comandos e funções para operações com texto. Além das funções para seleção de atributos, vamos publicar alguns exemplos sobre concatenação de colunas para unir atributos. No QGIS, a palavra Campo corresponde à Coluna. 1. Identificação de Atributos Atributos de Texto e Número No QGIS ou mesmo no Microsoft Excel/LibreOffice Calc, atributos de texto são posicionados à esquerda da coluna e atributos numéricos são posicionados à direita da coluna. Na tabela acima, as colunas reservadas para os cálculos de perímetro e área geográfica possuem algarismos alinhados à direita das colunas. Os demais campos concentram caracteres alinhados à esquerda. Esta é uma forma simples para interpretar a estrutura dos campos na tabela. Campo de Texto (String) Admite caracteres alfabéticos e numéricos com largura máxima de 255 caracteres. 4
2.Trabalhando com Comandos de Texto no QGIS Comando Left Utilizado para selecionar um conjunto de caracteres posicionados à esquerda do campo indicado na fórmula. Para ilustrar a utilização do comando left, considere uma lista de telefones para algumas empresas com sede no estado do Rio de Janeiro: Na Tabela de Atributos, temos um campo chamado FONE e dois campos vazios: PREFIXO e TEL. Nosso objetivo consiste em utilizar as fórmulas do QGIS para selecionar as palavras que estão posicionadas à esquerda e à direita dos atributos presentes na coluna FONE. Estas fórmulas serão utilizadas para separar o prefixo do número de telefone das empresas. Clique nas ferramentas Alternar Edição e Calculadora de Campo: Neste primeiro exemplo, vamos utilizar as fórmulas do QGIS para preencher uma coluna existente na Tabela de Atributos. Clique na opção Atualizar um Campo existente e selecione o campo PREFIXO da tabela. 5
Para copiar os quatro caracteres posicionados à esquerda do campo FONE que correspondem ao prefixo do telefone, digite o comando abaixo: Para montar essa fórmula, clique em Funções e localize a função left na categoria String. Clique duas vezes sobre ela para que a função seja adicionada no campo Expressão. Em seguida, clique na categoria Campos e Valores e localize o campo de referência FONE. Clique duas vezes sobre ele e construa a fórmula conforme indicado na imagem abaixo: Clique no botão OK para preencher a coluna. O prefixo será gravado na Tabela de Atributos. Esta é a demonstração da função left. Veja o resultado: 6
Comando Right Utilizado para selecionar um conjunto de caracteres posicionados à direita do campo indicado na fórmula. Para ilustrar a utilização do comando right, vamos realizar um recorte no número de telefone presente na coluna FONE da Tabela de Atributos. São oito números e um traço, totalizando nove caracteres que devem ser selecionados. A fórmula é esta: Acesse a Calculadora de Campo para preencher uma coluna existente na Tabela de Atributos. Clique na opção Atualizar um Campo existente e selecione o campo TEL da tabela. Em seguida, em Funções, localize a função right na categoria String. Clique duas vezes sobre ela para que a função seja adicionada no campo Expressão e clique na categoria Campos e Valores para localizar o campo de referência FONE. Construa a fórmula seguindo a descrição abaixo: 7
Clique no botão OK para preencher a coluna. O número do telefone será gravado na Tabela de Atributos. Esta é a demonstração da função right. Veja o resultado: Os comandos left e right facilitam a tarefa de seleção de caracteres posicionados à esquerda e à direita de qualquer atributo da tabela. Um recorte nos caracteres posicionados na posição central do atributo pode ser realizado com o comando substring, mas falaremos desse comando mais adiante. A Concatenação de Colunas Recurso utilizado para unir colunas na Tabela de Atributos do QGIS. Podemos usar a concatenação para somar as colunas PREFIXO e TEL com o propósito de gerar uma nova coluna chamada TELEFONE. A criação de um novo campo na tabela requer um conhecimento mínimo sobre a estrutura dos campos como Tipo, Largura, Comprimento e Precisão. A Largura de um Campo de Texto Corresponde ao total de caracteres alfabéticos e numéricos que podem ser alocados na tabela. Para o formato ESRI Shapefile, qualquer campo de texto possui uma capacidade de armazenamento de 255 caracteres. Um texto que excede esse total será cortado. Para consultar a estrutura da Tabela de Atributos, clique com o botão direito do mouse sobre a camada desejada e acesse suas propriedades. Na categoria Campos, o QGIS exibe informações importantes como Nome, Tipo, Comprimento e Precisão. Dados do tipo String (Texto) não possuem precisão. Este grupo é destinado para campos numéricos. 8
Nesta tabela, o campo PREFIXO possui o valor 24 assinalado para o comprimento ou largura. Isso significa que os atributos dessa coluna comportam 24 caracteres apenas. Procure consultar as propriedades de um arquivo vetorial antes de atualizar os campos com novas informações. Criação de um Novo Campo de Texto Com a Tabela de Atributos aberta, clique nas ferramentas Alternar Edição e Calculadora de Campo. Nosso objetivo é criar um novo campo de texto chamado TELEFONE para armazenar o resultado da concatenação entre os campos PREFIXO e TEL. Para criar um novo campo de texto, siga os passos abaixo: Nome do Novo Campo: TELEFONE Tipo do Novo Campo: Texto (String) Largura do Campo de Saída: 80 O nome do campo corresponde ao cabeçalho da coluna, portanto, não pode conter espaços, cedilha e acentuação. Limite de dez caracteres para o cabeçalho. 9
Em Campos e Valores, clique duas vezes sobre a coluna PREFIXO e adicione o símbolo em destaque na imagem ao lado. Em seguida, clique duas vezes sobre a coluna TEL para realizar a concatenação. Verifique o resultado da expressão no item Prévia de Saída. Uma nova coluna chamada TELEFONE será adicionada na Tabela de Atributos com o resultado da concatenação entre as colunas PREFIXO e TEL: O processo pode ser considerado como satisfatório, porém, para melhorar a visualização do número do telefone, devemos acrescentar um pequeno espaço entre o prefixo e os números. Adicionar Espaços na Concatenação O espaço também é um caractere ASCII e pode ser utilizado na concatenação, desde que seja escrito entre aspas únicas, como qualquer caractere de texto. Assim, utilize a fórmula abaixo para atualizar o campo existente TELEFONE (não será criado novamente): Nesta nova expressão, o espaço posicionado entre aspas únicas deve ser concatenado com as duas colunas. Atualize o campo existente na Calculadora de Campo e avalie os resultados: 10
O Comando lower Função utilizada para reduzir a caixa, ou seja, transformar caracteres maiúsculos em minúsculos. Exemplo: Criar uma nova coluna chamada LOWER do tipo Texto com Largura 80. Em seguida, executar a função abaixo: 11
O Comando upper Função utilizada para ampliar a caixa, ou seja, transformar caracteres minúsculos em maiúsculos. Exemplo: Criar uma nova coluna chamada UPPER do tipo Texto com Largura 80. Em seguida, executar a função abaixo: O Comando title Função utilizada para transformar os caracteres em caixa alta/ caixa baixa. Exemplo: Criar uma nova coluna chamada TITLE do tipo Texto com Largura 80. Em seguida, executar a função abaixo: 12
O Comando replace Função utilizada para substituir uma sequência de caracteres. O problema: No campo TITLE, temos algumas entradas que devem ser substituídas automaticamente pelo termo apropriado. A solução: Criar uma nova coluna chamada REPLACE do tipo Texto com Largura 80. Em seguida, executar a função abaixo: replace ("TITLE", 'De ', 'de ') Essa função recebe a instrução para procurar no campo TITLE todos os atributos de texto iniciados com a palavra De seguido de um espaço. Após encontrar esta palavra, o comando replace irá realizar a substituição pelo texto para o formato esperado. 13
É preciso inserir um espaço durante a pesquisa pela palavra De para que a função replace evite substituir qualquer palavra presente nos atributos da tabela. Para manter o cadastro atualizado, todos os atributos que transformados para caixa alta com a função TITLE devem ser corrigidos com a função replace. O Comando substr Função presente na Calculadora de Campo do QGIS utilizada para selecionar uma sequência de caracteres nos atributos da tabela a partir de uma posição. Para ilustrar a utilização da função substr, vamos considerar uma camada vetorial que representa os Estados do Brasil de autoria do IBGE (Instituto Brasileiro de Geografia e Estatística). Para controle de versão, um campo chamado VALIDACAO do tipo Texto foi criado para armazenar a data da última alteração na base. 14
Na Tabela de Atributos, o campo VALIDACAO armazena uma data no formato AAAA-MM-DD com um total de dez caracteres. O objetivo deste tutorial é utilizar as técnicas de concatenação em conjunto com a função substr para reordenar as datas para o formato DD-MM-AAAA. Para direcionar a função substr, devemos listar as posições dos caracteres a partir de algumas observações que serão postadas a seguir. O Comando substr: Posição dos Caracteres Para identificar a posição dos caracteres para o atributo 2016-05- 25, observe a imagem, abaixo: A sintaxe para utilização da função substr é esta: Considerando o atributo 2016-05-25, para recortar o intervalo que representa o mês de maio, podemos fazer o seguinte: Posição: 6ª Comprimento: 2 Iniciando a contagem da esquerda para a direita, para separar o mês de maio representado pelo número 05 na data 2016-05-25, o algarismo 0 deve ser contado a partir da 6ª posição e a contagem deve começar por ele. Para o comprimento, a ferramenta substr considera a sua contagem a partir da posição mapeada. Na Calculadora de Campo, a fórmula para o problema acima seria essa: 15
Fórmula: Criar uma nova coluna chamada MES do tipo Texto com Largura 80. Em seguida, executar a função substr para selecionar e recortar o atributo desejado no campo VALIDACAO: O resultado será um recorte do mês de maio armazenado na nova coluna MES: Organizar o campo VALIDACAO com substr Com a função substr apoiada pela ferramenta para concatenação de campos, podemos reorganizar o formato de data AAAA-MM- DD para DD-MM-AAAA. A estratégia utilizada para executar esta tarefa é esta: SEPARAR DIA CONCATENAR SEPARAR MÊS CONCATENAR SEPARAR ANO. 16
Para o formato de data 2016-05-25, vamos executar a seguinte contagem de caracteres: Caractere Posição Inicial Comprimento Fórmula 2016 1 4 substr ( VALIDACAO,1,4) -05-5 4 substr ( VALIDACAO,5,4) 25 9 2 substr ( VALIDACAO,9,2) Para construir a expressão, o comando substr deve ser utilizado com a ferramenta para concatenação: Na Calculadora de Campo, crie uma nova coluna chamada DATA do tipo Texto com Largura 255. Em seguida, execute a função substr para selecionar e recortar o atributo desejado a partir do campo VALIDACAO: 17
A data no formato DD-MM-AAAA será armazenada na tabela de atributos: Esta foi uma demonstração sobre a função substr que permite selecionar um conjunto de atributos a partir de uma posição definida. Esta função deve ser utilizada como complemento para as funções de texto left e right. O Comando length Função presente na Calculadora de Campo do QGIS utilizada para contagem de caracteres. Digite na Calculadora de Campo: O resultado armazena a contagem de caracteres presentes no campo DATA. 18
3.Trabalhando com Conversões Conversão de Número para Texto Quando uma coluna da Tabela de Atributos possui informações do tipo Número ou Data, podemos realizar a transformação de todos os atributos para Texto com a função tostring. A função tostring Quando uma coluna da Tabela de Atributos possui informações do tipo Número ou Data, podemos realizar a transformação de todos os atributos para Texto com a função tostring. Para utilizar esta função, acesse a categoria Conversões e crie um novo campo do tipo Texto com um comprimento definido de acordo com o campo numérico. Em seguida, digite a função abaixo: Com este comando, um campo chamado AREA2 gerou uma conversão de número para texto: 19