Гуляем по пересеченной местности в открытых ГИС: о базовых возможностях моделирования пеших перемещений на основе QGIS, GRASS и SAGA

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница является черновиком статьи.


Расчёт изохрон, оптимальных маршрутов и коридоров наименьших затрат для пеших перемещений на основе цифровых моделей рельефа в QGIS 3 (с использованием модулей GRASS и SAGA)

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

Рассмотрим решения для трёх базовых проблем:

  1. Построение изохрон перемещений по пересеченной местности относительно одной или множества исходных точек
  2. Построение оптимального (с точки зрения временных затрат) маршрута по пересеченной местности между двумя точками
  3. Построение коридора оптимальных временных затрат между двумя точками

Для подготовки данных и моделирования будем использовать открытый пакет QGIS 3.0.2 с модулями GRASS и SAGA, вызов которых доступен из панели анализа. Тестирование осуществлялось в средах Windows 10 x64 и Linux Mint 18.2 x64

Подготовка данных

Для демонстрации будет использоваться набор данных для территории Республики Тыва, в горной местности к северо-востоку от Кызыла. У озера Маны-Холь. В качестве источников использовались:

  • Данные OpenStreetMap. Способы их загрузки неоднократно описывались. В статье использовалась архивная выгрузка с NextGIS на Тыву. От OSM нам понадобятся границы озёр (а также, опционально, дороги, застройка, типы землепользования).
  • Данные о рельефе. Чем точнее ваши данные, тем лучше. В статье использовались данные с http://viewfinderpanoramas.org/dem3.html, где собраны данные на весь мир с разрешением 3 секунды.
  • Данные о типах подстилающей поверхности. В статье использовались данные MODIS Global Land Cover Climatology. Можно обойтись и без этих данных, в статье они приводятся только в целях демонстрации принципов их учёта.

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

Итак, приступаем к подготовке данных. Для начала загрузим всё необходимое в QGIS:

  • Векторные слои с препятствиями. Это могут быть любые объекты, по которым нельзя ходить. В нашем случае это только площадная гидрография из OSM (озёра, реки). Потенциально это может быть что угодно - здания, закрытые территории карьеров, военные полигоны и прочее.
  • Загруженные данные по рельефу в .hgt
  • Данные по типам подстилающей поверхности
  • Спутниковая подложка Bing из плагина QuickMapServices для наглядности.


Ogis dem walking 1.png


Соберём данные по рельефу в единый растровый набор. Для этого воспользуемся функцией merge из GDAL - Raster miscellaneous.


Ogis dem walking 2.png


Получившийся временный слой сохраним в geotiff, с которым продолжим работу (для этого в контекстном меню слоя нужно выбрать "сохранить как". При этом в процессе сохранения произведем некоторые манипуляции. Во-первых, выберем правильную систему координат, например UTM для подходящей зоны. Для тестового участка это зона 47N (EPSG:32647). Во-вторых, для будущих задач нам потребуются данные о рельефе такие, у которых пространственное разрешение по X и Y совпадает (т.е. пиксели должны быть квадратными или почти квадратными, с пренебрежимо малой разницей). Для этого вручную устанавливаем одинаковое разрешение для обоих измерений. Проще всего приравнять большее разрешение к меньшему. Результат запишем в файл DEM.tif


Ogis dem walking 3.png


Теперь приведем к нужному виду данные о типах подстилающей поверхности. Через пункт контекстного меню "сохранить как" настраиваем нужное: устанавливаем систему координат UTM 47N и задаем новый охват равный охвату слоя с рельефом, для этого есть специальная кнопка. Всё лишнее будет отсечено. Результат сохраним в файл land_cover_cut.tif


Ogis dem walking 4.png


Теперь поработаем со слоями препятствий на примере воды. На самом деле нам нужно в слое с ЦМР (DEM.tif) установить все пиксели с препятствиями в No Data. Сделать это можно множеством способов, посмотрим на один из них. Для начала сохраним слой water-polygon в систему координат UTM 47N, сохраняем как water.geojson


Ogis dem walking 5.png


Одной из наших задач будет расчёт зон доступности озера Маны-Холь, поэтому по ходу дела получим точки его берега. Для этого выделяем в слое water это озеро, и с помощью инструмента Extract Verticies получаем слой с точками на береговой линии выделенного объекта.


Ogis dem walking 6.png


Расчёт стоимости перемещений с использованием r.walk

Расчёт стоимости перемещений с использованием альтернативных функций

Построение оптимального маршрута

Расчёт коридора наименьших затрат

Дополнительные сведения

Для QGIS 2.* существует плагин Walking Time, использующий функцию Тоблера для построения маршрута.

Источники