Eu tenho um arquivo de forma de polígonos, que são efetivamente bordas de uma unidade geográfica (considere como um exemplo os 50 estados americanos, cada estado possui um número de pontos).
Eu gostaria de criar polígonos Voronoi a partir dos pontos , com a ressalva de que as fronteiras do estado restringem efetivamente os polígonos Voronoi criados a partir dos pontos dentro desse estado.
A maneira mais trabalhosa de fazer isso seria criar 50 arquivos de forma individuais para cada estado, criar polígonos Voronoi em cada um deles e depois juntá-los manualmente.
Existe uma maneira mais fácil de fazer isso, idealmente no QGIS (estou usando o 2.18 no Mac) ?
qgis
polygon
voronoi-thiessen
Steven
fonte
fonte
Respostas:
É um processo de várias etapas, portanto, você deve criar um modelo ou script personalizado. Para evitar lascas de polígonos que pertencem a pontos de polígono vizinhos, você precisará percorrer a camada de estados. Trabalhando com polígonos de estado e um conjunto de pontos aleatórios, analisarei o processo para que você possa entender o que está acontecendo dentro do nosso modelo.
Por dentro do modelo
points_layer
intersect
polygons_layer
'Extracted (location)' from algorithm 'Extract by location'
500
(parece excessivo, mas queremos garantir que seus polígonos Voronoi cubram completamente o estado em que estão. Como cortamos essa camada na próxima etapa, é irrelevante o tamanho que fazemos).Extract by location
'Voronoi polygons' from algorithm 'Voronoi polygons'
polygons_layer
output
Extract by location
eVoronoi polygons
Como você pode ver, temos nossos polígonos de Voronoi com restrição de estado nos quais pontos de estados vizinhos não afetam seu arranjo.
Aqui está uma imagem do modelo:
A imagem não transmite isso, mas observe que a entrada da camada de polígono do modelo é um
Vector Features
objeto, não umVector Layer
.Executando o modelo
Quando você executa seu modelo, é vital que você clique no ícone para percorrer os recursos da camada Estados.
Depois de executar o modelo, você pode simplesmente executar a mesclagem de camadas vetoriais nas saídas para obter uma saída de camada única, se isso for importante para você. Infelizmente, não conheço uma maneira fácil de mesclar várias saídas de modelo no próprio modelo (por favor, alguém me corrija se houver algo).
Se você estiver familiarizado com o Python, poderá modificar facilmente o script exportado desse modelo para lidar com essa etapa adicional. Como você não mencionou soluções baseadas em código em sua pergunta, deixarei isso de fora.
fonte
Da mesma forma que a resposta que o @csk lhe deu, você pode tentar estas duas alternativas:
1- Incluir nós de polígonos de estado na ferramenta Voronoi.
- Ferramenta Voronoi com pontos e nós.
O último passo é cortar seus polos Voronoi com a camada States (se você precisar).
2- Use o Voronoi diretamente sobre a camada Point usando o buffer para "expandi-los" para a extensão total do estado.
Como você vê, você obterá resultados diferentes. Depende do que você está procurando.
fonte