Очень хочу гидрологически связать полигоны
- Jasen
- Активный участник
- Сообщения: 100
- Зарегистрирован: 27 янв 2006, 18:33
- Репутация: 4
- Ваше звание: Специалист
- Откуда: Москва
- Контактная информация:
Очень хочу гидрологически связать полигоны
Всем доброго рабочего утра!
Вчера задавал этот вопрос на StackExchange но никто не ответил (не знают?).
Мне нужны красивые полигоны субводосборов для моделирования (специальное приложение не работает и решил делать все кустарно через бесплатные ГИС).
Сделал исправленный рельеф, аккумуляцию, речную сеть, субводосборы собственно. Но для модели нужен столбец, где указан нижележащий субводосбор (downstream subwatershed). И сколько я по интернету ни искал, как это сделать, не нашел. Хотя логика вроде бы проста: общие точки соприкосновения полигонов (они называются outlets). Но я на 99% уверен, что tool существует отдельно.
Есть QSWAT, но прежде чем использовать его, я хотел бы убедиться, что других способов нет.
Благодарю заранее!
Вчера задавал этот вопрос на StackExchange но никто не ответил (не знают?).
Мне нужны красивые полигоны субводосборов для моделирования (специальное приложение не работает и решил делать все кустарно через бесплатные ГИС).
Сделал исправленный рельеф, аккумуляцию, речную сеть, субводосборы собственно. Но для модели нужен столбец, где указан нижележащий субводосбор (downstream subwatershed). И сколько я по интернету ни искал, как это сделать, не нашел. Хотя логика вроде бы проста: общие точки соприкосновения полигонов (они называются outlets). Но я на 99% уверен, что tool существует отдельно.
Есть QSWAT, но прежде чем использовать его, я хотел бы убедиться, что других способов нет.
Благодарю заранее!
Что написал - то написал!
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Очень хочу гидрологически связать полигоны
Именно такого инструмента нигде не встречал, но думаю, что можно заскриптовать получение такого столбца с помощью GRASS GIS и серии модулей r.stream.*
Там в мануалах, кстати, много раз упоминается понятие "downstream":
https://grass.osgeo.org/grass74/manuals ... asins.html
https://grass.osgeo.org/grass74/manuals ... tance.html
Чтобы подсказать предметнее, нужны тестовые входные данные и требования к выходным данным.
Там в мануалах, кстати, много раз упоминается понятие "downstream":
https://grass.osgeo.org/grass74/manuals ... asins.html
https://grass.osgeo.org/grass74/manuals ... tance.html
Чтобы подсказать предметнее, нужны тестовые входные данные и требования к выходным данным.
Редактор материалов, модератор форума
- Jasen
- Активный участник
- Сообщения: 100
- Зарегистрирован: 27 янв 2006, 18:33
- Репутация: 4
- Ваше звание: Специалист
- Откуда: Москва
- Контактная информация:
Re: Очень хочу гидрологически связать полигоны
Данные-то есть https://disk.yandex.ru/client/disk/%D0% ... %D0%A0/GIS
dem - гидрологически корректный рельеф
acc - аккумуляция
dir - flow directions
net - rivr network
subbasins лишние - их править еще надо.
А скрипты что-то из консоли в QGIS не запускаются. import grass.script as grass не работает. Там хитрость есть?
dem - гидрологически корректный рельеф
acc - аккумуляция
dir - flow directions
net - rivr network
subbasins лишние - их править еще надо.
А скрипты что-то из консоли в QGIS не запускаются. import grass.script as grass не работает. Там хитрость есть?
Что написал - то написал!
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Очень хочу гидрологически связать полигоны
Пути правильные должны быть и лучше версия 2.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
- Jasen
- Активный участник
- Сообщения: 100
- Зарегистрирован: 27 янв 2006, 18:33
- Репутация: 4
- Ваше звание: Специалист
- Откуда: Москва
- Контактная информация:
Re: Очень хочу гидрологически связать полигоны
Добрый день!
Кстати, r.stream.basins не работает в GRASS, видимо устарел, теперь там только r.basins.fill (не подходит, потому что надо рисовать водоразделы) и r.stream.extract.
Алгоритм-то несложно придумать. Например так:
Имеем shp субводосборов и raster аккумуляции по ячейкам.
Определяем для каждого полигона максимальное и минимальное значение растра. Получится, что есть полигоны минимумами 1, а есть с минимумами равными значению на водотоке.
Отсортировать полигоны по возрастанию максимального значения растра.
Взять первый полигон i и найти такой x, у которого минимальное значение растра будет минимально отстоять от максимального значения первого полигона (то есть разность min(x) - max(i) = MIN.
Присвоить искомое значение нижележащего водосбора значению ID x.
Если проделать это для каждого полигона, скорее всего должно получиться.
Но как из этого сделать скрипт? Тем более в ситуации, когда описания модулей в интернете не соответствуют реальному положению дел.
Кстати, r.stream.basins не работает в GRASS, видимо устарел, теперь там только r.basins.fill (не подходит, потому что надо рисовать водоразделы) и r.stream.extract.
Алгоритм-то несложно придумать. Например так:
Имеем shp субводосборов и raster аккумуляции по ячейкам.
Определяем для каждого полигона максимальное и минимальное значение растра. Получится, что есть полигоны минимумами 1, а есть с минимумами равными значению на водотоке.
Отсортировать полигоны по возрастанию максимального значения растра.
Взять первый полигон i и найти такой x, у которого минимальное значение растра будет минимально отстоять от максимального значения первого полигона (то есть разность min(x) - max(i) = MIN.
Присвоить искомое значение нижележащего водосбора значению ID x.
Если проделать это для каждого полигона, скорее всего должно получиться.
Но как из этого сделать скрипт? Тем более в ситуации, когда описания модулей в интернете не соответствуют реальному положению дел.
Что написал - то написал!
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Очень хочу гидрологически связать полигоны
Какие версии QGIS и GRASS?
Сложный анализ с модулями GRASS я рекомендовал бы проводить в "чистой" GRASS, без участия QGIS.
Что вы имеете в виду? Модули <r.stream*> - дополнения, в основной ветке их всех нет, надо ставить отдельно. Описание модулей (мануалы) GRASS всегда соответствуют модулям. Их наличие/отсутствие может зависеть от ОС, версии GRASS/QGIS.
Сложный анализ с модулями GRASS я рекомендовал бы проводить в "чистой" GRASS, без участия QGIS.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Очень хочу гидрологически связать полигоны
Не получается перейти на страницу, перенаправляет на мой Яндекс-Диск.Jasen писал(а): ↑06 июл 2018, 11:14Данные-то есть https://disk.yandex.ru/client/disk/%D0% ... %D0%A0/GIS
Просьба сделать единый архив с тестовыми данными и расшарить ссылку на него.
Редактор материалов, модератор форума
- Jasen
- Активный участник
- Сообщения: 100
- Зарегистрирован: 27 янв 2006, 18:33
- Репутация: 4
- Ваше звание: Специалист
- Откуда: Москва
- Контактная информация:
Re: Очень хочу гидрологически связать полигоны
Переложил: https://yadi.sk/d/ZinEHxtR3YvHxL
Версия GRASS 7.4.1, версия QGIS последняя тоже, 3.2.0.
Я уж понял, что надо в GRASS напрямую, в этом никакой проблемы нет.
Версия GRASS 7.4.1, версия QGIS последняя тоже, 3.2.0.
Я уж понял, что надо в GRASS напрямую, в этом никакой проблемы нет.
Что написал - то написал!
- Jasen
- Активный участник
- Сообщения: 100
- Зарегистрирован: 27 янв 2006, 18:33
- Репутация: 4
- Ваше звание: Специалист
- Откуда: Москва
- Контактная информация:
Re: Очень хочу гидрологически связать полигоны
запускаю из консоли, правильно?
Что значит, не может запустить парсер?
Что значит, не может запустить парсер?
- Вложения
-
- 2.PNG (8.07 КБ) 5653 просмотра
Что написал - то написал!
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Очень хочу гидрологически связать полигоны
Запускать можно любым из доступных способов. Проблема, как я понял, чисто виндовая. У меня на Линуксе все модули <r.stream.*> установились и работают. Попробую и на винде установить ради эксперимента.
А остальные модули также не запускаются? И что выдаёт команда "r.stream.watersheds -help"?
И да, откуда ставилась GRASS и как ставились доп. модули?
Редактор материалов, модератор форума
- Jasen
- Активный участник
- Сообщения: 100
- Зарегистрирован: 27 янв 2006, 18:33
- Репутация: 4
- Ваше звание: Специалист
- Откуда: Москва
- Контактная информация:
Re: Очень хочу гидрологически связать полигоны
Э... Grass в данном случае пришла вместе с QGIS. Это неправильный путь?
r.stream.watershed -help => не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
У меня-то они тоже установились. Ставились через добавление модулей в GUI GRASS.
r.stream.watershed -help => не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
У меня-то они тоже установились. Ставились через добавление модулей в GUI GRASS.
Что написал - то написал!
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Очень хочу гидрологически связать полигоны
Дак куда установились-то?
Авторы писали этот модуль на bash, поэтому нужно делать как они рекомендуют или самому портировать на Питон
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Очень хочу гидрологически связать полигоны
При попытке установить модуль <r.stream.watersheds> на винде у меня пишет:
Вообще, мы отклонились от темы обсуждения. Не факт, что указанный модуль вообще нужен (как и вообще модули <r.stream.*>). Выше я сделал просто предположение, не разбираясь глубоко.
Автору настоятельно рекомендую сопровождать сообщения картинками (и здесь, и на StackExchange). Так гораздо больше шансов на успех.
Я попробую поиграться с тестовыми данными, по результатам отпишусь.
Что правильно, т.к. это шелл-скрипт, и здесь ему не место. Все основные модули <r.stream.*> ставятся и работают нормально.Downloading precompiled GRASS Addons <r.stream.watersheds>...
ERROR: Extension <r.stream.watersheds> not found
Вообще, мы отклонились от темы обсуждения. Не факт, что указанный модуль вообще нужен (как и вообще модули <r.stream.*>). Выше я сделал просто предположение, не разбираясь глубоко.
Автору настоятельно рекомендую сопровождать сообщения картинками (и здесь, и на StackExchange). Так гораздо больше шансов на успех.
Я попробую поиграться с тестовыми данными, по результатам отпишусь.
Редактор материалов, модератор форума
- Jasen
- Активный участник
- Сообщения: 100
- Зарегистрирован: 27 янв 2006, 18:33
- Репутация: 4
- Ваше звание: Специалист
- Откуда: Москва
- Контактная информация:
Re: Очень хочу гидрологически связать полигоны
C:\Program Files\QGIS 3.2\apps\grass\grass-7.4.1 на Windows 7rhot писал(а): ↑09 июл 2018, 12:02Дак куда установились-то?
Стало быть, все их выкладки выполняются только из командной консоли Linux?rhot писал(а): ↑09 июл 2018, 12:02Авторы писали этот модуль на bash, поэтому нужно делать как они рекомендуют
Судя по описанию там есть все что необходимо, кроме темы о связывании. Может быть есть, а может быть и нет, надо пробовать.
Что написал - то написал!
- Jasen
- Активный участник
- Сообщения: 100
- Зарегистрирован: 27 янв 2006, 18:33
- Репутация: 4
- Ваше звание: Специалист
- Откуда: Москва
- Контактная информация:
Re: Очень хочу гидрологически связать полигоны
Так, Александр, какие картинки, если неизвестно, как их делать ) Задачу я, вроде бы, описал исчерпывающе.Александр Мурый писал(а): ↑09 июл 2018, 15:58Автору настоятельно рекомендую сопровождать сообщения картинками (и здесь, и на StackExchange). Так гораздо больше шансов на успех.
Что написал - то написал!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 25 гостей