Generalizando arquivo de polígono, mantendo a topologia no QGIS?


35

Eu tenho um polígono Shapefile, que eu preciso generalizar. Como posso generalizar os polígonos e garantir que não haja erros topológicos como "lascas".

Eu já tentei:

  1. Vector -> Ferramentas de geometria -> polígonos para linhas
  2. Vector -> Geometry Tools -> geometrias simplfy ... aqui já posso ver na tela que estou produzindo sobreposições e lacunas, no entanto, agora eu tento
  3. Vector -> Ferramentas de geometria -> linhas para polgones

e aqui o programa mostra um erro e trava

insira a descrição da imagem aqui


Há notícias sobre esse assunto?
— Oystein

infelizmente: não
— Kurt

Respostas:


16

O GRASS reconhece a topologia. Você pode usar v.generalize na caixa de ferramentas Processing para simplificar polígonos e, se os dados de entrada estiverem topologicamente corretos, a saída também será.

insira a descrição da imagem aqui


usando o instalador do windows, estou recebendo um erro (falta de dependência), quando tento executar o v.generalize. Precisa de uma configuração especial?
— Kurt

@Kurt: O instalador autônomo? Não tenho certeza de qual versão do GRASS ela inclui. Nas configurações de processamento, você pode especificar se o GRASS 6.x ou 7.xe onde está instalado. Tente ajustar essas configurações para a sua instalação.
— underdark

sim, eu uso o instalador stanalone. Seguindo seu conselho, desativei a grama 7 por meio das opções de processamento e configurei o caminho para o qrass 6 corretamente. esse caminho não estava correto, sobra de um qgis mais antigo. Agora eu posso executar o v.generalize, mas no final recebo um novo erro: A camada de saída não pôde ser aberta e, finalmente, a mensagem diz que a grama parece estar corretamente instalada e configurada. você poderia me dar alguma sugestão ou sugestão?
— Kurt #

Normalmente, esse erro significa que o geoprocessamento falhou em algum estágio. Você deve examinar o log gerado enquanto as ferramentas são executadas para ver onde o erro ocorre.
— underdark

7

Isso pode ser visto como uma preliminar à resposta do @ Underdark, na qual você pode limpar a topologia da camada vetorial antes de generalizar. O GRASS possui uma função v.clean que contém várias ferramentas para reparar a camada, como:

  • snap que 'encaixa' as linhas no vértice mais próximo
  • rmdangle que remove quaisquer oscilações irritantes
  • rmdupl que remove os recursos duplicados da geometria

e vários outros mostrados na imagem abaixo:

v.clean

Você também pode definir o limite, dependendo da sensibilidade que deseja que as ferramentas executem. Pessoalmente, costumo usar o recurso Verificar geometria da validade no QGIS ( Vetor > Ferramentas de geometria > Verificar validade da geometria ) para verificar se há erros e, se houver algum, use a ferramenta apropriada no v.clean . Depois que os erros forem removidos, você deverá estar em uma posição melhor para generalizar.

Espero que isto ajude!


3
E se uma simples redução de vértice for suficiente, v.generalize não será necessário, pois a ferramenta de remoção pode fazer isso.
— Gabor Farkas

obrigado pela sua resposta preliminar à resposta do @ Underdark, que contém informações valiosas. embora eu não tenha dito explicitamente, é claro que o arquivo poligonal, que eu queria generalizar, é topologicamente limpo [porque; lixo - lixo fora :-)]
— Kurt

@Kurt, isso faz sentido :)
— Joseph

2

Você já tentou usar o MapShaper ? Eu descobri que essa é uma boa maneira de generalizar polígonos; também há uma versão offline, se você deseja fazer o download do código.

Uma alternativa pode ser convertida para GeoJson e, em seguida, para o TopoJson, que suporta "simplificação de forma que preserva a topologia" https://github.com/mbostock/topojson


Já experimentou Mapshaper, é realmente uma grande ferramenta
— Kurt

11
mais um comentário: Como o título diz: Estou procurando uma solução com qgis. O Mapshaper imho não preserva a topologia (faça uma prova geral, fazendo uma generalização muito forte!). Topojson: este é um monte de javascript-sourcecode, que é imho só é útil para programadores
— Kurt

Opa, perdeu o único aspecto do QGIS. O QGIS lida com o geojson; Pergunto-me se não faria sentido para o trabalho na funcionalidade topojson simplificação em um plugin QGIS para torná-lo acessível a não-programadores
— DJQ

Eu continuo a linha fora do tópico: O OpenJUMP possui uma ferramenta "Simplificar a cobertura de polígonos" para essa finalidade.
— user30184

0

Acabei de fazer um teste rápido e a ferramenta "Simplificar geometrias" no menu Vetor parece respeitar a topologia. Tentei com e sem a opção "Ativar edição topológica" marcada em Opções de encaixe. Você já tentou isso?

EDIT: Isso foi feito diretamente no arquivo de polígono - por que você converteria primeiro em linhas?


Oi Darren, obrigado pela dica eu vou experimentá-lo com enablr topológica edição
— Kurt

11
Oi Darren, imho não respeita a topologia. não há diferença com "ativar edição topológica". Suponho que isso ocorre porque a generalização gera uma nova camada, enquanto "ativar a edição topológica" parece funcionar apenas com as camadas existentes selecionadas. Você poderia fazer uma generalização muito forte e verificar novamente, se você tem uma topologia correta agora? graças
— Kurt

11
Kurt; Interessante. Parece que você está certo quando faz uma generalização forte! Desculpe!
— Darren Cope

11
Esta caixa de seleção desapareceu no QGIS 2.2 (talvez mais cedo), caso alguém faça uma pesquisa.
— lynxlynxlynx

0

Há a mesma discussão aqui , minha resposta final é que a SAGA faz o trabalho para você.


Após sua resposta nessa discussão, parece que o SAGA não preserva a topologia. Pelo menos não mais.
— Oystein
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.