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.
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.
Quer aprender mais sobre Python no QGIS? Clique aqui
Até a próxima!
1 comentários:
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!