Определение площади водоема при различных уровнях уреза воды
-
- Активный участник
- Сообщения: 182
- Зарегистрирован: 14 дек 2008, 16:09
- Репутация: 24
- Откуда: Москва
Определение площади водоема при различных уровнях уреза воды
Уважаемые коллеги,
Подскажите, пожалуйста, как/в каком пакете (желательно opensource) можно решить следующую задачу: определить площадь водной поверхности некоторого водоема при определенных уровнях уреза. Делать вручную довольно долго - этих положений уреза более 70.
P.S. Просто определить высотный уровень/площадь не подходит. Т.к. хитрость в том, что нужно учитывать только площадь самого водоема без сторонних участков с такой же высотой..
Кажется, уже все пересмотрела.. неужели, только программировать или вручную??
Подскажите, пожалуйста, как/в каком пакете (желательно opensource) можно решить следующую задачу: определить площадь водной поверхности некоторого водоема при определенных уровнях уреза. Делать вручную довольно долго - этих положений уреза более 70.
P.S. Просто определить высотный уровень/площадь не подходит. Т.к. хитрость в том, что нужно учитывать только площадь самого водоема без сторонних участков с такой же высотой..
Кажется, уже все пересмотрела.. неужели, только программировать или вручную??
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Определение площади водоема при различных уровнях уреза
Попробовал "залить озёра" в GRASS с пом. r.lake -- результат в анимации на скриншоте (использован учебный грассовский набор данных по Северной Каролине, растр elev_ned_30m). Глубины, площади и объёмы озера (см. ниже картинки) вычисляются по ходу работы модуля r.lake, их можно перенаправлять в текстовый файл.
Уровень озера (здесь 70м, 90м, 110м, 130м) задаётся в стандартном цикле bash, отчёты о параметрах озёр перенаправляются в текст.файлы типа lake_70m_report.txt:
==================================================
Ещё можно попробовать в SAGA, там есть модули "Lake Flood" и "Lake Flood [interactive]". Но для начала там надо создать растры с уровнями воды (боюсь, что с 70-ю уровнями это будет накладно).
==================================================
Вопросы --> на GRASS-форум
Уровень озера (здесь 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_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-форум
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 4057
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Определение площади водоема при различных уровнях уреза
Вопрос в тему - расчет площади и границ наводнения от реки.
Обсуждаемое затопление горизонтальным уровнем - это фактически просто рисование изолинии. Проблема с затоплением от реки в том, что река имеет уклон, и поверхность затопления - тоже. Эта задача решается обычно дифурой "мелкой воды", что достаточно проблематично. Не видел ли кто приближенное решение без дифур, в GRASS или еще где?
Обсуждаемое затопление горизонтальным уровнем - это фактически просто рисование изолинии. Проблема с затоплением от реки в том, что река имеет уклон, и поверхность затопления - тоже. Эта задача решается обычно дифурой "мелкой воды", что достаточно проблематично. Не видел ли кто приближенное решение без дифур, в GRASS или еще где?
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Определение площади водоема при различных уровнях уреза
HEC-RAS (?)
лангольеры под окном жрали время ом-ном-ном
-
- Гуру
- Сообщения: 4057
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Определение площади водоема при различных уровнях уреза
он родимый - решает дифуру, лицензия жесткая, подробное описание алгоритма и/или комментированные исходники отсутствуют. Нужна автономная быстрая аппроксимация.Mavka писал(а):HEC-RAS (?)
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Определение площади водоема при различных уровнях уреза
Случайно не оно ?
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.
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 182
- Зарегистрирован: 14 дек 2008, 16:09
- Репутация: 24
- Откуда: Москва
Re: Определение площади водоема при различных уровнях уреза
to amuriy: Спасибо за наглядные картинки:) Вообще, это то, что нужно! Только непонятно, а что за глубину он показывает? Если я правильно поняла, заданные уровни уреза - положительные значения высот. Поэтому с увеличением уровня уреза глубины должны тоже увеличиваться, а у вас получилось при 70 м глубина 86 м, при 90м - глубина 34м, при 110 м - глубина 54 м, 130 м - 74 м... Как так?
-
- Гуру
- Сообщения: 4057
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Определение площади водоема при различных уровнях уреза
похоже, что оно ... будем изучать. Вместо дифуры - достаточно простая аппроксимация, нужно попробовать. И в HEC-RAS есть метод, который мы уже пробовали - строить рельеф вдоль реки в виде поперечных сечения ("шпангоутов"), соединенных стрингерами, уровень в пределах "шпангоута" моделируется превышением от уровня воды, а последний - от потока. Потом уровни линейно интерполируются.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.
- Catharsis
- Активный участник
- Сообщения: 190
- Зарегистрирован: 18 дек 2008, 14:45
- Репутация: 22
- Откуда: Воронеж
- Контактная информация:
Re: Определение площади водоема при различных уровнях уреза
К слову, в ГИС Карта - имеются модули построения зон затопления. Если применительно к реке (наличие падения высоты) - то указываются точки начала и конца интересующего участка и уровень подъема воды в них. Также есть дополнительный модуль по гидрологии с расчетами и анимированием, но это не опенсорс решение(
cogito ergo sum
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Определение площади водоема при различных уровнях уреза
Будем разбираться.. С опцией "-n" модуль r.lake считает те же глубины, но как отрицательные. Прежде всего, это нужно для визуализации в NVIZ.Evgenia писал(а):to amuriy: Спасибо за наглядные картинки:) Вообще, это то, что нужно! Только непонятно, а что за глубину он показывает? Как так?
P.S. Проверил -- площади r.lake считает вроде бы корректно.
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей