построить интерполированный с рек рельеф
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 16 апр 2012, 23:53
- Репутация: 0
построить интерполированный с рек рельеф
Здравствуйте!помогите пожалуйста.
Есть сетка гидросети с отметками высот,и сетка рельефа всей территории.нужно построить интерполированный с рек рельеф(получить базис эррозии),как это можно сделать?
Есть сетка гидросети с отметками высот,и сетка рельефа всей территории.нужно построить интерполированный с рек рельеф(получить базис эррозии),как это можно сделать?
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: построить интерполированный с рек рельеф
Для интерполяции значений векторного слоя используйте модули v.kernel, v.surf.idw, v.surf.rst, и v.vol.rst.
А вообще, для оценки водоразделов тут интересно почитать. Ну и источник собственно.
А вообще, для оценки водоразделов тут интересно почитать. Ну и источник собственно.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: построить интерполированный с рек рельеф
Что есть "сетка гидросети"? Это растр выделенных в GRASS водотоков?
Если я не ошибаюсь, вот тут первая заметка -- как раз то, что вам надо ("isobase" = "базис эрозии", так?)
Если что-то будет не понятно с командами -- приложите ваши данные, будем разбираться вместе
Если я не ошибаюсь, вот тут первая заметка -- как раз то, что вам надо ("isobase" = "базис эрозии", так?)
Если что-то будет не понятно с командами -- приложите ваши данные, будем разбираться вместе
Редактор материалов, модератор форума
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 16 апр 2012, 23:53
- Репутация: 0
Re: построить интерполированный с рек рельеф
спасибо
да,сетка гидросети-это раст выделенных в грасс водотоков с отметками высот.
с командами не очень понятно. я векторизовала эту карту, потом с помощью v.surf.rst интерполировала. это правильно?
да,сетка гидросети-это раст выделенных в грасс водотоков с отметками высот.
с командами не очень понятно. я векторизовала эту карту, потом с помощью v.surf.rst интерполировала. это правильно?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: построить интерполированный с рек рельеф
Смотря что вам надо получить. Я вот, хоть и геоморфолог, не занимался выделением местных базисов эрозии.AnnaAnna писал(а):спасибо
с командами не очень понятно. я векторизовала эту карту, потом с помощью v.surf.rst интерполировала. это правильно?
Покажите полученный(е) растр(ы), что ли..
А делали пошагово как описано по ссылке, что я дал?
Редактор материалов, модератор форума
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 16 апр 2012, 23:53
- Репутация: 0
Re: построить интерполированный с рек рельеф
ну мне не очень понятно, что там написано вначале...я так поняла это я уже сделала и поэтому начала делать с предпоследнего пункта (r.to.vect).
- Вложения
-
- VVV.rar
- mesha_otmetki_vis- растр выделенных водотоков.
interpol- это то,что получилось после v.surf.rst. - (421.19 КБ) 425 скачиваний
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: построить интерполированный с рек рельеф
Ваших точек с высотами (otm_vis_vect ) очень много для карты базисов -- больше 2000 (!) Точки, как я понял, просто построены по линиям рек. Соотв-но, растр "interpol" частично повторяет рельеф, но не даёт поверхность базиса эрозии.AnnaAnna писал(а):ну мне не очень понятно, что там написано вначале...я так поняла это я уже сделала и поэтому начала делать с предпоследнего пункта (r.to.vect).
В приведённом мной примере сначала для векторной сети водотоков находится их порядок по Штралеру (самое большое число = самый крупный водоток).
Я поэкспериментировал с модулем v.strahler, который разбивает векторную сеть по схеме Штралера, затем сделал всё как в примере.
Результат (область VVV_isobase, набор isobase) ниже. Поверхности базисов эрозии, полученные по водотокам 1-го порядка -- растр "dem_isobase_1", 2-3-го -- растр "dem_isobase_2_3".
Последний раз редактировалось Александр Мурый 06 май 2012, 17:36, всего редактировалось 1 раз.
Редактор материалов, модератор форума
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 16 апр 2012, 23:53
- Репутация: 0
Re: построить интерполированный с рек рельеф
спасибо большое:)попытаюсь повторить))
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: построить интерполированный с рек рельеф
На здоровье Мне было интересно попробовать.
Обобщу: для построения поверхностей базисов эрозии для водотоков разных порядков нужны след. исходные данные:
Обобщу: для построения поверхностей базисов эрозии для водотоков разных порядков нужны след. исходные данные:
- цифровая модель рельефа
- векторная речная сеть (лучше, если выделенная по ЦМР с помощью r.watershed и векторизованная).
- эта же речная сеть с порядками по Штралеру в атрибутах (вопрос, как и чем лучше делать..?)
Редактор материалов, модератор форума
- syroezhka
- Завсегдатай
- Сообщения: 290
- Зарегистрирован: 21 апр 2008, 21:22
- Репутация: 5
- Откуда: 50°26'N 30°31'E
- Контактная информация:
Re: построить интерполированный с рек рельеф
amuriy, не могли бы вы подсказать, как правильно связать вектор и таблицу, полученную в результате работы v.strahler?
Я конвертировала txt в csv, потом загружала последний через db.in.ogr, затем устанавливала связь между вектором и таблицей через v.db.connect. Но при этом чего-то ерунда получается.
Я скачала набор, который вы делали для AnnaAnna и там, я так понимаю, лежит скрипт для этого дела. А как лучше сделать эту связь через графический интерфейс?
Я конвертировала txt в csv, потом загружала последний через db.in.ogr, затем устанавливала связь между вектором и таблицей через v.db.connect. Но при этом чего-то ерунда получается.
Я скачала набор, который вы делали для AnnaAnna и там, я так понимаю, лежит скрипт для этого дела. А как лучше сделать эту связь через графический интерфейс?
- syroezhka
- Завсегдатай
- Сообщения: 290
- Зарегистрирован: 21 апр 2008, 21:22
- Репутация: 5
- Откуда: 50°26'N 30°31'E
- Контактная информация:
Re: построить интерполированный с рек рельеф
Сначала, я решила избежать этой задачи, воспользовавшись r.stream.order, но поскольку разбивка речной сети происходит на растре, то остаются многие артефакты. Например, появляются ложные порядки, из-за очень сближенных потоков.
Поэтому, вернулась к v.strahler , потому что перед ним приходится делать r.thin. Тем самым неплохо чистится будущая дренажная сеть. Конечно, проблемы еще остаются. Например, "колечки" (синяя рамочка на картинке).-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: построить интерполированный с рек рельеф
У меня ещё получилось так: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)Код: Выделить всё
1,1,0 2,2,0 3,3,2 4,3,1
- Создаём файл streams_strahler.csvt -- файл описания типов полей:
Код: Выделить всё
"Integer","Integer","Integer"
- Конвертируем 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
Редактор материалов, модератор форума
- syroezhka
- Завсегдатай
- Сообщения: 290
- Зарегистрирован: 21 апр 2008, 21:22
- Репутация: 5
- Откуда: 50°26'N 30°31'E
- Контактная информация:
Re: построить интерполированный с рек рельеф
Спасибо, большое! Пытаюсь повторить.
Сейчас получился затык с
Сейчас получился затык с
Набираю в командной строке граса по аналогии. И вот вопрос: нужно указывать путь к csv файлу или его нужно помещать в некую дефолтную папку? Или на win эту процедуру не получится сделать?amuriy писал(а):Конвертируем CSV в DBF с переименованием полей:
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: построить интерполированный с рек рельеф
ogr2ogr (с некоторыми оговорками) должен работать на Win точно так же, как и в любой другой системе. Необязательно запускать команду именно из командной строки GRASS (это не влияет на её выполнение).syroezhka писал(а): Набираю в командной строке граса по аналогии. И вот вопрос: нужно указывать путь к csv файлу или его нужно помещать в некую дефолтную папку? Или на win эту процедуру не получится сделать?
Если CSV лежит в текущей папке, то команда запускается просто с названием файла, если нет, то нужно указывать полный путь к файлу типа D:\Files\myfile.csv.
Редактор материалов, модератор форума
- syroezhka
- Завсегдатай
- Сообщения: 290
- Зарегистрирован: 21 апр 2008, 21:22
- Репутация: 5
- Откуда: 50°26'N 30°31'E
- Контактная информация:
Re: построить интерполированный с рек рельеф
Теперь конвертирование CSV в DBF получилось. Указала пути. Но пока, что без переименования полей, потому что при включенном -sql вылетает ошибка.
И еще в последнем пункте фигурирует streams_strahler_cats. Это копия streams_strahler, полученого в результате работы модуля?
Скажите, в выражении запроса после оператора FROM идет ссылка на streams_strahler. Это на csv или на вектор, который получился в результате работы модуля v.strahler?ERROR 1: SQL Expression Parsing Error: syntax error
И еще в последнем пункте фигурирует streams_strahler_cats. Это копия streams_strahler, полученого в результате работы модуля?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 17 гостей