Страница 1 из 2
					
				построить интерполированный с рек рельеф
				Добавлено: 05 май 2012, 16:43
				 AnnaAnna
				Здравствуйте!помогите пожалуйста.
Есть сетка гидросети с отметками высот,и сетка рельефа всей территории.нужно построить интерполированный с рек рельеф(получить базис эррозии),как это можно сделать?
			 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 05 май 2012, 17:20
				 rhot
				Для интерполяции значений векторного слоя используйте модули v.kernel, v.surf.idw, v.surf.rst, и v.vol.rst. 
А вообще, для оценки водоразделов 
тут интересно почитать. Ну и 
источник собственно.
 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 05 май 2012, 21:24
				 Александр Мурый
				Что есть "сетка гидросети"? Это растр выделенных в GRASS водотоков? 
Если я не ошибаюсь, вот 
тут первая заметка -- как раз то, что вам надо ("isobase" = "базис эрозии", так?) 
Если что-то будет не понятно с командами -- приложите ваши данные, будем разбираться вместе 

 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 05 май 2012, 23:03
				 AnnaAnna
				спасибо 
 
 
да,сетка гидросети-это раст выделенных в грасс водотоков с отметками высот. 
с командами не очень понятно. я векторизовала эту карту, потом с помощью v.surf.rst интерполировала. это правильно?
 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 05 май 2012, 23:35
				 Александр Мурый
				AnnaAnna писал(а):спасибо 
 
 
с командами не очень понятно. я векторизовала эту карту, потом с помощью v.surf.rst интерполировала. это правильно?
 
Смотря что вам надо получить. Я вот, хоть и геоморфолог, не занимался выделением местных базисов эрозии. 
Покажите полученный(е) растр(ы), что ли..
А делали пошагово как описано по ссылке, что я дал?
 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 06 май 2012, 10:47
				 AnnaAnna
				ну мне не очень понятно, что там написано вначале...я так поняла это я уже сделала и поэтому начала делать с предпоследнего пункта (r.to.vect).
			 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 06 май 2012, 15:45
				 Александр Мурый
				AnnaAnna писал(а):ну мне не очень понятно, что там написано вначале...я так поняла это я уже сделала и поэтому начала делать с предпоследнего пункта (r.to.vect).
Ваших точек с высотами (otm_vis_vect ) очень много для карты базисов -- больше 2000 (!)  Точки, как я понял, просто построены по линиям рек. Соотв-но, растр "interpol" частично повторяет рельеф, но не даёт поверхность базиса эрозии. 
В приведённом мной примере сначала для векторной сети водотоков находится их порядок по Штралеру (самое большое число = самый крупный водоток).
Я поэкспериментировал с модулем 
v.strahler, который разбивает векторную сеть по схеме Штралера, затем сделал всё как в примере. 
Результат (область 
VVV_isobase, набор 
isobase) ниже.
			
		
		
				
			 VVV_isobase.zip VVV_isobase.zip
- область VVV_isobase, набор isobase
- (1.06 МБ) 541 скачивание
 
Поверхности базисов эрозии, полученные по водотокам 1-го порядка -- растр "dem_isobase_1", 2-3-го -- растр "dem_isobase_2_3".
 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 06 май 2012, 17:32
				 AnnaAnna
				спасибо большое:)попытаюсь повторить))
			 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 06 май 2012, 17:50
				 Александр Мурый
				На здоровье 

 Мне было интересно попробовать.
Обобщу: для построения поверхностей базисов эрозии для водотоков разных порядков нужны след. исходные данные:
-  цифровая модель рельефа
-  векторная речная сеть (лучше, если выделенная по ЦМР с помощью r.watershed и векторизованная).
-  эта же речная сеть с порядками по Штралеру в атрибутах (вопрос, как и чем лучше делать..?)
Далее хочу расписать сам 
процесс, если получится..
 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 04 сен 2012, 02:13
				 syroezhka
				amuriy,  не могли бы вы подсказать, как правильно связать вектор и таблицу, полученную в результате работы v.strahler?
Я конвертировала txt в csv, потом загружала последний через db.in.ogr, затем устанавливала связь между вектором и таблицей через v.db.connect. Но при этом чего-то ерунда получается. 
Я скачала набор, который вы делали для AnnaAnna и там, я так понимаю, лежит скрипт для этого дела. А как лучше сделать эту связь через графический интерфейс?
			 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 04 сен 2012, 02:35
				 syroezhka
				Сначала, я решила избежать этой задачи, воспользовавшись r.stream.order, но поскольку разбивка речной сети происходит на растре, то остаются  многие артефакты.  Например,  появляются ложные порядки, из-за очень сближенных потоков. 
			
		
				
			 
- 1.png (12.85 КБ) 14712 просмотров
 
Поэтому, вернулась к  v.strahler , потому что перед ним приходится делать r.thin. Тем самым неплохо чистится будущая дренажная сеть. Конечно, проблемы еще остаются. Например, "колечки" (синяя рамочка на картинке).
 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 04 сен 2012, 13:37
				 Александр Мурый
				syroezhka писал(а):как правильно связать вектор и таблицу, полученную в результате работы v.strahler?
У меня ещё получилось так:
-  чистим текстовый файл, получившийся на выходе от <v.strahler> (streams_strahler.txt в моём архиве)
Код: Выделить всё == Result of Strahler Order ==
 Category:   Line:   Basin:    Order:
        1       1       1       0
        2       2       2       0
        3       3       3       2
        4       4       3       1
 
 , т.е. убираем один из двух одинаковых столбцов (Category и Line), удаляем заголовки, пробелы заменяются на запятые --> получаем нормальный CSV (streams_strahler.csv)
-  Создаём файл streams_strahler.csvt -- файл описания типов полей:
-  Конвертируем CSV в DBF с переименованием полей:
Код: Выделить всё ogr2ogr -f "ESRI Shapefile" -sql "SELECT field_1 AS 'cat', field_2 AS 'basin', field_3 AS 'str_order' FROM streams_strahler" streams_strahler.dbf streams_strahler.csv
 
-  Импортируем DBF в GRASS:
Код: Выделить всё db.in.ogr dsn=streams_strahler.dbf out=streams_strahler_db
 
-  Соединяем таблицу streams_strahler_db с векторными линиями, полученными в результате работы <v.strahler>:
Код: Выделить всё v.db.connect -o streams_strahler_cats table=streams_strahler_db
 
 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 04 сен 2012, 23:37
				 syroezhka
				Спасибо, большое! Пытаюсь повторить.
Сейчас получился затык с 
amuriy писал(а):Конвертируем CSV в DBF с переименованием полей:
Набираю в командной строке граса по аналогии.  И вот вопрос: нужно указывать путь к csv файлу или его нужно помещать в некую дефолтную папку? Или на win эту процедуру не получится сделать?
 
			 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 04 сен 2012, 23:50
				 Александр Мурый
				syroezhka писал(а):
Набираю в командной строке граса по аналогии.  И вот вопрос: нужно указывать путь к csv файлу или его нужно помещать в некую дефолтную папку? Или на win эту процедуру не получится сделать?
ogr2ogr (с некоторыми оговорками) должен работать на Win точно так же, как и в любой другой системе. Необязательно запускать команду именно из командной строки GRASS (это не влияет на её выполнение). 
Если CSV лежит в текущей папке, то команда запускается просто с названием файла, если нет, то нужно указывать полный путь к файлу типа D:\Files\myfile.csv.
 
			
					
				Re: построить интерполированный с рек рельеф
				Добавлено: 05 сен 2012, 18:56
				 syroezhka
				Теперь конвертирование CSV в DBF  получилось. Указала пути. Но пока, что без переименования полей, потому что при включенном -sql вылетает ошибка. 
ERROR 1: SQL Expression Parsing Error: syntax error
Скажите, в выражении запроса после  оператора FROM идет ссылка на streams_strahler.  Это на csv или на вектор, который получился в результате работы модуля v.strahler?
И еще в последнем пункте фигурирует  
streams_strahler_cats. Это копия streams_strahler, полученого в результате работы модуля?