Существуют различные возможные реализации, но большинство процедур будет начинаться с сетки, а не с TIN.
Самым простым является, скорее всего, процедура D8: вы рассчитываете направление, в котором течет вода. Есть 8 возможностей, 8 ячеек, которые находятся рядом с центральной ячейкой сетки. Сначала вы можете рассчитать эти направления, чем соединить ячейки, и, наконец, вы можете нарисовать линии). Простая реализация найдена в SAGA, она почти читается как псевдокод:
http://saga-gis.svn.sourceforge.net/viewvc/saga-gis/trunk/saga-gis/src/modules_terrain_analysis/terrain_analysis/ta_channels/D8_Flow_Analysis. каст? пересмотр = 911 & просмотр = разметки
Хотя это очень просто, это не очень реалистично: у вас не будет потока, начинающегося в каждой ячейке. Более продвинутые алгоритмы обычно сначала закрывают ямы (особенно если у вас есть подробная матрица высот), затем вычисляют площадь водосбора на ячейку, то есть количество ячеек, которые подают воду в конкретную ячейку, а затем используют порог, чтобы определить, является ли поток настоящее.
SAGA GIS реализует множество этих методов области охвата, описание которых вы можете найти в этом руководстве http://sourceforge.net/settings/mirror_choices?projectname=saga-gis&filename=SAGA%20-%20Documentation/SAGA%20Documents/ SagaManual.pdf
Он был написан для более старой версии SAGA GIS, но описание алгоритмов все еще довольно точное, и я скопирую его здесь для быстрого ознакомления (это примерно на странице 120), так как оно с открытым исходным кодом, вы можете проверить детали реализации, глядя на код.
- Детерминист 8 (D8): классический. Поток идет от центра клетки к центру одной (и только одной) окружающей клетки. Поэтому направления потока ограничены кратными 45 °, что является основной причиной большинства недостатков метода. (О'Каллаган и Марк 1984).
- Rho8: То же, что и выше, но со стохастическим компонентом, который должен его улучшить. Направление потока определяется случайным аргументом, который зависит от разницы между аспектом и направлением двух соседних соседних ячеек. Не очень полезно. , , (Fairfield & Leymarie 1991).
- Детерминированная бесконечность (D∞): поток идет от одной ячейки к двум смежным окружающим ячейкам, таким образом рассматривая двумерный поток и преодолевая недостатки метода D8. (Tarboton 1998).
- Braunschweiger Digitales Reliefmodell: еще один алгоритм множественного направления потока. Поток разделен между окружающей ячейкой, чья ориентация является ближайшей к аспекту центральной ячейки, и двумя соседними ячейками. (Bauer, Bork & Rohdenburg 1985).
- FD8 (встречается в SAGA просто как Multiple Flow Direction): алгоритм маршрутизации двумерного потока, полученный из D8. (Quinn et al 1991).
- Алгоритм кинематической маршрутизации (KRA). Одномерный алгоритм трассировки потока. Поток ведет себя как шар, катящийся по ЦМР, не ограничивая свое положение центром ячеек. (Лиа 1992).
- Сеть цифровых моделей рельефа (DEMON): самая сложная. Двумерный алгоритм трассировки потока. Довольно много времени. (Costa-Cabral & Burgess 1994).
Еще больше моделей были добавлены в последнее время:
- Треугольное направление множественного потока - Seibert, J. / McGlynn, B. (2007): «Новый алгоритм треугольного множественного направления потока для вычисления площадей с наклоном из цифровых моделей рельефа с сеткой», Water Resources Research, Vol. 43, W04501. Это может быть интересно для вас, потому что это может также работать непосредственно на TIN
- Метод Mass-Flux (MFM) для расчета накопления потока на основе DEM, предложенный Gruber and Peckham (2008). Грубер С., Пекхэм С. (2008): Параметры земной поверхности и объекты в гидрологии. В: Hengl, T. и Reuter, HI [ред.]: Геоморфометрия: концепции, программное обеспечение, приложения. Развитие почвоведения, Elsevier, Bd.33, S.293-308.
- Дополнительный алгоритм: http://watershed.montana.edu/Hydrology/Home_files/2010WR009296.pdf, и его код также есть на его веб-сайте: http://thomasgrabs.com/side-algorithm/