Conversion d'ensembles de points en limites de polygone?

27

J'essaie de convertir des ensembles de points en leurs limites de polygone respectives. Je pense que c'est quelque chose comme un diagramme de Voronoi ou une coque convexe, mais pas tout à fait. Je suis sûr qu'il y a un terme technique pour cela, mais je suis un débutant en SIG.

Il est probablement mieux illustré par l'image suivante:

entrez la description de l'image ici

Donc, étant donné 4 ensembles de points (chaque ensemble dans sa propre couleur), quels sont les quatre polygones entourant chaque ensemble de points respectifs de sorte que l'espacement entre les polygones maximise les marges et que tous les polygones se rencontrent?

Voici un exemple simplifié avec 3 points:

  • A, 43.656943, -79.393928, bleu
  • B, 43.66663, -79.402682, vert
  • C, 43.656447, -79.408004, vert

Vous devrez afficher le graphique suivant pour que cela ait du sens: entrez la description de l'image ici

Essentiellement, chaque point a une couleur et vous développez un tampon d'une certaine distance pour commencer.

La partie difficile est quand il y a une collision avec d'autres points (leurs frontières) et où calculer cette frontière. Le résultat est un ensemble de polygones (un pour chaque couleur / ensemble).

DFx
la source
1
Pouvez-vous publier des exemples de données? De cette façon, nous pourrions tester des solutions :)
RK
J'ai ajouté un exemple ci-dessus. J'espère que ça aide.
DFx
doublon possible des polygones
blah238
1
D'accord, je pense que ce que je dois faire, c'est de prendre tous les points de toutes les couleurs et de jouer Voronoi dessus. Après cela, fusionnez les polygones résultants qui ont les mêmes couleurs. À la fin, je devrais avoir mon ensemble de polygones (un pour chaque couleur). Je ne sais pas comment faire exactement cela dans QGIS ...
DFx
2
Qu'entendez-vous précisément par «l'espacement maximise les marges»? La réponse à cela détermine la solution.
whuber

Réponses:

24

De votre couche de points

entrez la description de l'image ici

vous pouvez créer des plogyons Voronoi

entrez la description de l'image ici

Ce qui entraînerait cette

entrez la description de l'image ici

Créez ensuite un masque à partir du processus de triangulation de Delauney

entrez la description de l'image ici

entrez la description de l'image ici

Ensuite, coupez la couche de polygones Voronoi avec elle.

entrez la description de l'image ici

Serait-ce suffisant?

Vous pouvez également essayer de combiner votre masque de triangulation Delauney avec un tampon de votre couche de points

entrez la description de l'image ici

et utilisez-le pour couper vos polygones Voronoi à la place

entrez la description de l'image ici

RK
la source
5
Vous pouvez également simplement exécuter un DISSOLVE (à partir du menu Vector-> Geotraitement) sur vos polygones Delauney ou Voronoi pour vous donner les polygones fusionnés que vous essayez de représenter.
RyanDalton
+1 - battez-moi ... belle réflexion sur le tampon fusionné, et avec la suggestion de dissolution de @ RyanDalton, cela devrait répondre à la question d'origine!
Simbamangu
21

Les polygones de Voronoi avec un fondu vous donneront la première partie. En commençant par vos points, chaque ensemble doit avoir son propre identifiant unique («col» dans cet exemple). Trois valeurs de col avec un ensemble de points: entrez la description de l'image ici

Vector | Outils de géométrie | Les polygones de Voronoi avec un tampon de 20% vous donnent la "frontière entre les points": entrez la description de l'image ici

L'utilisation de 'col' comme variable de dissolution avec Vector | Outils de géotraitement | Dissoudre vous donne des polygones fusionnés autour de chaque ensemble de points: entrez la description de l'image ici

Vecteur | Outils de géotraitement | Les coques convexes peuvent vous donner une frontière convexe autour de vos points, que vous pouvez utiliser pour couper les frontières dissoutes: entrez la description de l'image ici entrez la description de l'image ici

Cependant, d'après votre premier exemple, vous semblez avoir besoin de couper avec une coque concave (plus une certaine distance tampon?); la coque concave est une fonction que je n'ai pas pu trouver; PostGIS a la fonction .

Simbamangu
la source
Génial - merci, c'est une excellente réponse. Je le donne juste à RK à cause des instructions plus détaillées, mais je l'apprécie vraiment!
DFx
@DFx - pas de soucis, serait curieux de voir avec quelle méthode vous vous retrouvez finalement (peut-être modifier votre question d'origine avec la solution complète un jour).
Simbamangu
@Simbamangu, je peux comprendre votre réponse, mais j'ai un petit doute à ce sujet.Lorsque j'essaie de convertir les polygones en fonction de la couleur, il convertit, mais uniquement en tant que polygone à une seule couleur.Quelle est l'erreur avec cela?
Arun
Arun - vous avez probablement choisi de ne dissoudre que sur la géométrie, pas sur un domaine spécifique. Ou vous n'avez tout simplement pas stylisé le calque résultant. (Je sais que la question a plus de 2 ans, mais peut-être que d'autres l'ont aussi)
til_b