Подготовка карты для спортивного ориентирования или рогейна на основании данных OSM и DEM

Подготовка карты для спортивного ориентирования или рогейна на основании данных OSM и DEM

Шаг 1. Экспорт данных OSM.

Шаг 2. Импорт данных в OpenOrienteering Mapper

Шаг 3. Получение изолиний рельефа

Где можно скачать DEM

Получение изолиний рельефа из данных в формате .hgt в OCAD

Получение изолиний рельефа из данных DEM в QGIS (Quantum GIS)

Шаг 5. Импорт данных рельефа в OOM

Заключение

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

Основной и первостепенной задачей организаторов рогейна является подготовка качественной карты. За основу карты могут быть взяты разные данные: карты генштаба, спутниковые снимки и т.п., либо карту можно полностью самостоятельно нарисовать “с нуля”. Так почему OSM?

  • Некоторые регионы, пригодные для проведения рогейнов, достаточно хорошо прорисованы в OpenStreetMap
  • OpenStreetMap - система, открытая для редактирования. Каждый желающий может добавлять и изменять картографические данные
  • То, что будет сохранено в OSM попадет в общий доступ и другие авторы карт смогут переиспользовать данные, созданные другими авторами
  • OpenStreetMap имеет широкие возможности тегирования объектов, поэтому в OSM можно нарисовать практически что угодно

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

Шаг 1. Экспорт данных OSM.

Экспортировать данные в формате .osm можно разными способами:

Способ 1: экспортировать данные кнопкой “Экспорт” с сайта OSM https://www.openstreetmap.org/export

  • просто и быстро, актуальные данные, можно редактировать прямо на сайте
  • возможно экспортировать только небольшую площадь

Способ 2: экспортировать данные кнопкой “Overpass API” с сайта OSM https://www.openstreetmap.org/export

  • просто и быстро
  • используется сторонний сервис, может не работать. Данные могут быть не самые свежие

Способ 3: воспользоваться сторонними сервисами Overpass API, например http://overpass-api.de/, http://overpass.openstreetmap.ru/ и т.п

  • есть язык запросов, можно экспортировать данные выборочно
  • необходимо составлять запрос, сервисы могут не работать, данные могут быть не самыми свежими

Способ 4: https://extract.bbbike.org/. Выбираешь формат, например “OSM XML gzip’d”, вписываешь свой e-mail и ждешь

  • можно экспортировать в разные форматы, относительно большую область
  • данные могут быть не самые свежие

Способ 5: Использовать редактор JOSM http://josm.ru/. Меню Файл - Скачать данные, затем Файл - Сохранить как.

  • Свежие данные, много возможностей, можно редактировать прямо в редакторе и отправлять изменения на сервер OSM
  • Приходится загружать большую область маленькими кусками, сложный интерфейс, необходимо устанавливать Java на компьютер

Конечно же, есть и другие способы, не перечисленные выше.

Шаг 2. Импорт данных в OpenOrienteering Mapper

Данная инструкция составлена для версии OOM 0.9.5

  1. Загружаем и устанавливаем OpenOrienteering Mapper (далее - OOM) GitHub, сайт приложения 

  1. Создаем новую карту: выбираем нужный масштаб и набор символов. Можно взять какой-нибудь улучшенный набор (либо потом всё равно придётся стандартный улучшать) , например, вот.

На вопрос о масштабировании отвечаем - Да

  1. Импортируем данные OSM

Файл - Импорт, выбираем файл .osm, экспортированный на шаге 1.

В следующем окне необходимо указать Базовую систему координат UTM и Склонение. Остальные поля заполняются автоматически.

Магнитное склонение можно определить на сайте https://www.ngdc.noaa.gov/geomag/calculators/magcalc.shtml Для определения склонения вводим координаты центра карты и предполагаемую дату соревнования. Да да, а что вы думали? Магнитный север постоянно дрйфует 🙂

Далее появляется окно, в котором отображаются правила преобразования тэгов OSM в объекты карты OOM.

Здесь можно подправить правила преобразования либо загрузить предварительно подготовленный .crt файл, содержащий эти правила, например, OSM-ISOM 2017-2.crt, имеющийся в комплекте OOM. Или использовать улучшенный, например, вот. Или создать свой.

.crt  файл имеет простую текстовую структуру и его можно редактировать в блокноте. А также можно в нем подсмотреть, какие тэги нужно навесить на объекты OSM, чтобы преобразования выполнялись в нужные объекты OOM. Например, видим, что для того чтобы на карте появился символ 508 “Исчезающая тропинка”, нужно в OSM к тэгу highway = path добавить еще тэг smoothness = horrible или smoothness = very_horrible:

Кстати, режим таскания карты включается кнопкой

  1. После загрузки данных на карте могут присутствовать обозначения, которые не удалось преобразовать .crt файлом, превращаются в фиолетовые линии, области и точки.

Их можно удалить так:

  • в панели символов жмем правой кнопкой мыши на ненужный символ
  • кликаем контекстное меню “Выбрать все объекты с этим символом”
  • жмем Del

В результате получаем чистую карту:

  1. Далее, чтобы все неотрисованные на OSM места карты вместо белого цвета стали залиты “неудобью”, берем символ “403. Неудобное открытое пространство” и рисуем прямоугольник (меню Инструменты - Рисовать прямоугольник”) поверх всей карты

В OOM наложение символов друг на друга (z-order) зависит от цвета символа. Поэтому чтобы наша неудобь не перекрывала другие полезные символы, переходим в меню “Символы - Окно настройки цветов” и двигаем цвет “Желтый 50%” в самый низ.

Шаг 3. Получение изолиний рельефа

Изолинии рельефа можно получить из данных DEM (Digital Elevation Model). DEM бывает двух видов:

  • DSM (Digital Surface Model) предназначена для моделирования и визуализации ландшафта, включает в себя верхушки деревьев и зданий.
  • DTM (Digital Terrain Model): предназначена для моделирования поверхности земли

Для карт спортивного ориентирования и рогейна нужна модель DTM, но часто приходится использовать DSM.

Источник данных для этих моделей обычно один и тот же, модель DTM получают цифровой обработкой, убирая растительность и здания с поверхности. Естественно, результат обработки сильно зависит от алгоритма.Поэтому лучше всего сгенерировать изолинии из нескольких разных источников и, сравнив результаты, выбрать наилучший.

Источники данных для рельефа:

  • SRTM (Shuttle Radar Topography Mission) Данные инфракрасной съемки со спутника 2000 года. Вся планета от 56° ю. ш. до 60° с. ш. Разрешение 30 либо 90 м. Точность 10-20 м.
  • ASTER GDEM (Advanced Spaceborne Thermal Emission and Reflection Radiometer Global Digital Elevation Model) Оптическая стереосъемка, последняя версия V3 2019 года. Вся планета от 83° ю. ш. до 83° с. ш. Разрешение 30 м. Точность ~20 м.
  • LiDAR (Light Detection And Ranging) - данные, получаемые лазерной съемкой поверхности земли с самолёта или квадрокоптера. Очень высокое разрешение и точность (сантиметры), но найти такие данные в свободном доступе довольно сложно. Существуют организации, которые проводят съемку за деньги. А вот, к примеру, Словения имеет в открытом доступе данные по всей стране.
  • TanDEM-X и прочие

* Разрешение - это размер пикселя в DEM. Выше разрешение - выше точность, но больше шумов, ниже разрешение - ниже точность, но меньше шумов.

* Точность - это насколько точно измерена высота каждого пикселя в DEM.

Множество различных организаций в мире занимаются обработкой исходных данных DEM, удаляя шумы, заполняя пробелы путем объединения данных из разных источников. То, что получается на выходе, обычно называют Dataset. У датасетов разное покрытие, разная точность и разрешение. Эти датасеты доступны для скачивания либо свободно, либо после регистрации, либо за деньги. Часто появляются новые дата сеты, их надо искать, скачивать и пробовать использовать.

Где можно скачать DEM

  1. https://www.viewfinderpanoramas.org
    Тут можно взять выгрузки по зонам UTM с разрешением 90 м. Каждый скачиваемый архив содержит несколько файлов .hgt, покрывающих площадь 1х1 градус.

Для Нижнего Новгорода зона примерно O38. Если карта соревнования находится в нескольких квадратах, скачиваем их все.

Тут Северная Америка и рельефная часть Европы с разрешением 30 м

Сайтом занимается любитель, по-моему, довольно рассеянный, но увлеченный. Сайт работает уже много лет.

  1. Сайт NASA: в фильтре выбираем нужную область, формат файла HGT. Получаем файлы 1 arc*sec - это разрешение 30 м, 3 arc*sec разрешение 90 м. V001 - это исходная версия SRTM, V003 - то же самое, но с исправленными пробелами. Для скачивания нужно зарегистрироваться.

  1. Тут можно скачать файлы площадью 1х1 градус: http://step.esa.int/auxdata/dem/SRTMGL1/
  2. http://srtm.csi.cgiar.org/srtmdata/ Разрешение 90 м. На базе данных NASA V1 с заполненными пробелами
  3. https://ecodatacube.eu/ Датасет получен из разных источников при помощи машинного обучения. Покрытие: Европа, разрешение 30 м.  Высота рельефа в датасете странная - 10х-кратная. При получении изолиний надо делать срезы не по 10, а по 100 м. 
  4. EU-DEM Датасет был создан путем объединения данных о высотах из глобальных наборов данных SRTM и ASTER, а также из советских топографических карт в высоких широтах.Разрешение 25 м. Покрытие - Европа, северная Африка.
  5. Copernicus DEM Очень качественный датасет, собранный из нескольких источников, покрытие - Европа. Для скачивания данных необходима регистрация. При регистрации обязательно нужно ставить галочку “I am also interested in accessing Copernicus Contributing Missions data”, User Category = Public

Приближаем карту в нужный район, выбираем нужный датасет, задаем Time Range From на пораньше, чтобы найти все обновления, жмем Search, скачиваем найденное. Датасеты DGED и DTED мало отличаются, на мой взгляд DGED лучше очищен от шумов.

  1. FABDEM - Copernicus DEM с удаленными смещениями высоты зданий и деревьев при помощи машинного обучения. Покрытие 80° ю. ш. до 80° с. ш.Разрешение 30 м.
  2. Время от времени появляются новые датасеты, надо искать.

Получение изолиний рельефа из данных в формате .hgt в OCAD

Обработка файлов .hgt требует больших вычислительных ресурсов и маломощные компьютеры могут тратить на их обработку много времени (часы), поэтому не стоит брать лишние данные - только то покрытие, что нужно.

Для импорта рельефа в OOM нам потребуется создать изолинии в формате .gpx из  данных DEM. Для этого используем OCAD. Для примера использована версия 12.

  1. Создаем новый файл. Не уверен, что эти настройки имеют значение, но я создавал такой:  Map type: “Orienteering map”, Symbol set: “Orienteering map ISMTBOM2010 20000”, Map scale 1:20000

  1. Меню DEM - DEM Import Wizard - Add, выбираем импортируемые файлы .hgt (Нижний Новгород примерно N56E043.hgt, отвечаем “ОК” на ошибку и задаем координатную систему UTM/WGS84, UTM Zone берем соответствующую файлам .hgt (N38) либо пользуемся кнопкой Find  и определяем зону по координатам (Нижний Новгород - примерно N56, E43). Чем меньше файлов выберете, тем быстрее обработка.

  1. жмем Next, оставляем убираем все галки кроме “Create contour lines”

  1. жмем Next, задаем интервал изолиний, например, 5м, Line Symbol  заполняем “101.000 Contour” и индексных (главных, жирных) изолиний, например, 25м, для которых выбираем символ “102.000 Index contour”

  1. жмем Next, выбираем “New offset”

  1. жмем "ОК” и ждем

  1. Появляются изолинии, обрезаем лишнее: Object/Crop objects. Чем меньше оставим, тем быстрее импортируется в OOM.

  1. Выбираем символ изолинии 101, Select/Objects by symbol

  1. Экспортируем. Меню File - Export. Выбираем тип экспорта - GPX, Export line objects as - Tracks.

  1. Сохраняем 5-метровые изолинии.

  1. Затем делаем то же самое для индексных изолиний (пп. 8-10), сохраняем 25-метровые изолинии.

Получение изолиний рельефа из данных DEM в QGIS (Quantum GIS)

QGIS - это географическая информационная система (ГИС) с открытым исходным кодом, которая широко используется для просмотра, редактирования и анализа геопространственных данных. Очень крутой инструмент с огромным количеством возможностей. Загрузить установщик для Windows.

  1. Создаем новый файл
  2. Если файл из датасета DEM один, то
  1. можно открыть его через меню “Layer/Add Layer/Add raster layer”
  2. если файлов несколько, то лучше сразу их объединить в один слой инструментом Merge


  1. Для удобства добавляем слой OSM:  “Layer/Add Layer/Add XYZ layer”
  2. Обрезаем лишнее в слое с рельефом инструментом “Clip raster by extent”

  3. Генерируем линии рельефа инструментом Contour

  4. Такие слои рельефа можно сгенерировать из разных источников и сравнить их качество
  5. Экспортируем изолинии в файл .gpx

  6. Чтобы сделать индексные линии рельефа в QGIS
  1. посмотрите видео.
  2. сохраните рельеф как GeoTiff, сконвертируйте в .hgt и обработайте в OCAD как написано выше.

Другие способы получения изолиний

  1. Векторизация растровых карт.
  1. В ООМ: Посмотрите это видео
  2. В QGIS: Можно попробовать этот плагин 
  1. Вручную обводить линии рельефа в OOM с другой карты, добавленной в качестве подложки

Шаг 5. Импорт данных рельефа в OOM

Возвращаемся в OOM

  1. File/Import, выбираем наш файл 5-метровых изолиний, С геопривязкой

  1. Может быть задан вопрос про базовую система координат - выбираем UTM
  2. Вибираем символ “Contour”

  1. После импорта все загруженные линии становятся “выбранными”, поэтому сразу же делаем это: кликаем символ изолинии “101 Горизонталь”, меню Инструменты - Заменить символы для выбранных объектов, затем меню Инструменты - Преобразовать в кривую  (чтобы избавиться от острых углов импортированных изолиний)

.

  1. То же самое делаем с файлом 25-метровых (индексных) изолиний, только заменяем импортированные линии на символ “102 Утолщенная горизонталь”

  1. Ну, и можно сказать, что карта готова. Конечно всякие тонкости рельефа типа мелких промоин и лощин придется дорисовывать руками, а также удалить всякие странности типа пересечения озера и холма :), но даже так карта получается вполне приемлемая для проведения рогейнов и мультигонок.

Заключение

Если у вас есть замечания и предложения по усовершенствованию статьи - пишите комментарии в документе

https://docs.google.com/document/d/1Fo_XupCm6jL-R21gfim5af92r07HhS7UBwS0Cjr8Kn8/edit?usp=sharing

Либо свяжитесь с автором.


© 2024 Козлов Алексей aka Boogier

https://t.me/boogier