Możliwe są różne implementacje, ale większość procedur rozpocznie się od siatki, a nie od numeru NIP.
Najprostsza jest najprawdopodobniej procedura D8: obliczasz kierunek, w którym płynie woda. Istnieje 8 możliwości, 8 komórek, które są obok centralnej komórki siatki. Możesz najpierw obliczyć te kierunki, a nie sposób łączenia komórek, a na koniec narysować linie). Łatwa implementacja znajduje się w SAGA, prawie odczytuje jako pseudokod:
http://saga-gis.svn.sourceforge.net/viewvc/saga-gis/trunk/saga-gis/src/modules_terrain_analysis/terrain_analysis/ta_channels/D8_Flow_Analysis. cpp? rewizja = 911 i widok = znaczniki
Chociaż jest to bardzo łatwe, nie jest to zbyt realistyczne: nie będzie strumienia rozpoczynającego się w każdej komórce. Bardziej zaawansowane algorytmy zwykle najpierw zamykają wgłębienia (zwłaszcza jeśli masz szczegółowy DEM), a następnie oblicz obszar zlewu na komórkę, czyli liczbę komórek, które dostarczają wodę do określonej komórki, a następnie użyj progu, aby ustalić, czy strumień jest obecny.
SAGA GIS implementuje wiele z tych metod, można znaleźć ich opis w tym podręczniku http://sourceforge.net/settings/mirror_choices?projectname=saga-gis&filename=SAGA%20-%20Documentation/SAGA%20Documents/ SagaManual.pdf
Został napisany dla starszej wersji SAGA GIS, ale opis algorytmów jest nadal dość dokładny i skopiuję go tutaj w celu szybkiego odniesienia (jest to około strona 120), ponieważ jest to oprogramowanie typu open source, możesz sprawdzić szczegóły implementacji, patrząc na kod.
- Deterministic 8 (D8): Klasyczny. Przepływ przechodzi ze środka komórki do środka jednej (i tylko jednej) otaczających komórek. Kierunki przepływu są zatem ograniczone do wielokrotności 45o, co jest głównym powodem większości wad tej metody. (O'Callaghan i Mark 1984).
- Rho8: To samo co powyżej, ale ze składnikiem stochastycznym, który powinien to poprawić. Kierunek przepływu określa losowy argument, który zależy od różnicy między aspektem a kierunkiem dwóch sąsiednich komórek sąsiadujących. Niezbyt przydatne. . . (Fairfield i Leymarie 1991).
- Deterministyczna nieskończoność (D∞): przepływ przechodzi z jednej komórki do dwóch sąsiadujących ze sobą komórek, rozważając w ten sposób przepływ dwuwymiarowy i pokonując wady metody D8. (Tarboton 1998).
- Braunschweiger Digitales Reliefmodell: kolejny algorytm wielokrotnego przepływu. Przepływ jest dzielony między otaczającą komórkę, której orientacja jest najbliższa aspektowi centralnej komórki i jej dwóch sąsiednich komórek. (Bauer, Bork i Rohdenburg 1985).
- FD8 (występujący w SAGA po prostu jako Multiple Flow Direction): dwuwymiarowy algorytm routingu oparty na D8. (Quinn i in. 1991).
- Kinematyczny algorytm routingu (KRA). Jednowymiarowy algorytm śledzenia przepływu. Przepływ zachowuje się jak kula tocząca się po DEM, bez ograniczania swojej pozycji do środka komórek. (Lea 1992).
- Cyfrowa sieć modeli wysokościowych (DEMON): najbardziej złożona. Dwuwymiarowy algorytm śledzenia przepływu. Raczej czasochłonne. (Costa-Cabral i Burgess 1994).
Ostatnio dodano jeszcze więcej modeli:
- Trójkątny wielokrotny kierunek przepływu - Seibert, J. / McGlynn, B. (2007): „Nowy trójkątny algorytm wielokrotnego kierunku przepływu do obliczania obszarów wzniesień z siatkowych cyfrowych modeli wysokościowych”, Water Resources Research, tom. 43, W04501. Może to być dla Ciebie interesujące, ponieważ może również działać bezpośrednio na NIP
- Metoda Mass-Flux (MFM) do obliczania akumulacji przepływu w oparciu o DEM, jak zaproponowali Gruber i Peckham (2008). Gruber, S., Peckham, S. (2008): Parametry powierzchni ziemi i obiekty w hydrologii. W: Hengl, T. and Reuter, HI [Red.]: Geomorfometria: koncepcje, oprogramowanie, aplikacje. Rozwój w dziedzinie gleboznawstwa, Elsevier, Bd.33, S.293-308.
- Algorytm boczny: http://watershed.montana.edu/Hydrology/Home_files/2010WR009296.pdf, a jego kod znajduje się również na jego stronie internetowej: http://thomasgrabs.com/side-alameterm/
Jeśli masz dostęp do Spatial Analyst w ArcGIS, masz szereg narzędzi do obliczania ścieżek strumienia. Pełny obieg jest w odniesieniu ESRI, ale typowy obieg obejmuje:
Oczywiście istnieje wiele prac naukowych opisujących różne metody, ale ta metoda jest łatwa dla wszystkich, którzy mają dostęp do Spatial Analyst.
źródło
W cyfrowych modelach elewacji opartych na siatce wiarygodne określenie linii nachylenia zapewnia metoda D8-LTD:
Orlandini, S. i G. Moretti (2009), Określenie ścieżek przepływu powierzchniowego na podstawie danych wysokościowych z siatki, Water Resour. Res., 45 (3), W03417, doi: 10.1029 / 2008WR007099.
Orlandini, S., G. Moretti, M. Franchini, B. Aldighieri i B. Testa (2003), Metody oparte na ścieżce do określania niedyspersyjnych kierunków drenażu w cyfrowych modelach elewacji, Water Resour. Res., 39 (6), 1144, doi: 10.1029 / 2002WR001639.
W cyfrowych modelach elewacji opartych na konturach linie nachylenia można określać automatycznie, rozwiązując złożone struktury topograficzne przy użyciu (złożonego) modelu opisanego w następującym artykule:
Moretti, G. i S. Orlandini (2008), Automatyczne wyznaczanie zlewni na podstawie danych wysokościowych konturu przy użyciu technik budowy szkieletu, Water Resour. Res., 44 (5), W05403, doi: 10.1029 / 2007WR006309.
źródło
Wydaje się, że napisanie narzędzia od zera będzie dość trudne. ESRI działa od dziesięcioleci i nadal nie mają racji.
AutoCAD (Civil 3D) może to zrobić za pomocą numeru TIN. Nie jestem świadomy tego, co dzieje się za kulisami, ale w ArcGIS identyfikacja sieci strumieniowych odbywa się za pomocą analizy rastrowej.
W skrócie, wejściowy raster DEM (gdzie każda komórka ma wartości X, Y, Z) jest używany jako dane wejściowe, a algorytm oblicza cytowanie „skumulowanego przepływu (jako skumulowanej masy) wszystkich komórek przepływających do każdej komórki opadającej w rastrze wejściowym. „ Produkt jest rastrem, w którym każda komórka ma wartość akumulacji przepływu. Aby zidentyfikować sieć strumieniową, należy odizolować komórki wysokiego przepływu, które są obszarami „skoncentrowanego przepływu”. Istnieją inne czynniki, takie jak opcjonalny współczynnik masy, hydrologicznie poprawny wejściowy DEM itp.
Omówię tylko kilka pomysłów: w odniesieniu do „mechaniki” takiego algorytmu przypuszczam, że może być całkiem prosty; rekurencyjnie i dla każdej komórki określ lokalizację i wysokość wszystkich otaczających komórek, a na podstawie jej wysokości zsumuj liczbę napływających do niej komórek. Jeśli chodzi o TIN, prawdopodobnie prawdopodobnie możesz zbudować linię z dwóch punktów na każdym trójkącie (najwyższym i najniższym wierzchołku), a następnie połączyć je wszystkie w sieć.
źródło