Como adicionar um atributo de numeração em ordem alfabética





Nesse tutorial vamos criar um script para numerar uma coluna a partir de uma coluna de nome e sendo assim colocar os nomes em ordem alfabética e os números em ordem crescente.

A imagem abaixo mostra o editor do python aberto no QGIS 3.2.



Com o editor do python aberto digite o seguinte script.


















A variável “camada” irá receber a camada que está ativa na tela do QGIS.

A variável seguinte recebe as características dessa camada.

A próxima linha habilita o modo de edição dessa camada ativa.

A linha seguinte cria um atributo com o nome “Numeracao”, sendo ela um número inteiro.

As duas linhas seguintes são duas listas vazias que serão preenchidas com os dados da tabela de atributo.

O primeiro loop vai ler uma coluna de nome e preencher as duas listas. E a última linha desse loop irá colocar a lista2 em ordem alfabética.

A variável “numeros” recebe o número “0” que será alterado dentro do próximo loop.

No próximo loop irá ler a “lista2”, irá comparar as duas listas, irá preencher os atributos na coluna “Numeracao” que nesse caso é a coluna de número “6”.  E no final temos um “break” para finalizar o loop. Uma observação importante é que ao contar o id da coluna temos que lembrar que ele começa em “0” nesse caso do nosso script a tabela de atributo tem 7 atributos, porém como começa em “0” o último atributo é o “6”.

As duas últimas linhas irá atualizar, salvar as alterações e fechar o modo de edição.
*Obs: Todas as “ASPAS” fazem parte do código e se caso não coloca-las o Python irá retornar um Erro. Outra observação importante é a correta indentação dentro da função. Coloque os espaços corretos como na figura utilizando a tecla Tab.

A imagem a seguir mostra o script dentro do editor.



Após esse procedimento clique no ícone rodar script para ver o resultado na tela.



*Caso apresente algum erro revise o código.

Abaixo se encontra o vídeo de demonstração do script sendo executado.



Será que você precisa de um mapa? Entre aqui se você precisa de uma consultoria.

Quer aprender mais sobre Python no QGIS? Clique aqui 


Até a próxima!

1 comentários:

avatar

olá! obrigada pelo post!!!!
é possível fazer esse processo para sequências numéricas? por exemplo, numerar do maior para o menor número de uma coluna?
agradeço!

Balas