QGIS: Comandos para eliminar apóstrofos, cedilhas e acentuação da base de dados

3

Está aberta a temporada de caça aos caracteres presentes na base de dados dos dados vetoriais. Semelhante à postagem anterior para o ArcGIS, você vai conhecer os passos para  substituição de caracteres na tabela de atributos do QGIS e entender como funciona uma formatação de caracteres alfanuméricos no Sistema de Informações Geográficas.

Base de Municípios – os Topônimos

Conforme foi dito, alguns processos dependem dos atributos e isso pode representar um problema quando lidamos com a Toponímia. Um exemplo disso são os processos de Geoprocessamento que tomam como base a coluna NOME da malha de municípios fornecida pelo IBGE. Em casos específicos, os espaços, a acentuação e caracteres especiais devem ser removidos a fim de evitar prejuízos para as análises espaciais.

Dados utilizados – malha de municípios

Vamos realizar a substituição de caracteres na malha de municípios que faz parte do projeto BC250 do IBGE , em especial o pacote Limite_v2015_2016-08-03.

ftp://geoftp.ibge.gov.br/cartas_e_mapas/bases_cartograficas_continuas/bc250/versao2015/Shapefile/

ftp_ibge

QGIS: Ocultar colunas da Tabela

Nosso trabalho terá como base a Tabela de Atributos da camada LIM_Municipio_A.shp:

qgis_remover_acentuacao_01

Nem todas as colunas serão utilizadas no processo, portanto, clique com o botão direito do mouse sobre a coluna que não será utilizada e selecione a opção Ocultar coluna:

qgis_remover_acentuacao_02

Resultado: agora, temos uma visão clara do nosso objetivo. Para restaurar as colunas, execute o mesmo processo selecionando a opção Organizar Colunas.

qgis_remover_acentuacao_03

Primeiro Ato: Perseguição ao Apóstrofo

Não há nada melhor do que aplicar uma seleção sobre os dados para que possamos ter uma ideia do tamanho do problema. O apóstrofo (‘), conhecido em inglês como apostrophe ou single quote, é muito utilizado na nossa língua para atribuição de nomes locais. Na camada de municípios, você pode utilizar a Seleção Através de Uma Expressão para identificar todos os apóstrofos presentes na base de dados.

qgis_remover_acentuacao_04

Nesta etapa, você deve utilizar o operador SQL LIKE para localizar o apóstrofo em qualquer posição do campo “NOME”. Para selecionar o apóstrofo, é necessário utilizar um caractere de escape. Assim, a cota única deve ser digitada na fórmula após a contra-barra. Exemplo:

“NOME” LIKE ‘%\’%’

qgis_remover_acentuacao_05

A pesquisa apontou para 47 feições que utilizam apóstrofo na coluna “NOME”, um número relativamente pequeno se consideramos o total de 5.570 municípios do Brasil.

qgis_remover_acentuacao_06

Agora que você tem domínio do recurso para selecionar um determinado caractere, apague a marca de seleção para que os processos futuros possam ser executados em toda a base.

qgis_remover_acentuacao_07

Nas etapas seguintes, vamos executar os processos para substituição de caracteres. Faça um backup dos seus dados originais para preservar sua base de dados e evitar eventuais problemas.

Segundo Ato: Remoção da cedilha e acentuação

Vamos executar os passos para remover toda a acentuação e gravar este resultado no campo recentemente criado.

Será necessário executar um código na linguagem de programação Python para remover de vez todos os caracteres de acentuação. Você pode copiar ou fazer o download do código através deste link.

arcgis_substituicao_de_texto_06

Siga os passos abaixo e aplique a expressão em Python para eliminar a acentuação:

  1. Clique no menu Processar – Caixa de Ferramenta;
  2. Digite “calculadora” e selecione a Calculadora de Campo Avançada Python (ignore o erro de tradução, às vezes acontece);
  3. Certifique-se que a camada dos municípios está selecionada;
  4. Você deve criar um novo campo chamado NOME2. Este campo deve armazenar informações do tipo Texto ou String, portanto, o limite máximo para armazenar informações do tipo texto é de 255 caracteres. Para processos que envolvem o nome dos municípios do Brasil, o valor 80 é suficiente;
  5. Em Expressão Global, cole o código Python para eliminar a acentuação da base;
  6. Para chamar a função remove, digite remove (<NOME>).
  7. Selecione um novo local para a nova base e clique no botão OK.

qgis_remover_acentuacao_13

Parabéns! Toda a acentuação foi removida da base de dados sem prejuízo para o dado original! Adicione o novo limite no mapa e mantenha visível apenas as colunas NOME e NOME2.

qgis_remover_acentuacao_14

Terceiro Ato: Substituição de Caracteres

O primeiro caractere que vamos substituir é o espaço. O QGIS possui uma função chamada regexp_replace() que realiza uma pesquisa na base de dados e substitui um caracter em particular. Vamos utilizar essa função para remover todos os espaços presentes na tabela.

Clique nas ferramentas Alternar Edição e Abrir Calculadora de Campo:

qgis_remover_acentuacao_15

Marque a opção para atualizar um campo existente e use a função abaixo para substituir todos os espaços pelo símbolo underscor (_):

regexp_replace(“NOME2” ,’ ‘,’_’)

qgis_remover_acentuacao_16

Veja o resultado:

qgis_remover_acentuacao_18

Salve as alterações. No passo seguinte, vamos substituir os apóstrofos e o hífen com a mesma função utilizada no processo de remoção de espaços. Digite a expressão abaixo na calculadora:

regexp_replace(“NOME2″ ,’\”,”)

Faça novamente uma consulta pelos apóstrofos com o operador LIKE e confira os resultados! A referência da pesquisa é a coluna NOME: e o resultado

qgis_remover_acentuacao_19

A mesma lógica se aplica para consultar o hífen na base: “NOME” LIKE ‘%-%’

qgis_remover_acentuacao_20

O processo para substituição do hífen é praticamente igual:

regexp_replace(“NOME2” ,’-‘,’_’)

Faça novamente a consulta SQL com base na coluna NOME e verifique os resultados:

qgis_remover_acentuacao_21

Conclusão

Estes foram os procedimentos para eliminar a acentuação, cedilha e caracteres especiais da base de dados. Alguns processos do QGIS devem considerar como parâmetro de saída o atributo presente na base de dados. Este atributo poderá ser utilizado como o nome da camada de saída, portanto, as alterações realizadas aqui não comprometem a malha de municípios do IBGE, pelo contrário, a deixam preparada para certos processos que podem ser executados pelo analista.


Gostou da dica? Então, inscreva-se no nosso canal no Youtube:
https://www.youtube.com/c/ProcessamentoDigitalGeo

Fique por dentro das novidades do site através da nossa Newsletter:
http://www.processamentodigital.com.br/assinatura

Curta nossa página no Facebook:
http://www.facebook.com/ProcessamentoDigital

Siga nossa página no LinkedIn. Vamos divulgar muitas novidades nessa rede:
http://www.linkedin.com/company/processamento-digital


Dúvidas e sugestões podem ser enviadas para o e-mail contato@processamentodigital.com.br

Comentários

3 Comentários

  1. Sou iniciante no uso do Qgis e estou utilizando a versão 2.18.1.
    Tentei realizar a remoção da acentuação e no final, apareceu a seguinte mensagem: Erro de execução do código do FieldPyculator. Bloco do código do campo não pode ser executado! SyntaxError invalid syntax (, line 1)
    O que pode ter acontecido?

  2. Numa segunda tentativa, corrigindo o nome do Campo que eu havia errado uma letra, apareceu a seguinte mensagem:
    Algoritmo Advanced Python field calculator iniciando…
    must be unicode, not QPyNullVariant See log for more details

DEIXE UMA RESPOSTA