Existe uma opção no QGIS para preencher automaticamente os orifícios nos polígonos, definindo parâmetros, por exemplo, área máxima, distância entre linhas de contorno? Quero excluir / preencher buracos que sejam muito "finos" / pequenos.
12
Respostas:
Usando o QGIS 2.10.1-Pisa com Processing versão 2.10.2, existem algumas ferramentas disponíveis na Processing Toolbox :
Espero que isto ajude!
fonte
Eu enfrentei o mesmo problema que o seu com este shapefile, tendo muitas lacunas entre polígonos.
Para resolver o problema, você pode usar uma ligeira modificação no método de tshiffle:
Essa ação criará um novo shapefile que consiste em apenas um polígono, portanto você deve explodi-lo em partes únicas. Para isso, você pode usar Vector / Geometry Tools / Multipart to singleparts tool.
Depois disso, exclua a entidade externa. Agora você tem, em um novo arquivo de forma, vários polígonos que cobrem as lacunas da sua cobertura original.
fonte
Pode haver soluções mais elegantes por aí, mas isso sempre funcionou para mim.
1) Crie polígonos de "preenchimento de furos". Para fazer isso, desenhe um polígono gigante maior que o original e use a ferramenta "diferença". Se você desenhou um polígono muito maior, terá todos os polígonos de "preenchimento de furos", além de um único polígono maior que contorna a forma original. Exclua esse polígono grande, mantendo os polígonos de "preenchimento de furos".
2) Mesclar os polígonos de "preenchimento de furos" com o arquivo de forma original. Se você deseja preencher apenas os furos que atendem a um determinado critério (ou seja, abaixo do número X de quilômetros quadrados), é possível filtrar isso aqui.
3) Dissolva o polígono recém-mesclado em um campo comum.
fonte
Em python / shapely, isso pode preencher seu polígono:
fonte
Vi algumas explicações seguindo o mesmo caminho que as de gtapko e tshiffle, mas nenhuma funcionou para mim porque as geometrias inválidas tornaram a ferramenta de diferença disfuncional. Então, eu vim com uma solução própria que não é 100% automatizada, mas é gerenciável. Provavelmente alguém já descobriu isso, mas vou me arriscar:
1) Crie um ID na camada danificada original
Criar um atributo de ID é simples, mas a minha solução também é, então eu vou falar sobre isso.
Primeiro, você precisa abrir sua tabela de atributos e depois acessar a Calculadora de Campo , que é um botão praticamente como um ábaco. Lá, você terá a opção de criar um novo campo ou atualizar um campo existente. Na foto acima, estou criando um novo chamado "ID". A fórmula está no final da imagem. (Desculpe por ter meu QGIS configurado em um idioma diferente. Como o design e as fórmulas são exatamente as mesmas nas versões de idiomas, acho que não vai atrapalhar aqui.)
2) Converta os polígonos em linhas
Esta etapa está localizada na seção Vetor> Geometria no menu. Sua forma convertida deve ficar assim:
Logo após converter os polígonos em linha, você terá que fazer exatamente o oposto, que é ...
3) Converter linhas em polígonos
As opções estão próximas uma da outra. Novamente, não vamos nos importar com a barreira do idioma aqui.
4) Alegra-se O motivo pelo qual você executou as etapas 2 e 3 é porque agora você tem certeza de que essas linhas serão consideradas polígonos, o que significa que agora elas têm sua própria linha na Tabela de Atributos. Se você der uma olhada, ficará assim:
O primeiro é SEMPRE o polígono inteiro (acredite, eu apaguei algumas centenas de linhas hoje ...) e o resto são as linhas soltas no meio. Você pode ativar a edição e se preparar para a ação. Se você decidir tentar isso, duas coisas que você deve ter em mente são: organize sua tabela em termos de ID , dessa maneira você tem certeza de que não está perdendo nada e use shift para selecionar agrupamentos de dados, como qualquer outro programa .
Estou ciente de que este não é o crème de la crème da solução de problemas do QGIS, mas se você estiver enfrentando uma situação em que as ferramentas não estão funcionando por causa da geometria inválida que essas linhas criam (tentei dissolver pelo ID, mas não funcionou), então isso pode ser uma saída.
fonte