ГоловнаСтаттіГідрологія

Утворення Річкової Мережі: Як Вода Викарбовує Фрактальні Басейни

Алгоритм D8 для маршрутизації потоку, накопичення потоку, закон ерозії за потужністю потоку та пояснення того, чому кожна річкова мережа на Землі в кінцевому підсумку виглядає фрактальною.

mysimulator teamОновлено — червень 2026≈ 9 хв читання▶ Відкрити симуляцію

Восьми направлений, одно правило

Цифровая модель высот представляет собой сетку значений высот. Чтобы преобразовать ее в сеть рек, сначала необходимо правило того, как вода стекает с каждой ячейки, и правило, которое использует большинство людей - D8: каждая ячейка дренируется в ближайшего из своих восьми соседей, который имеет наибольший уклон вниз. Никакой гидродинамики, никакой моторики, только направление наивысшего падения, вычисленное один раз для каждой ячейки.

Уклон (сосед) = ((высота[ячейки] - высота[соседа]) / расстояние) Расстояние = 1 для 4 ортогональных соседей Расстояние = sqrt(2) для 4 диагональных соседей потокDir[ячейка] = argmax по 8 соседям наклона(сосед) D8 грубоват в масштабе одной ячейки — настоящая вода распространяется по склону, а не вниз одним каналом — но усредненное по всему бассейну оно воспроизводит ветвящуюся, древовидную структуру реальной гидрологии весьма хорошо. Ямы (локальные минимумы без соседа с уклоном) должны быть заполнены или прорыты в первую очередь, иначе поток просто останавливается и образуется водоем.

slope(neighbour) = (elev[cell] - elev[neighbour]) / distance
distance = 1        for the 4 orthogonal neighbours
distance = sqrt(2)  for the 4 diagonal neighbours

flowDir[cell] = argmax over the 8 neighbours of slope(neighbour)
жива демонстрація · пов'язана симуляція● LIVE

Збір потоків: підрахунок приточних площ

Після визначення напрямку потоку для кожної комірки, збір потоків підраховує, для кожної комірки, скільки комірок, що знаходяться вище за неї, зрештою дренується через неї. Обробляйте комірки від найвищої до найнижчої висоти (топологічний порядок вздовж графу напрямку потоку) та додавайте накопичену кількість потоків до того, що вона дренує:

accum[cell] = 1 // сама for cell in cells sorted by elevation, highest first: downstream = flowDir[cell] accum[downstream] += accum[cell] // accum[cell] тепер містить приточну (дренажну) площу, у комірках High accumulation values trace exactly the shape of a river network — thresholding accum at some value (say 100 cells) and keeping only cells above it is the standard way to extract a channel network from a raw elevation grid. This is the same computation QGIS, ArcHydro and TauDEM run on real satellite terrain.

accum[cell] = 1                      // itself
for cell in cells sorted by elevation, highest first:
    downstream = flowDir[cell]
    accum[downstream] += accum[cell]

// accum[cell] is now the contributing (drainage) area, in cell counts

Потік накопичення дає геометрію; закон потоку визначає динаміку. Він стверджує, що швидкість, з якою канал розтоплює камінь, пропорційна степені площі стока (як проміжний показник скидання) помноженій на степі місцевого ухилу:

dz/dt = U - K * A^m * S^n

U = швидкість підняття порід K = зносостійкість (тип порід, клімат)

A = поперечний сток S = місцевий нахил каналу

m ≈ 0.5, n ≈ 1 (типові скориговані показники)

Це одна формула пояснює, чому струмки надводних водойм круті та повільно руйнуються, а велика річка з величедним водозбором може обробляти скелі на похилій місцевості: площа замінює воду та осад, які виконують розрізання. Переставлений для каналу в рівновазі з підняттям, він також передбачає вигнуту догори форму довгого профілю, яку мають усі справжні річки.

dz/dt = U - K * A^m * S^n

U = rock uplift rate         K = erodibility (rock type, climate)
A = upstream drainage area   S = local channel slope
m ≈ 0.5,  n ≈ 1              (typical calibrated exponents)

Horton's закони та порядок Strahler

Robert Horton і пізніше Arthur Strahler помітили, що саме розгалуження є статистично регулярним. Кожному потоку першого порядку присвоюється номер 1; коли два потоки порядку n зустрічаються, результат становить порядок n+1 (два потоки різного порядку не змінюються). Закони Hortona стверджують, що кількість, середній розмір і середній водозбір потоків змінюються приблизно пропорційно з одного порядку до іншого — коефіцієнт розгалуження близько 3–5 зберігається для річок на кожному континенті, що є однією з причин, чому мережі річок виглядають фрактальними при будь-якому збільшенні масштабу.

Часті запитання

Що таке алгоритм потоку D8?

Це правило маршрутизації води на сітці: кожна клітинка відправляє весь свій потік у того з своїх 8 сусідів, який має найбільш крутий схил вниз. Воно просте та дешеве, і в поєднанні з накопиченням потоку відтворює форму розгалуження реальних річкових мереж, незважаючи на те, що ігнорує розповсюдження по схилах.

Чому річкові мережі мають вигляд фракталів?

Тому що статистичні показники їх розгалуження є незмінними в масштабі — закони Хортона показують, що відношення кількості струмків, їх довжини та площі між послідовними порядками Штахера приблизно залишається постійним незалежно від того, з якого порядку ви починаєте, тому невеликий мережевий гілкування та ціла континентальна впадина мають структурну схожість.

Що прогнозує закон сили потоку струмка?

Що швидкість ерозії масштабується з площею дренажу (проміжним показником витрати) у степені приблизно 0,5 та з нахилом у степені приблизно 1. Це пояснює, чому великі річки прорізають скелі на пологих схилах, а невеликі струмки надходження потребують крутих градієнтів, і чому профілі річок мають вигляд дуги в рівновазі з підняттям.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте River Network Formation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію River Network Formation

Що ви знайшли?

Додати кроки відтворення (опційно)