Validação de atributos no QGIS
Você sabe usar uma expressão do QGIS para validar em tempo real o preenchimento de atributos como, por exemplo, o CPF do proprietário de um imóvel?
A qualidade dos dados geoespaciais é essencial para garantir a consistência e a integridade dos bancos de dados, proporcionando informações precisas e confiáveis para tomada de decisões em projetos de REURB ou na gestão do cadastro técnico multifinalitário.
Investir na melhoria contínua da qualidade desses dados é fundamental para maximizar o valor e o uso efetivo desses dados em uma variedade de aplicações e setores.
Neste artigo, você vai aprender como validar o atributo CPF de uma camada no QGIS utilizando “Expressões” para verificar se o valor do CPF é válido utilizando expressões regulares e, em seguida, apresentando uma forma mais completa para checar os dois dígitos verificadores.
Validação por Expressão Regular (Regex)
Expressão regular, também conhecida como regex (abreviação de regular expression), é uma sequência de caracteres que define um padrão de busca em um texto. É uma ferramenta poderosa para encontrar, extrair e manipular padrões de texto com base em regras específicas.
No QGIS, você pode criar máscaras de campos de preenchimento usando expressões regulares, sendo possível encontrar um padrão de texto específico nos atributos utilizando a ferramentas de Seleção por Expressão, a Calculadora de Campo ou qualquer outro recurso de automatização por expressão.
Para o exemplo abaixo, foi criada uma camada GeoPackage do tipo ponto com um campo textual para armazenar o valor CPF para o proprietário de cada imóvel.
Para validar o preenchimento de um CPF no padrão XXX.XXX.XXX-XX, onde X corresponde a um número, você deve realize os seguintes passos no QGIS:
1. Clique com o botão direito do mouse na camada e selecione “Propriedades”.
2. Na janela de propriedades, clique na guia “Formulário de Atributos” e selecione o campo de CPF.
3. Clique no botão ε de “Expressão” ao lado direito.
4. Na janela “Expressão”, cole a seguinte expressão regular para validar um CPF:
regexp_match("CPF", '^\\d{3}\\.\\d{3}\\.\\d{3}-\\d{2}$')
Obs.: Caso você deseje validar um CNPJ, utilize a seguinte expressão:
regexp_match("cnpj", '^\\d{2}\\.\\d{3}\\.\\d{3}\\/\\d{4}\\-\\d{2}$')
5. Clique no botão “OK” para salvar a expressão regular. Caso você deseje salvar a feição somente se a condição for válida, então habilite “Aplicar restrição de expressão”, caso contrário, deixe desmarcada.
Agora, quando você criar uma nova feição no QGIS, o atributo CPF será verificado automaticamente pela expressão regular e qualquer valor que não esteja em um dos formatos válidos será destacado:
Validação com o dígito verificador
Embora a validação utilizando Regex seja bastante prática, ela não é infalível. A validação de um CPF pode ser melhorada quando, além do padrão de preenchimento, também se verifica os valores dos dígitos verificadores.
A expressão abaixo utiliza o algoritmo de checagem dos dois últimos dígitos verificadores do CPF:
length("CPF") = 14 and substr("CPF", 4, 1) = '.' and substr("CPF", 8, 1) = '.' and substr("CPF", 12, 1) = '-' and right(to_string( (10*( substr("CPF", 1, 1) * 10 + substr("CPF", 2, 1) * 9 + substr("CPF", 3, 1) * 8 + substr("CPF", 5, 1) * 7 + substr("CPF", 6, 1) * 6 + substr("CPF", 7, 1) * 5 + substr("CPF", 9, 1) * 4 + substr("CPF", 10, 1) * 3 + substr("CPF", 11, 1) * 2)) %11),1) = substr("CPF", 13, 1) and right(to_string( (10*( substr("CPF", 1, 1) * 11 + substr("CPF", 2, 1) * 10 + substr("CPF", 3, 1) * 9 + substr("CPF", 5, 1) * 8 + substr("CPF", 6, 1) * 7 + substr("CPF", 7, 1) * 6 + substr("CPF", 9, 1) * 5 + substr("CPF", 10, 1) * 4 + substr("CPF", 11, 1) * 3 + substr("CPF", 13, 1) * 2)) % 11),1) = substr("CPF", 14, 1)
Para validar o CNPJ, utilize a seguinte expressão no QGIS com a contribuição do aluno Geonista Kelvyn Melo:
regexp_match("cnpj", '^\\d{2}\\.\\d{3}\\.\\d{3}\\/\\d{4}\\-\\d{2}$') AND length("cnpj") = 18 AND substr("cnpj", 3, 1) = '.' AND substr("cnpj", 7, 1) = '.' AND substr("cnpj", 11, 1) = '/' AND substr("cnpj", 16, 1) = '-' AND right(to_string( (10*( substr("cnpj", 1, 1) * 5 + substr("cnpj", 2, 1) * 4 + substr("cnpj", 4, 1) * 3 + substr("cnpj", 5, 1) * 2 + substr("cnpj", 6, 1) * 9 + substr("cnpj", 8, 1) * 8 + substr("cnpj", 9, 1) * 7 + substr("cnpj", 10, 1) * 6 + substr("cnpj", 12, 1) * 5 + substr("cnpj", 13, 1) * 4 + substr("cnpj", 14, 1) * 3 + substr("cnpj", 15, 1) * 2 )) % 11), 1) = substr("cnpj", 17, 1) AND right(to_string( (10*( substr("cnpj", 1, 1) * 6 + substr("cnpj", 2, 1) * 5 + substr("cnpj", 4, 1) * 4 + substr("cnpj", 5, 1) * 3 + substr("cnpj", 6, 1) * 2 + substr("cnpj", 8, 1) * 9 + substr("cnpj", 9, 1) * 8 + substr("cnpj", 10, 1) * 7 + substr("cnpj", 12, 1) * 6 + substr("cnpj", 13, 1) * 5 + substr("cnpj", 14, 1) * 4 + substr("cnpj", 15, 1) * 3 + substr("cnpj", 17, 1) * 2 )) % 11), 1) = substr("cnpj", 18, 1)
Assista o passo a passo de Validação do CPF no QGIS:
Como validar o CPF na Receita Federal
Vale salientar que os métodos mostrados anteriormente no QGIS são apenas para checagem do padrão de preenchimento e do dígito verificador.
Logo, para saber se um CPF realmente existe e qual é a situação dele, então é preciso consultar o CPF na Receita Federal.
Para validar o CPF na Receita Federal, faça o seguinte:
- Acessa a página Validar CPF na Receita Federal
- Preencha o CPF, a data de nascimento do dono do CPF, clique no captcha e depois no botão Consultar.
- O validador de CPF da Receita Federal vai indicar a situação do CPF, além dos dados do dono do CPF.
APRENDA COMO AUTOMATIZAR SEUS TRABALHOS NO QGIS
Fature mais em trabalhos de Topografia/Agrimensura! Não perca a oportunidade de aprender como utilizar o QGIS em seus projetos de REURB realizando o nosso curso: