Conversione di set di punti in confini poligonali?


27

Sto cercando di convertire gruppi di punti nei rispettivi confini poligonali. Penso che questo sia qualcosa di simile a un diagramma di Voronoi o Convex Hull, ma non del tutto. Sono sicuro che ci sia un termine tecnico per questo, ma sono un principiante di GIS.

Probabilmente è meglio illustrato con la seguente immagine:

inserisci qui la descrizione dell'immagine

Quindi, dati 4 insiemi di punti (ogni insieme nel suo colore), quali sono i quattro poligoni che circondano ogni rispettivo insieme di punti in modo tale che la spaziatura tra i poligoni massimizzi i margini e tutti i poligoni si incontrino?

Ecco un esempio semplificato con 3 punti:

  • A, 43.656943, -79,393928, blu
  • B, 43,66,663 mila, -79,402682, verde
  • C, 43.656447, -79,408004, verde

Dovrai visualizzare il seguente grafico perché abbia senso: inserisci qui la descrizione dell'immagine

In sostanza, ogni punto ha un colore e si espande un buffer di una certa distanza da esso per iniziare.

La parte difficile è quando c'è una collisione con altri punti (i loro confini) e dove calcolare quel confine. Il risultato è un insieme di poligoni (uno per ciascun colore / set).


1
Puoi pubblicare alcuni dati di esempio? In questo modo potremmo testare le soluzioni :)
— RK,

Ho aggiunto un esempio sopra. Spero che aiuti.
— DFx,

possibile duplicato di poligoni
— blah238,

1
Va bene, penso che quello che devo fare, è prendere tutti i punti di tutti i colori ed eseguire Voronoi su di essi. Successivamente, unisci i poligoni risultanti che hanno gli stessi colori. Alla fine dovrei avere il mio set di poligoni (uno per ogni colore). Non sono sicuro di come farlo esattamente in QGIS ...
— DFx,

2
Cosa intendi esattamente con "spaziatura massimizza i margini"? La risposta a ciò determina la soluzione.
— whuber

Risposte:


24

Dal tuo livello punto

inserisci qui la descrizione dell'immagine

puoi creare plogyon Voronoi

inserisci qui la descrizione dell'immagine

Il che porterebbe a questo

inserisci qui la descrizione dell'immagine

Quindi creare una maschera dal processo di triangolazione Delauney

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

E quindi ritaglia il livello di poligoni Voronoi.

inserisci qui la descrizione dell'immagine

Sarebbe abbastanza buono?

Puoi anche provare a combinare la tua maschera di triangolazione Delauney con un buffer del tuo livello punto

inserisci qui la descrizione dell'immagine

e usalo per tagliare invece i tuoi poligoni Voronoi

inserisci qui la descrizione dell'immagine


5
Puoi anche eseguire un DISSOLVE (dal menu Vector-> Geoprocessing) sui tuoi poligoni Delauney o Voronoi per darti i poligoni uniti che stai cercando di rappresentare.
— Ryan Dalton,

+1 - battimi ... bel pensiero sul buffer unito, e con il suggerimento dissoluto di @ RyanDalton questo dovrebbe rispondere alla domanda originale!
— Simbamangu,

21

I poligoni Voronoi con dissolvenza ti daranno la prima parte. A partire dai tuoi punti, ogni set dovrebbe avere il suo identificativo univoco ("col" in questo esempio). Tre valori col con una serie di punti: inserisci qui la descrizione dell'immagine

Vector | Strumenti geometria | I poligoni Voronoi con un buffer del 20% offrono il "confine tra i punti": inserisci qui la descrizione dell'immagine

Usando 'col' come variabile di dissolvenza con Vector | Strumenti di geoprocessing | Dissolve ti dà poligoni uniti attorno ad ogni set di punti: inserisci qui la descrizione dell'immagine

Vector | Strumenti di geoprocessing | Gli scafi convessi possono darti un confine convesso attorno ai tuoi punti, che puoi usare per tagliare i confini dissolti: inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Tuttavia, dal tuo primo esempio sembra che dovresti tagliare con uno scafo concavo (più una certa distanza di buffer?); lo scafo concavo è una funzione che non sono riuscito a trovare; PostGIS ha la funzione .


Fantastico - grazie questa è un'ottima risposta. Lo sto solo dando a RK per le istruzioni più approfondite, ma lo apprezzo davvero!
— DFx,

@DFx - non preoccuparti, sarebbe curioso di vedere con quale metodo finirai finalmente (magari modifica la tua domanda originale con la soluzione completa qualche volta).
— Simbamangu,

@Simbamangu posso capire la tua risposta ma ho un piccolo dubbio in questo. Quando provo a convertire i poligoni in base al colore che sta convertendo, ma solo come un poligono a singolo colore. Qual è l'errore?
— Arun,

Arun - probabilmente hai scelto di dissolversi solo sulla geometria, non su un campo specifico. O semplicemente non hai modellato il livello risultante. (So ​​che la domanda ha più di 2 anni, ma forse anche altri lo hanno)
— til_b
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.