четверг, 29 декабря 2016 г.

Расчет пешеходной доступности - Galton в QGIS


То, что я долго ждал! Спешу поделиться с вами инструкцией по загрузке результатов расчета Galton прямо в QGIS! Это будет первый пост в небольшой серии заметок про расчеты, связанные с пешеходами.
Если вы еще не в курсе, то Galton - это интерактивный сервис по расчету пешеходной/автомобильной доступности, предоставленный командой Urbica. Короче говоря, больше не рисуем зоны доступности обычным радиусом, а показываем реальными изохронами!
Рецепт импорта я получил от разработчика, и теперь можно будет обойтись без Photoshop. Подключаемся к сервису через обычный HTTP, который выдает ответ в виде geojson.

Шаг 1. Составляем запрос (пишем где угодно, чтобы потом скопировать в QGIS):
UPD 2017-09-08 - изменены параметры запроса (работает и bufferSize, и radius)

http://galton.urbica.co/moscow/foot/?lng=37.552111592712685&lat=55.70940750961763&intervals=10&radius=5&cellSize=0.05
https://galton.urbica.co/api/foot/?lng=37.642165306088&lat=55.759526039351215&radius=5&cellSize=0.2&intervals=20&intervals=10
  • moscow - город для расчета. Сейчас есть возможность расчета по городам, указанным в списке на сайте сервиса
  • foot - пешком, можно заменить на car . Скорость для пешехода, если я правильно понял, составляет 4 км в час
  • lng и lat - координаты, вбиваем вручную, посмотрев по карте; количество знаков после запятой по нашему желанию
  • intervals=x, где x - это время в минутах. Можно указать несколько интервалов сразу (например: ...&intervals=10&intervals=20&...)
  • radius или bufferSize = x, где x - это размер захватки расчета в километрах. Размер буфера должен быть больше, чем границы изохрон, иначе будет обрезка по квадрату
  • cellSize=x, где x - это размер ячейки для расчета в километрах. Чем меньше значение, тем больше точность прорисовки.
Надеюсь, что я верно понял эти параметры. Можно изучить подробности на страничках Galton, OSRM, turf.pointgrid, concaveman (последний просто отвечает за построение вогнутой оболочки)

При копировании адреса обратите внимание, чтобы в квадратных скобках не появлялось никаких символов - у меня возникали 1 и 0 при отправке через Facebook

Шаг 2. Вставляем полученный адрес в браузер и нажимаем Enter

Добавляем векторный слой (Layer - Add Vector Layer) и вставляем адрес как URI для geojson в типе источника Protocol (хотя можно и просто в поле Browse в типе источника File)
Полученный текст в окне сохраняем как geojson. В ряде браузеров файл может загрузиться на ваш компьютер автоматически.

И полученный файл потом просто перетаскиваем в окно QGIS!
Чем меньше значение cellSize, тем дольше загружается ответ. 

Шаг 3. Настраиваем графику векторного слоя (а при желании и имя)
Пересохраняем результат в shp-файл и приступаем к запросу для других точек. И так мы можем совмещать на одной карте разные зоны доступности!

Или

Плагин для расчета изохрон (Urbica) для множества точек
Благодаря Александру Мавленкину мы получили прекрасный плагин для работы с сервисом Urbica. В папке можно найти инструкцию по установке, устройству плагина и две версии плагина. Одна - исходная Chronos for Galton_initial.py, другая Chronos for Galton.py - с подправленным адресом запроса, т.к.  (по умолчанию cellSize = 0.05, вы можете поменять скрипт на иное значение).
Важно! Слой с точками должен быть в системе координат WGS 84

Конечно, точность здесь относительна (в первую очередь, из-за данных OSM), и следует критически оценивать результаты. Я бы советовал проверять собственными ногами - самый точный датчик!

Отдельное спасибо Андрею Кармацкому за инструктирование!

Комментариев нет:

Отправить комментарий