Dato un terreno, come disegnare il percorso del flusso del flusso?


23

Supponendo che io abbia un terreno, come al solito il terreno ha creste, insenature e tutte le caratteristiche che puoi trovare su una mappa della vita reale. L'acqua scorre dalla cima della montagna verso l'area inferiore, il percorso che scorre è chiamato flusso del flusso.

Il terreno è dato in termini di rete triangolare irregolare (TIN), che ogni punto p (x, y) ha un valore az. Come utilizzare queste informazioni per costruire il percorso del flusso di flusso? Qual è la fisica dietro questo?

Da quello che so, il metodo di discesa più ripido può essere utilizzato per risolvere questo problema . Sto pensando di scrivere il mio algoritmo di flusso di flusso, quindi sono interessato allo sfondo teorico piuttosto che all'uso degli strumenti esistenti.

Risposte:


26

Esistono diverse implementazioni possibili, ma la maggior parte delle procedure inizierà da una griglia e non da una TIN.

La più semplice è probabilmente la procedura D8: si calcola la direzione in cui scorre l'acqua. Ci sono 8 possibilità, le 8 celle che si trovano accanto a una cella della griglia centrale. Puoi prima calcolare queste direzioni, poi come sono collegate le celle, e infine puoi disegnare le linee). Una facile implementazione si trova in SAGA, quasi legge come pseudocodice: http://saga-gis.svn.sourceforge.net/viewvc/saga-gis/trunk/saga-gis/src/modules_terrain_analysis/terrain_analysis/ta_channels/D8_Flow_Analysis. cpp? revision = 911 & view = markup

Sebbene molto semplice, questo non è molto realistico: non avrai un flusso che inizia in ogni cella. Gli algoritmi più avanzati di solito chiudono prima i pit (soprattutto se si dispone di un DEM dettagliato), quindi calcolano l'area di captazione per cella, ovvero il numero di celle che contribuiscono all'acqua a una particolare cella e quindi utilizzano una soglia per determinare se un flusso è presente.

SAGA GIS implementa molti di questi metodi del bacino idrografico, puoi trovarne una descrizione in questo manuale http://sourceforge.net/settings/mirror_choices?projectname=saga-gis&filename=SAGA%20-%20Documentation/SAGA%20Documents/ SagaManual.pdf

È stato scritto per una versione precedente di SAGA GIS, ma la descrizione degli algoritmi è ancora piuttosto accurata, e lo copierò qui per un rapido riferimento (questo è intorno a pagina 120), poiché è open source, puoi controllare il dettagli di implementazione guardando il codice.

  • Deterministic 8 (D8): il classico. Il flusso va dal centro di una cella al centro di una (e solo una) delle celle circostanti. Le direzioni del flusso sono pertanto limitate a multipli di 45o, che è la ragione principale della maggior parte degli svantaggi del metodo. (O'Callaghan e Mark 1984).
  • Rho8: Come sopra ma con un componente stocastico che dovrebbe migliorarlo. La direzione del flusso è determinata da un argomento casuale che dipende dalla differenza tra aspetto e direzione delle due celle adiacenti adiacenti. Non molto utile . . (Fairfield e Leymarie 1991).
  • Infinito deterministico (D∞): il flusso va da una cella a due celle contigue contigue, considerando quindi un flusso bidimensionale e superando gli inconvenienti del metodo D8. (Tarboton 1998).
  • Braunschweiger Digitales Reliefmodell: un altro algoritmo di direzione del flusso multiplo. Il flusso viene suddiviso tra la cella circostante il cui orientamento è più vicino all'aspetto della cella centrale e alle sue due celle adiacenti. (Bauer, Bork e Rohdenburg 1985).
  • FD8 (trovato in SAGA semplicemente come Direzione di flusso multiplo): un algoritmo di instradamento del flusso bidimensionale derivato da D8. (Quinn et al 1991).
  • Kinematic Routing Algorithm (KRA). Un algoritmo di tracciamento del flusso unidimensionale. Il flusso si comporta come una palla che rotola giù dal DEM, senza limitare la sua posizione al centro delle celle. (Lea 1992).
  • Digital Elevation Model Network (DEMON): la più complessa. Un algoritmo di tracciamento del flusso bidimensionale. Piuttosto tempo. (Costa-Cabral & Burgess 1994).

Ancora più modelli sono stati aggiunti di recente:

  • Direzione triangolare del flusso multiplo - Seibert, J. / McGlynn, B. (2007): "Un nuovo algoritmo triangolare per la direzione del flusso multiplo per il calcolo di aree di risalita da modelli di elevazione digitale su griglia", Water Resources Research, Vol. 43, W04501. Questo potrebbe essere interessante per te perché potrebbe anche funzionare direttamente su una TIN
  • Il metodo del flusso di massa (MFM) per il calcolo basato su DEM dell'accumulo di flusso, come proposto da Gruber e Peckham (2008). Gruber, S., Peckham, S. (2008): Parametri di superficie terrestre e oggetti in idrologia. In: Hengl, T. e Reuter, HI [Eds.]: Geomorfometria: concetti, software, applicazioni. Sviluppi nella scienza del suolo, Elsevier, Bd.33, S.293-308.
  • L'algoritmo laterale: http://watershed.montana.edu/Hydrology/Home_files/2010WR009296.pdf e il suo codice è anche sul suo sito Web: http://thomasgrabs.com/side-algorithm/

5

Un approccio originale è quello proposto in questo documento :

Fisher, P., J. Wood e T. Cheng (2004). Dov'è Helvellyn? Sfocatura della morfometria del paesaggio multiscala. Transazioni dell'Institute of British Geographers 29, 106-128.

Propone un metodo basato sulla rappresentazione fuzzy e multi scala. Non sono sicuro, ma questo metodo potrebbe essere quello implementato in LandSerf .

inserisci qui la descrizione dell'immagine


Il link di cui sopra non è più accessibile
Graviton,

@Graviton: il collegamento è stato corretto!
luglio

4

Se hai accesso a Analista spaziale in ArcGIS, hai una serie di strumenti per calcolare i percorsi di flusso. Un flusso di lavoro completo è fornito nel riferimento ESRI, ma il flusso di lavoro tipico include:

  1. Converti il ​​tuo TIN in un raster di elevazione.
  2. Calcola la direzione del flusso.
  3. Riempi piccoli lavandini.
  4. Calcola l'accumulo di flusso
  5. Utilizzando una soglia, scegli solo le celle con una determinata quantità di flusso.
  6. Utilizzare lo strumento Stream to Feature per esportare i flussi in un file di forma vettoriale.

Naturalmente, ci sono numerosi documenti accademici che descrivono metodi diversi, ma questo metodo è facile per tutti coloro che hanno accesso all'analista spaziale.


Dovrei scrivere il codice da zero, quindi non posso usare questo pacchetto software.
Graviton,

Bene, questa sembra essere la procedura usata dalla maggior parte dei pacchetti GIS. TerraFlow è un'opzione open source, ma non l'ho mai usata. Cosa stai pensando di utilizzare per gestire la TIN?
Patrick,

1
Sto pensando di scrivere il mio algoritmo di flusso di flusso, motivo per cui i pacchetti software di cui parli non sono applicabili a me
Graviton,

2
Va bene. Quando hai detto "Sono meno chiaro su come eseguirlo", ho pensato che volessi consigli pratici su come farlo. Presumibilmente il flusso di lavoro utilizzato da questi pacchetti software potrebbe fornire una guida alla struttura generale del tuo algoritmo. Da lì ti suggerisco di consultare la letteratura accademica sui dettagli. Ad esempio, Tarboton, 1997 è stato menzionato più volte nella mia ricerca di algoritmi di direzione del flusso.
Patrick,

3

Nei modelli di elevazione digitale basati su griglia, il metodo D8-LTD consente di determinare in modo affidabile le linee di pendenza:

Orlandini, S. e G. Moretti (2009), Determinazione dei percorsi di flusso superficiale da dati di elevazione su griglia, Water Resour. Ris., 45 (3), W03417, doi: 10.1029 / 2008WR007099.

Orlandini, S., G. Moretti, M. Franchini, B. Aldighieri e B. Testa (2003), Metodi basati sul percorso per la determinazione delle direzioni di drenaggio non dispersivo nei modelli digitali di elevazione basati su griglia, Water Resour. Ris., 39 (6), 1144, doi: 10.1029 / 2002WR001639.

Nei modelli di elevazione digitale basati su contorni, le linee di pendenza possono essere determinate automaticamente risolvendo strutture topografiche complesse utilizzando il modello (complesso) descritto nel seguente documento:

Moretti, G. e S. Orlandini (2008), Delineazione automatica dei bacini di drenaggio dai dati di elevazione del profilo mediante tecniche di costruzione dello scheletro, Water Resour. Ris., 44 (5), W05403, doi: 10.1029 / 2007WR006309.


1

Sembra che questo sarà piuttosto il lavoro di scrivere uno strumento da zero. ESRI ci provava da decenni e non hanno ancora ragione.

AutoCAD (Civil 3D) può farlo usando una TIN. Non sono a conoscenza di ciò che accade dietro le quinte, ma in ArcGIS l'identificazione delle reti di streaming viene gestita tramite analisi raster.

In breve, un raster DEM di input (in cui ogni cella ha valori X, Y, Z) viene utilizzato come input e un algoritmo calcola citando il "flusso accumulato (come il peso accumulato) di tutte le celle che scorrono in ciascuna cella a valle del raster di input. " Il prodotto è un raster in cui ogni cella ha un valore di accumulo del flusso. Per identificare la rete di flusso, quindi isolare le celle di flusso elevato che sono le aree di "flusso concentrato". Vi sono altre considerazioni come fattore di peso opzionale, DEM di input corretto per l'idrologia, ecc.

Darò solo alcune idee: in termini di "meccanica" di tale algoritmo, suppongo che potrebbe essere abbastanza semplice; in modo ricorsivo e per ogni cellula, determinare la posizione e l'elevazione di tutte le celle circostanti e in base alla sua elevazione sommare il numero di celle che fluiscono in essa. Per quanto riguarda TIN potresti probabilmente costruire una linea da due punti su ciascun triangolo (vertice più alto e più basso), quindi unire tutti questi in una rete.


1
Le complicazioni sorgono nel trattare con lavandini e aree piane. A titolo di esempio estremo, considera un DEM che rappresenta un lago di montagna, in modo che la maggior parte del DEM sia perfettamente piatta. In che modo un'implementazione ricorsiva instraderebbe tutto l'afflusso nel lago verso i suoi punti di deflusso?
whuber
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.