Страница 1 из 1
Определение площади водоема при различных уровнях уреза воды
Добавлено: 23 мар 2011, 23:35
Evgenia
Уважаемые коллеги,
Подскажите, пожалуйста, как/в каком пакете (желательно opensource) можно решить следующую задачу: определить площадь водной поверхности некоторого водоема при определенных уровнях уреза. Делать вручную довольно долго - этих положений уреза более 70.
P.S. Просто определить высотный уровень/площадь не подходит. Т.к. хитрость в том, что нужно учитывать только площадь самого водоема без сторонних участков с такой же высотой..
Кажется, уже все пересмотрела.. неужели, только программировать или вручную??
Re: Определение площади водоема при различных уровнях уреза
Добавлено: 24 мар 2011, 08:50
KolesovDmitry
Оговорюсь, что c DEM не работал, но свое мнение имею. Может кто другой поправит, если я не прав.
Думаю, ваша задача делается довольно легко в GRASS GIS при помощи модулей:
r.lake, а потом
r.report
Re: Определение площади водоема при различных уровнях уреза
Добавлено: 24 мар 2011, 12:50
Александр Мурый
Попробовал "залить озёра" в GRASS с пом.
r.lake -- результат в анимации на скриншоте (использован учебный грассовский
набор данных по Северной Каролине, растр
elev_ned_30m). Глубины, площади и объёмы озера (см. ниже картинки) вычисляются по ходу работы модуля r.lake, их можно перенаправлять в текстовый файл.
Уровень озера (здесь 70м, 90м, 110м, 130м) задаётся в стандартном цикле bash, отчёты о параметрах озёр перенаправляются в текст.файлы типа
lake_70m_report.txt:
Код: Выделить всё
GRASS 6.4.1svn (nc_spm_08):~ > for i in 70 90 110 130 ; do r.lake dem=elev_ned_30m wl=$i lake=lake_"$i"m seed=elev_ned_30m --o 2> lake_"$i"m_report.txt ; done

- lake_flood_animated_res.gif (1.07 МБ) 14216 просмотров
Код: Выделить всё
lake_70m
Lake depth from 0.000000 to 86.244606
Lake area 2742300.000000 square meters
Lake volume 11677033.122253 cubic meters
lake_90m
Lake depth from 0.000000 to 34.826397
Lake area 35444700.000000 square meters
Lake volume 303571050.189972 cubic meters
lake_110m
Lake depth from 0.000000 to 54.826397
Lake area 105106500.000000 square meters
Lake volume 1703265632.583618 cubic meters
lake_130m
Lake depth from 0.000000 to 74.826401
Lake area 160773300.000000 square meters
Lake volume 4364352962.017822 cubic meters
==================================================
Ещё можно попробовать в SAGA, там есть модули
"Lake Flood" и
"Lake Flood [interactive]". Но для начала там надо создать растры с уровнями воды (боюсь, что с 70-ю уровнями это будет накладно).
==================================================
Вопросы --> на GRASS-форум

Re: Определение площади водоема при различных уровнях уреза
Добавлено: 24 мар 2011, 13:03
gamm
Вопрос в тему - расчет площади и границ наводнения от реки.
Обсуждаемое затопление горизонтальным уровнем - это фактически просто рисование изолинии. Проблема с затоплением от реки в том, что река имеет уклон, и поверхность затопления - тоже. Эта задача решается обычно дифурой "мелкой воды", что достаточно проблематично. Не видел ли кто приближенное решение без дифур, в GRASS или еще где?
Re: Определение площади водоема при различных уровнях уреза
Добавлено: 24 мар 2011, 13:10
Mavka
Re: Определение площади водоема при различных уровнях уреза
Добавлено: 24 мар 2011, 13:15
gamm
он родимый - решает дифуру, лицензия жесткая, подробное описание алгоритма и/или комментированные исходники отсутствуют. Нужна автономная быстрая аппроксимация.
Re: Определение площади водоема при различных уровнях уреза
Добавлено: 24 мар 2011, 13:19
Александр Мурый
Случайно не
оно ?
r.inund.fluv - This command allows to obtain a fluvial potentially inundation map given a high-resolution DTM of the area surrounding the river and a water surface profile calculated through an 1-D hydrodinamic model.
Re: Определение площади водоема при различных уровнях уреза
Добавлено: 24 мар 2011, 13:28
Evgenia
to amuriy: Спасибо за наглядные картинки:) Вообще, это то, что нужно! Только непонятно, а что за глубину он показывает? Если я правильно поняла, заданные уровни уреза - положительные значения высот. Поэтому с увеличением уровня уреза глубины должны тоже увеличиваться, а у вас получилось при 70 м глубина 86 м, при 90м - глубина 34м, при 110 м - глубина 54 м, 130 м - 74 м... Как так?
Re: Определение площади водоема при различных уровнях уреза
Добавлено: 24 мар 2011, 13:29
gamm
amuriy писал(а):Случайно не
оно ?
r.inund.fluv - This command allows to obtain a fluvial potentially inundation map given a high-resolution DTM of the area surrounding the river and a water surface profile calculated through an 1-D hydrodinamic model.
похоже, что оно ... будем изучать. Вместо дифуры - достаточно простая аппроксимация, нужно попробовать. И в HEC-RAS есть метод, который мы уже пробовали - строить рельеф вдоль реки в виде поперечных сечения ("шпангоутов"), соединенных стрингерами, уровень в пределах "шпангоута" моделируется превышением от уровня воды, а последний - от потока. Потом уровни линейно интерполируются.
Re: Определение площади водоема при различных уровнях уреза
Добавлено: 24 мар 2011, 13:52
Catharsis
К слову, в ГИС Карта - имеются модули построения зон затопления. Если применительно к реке (наличие падения высоты) - то указываются точки начала и конца интересующего участка и уровень подъема воды в них. Также есть дополнительный модуль по гидрологии с расчетами и анимированием, но это не опенсорс решение(
Re: Определение площади водоема при различных уровнях уреза
Добавлено: 24 мар 2011, 15:30
Александр Мурый
Evgenia писал(а):to amuriy: Спасибо за наглядные картинки:) Вообще, это то, что нужно! Только непонятно, а что за глубину он показывает? Как так?
Будем разбираться.. С опцией
"-n" модуль
r.lake считает те же глубины, но как отрицательные. Прежде всего, это нужно для визуализации в NVIZ.
P.S. Проверил -- площади r.lake считает вроде бы корректно.