Определение площади водоема при различных уровнях уреза воды

Кроме QGIS
Ответить
Evgenia
Активный участник
Сообщения: 182
Зарегистрирован: 14 дек 2008, 16:09
Репутация: 24
Откуда: Москва

Определение площади водоема при различных уровнях уреза воды

Сообщение Evgenia » 23 мар 2011, 23:35

Уважаемые коллеги,
Подскажите, пожалуйста, как/в каком пакете (желательно opensource) можно решить следующую задачу: определить площадь водной поверхности некоторого водоема при определенных уровнях уреза. Делать вручную довольно долго - этих положений уреза более 70.
P.S. Просто определить высотный уровень/площадь не подходит. Т.к. хитрость в том, что нужно учитывать только площадь самого водоема без сторонних участков с такой же высотой..
Кажется, уже все пересмотрела.. неужели, только программировать или вручную??

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Определение площади водоема при различных уровнях уреза

Сообщение KolesovDmitry » 24 мар 2011, 08:50

Оговорюсь, что c DEM не работал, но свое мнение имею. Может кто другой поправит, если я не прав.

Думаю, ваша задача делается довольно легко в GRASS GIS при помощи модулей:
r.lake, а потом r.report

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

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
lake_flood_animated_res.gif (1.07 МБ) 13010 просмотров

Код: Выделить всё

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-форум :wink:
Редактор материалов, модератор форума

gamm
Гуру
Сообщения: 4057
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Определение площади водоема при различных уровнях уреза

Сообщение gamm » 24 мар 2011, 13:03

Вопрос в тему - расчет площади и границ наводнения от реки.

Обсуждаемое затопление горизонтальным уровнем - это фактически просто рисование изолинии. Проблема с затоплением от реки в том, что река имеет уклон, и поверхность затопления - тоже. Эта задача решается обычно дифурой "мелкой воды", что достаточно проблематично. Не видел ли кто приближенное решение без дифур, в GRASS или еще где?

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Определение площади водоема при различных уровнях уреза

Сообщение Mavka » 24 мар 2011, 13:10

лангольеры под окном жрали время ом-ном-ном

gamm
Гуру
Сообщения: 4057
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Определение площади водоема при различных уровнях уреза

Сообщение gamm » 24 мар 2011, 13:15

Mavka писал(а):HEC-RAS (?)
он родимый - решает дифуру, лицензия жесткая, подробное описание алгоритма и/или комментированные исходники отсутствуют. Нужна автономная быстрая аппроксимация.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

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.
Редактор материалов, модератор форума

Evgenia
Активный участник
Сообщения: 182
Зарегистрирован: 14 дек 2008, 16:09
Репутация: 24
Откуда: Москва

Re: Определение площади водоема при различных уровнях уреза

Сообщение Evgenia » 24 мар 2011, 13:28

to amuriy: Спасибо за наглядные картинки:) Вообще, это то, что нужно! Только непонятно, а что за глубину он показывает? Если я правильно поняла, заданные уровни уреза - положительные значения высот. Поэтому с увеличением уровня уреза глубины должны тоже увеличиваться, а у вас получилось при 70 м глубина 86 м, при 90м - глубина 34м, при 110 м - глубина 54 м, 130 м - 74 м... Как так?

gamm
Гуру
Сообщения: 4057
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Определение площади водоема при различных уровнях уреза

Сообщение gamm » 24 мар 2011, 13:29

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 есть метод, который мы уже пробовали - строить рельеф вдоль реки в виде поперечных сечения ("шпангоутов"), соединенных стрингерами, уровень в пределах "шпангоута" моделируется превышением от уровня воды, а последний - от потока. Потом уровни линейно интерполируются.

Аватара пользователя
Catharsis
Активный участник
Сообщения: 190
Зарегистрирован: 18 дек 2008, 14:45
Репутация: 22
Откуда: Воронеж
Контактная информация:

Re: Определение площади водоема при различных уровнях уреза

Сообщение Catharsis » 24 мар 2011, 13:52

К слову, в ГИС Карта - имеются модули построения зон затопления. Если применительно к реке (наличие падения высоты) - то указываются точки начала и конца интересующего участка и уровень подъема воды в них. Также есть дополнительный модуль по гидрологии с расчетами и анимированием, но это не опенсорс решение(
cogito ergo sum

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Определение площади водоема при различных уровнях уреза

Сообщение Александр Мурый » 24 мар 2011, 15:30

Evgenia писал(а):to amuriy: Спасибо за наглядные картинки:) Вообще, это то, что нужно! Только непонятно, а что за глубину он показывает? Как так?
Будем разбираться.. С опцией "-n" модуль r.lake считает те же глубины, но как отрицательные. Прежде всего, это нужно для визуализации в NVIZ.
P.S. Проверил -- площади r.lake считает вроде бы корректно.
Редактор материалов, модератор форума

Ответить

Вернуться в «Свободные, бесплатные, открытые ГИС»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей