Size: a a a

спбгеотех

2020 August 08

SZ

Sergei Zhuravlev in спбгеотех
Хотя порядки водотока можно прикрутить и к другим задачам при желании.
источник

AB

Anton [az09@osm] Bel... in спбгеотех
Eduard Kazakov
Каждый картограф хоть раз в жизни сталкивался с требованием, которое обычно формулируется так: «сделайте, чтобы реки текли!». Задача кажется простой – увеличивать толщину реки в зависимости от накопленного совокупного числа притоков. Но когда у вас в руках готовый (и большой!) набор векторных геоданных, последняя вещь, которой хочется заниматься – это вручную проставлять каждому сегменту речной сети его толщину, а ведь есть ещё много дополнительных метрик, которые хочется учесть, но непросто посчитать – например, расстояние до каждого из сегментов от устья или истока, или порядок конкретного притока. И хотя идея о том, что это задача на графах (и вроде бы не самая сложная), лежит на поверхности, простого готового инструмента для этого нет. А те, что есть – на растрах на основе ЦМР.

Хорошие новости! Миша @mik_sar и Юля @ChrisLisbon (оба выступали на семинарах спбгеотеха) разработали алгоритм и обернули его в QGIS-плагин – теперь заставить реки течь можно в пару кликов: достаточно выбрать векторный слой речной сети и точку устья, и вы получите копию вашего слоя с добавленными атрибутами ранга, количества притоков и накопленного расстояния от устья. Настроить с ними удачный стиль «текущих рек» - уже дело техники. Конечно, использовать алгоритм можно для любых сетей (например, дорожных), а не только для рек.
Вам понадобится QGIS 3.14+, на который дополнительно нужно установить python-библиотеки networkx и pandas. Ищите в официальном репозитории плагин Lines Ranking. Алгоритм подробно описан (с кодом) в статье на medium (на английском):
https://medium.com/@mik.sarafanov/the-algorithm-for-ranking-the-segments-of-the-river-network-for-geographic-information-analysis-b25cffb0d167
и в jupyter-тетрадке (на русском):
https://github.com/Dreamlone/State_Hydrological_Institute/blob/master/River_ranking.ipynb
Репозиторий с кодом плагина (там же в Readme указания по установке доп. библиотек):
https://github.com/ChrisLisbon/QGIS_LinesRankingPlugin
Миша @mik_sar, Юля @ChrisLisbon, что если направление течения в осм будет перепутано?
за труды вам ⭐️ в гитхаб 👍
источник

o

oneonwar in спбгеотех
Eduard Kazakov
Каждый картограф хоть раз в жизни сталкивался с требованием, которое обычно формулируется так: «сделайте, чтобы реки текли!». Задача кажется простой – увеличивать толщину реки в зависимости от накопленного совокупного числа притоков. Но когда у вас в руках готовый (и большой!) набор векторных геоданных, последняя вещь, которой хочется заниматься – это вручную проставлять каждому сегменту речной сети его толщину, а ведь есть ещё много дополнительных метрик, которые хочется учесть, но непросто посчитать – например, расстояние до каждого из сегментов от устья или истока, или порядок конкретного притока. И хотя идея о том, что это задача на графах (и вроде бы не самая сложная), лежит на поверхности, простого готового инструмента для этого нет. А те, что есть – на растрах на основе ЦМР.

Хорошие новости! Миша @mik_sar и Юля @ChrisLisbon (оба выступали на семинарах спбгеотеха) разработали алгоритм и обернули его в QGIS-плагин – теперь заставить реки течь можно в пару кликов: достаточно выбрать векторный слой речной сети и точку устья, и вы получите копию вашего слоя с добавленными атрибутами ранга, количества притоков и накопленного расстояния от устья. Настроить с ними удачный стиль «текущих рек» - уже дело техники. Конечно, использовать алгоритм можно для любых сетей (например, дорожных), а не только для рек.
Вам понадобится QGIS 3.14+, на который дополнительно нужно установить python-библиотеки networkx и pandas. Ищите в официальном репозитории плагин Lines Ranking. Алгоритм подробно описан (с кодом) в статье на medium (на английском):
https://medium.com/@mik.sarafanov/the-algorithm-for-ranking-the-segments-of-the-river-network-for-geographic-information-analysis-b25cffb0d167
и в jupyter-тетрадке (на русском):
https://github.com/Dreamlone/State_Hydrological_Institute/blob/master/River_ranking.ipynb
Репозиторий с кодом плагина (там же в Readme указания по установке доп. библиотек):
https://github.com/ChrisLisbon/QGIS_LinesRankingPlugin
Пандас два раза импортируется что бы в два раза быстрее работало?)
источник

o

oneonwar in спбгеотех
источник

EK

Eduard Kazakov in спбгеотех
Seva Moreydo
Эээ пойду покурю вашу статью, потому что пока как гидрологу мне из описания непонятно, вы среднюю ширину по порядку реки назначаете, что ли?..
Привет! Это про картографию в первую очередь, map design. Я вот как картограф много десятков раз сталкивался с такой задачей в требованиях/пожеланиях. К реальным параметрам речной сети отношение отдалённое, хотя тоже есть.
источник

Ю

Юлия in спбгеотех
Anton [az09@osm] Belichkov
Миша @mik_sar, Юля @ChrisLisbon, что если направление течения в осм будет перепутано?
за труды вам ⭐️ в гитхаб 👍
На данный момент для вычислений ничего, кроме геометрии объектов из входного слоя, OSM или другого источника, не используется в принципе (хотя это в планах), так что если атрибуты некорректные - не страшно. Если кратко, как алгоритм обходит сеть: исправляется геометрия объектов, устраняются разрывы по пользовательского порогу. Сеть разбивается на сегменты по узлам пересечения. Связные объекты представляются в виде взвешенного графа - веса на ребрах - длина сегмента. Не связанные отсекаются от общей сети. И уже на основе веса ребра происходит поиск кратчайшего пути, определяющего направление течения для каждого сегмента(в какую сторону пойдёт обход сети на следующем шаге).
источник

Ю

Юлия in спбгеотех
В дальнейшем планируем прикрутить использование атрибута, которым пользователь пометит основной водоток, чтобы алгоритм  присвоил этому участку ранги "вне очереди" и продолжил обход их учётом. В jupyter-тетрадке (
https://github.com/Dreamlone/State_Hydrological_Institute/blob/master/River_ranking.ipynb) есть отличная визуализация этого подхода
источник

MS

Mike Sarafanov in спбгеотех
Anton [az09@osm] Belichkov
Миша @mik_sar, Юля @ChrisLisbon, что если направление течения в осм будет перепутано?
за труды вам ⭐️ в гитхаб 👍
Добрый день)
Из изначального векторного слоя направление течения не определяется, атрибуты векторного слоя могут в алгоритме и не использоваться вовсе. Идея заключается в том, что у нас есть не так то много информации: некоторая речная сеть в виде векторного слоя и мы ещё знаем точку впадения реки в водоем (например, Волга со всеми притоками, которая впадает в Каспийское море). В таком случае мы задаем алгоритму расположение этой точки - теперь алгоритм "в курсе" какая вершина (сегмент речной сети) является замыкающей, то есть в неё впадают все остальные сегменты, и именно из этой вершины мы и будем начинать обход.

Направление течения после завершения работы алгоритма можно определить  по атрибутам по присвоенному рангу (по умолчанию "rank"). У замыкающего сегмента будет ранг 1, у всех сегментов, которые впадают в сегмент с рангом 1 - будет значение ранга 2, и т.д. То есть направление течения задается на основе назначения точки впадения реки в водоем, где эта точка - туда все и стекает
источник

A

Asiia in спбгеотех
Eduard Kazakov
Есть проблема с неоднозначностью выбора центрального водотока на некоторых графах (на Урале видно например), как сейчас решается описано в текстах, и ребята уже готовят версию, в которой можно будет учитывать атрибут (например, с именем реки, принадлежностью сегмента определенному объекту) для управления этим процессом. Но это уже пусть сами расскажут :)
Можно ли автоматизировать границ
источник

A

Asiia in спбгеотех
Отрисовку границ водосборов малых рек?
источник

MS

Mike Sarafanov in спбгеотех
Asiia
Отрисовку границ водосборов малых рек?
Мы задачу определения границ водосборных бассейнов не рассматривали

Алгоритм работает только на векторном линейном слое и дальше него не заходит
источник

A

Asiia in спбгеотех
Anton Biatov
"Можно ли сделанные с геопривязкой фото использовать в ГИС как основу для векторных точек скопления мусора?"
Можно.
Статья на эту тему в моем бложике:
https://gis-naturalist.blogspot.com/2018/09/geophoto-for-map.html
Есть ли скрипт чтобы добавить на снимок/карту фото без геотега(но с координатами). Спасибо
источник

AB

Anton Biatov in спбгеотех
Asiia
Есть ли скрипт чтобы добавить на снимок/карту фото без геотега(но с координатами). Спасибо
Координаты как и где записаны?
источник

A

Asiia in спбгеотех
У Вас написано что можно создать геотеги и потом. Есть точки gps есть фото с номером,это можно связать через таблицу
источник

AB

Anton Biatov in спбгеотех
Asiia
У Вас написано что можно создать геотеги и потом. Есть точки gps есть фото с номером,это можно связать через таблицу
если у Вас есть табличка в которой есть поля с координатами снимка и названием файла фотографии, то Вы можете добавить их накарту и без записи координат в геотеги.
источник

AB

Anton Biatov in спбгеотех
Asiia
У Вас написано что можно создать геотеги и потом. Есть точки gps есть фото с номером,это можно связать через таблицу
Из таблицы с координатами создания фотографий Вы можете записать эти координаты используя exiftool

для этого преобразуйте таблицу в текстовый файл с разделителем запятой и заголовком SourceFile,GPSLatitude,GPSLongitude,GPSAltitude

и положите его в папку рядом сфотками.

И далее из этой же папки выполните команду
exiftool -csv=position_data.txt -gpslatituderef=N -gpslongituderef=E -gpsaltituderef=above .
источник

A

Asiia in спбгеотех
В командной строке?
источник

A

Asiia in спбгеотех
Эту опцию как то ставить нужно?
источник

AB

Anton Biatov in спбгеотех
Запускать в командной строке перейдя в терминале в папку с фотографиями, или открыв его непосредственно от туда.

Нужно скачать эту утилиту.
Как ее ставить описывал здесь:
https://gis-naturalist.blogspot.com/2018/06/exiftool.html
источник
2020 August 10

f

fr1 in спбгеотех
впору делать валидатор направления рек в осм
источник