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
- capovolto i collegamenti per formare un grafico direzionale, ovvero ogni nodo alla fine scarica nello stesso sink
- 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:
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:
- 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:
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) :
Utilizzare gli ingressi come punti di scorrimento e direzione del flusso per definire i bacini. L'immagine mostra 115 bacini derivati:
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.