Страница 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 МБ) 14351 просмотр
 
Код: Выделить всё
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 считает вроде бы корректно.