Poligoni voronoi che si esauriscono all'infinito?


18

Ho lavorato all'implementazione della sceneggiatura voronoi.py (traduzione di Bill Simon del codice di Steve Fortune). Secondo il collegamento QGIS è sostanzialmente lo stesso codice con cui sto lavorando, ma il modo di generare i poligoni che possono estendersi all'infinito differisce tra i due. Nel caso di QGIS, presumo che un rettangolo di delimitazione sia generato in una certa misura oltre le estensioni del punto del sito. Nel mio caso, generi punti falsi del sito come un cerchio che circonda i punti di interesse del sito. I punti del cerchio hanno un raggio doppio del diametro dell'estensione dei punti del sito. I risultati tra i due sono mostrati nella figura allegata, l'implementazione di QGIS a sinistra e la mia implementazione a destra. Esempi di Voronoi.

Come si può vedere, l'implementazione di QGIS produce strani poligoni che non hanno punti del sito (vedere il sito 473 come esempio in entrambe le implementazioni). Questo è evidentemente sbagliato, ma non sono sicuro che la mia implementazione sia corretta. Dal momento che non ho accesso a una licenza ArcInfo per ArcMap, non posso confrontare ciò che ArcMap genera in modo nativo e non riesco a vedere un modo per collegare il file di forma del punto del sito per qualcuno da testare. Quindi, se qualcuno ha qualche commento sul mio uso di un "cerchio infinito" per aiutare a forzare i poligoni del bordo rispetto a un "rettangolo infinito", lo apprezzerei. Meglio ancora, se qualcuno è interessato a testare l'output su un'altra piattaforma GIS, posso fornire lo shapefile dei punti del sito che ho usato.


Sembra che parte del problema sia che i poligoni oltre i punti del sito si sovrappongano, quindi quando simbolizzati senza riempimento, appaiono come poligoni distinti. La figura seguente mostra cosa succede quando si seleziona il poligono attorno ai siti 473 e 415. Quindi rimangono le domande originali, ma c'è una nuova ruga.


È un bug (o "incompletezza"), i risultati corretti in QGIS se viene utilizzato un buffer dello 0%. Ciò che deve ancora essere risolto è se un modello denso di "punti infinito" circolari produrrà lo stesso risultato dei "bordi infiniti" rettangolari.

inserisci qui la descrizione dell'immagine


Mi piacerebbe provare i tuoi dati punto. I miei test non mostrano alcun comportamento del genere.
underdark

Ho un file zip pronto per l'uso, contattami via e-mail all'indirizzo Dan_Patterson@carleton.ca e posso inoltrarlo a te. Penso di aver aggiunto un buffer del 10% durante l'esecuzione del voronoi in QGIS.

Forse potresti riformulare qual è la tua domanda attuale (dopo l'aggiornamento 2).
underdark

Ottimo lavoro. Spero che condividerai il tuo codice con la community in qualche modo.
Michalis Avraam,

vedi il link sotto nella risposta, ho dovuto aggiornare da quando ESRI ha ucciso i thread originali

Risposte:


10

Sono stato in grado di confermare che la mia implementazione è almeno paragonabile a ArcGIS (ma richiede una licenza ArcInfo). L'implementazione di QGIS è errata se si utilizza una distanza del buffer. Per coloro che utilizzano ArcGIS con una licenza ArcView, il set di strumenti per Voronoi e / o Delaunay può essere trovato come Strumenti di triangolazione .


C'erano diversi bug nel codice QGIS Voronoi. Molte correzioni sono state applicate in QGIS 3.2.2. Sarebbe interessante sapere se ciò ha aiutato.
Håvard Tveite,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.