На правильном ли пути? Разработка оптимального маршрута

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
steamko
Новоприбывший
Сообщения: 2
Зарегистрирован: 29 июл 2015, 15:30
Репутация: 0

На правильном ли пути? Разработка оптимального маршрута

Сообщение steamko » 30 июл 2015, 16:47

Здравствуйте!

Я новичок в области ГИС. Передо мной стоит необходимая к решению задача. На данный момент потратил пару дней на гугл и на ознакомление с информацией, доступной на данном сайте (в том числе, на темы с похожими проблемами в данном разделе). Распишу по порядку, собственно, о самой задаче и о тех вещах, которые я для себя отметил (т.е. благодаря которым, как я понимаю, задача может быть решена). Хотелось бы получить небольшую консультацию: на правильном ли я пути? возможно, целесообразнее использовать другое ПО? если я таки пропустил ту самую заветную красную кнопку, которая делает все то, что мне необходимо - будьте добры, тыкните пальцем.

Задача: написать скрипт (использовать готовый, если существует) прокладывающий оптимальный маршрут (с точки зрения минимального расстояния) между двумя точками в рамках определенной области (т.е. без заранее установленных маршрутов [например, дорог, тропинок, линий и т.д.]) с учетом определенных условий (например, не приближаться к границам области ближе какого-либо значения). Пример на рисунке ниже.

Изображение
Рисунок. Какая-нибудь область с точками, находящимися на границах области.

Т.е., довольно банально: например, нужен маршрут из точки А в точку F. Интересует даже не визуализация полученного маршрута, а получение значения расстояния между точками.
Не обязательно, но хорошо, если получится реализовать следующее:
- время, необходимое на преодоление пути при заданной скорости объекта передвижения с учетом участков с ограниченной скоростью движения (заштрихованные участки на рисунке);
- потребление топлива если это автомобиль;
- работа с тремя точками и больше.

В выборе решений я остановился на QGIS и pgrouting. Функционал с виду подходящий, но как реализовать до конца не знаю. Благо есть различного рода документация, с которой в принципе разберусь, однако, я так и не встретил схожих задач. Все предлагаемые решения обычно основаны на поиске маршрута из точки А к точке Б по уже установленным маршрутам (извините за тавтологию). Как здесь, например. Такого рода статьи я нахожу по запросам "оптимального маршрута" и схожим. Это немного вводит в заблуждение. Логика говорит, что все должно быть в порядке, но сам то я практически не знаком со спецификой продуктов, чтобы утверждать об этом.
Действительно ли получится реализовать намеченное при помощи QGIS и pgrouting? Подскажите, по какому запросу можно найти примеры задач, схожих с моей? Или может кто-нибудь ссылку подскажет?

На всякий случай отмечу, что владею языком Python на довольно скромном уровне. Готов углублять свои знания.
Последний раз редактировалось steamko 06 авг 2015, 19:29, всего редактировалось 1 раз.

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: На правильном ли пути? Разработка оптимального маршрута

Сообщение Ariki » 30 июл 2015, 19:10

А насколько сложная у вас область? Нельзя ли растеризовать её и использовать алгоритм Ли?

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: На правильном ли пути? Разработка оптимального маршрута

Сообщение Ariki » 30 июл 2015, 19:24

Ещё пришла в голову мысль построить триангуляцию внутри области, решить задачу на полученном графе, а затем оптимизировать результат путём удаления лишних вершин.

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: На правильном ли пути? Разработка оптимального маршрута

Сообщение gamm » 30 июл 2015, 21:24

задачка напоминает стандартное задание для студентов на половину занятия, делается на растре. Используется дистанционное преобразование для построения буфера (чтобы не ходить, куда не надо, задав большое сопротивление), и дистанционное преобразование с сопротивлением (cumulative cost в другой транскрипции) для построения оптимального пути. Делается все в SAGA (можно в Арке, если есть желание).

steamko
Новоприбывший
Сообщения: 2
Зарегистрирован: 29 июл 2015, 15:30
Репутация: 0

Re: На правильном ли пути? Разработка оптимального маршрута

Сообщение steamko » 31 июл 2015, 21:25

Ariki писал(а):А насколько сложная у вас область? Нельзя ли растеризовать её и использовать алгоритм Ли?
Область совсем немного сложнее представленной на примере. Выражается это более избитыми границами.
Почитал о волновом алгоритме и таки да, на уровне теории не вижу никаких препятствий. Более того, этот пример практически копия того, что мне необходимо, но выполняется в matlab. Не знаете ли аналогов для QGIS, SAGA? Или может, есть смысл обратиться именно к matlab?

К сожалению, с триангуляцией еще не успел разобраться.
gamm писал(а):задачка напоминает стандартное задание для студентов на половину занятия, делается на растре. Используется дистанционное преобразование для построения буфера (чтобы не ходить, куда не надо, задав большое сопротивление), и дистанционное преобразование с сопротивлением (cumulative cost в другой транскрипции) для построения оптимального пути. Делается все в SAGA (можно в Арке, если есть желание).
Извиняюсь за тупёж, но я честно провел большую часть дня в поиске информации о "дистанционном преобразовании" и так и не понял как им пользоваться и что оно вообще такое. Только Ваше упоминание о "cumulative cost" навело на модуль Accumulated Cost в SAGA GIS.
Еще ознакомился с довольно подробным туториалом (см. вложение) по использованию модуля Least Cost Path Analysis. Если не ошибаюсь, он вполне удовлетворяет требованиям. Там же в обиходе и Accumulated Cost. Об этих ли модулях идет речь?
Если задачка и вправду на половину занятия для студентов, то это обнадеживает. Вот только чувствую себя поленом :)

Всем большое спасибо за ответы!
Вложения
LCPAtutorial.pdf
Tutorial: Using SAGA for Least Cost Path Analysis
(3.03 МБ) 502 скачивания

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: На правильном ли пути? Разработка оптимального маршрута

Сообщение gamm » 31 июл 2015, 22:13

steamko писал(а):Еще ознакомился с довольно подробным туториалом (см. вложение) по использованию модуля Least Cost Path Analysis. Если не ошибаюсь, он вполне удовлетворяет требованиям. Там же в обиходе и Accumulated Cost. Об этих ли модулях идет речь?
точно не помню, но когда проверял, можно ли сделать подобное в SAGA, убедился, что можно.

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя