Tengo un archivo de formas de polígonos, que son efectivamente fronteras de una unidad geográfica (considere como ejemplo los 50 estados de EE. UU., Cada estado tiene dentro de sí un cierto número de puntos).
Me gustaría crear polígonos Voronoi a partir de los puntos , con la advertencia de que las fronteras estatales limitan efectivamente los polígonos Voronoi creados a partir de los puntos dentro de ese estado.
La forma intensiva de mano de obra para hacer esto sería crear 50 archivos de forma individuales para cada estado, crear polígonos Voronoi dentro de cada uno, luego fusionarlos manualmente nuevamente.
¿Hay una manera más fácil de hacer esto, idealmente en QGIS (estoy usando 2.18 en Mac) ?
qgis
polygon
voronoi-thiessen
Steven
fuente
fuente
Respuestas:
Es un proceso de varios pasos, por lo que debe crear un modelo o script personalizado. Para evitar astillas de polígonos que pertenecen a puntos de polígono vecinos, deberá iterar a través de su capa de estados. Al trabajar con polígonos de estado y un conjunto de puntos aleatorios, pasaré por el proceso para que pueda comprender lo que está sucediendo dentro de nuestro modelo.
Dentro del modelo
points_layer
intersect
polygons_layer
'Extracted (location)' from algorithm 'Extract by location'
500
(Parece excesivo, pero queremos asegurarnos de que sus polígonos Voronoi cubran completamente el estado en el que se encuentran. Dado que recortaremos esta capa en el siguiente paso, no importa cuán grande lo hagamos).Extract by location
'Voronoi polygons' from algorithm 'Voronoi polygons'
polygons_layer
output
Extract by location
yVoronoi polygons
Como puede ver, tenemos nuestros polígonos Voronoi con restricciones de estado en los que los puntos de los estados vecinos no afectan su disposición.
Aquí hay una imagen del modelo:
La imagen no transmite esto, pero tenga en cuenta que la entrada de capa de polígono del modelo es un
Vector Features
objeto, no unVector Layer
.Ejecutando el modelo
Cuando vaya a ejecutar su modelo, es vital que haga clic en el icono para recorrer las características de su capa de Estados.
Una vez que haya ejecutado el modelo, simplemente puede ejecutar Combinar capas de vectores en las salidas para obtener una salida de una sola capa, si eso es importante para usted. Desafortunadamente, no conozco una manera fácil de combinar múltiples salidas de modelo dentro del modelo mismo (por favor, alguien me corrija si hay algo).
Si se siente cómodo con Python, puede modificar fácilmente el script exportado de este modelo para manejar ese paso adicional. Sin embargo, como no mencionó las soluciones basadas en código en su pregunta, lo dejaré fuera.
fuente
De manera similar a la respuesta que @csk le dio, podría probar estas dos alternativas:
1- Incluir nodos de polígonos de estado en la herramienta Voronoi.
- Herramienta Voronoi con puntos y nodos.
El último paso es recortar sus polos de Voronoi con la capa de Estados (si lo necesita).
2- Use Voronoi directamente sobre la capa de Punto usando el buffer para "expandir" a la extensión de Estado completo.
Como ves, obtendrás resultados diferentes. Depende de lo que estés buscando.
fuente