ПОСТРОЕНИЕ ИЗОХРОН ТРАНСПОРТНОЙ ДОСТУПНОСТИ СРЕДСТВАМИ GRASS GIS И QGIS - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

ПОСТРОЕНИЕ ИЗОХРОН ТРАНСПОРТНОЙ ДОСТУПНОСТИ СРЕДСТВАМИ GRASS GIS И QGIS

Глущенко Е.И. 1, Харузин В.Э. 1, Боровской А.Е. 1
1БГТУ им. В.Г. Шухова
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Картографирование транспортной доступности на основе данных о дорожной сети - одна из классических задач ГИС. Наиболее распространенным способом моделирования транспортной доступности является построение изохрон - линий равных затрат времени на преодоление пространства относительно заданных точек. В представленной статье обсуждается алгоритм построения изохрон по данным OpenStreetMap с использованием открытых ГИС GRASS GIS и QGIS. В QGIS будет осуществляться подготовка данных и картографическое представление результатов, а в GRASS собственно моделирование.

Для осуществления расчётов потребуется набор векторных линейных геоданных, содержащий информацию о дорожно-транспортной сети исследуемой территории. Заполучить подобную информацию можно различными способами: приобрести у специализированных поставщиков, найти в одном из источников открытых данных, оцифровать атлас автомобильных дорог, нарисовать по космическому снимку, и т.д. В данном случае в качестве набора географических данных будет использоваться открытый источник данных Open Street Map, данные которого предоставляются бесплатно.

Для демонстрации принципов базового моделирования будет рассматриваться территория Белгородского района.

Для загрузки данных OSM существует множество возможностей. Одним из наиболее простых способов является загрузка уже подготовленных наборов данных по слоям в формате ESRI Shapefile. Популярные сервисы в сети: Geofabrik, где можно найти комплекты данных на весь мир, и NextGIS, где находятся вместе с данными оформленные QGIS-проекты по субъектам РФ и странам СНГ. Также удобный способ быстро получить данные OSM - воспользоваться одним из соответствующих плагинов для QGIS, например, OSMDownloader. При его установке в интерфейс QGIS добавится кнопка выделения прямоугольной области, для которой и будут загружены данные в указанное вами расположение. Для демонстрации в данной работе используется набор данных OSM от NextGIS на территорию Белгородской области от 13 ноября 2016 года, доступный бесплатно.

Для начала необходимо подготовить данные по дорожной сети: обрезать их по границам района интереса, спроецировать, отфильтровать лишнее.

Рис.1. УДС городского округа Белгород

Далее первый тематический шаг подготовки: отбор только тех объектов дорожной сети, которые могут быть использованы для перемещения предполагаемыми транспортными средствами. Здесь необходимо решить, по объектам каких типов будет разрешено перемещаться, например, для моделирования пешеходного движения можно оставить все типы дорог; для легковых автомобилей исключить пешеходные дорожки, тропы, просеки; для грузовых автомобилей исключить дороги с соответствующими ограничениями на массу, и так далее. При этом подход к фильтрации сильно зависит от качества исходных данных и их детализации. Применимо к Open Street Map, различия между объектами существуют на уровне тегов, которые записаны в таблице атрибутов в поле HIGHWAY. Список уникальных значений для набора данных: path; steps; footway; residential; primary; service; unclassified; secondary; road; track; construction; tertiary; raceway; tertiary_link; trunk; secondary_link; proposed; pedestrian; bridleway; primary_link; living_street; trunk_link.

Нужно исключить объекты следующих типов (пригодны только для пешеходов, проектируются, строятся и т.д.): path, steps, footway, construction, proposed, pedestrian, bridleway, выделив их с помощью таблицы атрибутов для слоя с УДС (рис.2). Далее их необходимо удалить.

Рис. 2. Выделенные объекты на карте

Остались следующие типы дорог:

  • trunk - важнейшие и крупнейшие дороги. Ожидаемая скорость 90 км/ч

  • primary - крупные шоссе, следующий уровень после trunk. Ожидаемая скорость 90 км/ч

  • secondary - относительно крупные дороги, следующий уровень после primary. Ожидаемая скорость 60 км/ч

  • tertiary - обычные автомобильные дороги между небольшими населенными пунктами. Ожидаемая скорость 60 км/ч

  • living_street - жилые зоны, где у пешеходов явное преимущество в праве передвижения. Ожидаемая скорость 15 км/ч

  • residential - автомобильные дороги в жилых кварталах. Ожидаемая скорость около 40 км/ч

  • service - сервисные подъезды, въезды и проч. Ожидаемая скорость 30 км/ч

  • road - автомобильная дорога неизвестного типа. Ожидаемая скорость 60 км/ч

  • track - грунтовые дороги, обычно для сельхоз-техники. Ожидаемая скорость 30 км/ч

  • raceway - дороги для автомобильных видов спорта. Ожидаемая скорость 90 км/ч

  • tertiary_link - участки, соединяющие tertiary с другими tertiary или дорогами других типов. Ожидаемая скорость 40 км/ч

  • secondary_link - участки, соединяющие secondary с другими secondary или дорогами других типов. Ожидаемая скорость 40 км/ч

  • primary_link - участки, соединяющие primary с другими primary или дорогами других типов. Ожидаемая скорость 40 км/ч

  • trunk_link - участки, соединяющие trunk с другими trunk или дорогами других типов. Ожидаемая скорость 40 км/ч

  • unclassified - дороги без тега. Ожидаемая скорость 40 км/ч

Для того, чтобы применить принятые характеристики, необходимо воспользоваться калькулятором полей, запустив его из таблицы атрибутов слоя highway-Белгород-37N. Создав новый атрибут SPEED как целочисленный, заполнить его следующим выражением (рис.3):

Рис.3. Настройка параметров скоростей для векторного слоя УДС

Следующий шаг - расчёту времени, которое потребуется для преодоления каждого отдельного участка дорожной сети. Для этого нужно сначала рассчитать длины всех объектов слоя. В калькуляторе атрибутов необходимо создать новое поле LENGTH как десятичное число по формуле:

$length / 1000

По умолчанию расчёт длин и площадей производится в единицах проекции, т.е. в метрах (квадратных метрах для площади). Делением на 1000 расстояния приводятся к километрам. Следующий шаг - расчёт времени (предпочтительно в минутах), которое потребуется для преодоления каждого отдельного участка дороги с учётом его длины и ожидаемой скорости. В калькуляторе атрибутов необходимо создать новое поле TIME как десятичное число по формуле, представленной на рис.4.

Рис.4. Расчет времени преодоления участков УДС

Дальнейшая работа проводится в графическом интерфейсе GRASS GIS. В первую очередь, необходимо создать так называемую "локацию" или "область". Но для начала нужно указать папку для хранения данных (database directory).

Далее в GRASS импортируются векторные данные, созданные в Quantum GIS и помощью функции v.in.ogr: File – import vector data – common import formats. Результат отображен на рис. 5.

Рисунок 5. Результат импорта векторных данных в GRASS GIS

Далее в окне карты необходимо создать точечный слой «zones», указывающий местоположения, относительно которых будут строиться изохроны. Рассматривая территорию г.Белгорода, точки будут расставлены в основных районах города, а также в его периферийных частях (рис.6).

Рисунок 6. Отображение точек, относительно которых будут строиться изохроны транспортной доступности

Для проведения сетевого анализа данных необходимо набор линейных данных преобразовать в набор сетевых данных с помощью инструмента v.net, который доступен в меню Vector - Network analysis - Network preparation. Всё, что нужно, это применить операцию nodes к рассматриваемому слою "highway_Belgorod_37N". На вкладке "Необходимо" выбрать метод nodes, на вкладке Arcs - слой "highway_Belgorod_37N@Belgorod", на вкладке Опционный задать имя для результирующего набора. Например, «highway_Belgorod_37N_net». В командной строке приложения это выполняется с помощью команды:

v.net -c input= highway_Belgorod_37N operation=nodes output= highway_Belgorod_37N_net

Следующий (и последний) шаг подготовки данных - это задание региона и разрешения для моделирования с помощью модуля g.region, который доступен в меню "Settings - Регион - Установить регион". На первой вкладке в выпадающем списке Set region to match vector maps необходимо выбрать слой "highway_Belgorod_37N_net", созданный на предыдущем шаге, на вкладке "Границы" установить флаг "Подогнать регион под разрешение" и на вкладке "Разрешение" назначить для "2D grid resolution" подходящее значение. Этот последний параметр очень важен - это размер ячеек сетки, до которых будет производиться расчёт времени перемещения. Он должен быть достаточно небольшим, чтобы изохроны были плавными, но и не совсем маленьким, потому что чем подробнее сетка, тем более ресурсоёмкими получаются вычисления. Для территории подобной демонстрационной модели подходит размер 10 метров. Другие параметры не изменяются. В командной строке приложения это также можно выполнить:

g.region vector= highway_Belgorod_37N_net res=10 -a

Теперь всё готово для создания самих изохрон и некоторых других выходных данных.

Модуль v.isochrones позволяет работать в двух режимах: создавать непрерывные изохроны, то есть поля затрат на перемещение (с использованием модуля r.cost), и просто откладывать преодолеваемое расстояние вдоль дорог (что хорошо подходит для случая, когда перемещение за пределами транспортной сети невозможно совсем - с использованиям модуля v.net.iso). В данном примере будут использоваться непрерывные изохроны. Необходимо запустить модуль, набрав в консоли программы v.isochrones.

На первой вкладке в качестве дорожной сети необходимо выбрать сетевой набор данных "highway_Belgorod_37N_net@Belgorod", название атрибута с ценой - SPEED, стартовые точки - "zones@Belgorod", удобное название для слоя с изохронами (например, "isochrones"), метод r.cost и собственно значения изохрон в минутах через запятую. Здесь значения могут быть любыми в зависимости от поставленных задач. В примере задаются следующие отсечки по времени: 5, 15, 30, 60 и 90 минут. Далее, на вкладке r.cost задаются очень важные параметры: название для поверхности времени перемещений – слой timemap, скорость для преодоления пространства вне дорожной сети и доступная для расчётов память. В командной строке выполняется:

v.isochrones map= highway_Belgorod_37N_net@Belgorod roads_layer=1 cost_column=SPEED start_points=zones@Belgorod isochrones=isochrones time_steps=5,15,30,60,90 timemap=timemap memory=1000 method=r.cost

После выполнения обработки в дереве слоёв появляются два новых: изохроны и поверхность затрат времени. Это и есть искомый результат (рис.7 - 8).

Рисунок 7. Отображение векторного слоя с изохронами в GRASS GIS

Рисунок 8. Отображение растрового слоя с данными по времени перемещений в GRASS GIS

Далее эти слои импортируются в Quantum GIS, где настраивается их более наглядное отображение. Растровый слой является набором данных, как бы предшествующим изохронам - растр с тем самым разрешением 10х10 метров, указанным на этапе задания области, в каждой ячейке которого хранится время в минутах, сколько туда добираться из указанных точек. Такой набор данных может быть очень полезен при разнообразном растровом анализе как один из входных слоёв (рис.9).

Рисунок 9. Отображение растрового слоя в QGIS

Слой же с изохронами содержит полигоны, охватывающие территории, соответствующие диапазонам времени перемещения: от 0 до 5, от 5 до 15, и так далее. Диапазоны были заданы ранее самостоятельно. Важно, что в атрибутах хранятся данные о временном диапазоне, а внешние полигоны (более дальние) не содержат внутренних (ближних), такие данные открывают широкие возможности для разнообразного анализа (рис.10).

Рисунок 10. Первичное отображение изохрон в QGIS

В данной работе рассмотрен простой подход к транспортному моделированию способом построения изохрон в GRASS GIS и QGIS. Возможности такого подхода весьма ограничены, особенно в аспектах, касающихся учёта разнородных препятствий, и так далее. Тем не менее, при внимательной подготовке исходных данных о дорожной сети, можно получать интересные результаты, которые применимы при различных сценариях анализа транспортной доступности.

Список литературы:

1. Горев А.Э., Бѐттгер К., Прохоров А.В., Гизатуллин Р.Р. Транспортное моделирование // 1-е издание. СПбГАСУ. СПб.: СПбГАСУ, 2015. С. 30. 168 с.

2. www.gis-lab.info

3. www.nextgis.com

4. Боровской А.Е., Сокорев С.И., Новиков И.А. Cоздание точных моделей транспортных потоков на основе геоинформационных данных В сборнике: Информационные технологии и инновации на транспорте материалы 2-ой Международной научно-практической конференции. Под общей редакцией А.Н. Новикова. 2016. С. 10-19.

5. Новиков И.А., Боровской А.Е., Сокорев С.И., Глущенко Е.И. Анализ динамических параметров транспортных потоков генерируемых объектами городской агломерации. В сборнике: Региональная научно-техническая конференция по итогам ориентированных фундаментальных исследований по междисциплинарным темам, проводимого Российским фондом фундаментальных исследований и Правительством Белгородской области сборник докладов. 2016. С. 245-255.

6. Аркатова К.Н., Боровской А.Е., Глущенко Е.И., Харузин В.Э. Повышение безопасности дорожного движения за счет траекторного анализа движения маршрутных транспортных средств. В сборнике: Современные автомобильные материалы и технологии (САМИТ-2016) сборник статей VIII Международной научно-технической конференции. Ответственный редактор Е.В. Агеев. 2016. С. 13-22.

7. Лукьянов А.М., Боровской А.Е., Поляков В.М., Яковлева Е.И. О некоторых вопросах использования навигационных систем для определения жизненного цикла автомобильных дорог. Техника и технология транспорта. 2016. № 1. С. 26-31.

8. Бекбоев А.Р., Арыкбаев К.Б. Геоинформационная система (ГИС) это оптимизация маршрутов и мониторинг транспорта. Вестник КГУСТА. 2013. С 58-61

9. Андрианов В.Ю. ГИС на транспорте//ArcReeview.,2013. — 1(64). — С.12-14.

Просмотров работы: 1555