Come faccio a dividere spazialmente molti punti?


9

Ho dati sulla posizione dei clienti, con oltre 130 milioni di record, sparsi in tutto il paese. Questa è una tabella spaziale in PostGIS

Voglio ora suddividere l'intero paese in "aree di servizio", in modo tale che ogni area di servizio abbia:

  • Atleast 30 Clienti
  • È al massimo 1000 km quadrati.

Ho studiato lo strumento aggregato di ArcGIS, ma non soddisfa i miei criteri, poiché:

  • Non prende in considerazione il conteggio minimo
  • Ho solo Qgis & Grass a mia disposizione.

Quale strumento / processo posso usare per raggiungere questo obiettivo?

Risposte:


4

Ho eseguito un piccolo esperimento:

  • generato 900 punti casuali
  • li ha collegati usando l'albero di spanning minimo
  • raccolto affondare da qualche parte nel mezzo

inserisci qui la descrizione dell'immagine

  • capovolto i collegamenti per formare un grafico direzionale, ovvero ogni nodo alla fine scarica nello stesso sink

inserisci qui la descrizione dell'immagine

  • ha eseguito lo script che sto usando per aggregare un bacino più piccolo in quelli più grandi, cercando di ottenere una "dimensione" media di 30.

RISULTATO:

inserisci qui la descrizione dell'immagine

Fammi sapere se questo è interessante, posso scavare lo script (è già pubblicato da qualche parte su questo sito) o spiegare il flusso di lavoro in modo più dettagliato. Ho usato ArcGIS.

-------------------------------------

** AGGIORNAMENTO settembre 2017

È molto simile a quanto sopra, ma usando l'approccio raster, gli strumenti di distanza e idrologia di ArcGIS. La parte ingannevole è la creazione dell'albero di spanning minimo e la ricerca di punti di raccolta in formato raster.

Questi sono i passaggi che ho seguito:

  • Triangola i nodi (punta al cluster), estrae i bordi della rete triangolare, converte i nodi in PESO raster:

inserisci qui la descrizione dell'immagine

  • Campo di calcolo nella tabella dei bordi: utilizzo (ShapeLength ^ 3 / 1e6). Converti in raster, riempi i vuoti con un valore molto elevato per creare raster COST . Questo incoraggia il flusso tra punti vicini l'uno all'altro. Si spera che i percorsi di flusso sembrino simili al minimo spanning tree (MST) invece di essere vicino a linee rette che si dirigono verso il lavandino.
  • Scegliere qualsiasi nodo (OUTLET / SINK) e creare raster Cost Back Link, utilizzando la superficie COST e SINK come sorgente. Converti raster back link in raster Flow Direction decente utilizzando Int(Power(2,"backlink"-1)). Accumulare il flusso usando la direzione del flusso e il peso raster. Come si può vedere il trucco con l'assegnazione dei costi produce davvero qualcosa di simile a MST:

inserisci qui la descrizione dell'immagine

Ho deciso di raggruppare i punti per 50. Tenendo presente la struttura frattale della rete ho impostato il limite punti INLET leggermente più bassi all'inizio di "Flussi di flusso elevati", ovvero Con ("FlowAccum"> 45,1). Inlet definite come celle in cui

Esiste un flusso elevato e statistiche focali = 2 e la cella non è un SINK (nessun valore di dati nella direzione del flusso) :

inserisci qui la descrizione dell'immagine

Utilizzare gli ingressi come punti di scorrimento e direzione del flusso per definire i bacini. L'immagine mostra 115 bacini derivati:

inserisci qui la descrizione dell'immagine

Le loro statistiche: media = 50,33, min = 46 e max = 74.

Per ottenere una seconda serie di bacini è sufficiente cancellare il PESO raster in bacini già definiti, calcolare l'aspirazione del flusso ecc.

Il metodo funzionerà per milioni di punti perché è basato su raster, la triangolazione di quel numero di punti non sarà nemmeno un problema.


1
Non so se questo sarà utilizzabile per me, ma sembra interessante da morire ... Per favore, pubblica la sceneggiatura se puoi.
Devdatta Tengshe

Pubblicherò lo script più tardi oggi o lunedì, mi sono preso un giorno libero dal lavoro. Nel frattempo dai un'occhiata a gis.stackexchange.com/questions/179559/… dove ho descritto l'idea alla base
FelixIP

L'ho provato su 100.000 punti durante la notte. Ultimo passo ha portato vicino a 6 ore e rende no go approccio, non in ArcGIS almeno. Per non parlare del fatto che ho dovuto codificare MST da solo, perché lo strumento I di Patterson era bloccato.
FelixIP,

Sei riuscito a risolverlo? Sembra che abbia fatto usando l'approccio raster, posso pubblicare il flusso di lavoro se questo è interessante /
FelixIP

Per favore fallo. L'ho risolto con un metodo Bruteforce, che era abbastanza ok per il mio scopo; Ma sono sicuro che altri potrebbero beneficiare del tuo nuovo approccio.
Devdatta Tengshe,
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.