Merge em linhas adjacentes

902 views
Skip to first unread message

Jayme Muzzi

unread,
Feb 15, 2017, 6:21:43 AM2/15/17
to qgisbrasil
Eu quero dar merge apenas em linhas que são adjacentes. O que caracteriza uma linha ser adjacente a outra é o vértice final de uma linha ser coincidente com o vértice inicial de outra linha.

O comando Dissolve não considera adjacência. A ferramenta junta apenas feições que têm o mesmo valor de atributo. Por exemplo, suponha que você tem um conjunto de linhas e, dentre este conjunto, duas linhas tem o mesmo valor de atributo porém elas não são adjacentes. A ferramenta dissolve vai "unir" essas duas linhas que tem o mesmo valor de atributo gerando uma feição do tipo multipart, não considerando o critério de adjacência.

Outra ferramenta é o Singleparts to multipart que também não considera adjacência. Haveria uma outra maneira de unir linhas no QGIS?

Eu sei que no ArcGIS a ferramenta Dissolve considera adjacência se a opção "Create multipart features" estiver desmarcada. Eu estou procurando algo semelhante no QGIS.

Jorge Santos

unread,
Feb 15, 2017, 7:05:36 AM2/15/17
to qgisb...@googlegroups.com
Sua dúvida está no site GIS Stack Exchange e eu presumo que você está aguardando respostas.

Eu faria essa atividade em dois passos:

1 - Consulta espacial / Seleção pela Localização com objetivo de definir um critério de seleção para todas as feições QUE TOCAM a camada de referência.
2 - Gerar nova camada a partir da seleção ou Mesclar Linhas selecionadas.

Já tentou por esse caminho?

Jorge Santos
Analista de Geoprocessamento
----------------------------------------------
Skype: jorgepsantos2002
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.

Jayme Muzzi

unread,
Feb 15, 2017, 11:08:59 AM2/15/17
to qgisbrasil
Não entendi muito bem o que você disse. Eu só tenho uma camada de linhas. A figura abaixo mostra um exemplo do que estou falando na pergunta:
Dado esse conjunto de linhas eu quero unir somente as linhas que tem o mesmo atributo e que são adjacentes. Por exemplo, existem 3 linhas que tem o valor do atributo igual à 17. Dessa forma, se elas tem o mesmo atributo e são adjacentes então deve ocorrer o merge.  Existem ainda 2 linhas que tem o valor do atributo igual à 22, porém elas não são adjacentes e então não devem ser unificadas. O problema da ferramenta merge do QGIS é que o critério de unificação baseia-se apenas no valor do atributo. Dessa forma, ao executar a ferramenta, as linhas 22 serão unificadas criando-se multipart.
 

 


Marcos Vinicius Sanches Abreu

unread,
Feb 15, 2017, 11:57:30 AM2/15/17
to qgisb...@googlegroups.com
E se você explodir tudo depois do merge?



Marcos Vinicius Sanches Abreu
Professor Assistente Eng. Agrimensura e Cartográfica - UFV
Doutorando em Informações Espaciais - DEC/UFV
M.Sc. Engenheiro Agrimensor - UFV - Informações Espaciais
Contato: (31) 8789 9227 - OI
"Mais do que máquinas, precisamos de humanidade.
Mais que inteligência, precisamos de afeição e doçura!" (Charlie Chaplin)


--------------------------------------------
Em qua, 15/2/17, Jayme Muzzi <jaymem...@gmail.com> escreveu:

Assunto: Re: [QGISBrasil:20641] Merge em linhas adjacentes
Para: "qgisbrasil" <qgisb...@googlegroups.com>
Data: Quarta-feira, 15 de Fevereiro de 2017, 14:08


>
> Não entendi muito bem o que você disse.
Eu só tenho uma camada de linhas.
> A
figura abaixo mostra um exemplo do que estou falando na
pergunta:
>
Dado esse
conjunto de linhas eu quero unir somente as linhas que tem o

mesmo atributo e que são adjacentes. Por
exemplo, existem 3 linhas que tem
o valor
do atributo igual à 17. Dessa forma, se elas tem o mesmo
atributo e
são adjacentes então deve
ocorrer o merge.  Existem ainda 2 linhas que tem
o valor do atributo igual à 22, porém elas
não são adjacentes e então não
devem
ser unificadas. O problema da ferramenta *merge *do QGIS é
que o
critério de unificação baseia-se
apenas no valor do atributo. Dessa forma,
ao executar a ferramenta, as linhas 22 serão
unificadas criando-se
multipart.




<https://lh3.googleusercontent.com/-euMVyUDEvBw/WKR694EZyEI/AAAAAAAACnk/rOR2Z9i4QVQsO3FfVcXbGYcI2zRvNSimwCLcB/s1600/arco.JPG>

--
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+...@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.

Jayme Muzzi

unread,
Feb 16, 2017, 6:05:27 AM2/16/17
to qgisbrasil, msanch...@yahoo.com.br
Se explodir tudo vai voltar para a versão original da camada. Ou seja, 3 linhas com o ID 17 e as duas linhas com o ID 22. Vai explodir o multipart e também as linhas que foram unificadas.

Jorge Santos

unread,
Feb 16, 2017, 6:30:38 AM2/16/17
to qgisb...@googlegroups.com
Parece um problema que não pode ser automatizado, ou pelo não conheço nenhum algoritmo. Nem os americanos do Gis Stack Exchange souberam responder.

Eu não vejo outra solução diferente de partir a camada de linha com base nos atributos, porque você está considerando a posição espacial e os atributos para realizar essa mesclagem.

Seria dividir a linha (split) ou explodi-las (explode) e depois mesclar (dissolve). Talvez você tenha que realizar essa edição manualmente ou tentar automatizar através do modelador gráfico.

Confesso que estou sem ideias...

Jorge Santos
Analista de Geoprocessamento
----------------------------------------------
Skype: jorgepsantos2002
Twitter: http://twitter.com/jpsantos2002

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.

Gledson Cruz

unread,
Feb 16, 2017, 6:37:29 AM2/16/17
to qgisb...@googlegroups.com
Eu só consigo fazer isso no postGIS, suas camadas estão no postgis ou é shapefile ?
--
Gledson Cruz
Bacharel em Sistemas de Informação

Marcos Vinicius Sanches Abreu

unread,
Feb 16, 2017, 7:31:46 AM2/16/17
to qgisb...@googlegroups.com

Marcos Vinicius Sanches Abreu

unread,
Feb 16, 2017, 7:32:15 AM2/16/17
to qgisb...@googlegroups.com

Jayme Muzzi

unread,
Feb 16, 2017, 8:00:06 AM2/16/17
to qgisbrasil
Minhas camadas estão em shapefile.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para qgisbrasil+...@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.

--
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.

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.

Luiz Motta

unread,
Feb 16, 2017, 11:01:24 AM2/16/17
to qgisbrasil
Use o virtual layer, Faça o SQL com o critério que vc deseja,tocar nos nós das linhas e teremos mesmo valor do atributo em questão, faça o Union dessas geometria s.

Augusto Vieira

unread,
Feb 16, 2017, 11:44:23 AM2/16/17
to qgisb...@googlegroups.com
Jayme, outra opção é o complemento Merge Lines

Imagem inline 1

Este é diferente do Join Lines ou do Join Multiple Lines!!!

Comigo funcionou bem!

Boa sorte

Em 16 de fevereiro de 2017 14:01, Luiz Motta <motta...@gmail.com> escreveu:
Use o virtual layer, Faça o SQL com o critério que vc deseja,tocar nos nós das linhas e teremos mesmo valor do atributo em questão, faça o Union dessas geometria s.
--
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.

Jayme Muzzi

unread,
Feb 21, 2017, 1:34:53 PM2/21/17
to qgisbrasil
Pessoal obrigado pelas respostas. Finalmente encontrei uma solução para este problema. Segue o link.

Luciano Alves

unread,
Dec 7, 2022, 1:08:34 PM12/7/22
to qgisbrasil
Jayme, boa tarde!

Tentei executar como especificado no link que você colocou, porém está dando erro no script. Não sou muito familiarizado com linguagem de programação. Você poderia me ajudar? Segue um print do erro:
 Erro_Script.png

Reply all
Reply to author
Forward
0 new messages