Come calcolare le aree di influenza in QGIS?


10

Sto cercando di creare uno strato poligonale che mostra poligoni che corrispondono a un negozio più vicino.

Per un set di 30 punti vendita, il risultato dovrebbe essere un livello poligonale con 30 funzioni, una per ciascun negozio. Ogni funzione rappresenterà un'area in cui il negozio corrispondente è il più vicino. Ad esempio, un indirizzo all'interno del poligono 12 indica che il negozio 12 è il più vicino.

Ho il livello delle posizioni del mio negozio e il livello strade OSM con colonna velocità massima. Il livello poligonale risultante dovrebbe essere basato sul livello strade OSM e non semplicemente sulle aree lineari.

L'idea è che, dato un insieme fisso di negozi e strade, il negozio più vicino dovrebbe rimanere costante in un dato punto su una mappa. Quindi, spero che lo strato poligonale risultante sia senza gap.

Questo video del software Maptitude fornisce un perfetto esempio di ciò che sto cercando di realizzare (avanzamento rapido all'1: 55 del video). In alternativa, vedi l'immagine sotto per un esempio:

Aree Maptitude più vicine all'ospedale

Per ogni ospedale, esiste un'area corrispondente in cui qualsiasi cosa all'interno di quell'area è più vicina all'ospedale situato all'interno di quell'area.

Come posso replicarlo usando QGIS?

Risposte:


8

l'algoritmo grass v.net.alloc può produrre le sottoreti: puoi chiamarlo dalla casella degli strumenti di elaborazione (testato in QGIS 2.16)

Avrai bisogno di un livello punti (per le strutture) e un livello linee con costi (tempo / lunghezza). Creerà un nuovo livello di linea con un campo chiamato cataggiunto, che sarà l'id della struttura più vicina.

Ecco un esempio basato sulla distanza a piedi dal pub più vicino. Ogni segmento di linea viene colorato catutilizzando colori casuali: -

v.net.alloc esempio

Si noti che a volte le reti stradali di due pub adiacenti hanno colori molto simili; se li etichetti, vedrai che ha effettivamente funzionato.

Per quanto riguarda ottenere poligoni senza spazi vuoti come mostrato sopra, sono sconcertato. Se si "estraggono nodi" dai risultati e si applica "Convex Hull" (raggruppamento per gatto), ci saranno lacune e sovrapposizioni.

MODIFICARE

puoi davvero ottenere il risultato desiderato. Come hai suggerito nel tuo commento, puoi fare quanto segue ..

  • eseguire Estrai nodi sull'output di v.net.alloc
  • eseguire poligoni Voronoi sul livello dei nodi di estrazione
  • corsa Buffer a distanza fissa su quello per assicurarsi che i poligoni si sovrappongano (ad es. buffer di 1 metro)
  • run Dissolve sul livello bufferizzato, usando il campo 'cat'

Ecco il risultato ... non è perfetto, a volte vedrai parti della rete stradale vagare nei poligoni vicini.

inserisci qui la descrizione dell'immagine

C'è una 'trappola' nella nuova GUI 2.16 per dissolversi. Ho impostato il campo, ma sembrava dissolvere tutto. Devi ricordare di deselezionare la casella di controllo "dissolve tutto", altrimenti l'impostazione del campo viene ignorata.


Questo è utile e posso certamente usare il risultato nella mia applicazione. Lascerò temporaneamente questo aperto per vedere se c'è un modo per finire con i poligoni. È possibile che l'utilizzo dello strumento Voroni Polygons possa in qualche modo aiutare?
ge0m3try,

un Voronoi sulle tue strutture fornirà solo un'approssimazione, basata sulla distanza euclidea "in linea d'aria" , quindi ignora efficacemente la tua rete stradale.
Steven Kay,

Sono curioso di sapere se dovessi estrarre nodi dal risultato v.net.alloc, voroni quello, e quindi dissolvere i poligoni di voto in base all'identificatore univoco della struttura. La dimensione del set di dati delle strade è molto grande, quindi non sarò in grado di testarlo rapidamente, ma forse nel frattempo ci saranno alcuni pensieri sul perché questo potrebbe non funzionare.
ge0m3try,

in realtà, il tuo sospetto è giusto - l'ho appena provato.
Steven Kay,

2
NOTA IMPORTANTE: questo flusso di lavoro presenta alcuni fastidi che ho capito come superare. Lo strumento buffer a distanza fissa non è necessario. Lo Dissolvestrumento SAGA sembra essere molto più veloce dell'equivalente QGIS. Inoltre, sembra anche più veloce dividere il Voronoilayer per catcampo e quindi dissolveciascuna area separatamente. Mergeloro di nuovo insieme. Quindi, esegui GRASS v.cleane scegli lo strumento rmduplper rimuovere i nodi duplicati. Questo è importante altrimenti altri processi come il clipping, l'unione spaziale, non funzioneranno correttamente sul voronoi lauyer dissolto unito.
ge0m3try,
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.