¿Convertir conjuntos de puntos en límites de polígonos?

27

Estoy tratando de convertir conjuntos de puntos a sus respectivos límites de polígono. Creo que esto es algo así como un diagrama de Voronoi o un casco convexo, pero no del todo. Estoy seguro de que hay un término técnico para ello, pero soy un principiante en SIG.

Probablemente se ilustra mejor con la siguiente imagen:

ingrese la descripción de la imagen aquí

Entonces, dados 4 conjuntos de puntos (cada conjunto en su propio color), ¿cuáles son los cuatro polígonos que rodean cada conjunto de puntos respectivo de modo que el espacio entre los polígonos maximice los márgenes y todos los polígonos se unan?

Aquí hay un ejemplo simplificado con 3 puntos:

  • A, 43.656943, -79.393928, azul
  • B, 43.66663, -79.402682, verde
  • C, 43.656447, -79.408004, verde

Tendrá que ver el siguiente gráfico para que tenga sentido: ingrese la descripción de la imagen aquí

Esencialmente, cada punto tiene un color y expande un búfer de una cierta distancia para comenzar.

La parte difícil es cuando hay una colisión con otros puntos (sus límites) y dónde calcular ese límite. El resultado es un conjunto de polígonos (uno para cada color / conjunto).

DFx
fuente
1
¿Puedes publicar algunos datos de muestra? De esa manera podríamos probar soluciones :)
RK
Agregué un ejemplo arriba. Espero que eso ayude.
DFx
posible duplicado de polígonos
blah238
1
De acuerdo, creo que lo que tengo que hacer es tomar todos los puntos de todos los colores y realizar Voronoi en ellos. Después de eso, combine los polígonos resultantes juntos que tienen los mismos colores. Al final debería tener mi conjunto de polígonos (uno para cada color). Sin embargo, no estoy seguro de cómo hacer eso exactamente en QGIS ...
DFx
2
¿Qué quiere decir exactamente con "el espacio maximiza los márgenes"? La respuesta a eso determina la solución.
whuber

Respuestas:

24

Desde tu capa de puntos

ingrese la descripción de la imagen aquí

puedes crear plogyons Voronoi

ingrese la descripción de la imagen aquí

Lo que resultaría en esto

ingrese la descripción de la imagen aquí

Luego cree una máscara del proceso de triangulación de Delauney

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Y luego recorta la capa de polígonos Voronoi con ella.

ingrese la descripción de la imagen aquí

¿Sería eso lo suficientemente bueno?

También puede intentar combinar su máscara de triangulación de Delauney con un búfer de su capa de puntos

ingrese la descripción de la imagen aquí

y úsalo para recortar tus polígonos Voronoi

ingrese la descripción de la imagen aquí

RK
fuente
55
También puede ejecutar una DISOLUCIÓN (desde el menú Vector-> Geoprocesamiento) en sus polígonos Delauney o Voronoi para obtener los polígonos combinados que está tratando de representar.
RyanDalton
+1: me ganó ... ¡qué lindo pensar en el búfer fusionado, y con la sugerencia de disolución de @ RyanDalton, esto debería responder a la pregunta original!
Simbamangu
21

Los polígonos Voronoi con una disolución te darán la primera parte. Comenzando con sus puntos, cada conjunto debe tener su propio identificador único ('col' en este ejemplo). Tres valores col con un conjunto de puntos: ingrese la descripción de la imagen aquí

Vector | Herramientas de geometría | Polígonos de Voronoi con un búfer de 20% le da el 'límite entre puntos' ingrese la descripción de la imagen aquí

El uso de 'col' como variable de disolución con Vector | Herramientas de geoprocesamiento | Disolver le proporciona polígonos combinados alrededor de cada conjunto de puntos: ingrese la descripción de la imagen aquí

Vector | Herramientas de geoprocesamiento | Los cascos convexos pueden proporcionarle un límite convexo alrededor de sus puntos, que puede utilizar para recortar los límites disueltos: ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Sin embargo, desde su primer ejemplo parece que necesitaría cortar con un casco cóncavo (¿más alguna distancia de búfer?); el casco cóncavo es una función que no he podido encontrar; PostGIS tiene la función .

Simbamangu
fuente
Impresionante, gracias, esta es una gran respuesta. Solo se lo estoy dando a RK debido a las instrucciones más detalladas, ¡pero realmente lo aprecio!
DFx
@DFx: no se preocupe, sería curioso ver con qué método termina finalmente (quizás edite su pregunta original con la solución completa en algún momento).
Simbamangu
@Simbamangu, puedo entender su respuesta, pero tengo una pequeña duda al respecto. Cuando trato de convertir los polígonos en función del color que está convirtiendo, pero solo como un polígono de un solo color, ¿cuál es el error con esto?
Arun
Arun: probablemente elegiste disolver solo en geometría, no en un campo específico. O simplemente no diseñó la capa resultante. (Sé que la pregunta tiene más de 2 años, pero tal vez otros también la tengan)
til_b