Des polygones de Voronoi qui s'épuisent à l'infini?


18

J'ai travaillé sur l'implémentation du script voronoi.py (traduction de Bill Simon du code de Steve Fortune). Selon le lien QGIS, il s'agit essentiellement du même code avec lequel je travaille, mais la façon de générer les polygones pouvant s'étendre à l'infini diffère entre les deux. Dans le cas QGIS, je suppose qu'un rectangle de délimitation est généré dans une certaine mesure au-delà des limites du point de site. Dans mon cas, je génère de faux points de site comme un cercle entourant les points d'intérêt du site. Les points du cercle ont un rayon deux fois le diamètre de l'étendue des points du site. Les résultats entre les deux sont présentés dans la figure ci-jointe, l'implémentation de QGIS à gauche et mon implémentation à droite. Exemples de Voronoi.

Comme on peut le voir, l'implémentation QGIS produit des polygones étranges qui n'ont pas de points de site (voir site 473 comme exemple dans les deux implémentations). C'est évidemment faux, mais je ne suis pas sûr non plus que ma mise en œuvre soit correcte. Étant donné que je n'ai pas accès à une licence ArcInfo pour ArcMap, je ne peux pas comparer ce que ArcMap génère nativement et je ne vois pas de moyen d'attacher le fichier de formes de point de site pour que quelqu'un puisse le tester. Donc, si quelqu'un a un commentaire sur mon utilisation d'un "cercle infini" pour aider à forcer les polygones de bord par rapport à un "rectangle infini", je l'apprécierais. Mieux encore, si quelqu'un souhaite tester la sortie sur une autre plate-forme SIG, je peux fournir le fichier de formes des points du site que j'ai utilisés.


Il semble qu'une partie du problème est que les polygones au-delà des points du site se chevauchent, donc lorsqu'ils sont symbolisés sans remplissage, ils apparaissent alors comme des polygones distincts. La figure suivante montre ce qui se passe lorsque le polygone autour du site 473 et 415 est sélectionné. Donc, les questions d'origine restent, mais il y a une nouvelle ride.


C'est un bogue (ou une "incomplétude"), les résultats corrects dans QGIS si un tampon de 0% est utilisé. Ce qui doit encore être résolu est de savoir si un motif dense de "points infinis" circulaires donnera le même résultat que des "bords infinis" rectangulaires.

entrez la description de l'image ici


J'adorerais essayer vos données ponctuelles. Mes tests ne montrent pas un tel comportement.
underdark

J'ai un fichier zip prêt à l'emploi, contactez-moi par courriel à Dan_Patterson@carleton.ca et je peux vous le faire parvenir. Je pense que j'ai ajouté un tampon de 10% lors de l'exécution du voronoi dans QGIS.

Vous pourriez peut-être reformuler votre question actuelle (après la mise à jour 2).
underdark

Bon travail. J'espère que vous partagerez votre code avec la communauté d'une manière ou d'une autre.
Michalis Avraam

voir le lien ci-dessous dans la réponse, j'ai dû mettre à jour depuis qu'ESRI a tué les threads d'origine

Réponses:


10

J'ai pu confirmer que mon implémentation se compare au moins à ArcGIS (mais nécessite une licence ArcInfo). L'implémentation QGIS est erronée si une distance tampon est utilisée. Pour ceux qui utilisent ArcGIS avec une licence ArcView, le jeu d'outils pour Voronoi et / ou Delaunay peut être trouvé comme les outils de triangulation .


Il y avait plusieurs bogues dans le code QGIS Voronoi. De nombreux correctifs ont été appliqués dans QGIS 3.2.2. Serait intéressant d'entendre si cela a aidé.
Håvard Tveite
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.