Базовая оценка транспортной доступности средствами GRASS GIS и QGIS
Построение карт транспортной доступности на основе данных OpenStreetMap средствами открытых геоинформационных систем GRASS GIS 7 и QGIS
Картографирование транспортной доступности на основе данных о дорожной сети - одна из классических задач ГИС. Наиболее распространенным способом моделирования транспортной доступности является построение изохрон - линий равных затрат времени на преодоление пространства относительно заданных точек. В представленной статье обсуждается алгоритм построения изохрон по данным OpenStreetMap с использоваем открытых ГИС GRASS GIS 7 и QGIS. В QGIS будет осуществляться подготовка данных и картографическое представление результатов, а в GRASS собственно моделирование. Всю работу можно выполнить целиком в GRASS, но, по мнению автора, общие манипуляции геоданными и представление картографических материалов удачнее и удобнее реализованы в QGIS.
Описываемые в статье действия выполнялись в средах Ubuntu 14.04 LTS и Windows 8.1 (x64), версия GRASS 7.2, версия QGIS 2.14.
Получение и подготовка данных
Для осуществления расчётов нам потребуется набор векторных линейных геоданных, содержащий информацию о дорожно-транспортной сети исследуемой территории. Заполучить подобную информацию можно различными способами: приобрести у специализированных поставщиков, найти в одном из источников открытых данных, оцифровать атлас автомобильных дорог, нарисовать по космическому снимку и так далее (не забывайте про лицензии данных!). В данном случае мы воспользуемся данными OSM как достаточно качественными и подробными, и, что важно, доступными бесплатно и легально. Начать знакомство с OSM вы можете с этой страницы. Этап подготовки данных являются ключевым: помимо технических этапов здесь нам предстоит определить транспортные характеристики, которые будут использованы для моделирования.
Для демонстрации принципов базового транспортного моделирования рассмотрим Тосненский район Ленинградской области. Транспорт: автомобиль.
Загрузка данных OSM
Для загрузки данных OSM существует множество возможностей. Одним из наиболее простых способов является загрузка уже подготовленных в формате ESRI Shapefile наборов данных по слоям. Популярные сервисы в сети: Geofabrik, где вы можете найти комплекты данных на весь мир, и NextGIS, где вы найдёте вместе с данными оформленные QGIS-проекты по субъектам РФ и странам СНГ. Также удобный способ быстро получить данные OSM - воспользоваться одним из соответствующих плагинов для QGIS, например OSMDownloader. При его установке в интерфейс QGIS добавится кнопка выделения прямоугольной области, для которой и будут загружены данные в указанное вами расположение. Для демонстрации в этой статье используется набор данных OSM от NextGIS на территорию Ленинградской области от 13 ноября 2016 года, доступный бесплатно (загрузить).
Для нашей задачи понадобятся только данные о дорожной сети (в случае работы с выгрузками NextGIS - слой highway-line из директории data; в случае работы с OSMDownloader - все загруженные объекты линейного типа, у которых в атрибуте Highway содержится какое-либо значение). Для оформительских задач также может быть использован набор геоданных с границами АТД (например, для обрезки изохрон по гранцам района).
Первичная подготовка данных
Для начала подготовим данные по дорожной сети: обрежем их по границам района интереса, спроецируем куда нужно, отфильтруем лишнее. Распаковываем архив RU-LEN в удобное расположение, лучше без кириллицы и пробелов. Затем запускаем QGIS и добавляем два векторных слоя из папки .../RU-LEN/data/:
- highway-line
- boundary-polygon
Нужно проявить осторожность с кодировками, и добавлять слои с кодировкой UTF-8 (кодировку можно выбрать в меню выбора векторного слоя при его добавлении). Выглядит это как-то так (цвета могут быть произвольными): <картинка с границами и дорогами>
В первую очередь, избавимся от всего лишнего. Найдём полигон Тосненского района и сохраним его в отдельный слой. Для этого в таблице атрибутов слоя boundary-polygon (доступно через контекстное меню слоя) найдём объект с соответствующим содержанием поля NAME. Для этого можно воспользоваться поиском по запросу, либо просто отсортировать колонку и выделить нужную строку. Затем через контекстное меню слоя выбираем "Сохранить как", определяя новое расположение для файла с границами Тосненского района (в моём случае Tosnensky_boundary.shp), и не забываем активировать флаг "Сохранить только выделенные объекты". <картинка с табличкой с Тосно и табличкой сохранения>
Затем