Como selecionar por atributos com valores únicos em uma camada vetorial

140 views
Skip to first unread message

Emerson Servello

unread,
Apr 10, 2018, 9:41:31 PM4/10/18
to qgisbrasil
Olá pessoal! Tenho o seguinte arquivo: polígonos com e-mails. Desejo: selecionar, no campo expressão, somente as linhas com valores únicos (sem informação repetida), de modo automático (sem precisar repetir a expressão para cada valor único). Obrigado!

Jorge Santos

unread,
Apr 10, 2018, 11:31:12 PM4/10/18
to qgisb...@googlegroups.com
Poderia por gentileza enviar um print dessa tabela, Emerson?

Jorge Santos
Instrutor de Geotecnologias
http://www.instrutorgis.com.br
jorgep...@outlook.com
whatsappWhatsApp: (61) 99616-5665
skype_jorgepsantos2002Skype: jorgepsantos2002
Perfil no LinkedInhttps://www.linkedin.com/in/jorgepsantos
Twitter: http://twitter.com/jpsantos2002


Em 10 de abril de 2018 22:41, Emerson Servello <elser...@gmail.com> escreveu:
Olá pessoal! Tenho o seguinte arquivo: polígonos com e-mails. Desejo: selecionar, no campo expressão, somente as linhas com valores únicos (sem informação repetida), de modo automático (sem precisar repetir a expressão para cada valor único). Obrigado!

--
Comunidade QGIS Brasil: http://qgisbrasil.org/
---
Você está recebendo esta mensagem porque se inscreveu no grupo "qgisbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para qgisbrasil+unsubscribe@googlegroups.com.
Para postar neste grupo, envie um e-mail para qgisb...@googlegroups.com.
Visite este grupo em https://groups.google.com/group/qgisbrasil.
Para obter mais opções, acesse https://groups.google.com/d/optout.

Message has been deleted

Emerson Servello

unread,
Apr 12, 2018, 7:46:18 AM4/12/18
to qgisbrasil
Olá, 

Havia postado antes, mas, por algum motivo, a mensagem foi excluída. 

Vamos lá, o arquivo de polígonos possui uma coluna com valores repetidos e valores únicos. Tenho interesse em identificar valores únicos e seleciona-los no mapa. Como a tabela é grande, o uso de uma expressão (selecionar por expressão) que resolva esta situação é necessário. Esta ferramenta permite identificar valores únicos no campo de valores, mas como são muitos, não é prático inserir 'um a um' na expressão de seleção (Ex. 'Atividade' = 'pecuária' OR 'atividade'= 'agricultura' OR ..., ou mesmo com a ferramenta LIKE) 

Alguma dica? 
QGIS.PNG

Kyle Felipe

unread,
Apr 12, 2018, 12:42:56 PM4/12/18
to qgisbrasil
Boa tarde... pode fazer um script python que faça a seleção...
Pode fazer um Sql q faça isso tambem...

Emerson Servello

unread,
Apr 12, 2018, 12:55:11 PM4/12/18
to qgisbrasil
Olá Kyle, 

Tem alguma sugestão de como construir a expressão?

Até.




Em terça-feira, 10 de abril de 2018 21:41:31 UTC-4, Emerson Servello escreveu:

Kyle Felipe

unread,
Apr 12, 2018, 1:00:35 PM4/12/18
to qgisbrasil
Sim... vou postar aqui mais tarde...

Jorge Santos

unread,
Apr 12, 2018, 1:04:11 PM4/12/18
to qgisb...@googlegroups.com
Emerson, antes de filtrar os duplicados, vale trocar a codificação de caracteres para UTF-8.

A acentuação está truncada nessa base.




Jorge Santos
Instrutor de Geotecnologias
http://www.instrutorgis.com.br
jorgep...@outlook.com
whatsappWhatsApp: (61) 99616-5665
skype_jorgepsantos2002Skype: jorgepsantos2002
Perfil no LinkedInhttps://www.linkedin.com/in/jorgepsantos
Twitter: http://twitter.com/jpsantos2002


--
Comunidade QGIS Brasil: http://qgisbrasil.org/
---
Você recebeu essa mensagem porque está inscrito no grupo "qgisbrasil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para qgisbrasil+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para qgisb...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/qgisbrasil.
Para mais opções, acesse https://groups.google.com/d/optout.

Jorge Santos

unread,
Apr 12, 2018, 1:07:58 PM4/12/18
to qgisb...@googlegroups.com
Enquanto o Kyle prepara o Script, você pode tentar isso pois achei interessante:


Another graphical, dynamic and most importantly simple way to detect duplicate attributes: use QGIS's expression builder.

Highlight duplicates in attribute table

Enable Conditional Formatting (see red arrow below) with the following condition:

count("FieldWithDuplicates","FieldWithDuplicates") > 1

To group all duplicates at the top, right click the column, select Sort
Enter the above expression without the >1, and deselect Sort ascending.

duplicate attributes highlighted in QGIS attribute table

Highlight features with duplicate attributes on canvas:

You could add a new symbol or label with the filter set to the above condition.

And of course you can enable a data derived override based on the the same.

For example, if you want to highlight labels for features with a duplicate attribute, you can set it to draw a label background (=1) with the following override:

CASE WHEN
count("FieldWithDuplicates","FieldWithDuplicates") > 1
THEN 1
ELSE 0
END

to achieve something like the following

duplicate attribute labels highlighted in QGIS canvas

In both situations, of course, once you either delete or change the duplicate attributes, the formatting/styling updates instantly.


Jorge Santos
Instrutor de Geotecnologias
http://www.instrutorgis.com.br
jorgep...@outlook.com
whatsappWhatsApp: (61) 99616-5665
skype_jorgepsantos2002Skype: jorgepsantos2002
Perfil no LinkedInhttps://www.linkedin.com/in/jorgepsantos
Twitter: http://twitter.com/jpsantos2002


Clarice Murta

unread,
Apr 12, 2018, 7:02:04 PM4/12/18
to qgisb...@googlegroups.com
Tente a expressão IN
'Atividade' IN ('pecuaria', 'agricultura')


Em Qui, 12 12e abr 12e 2018 às 13:43, Kyle Felipe

--
Comunidade QGIS Brasil: http://qgisbrasil.org/
---
Você recebeu essa mensagem porque está inscrito no grupo "qgisbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para qgisbrasil+...@googlegroups.com.

Kyle Felipe

unread,
Apr 12, 2018, 8:01:35 PM4/12/18
to qgisbrasil
O script este no link abaixo em Python >selelect_unique > select_unique.py

https://github.com/kylefelipe/qgis-tips-tricks.git

Vc pode copiar o código e com a camada selecionada vá em plug-ins Python console.....
E cole o código.
Vc vai ver escrito col_name = "COMARCA"
Substitua o COMARCA pelo nome da coluna (não apague as "").
Rode o código, as feições que possuírem valores únicos serão selecionados.

Emerson Servello

unread,
Apr 13, 2018, 7:52:04 AM4/13/18
to qgisbrasil
Kyle,Jorge, e colaboradores. 

obrigado!

Realmente útil. 

Ótima semana. 

Em terça-feira, 10 de abril de 2018 21:41:31 UTC-4, Emerson Servello escreveu:

Kyle Felipe

unread,
Apr 13, 2018, 11:13:41 AM4/13/18
to qgisbrasil
Cara.. precisei modificar o script, estava funcionando errado...

Emerson Servello

unread,
Apr 13, 2018, 1:51:29 PM4/13/18
to qgisbrasil
Blza.


Eu havia rodado de um modo não muito ortodoxo. Exportei a planilha para csv, e selecionei os valores únicos com um programa de planilha.  Depois foi só fazer o inverso e selecionar por atributo 'campo' is not null. Isso é ruim pois tem riscos, mas resolvi o problema. Não testei o script. Mas vou precisar dele para refazer o processo ainda este mês. 

Assim que tiver disponível a nova versão de um toque aqui. 

Abração!


Em terça-feira, 10 de abril de 2018 21:41:31 UTC-4, Emerson Servello escreveu:

Kyle Felipe

unread,
Apr 13, 2018, 2:16:47 PM4/13/18
to qgisbrasil
Na hora que eu avisei eu já havia colocado no ar....
Reply all
Reply to author
Forward
0 new messages