OpenStreetMap

Sergey Astakhov's Diary

Recent diary entries

У меня тут вштал ребром один концептуальный вопрос…

А для какой эпохи мы вносим наши геоданные в OSM?

Эпоха (epoch) в спутниковых измерениях обозначает привязку к какому-то моменту времени.

Автономные gps-приёмники выдают координаты относительно параметров орбит спутников, которые определены в глобальной системе координат. Они в принципе различны для разных спутниковых группировок (WGS84 для GPS, ПЗ-90.11 для ГЛОНАСС, GTRF для Galileo, CTRF для BeiDou), но их стараются поддерживать близкими к стандартной системе ITRF (разные реализации ITRF2008 и ITRF2014 отличаются на миллиметры и их можно считать эквивалентными).

Но это означает что никак не учитывается движения континентов со временем. А это движение не такое уж и маленькое - например Европа двигается со скоростью порядка 2.5 сантиметров в год на северо-восток, а та же Австралия “мчится” со скоростью уже около 7 см/год.

Анимация движения континентов

Пока у нас были приёмники метровой точности - это было не очень заметно. Когда же начали использоваться приёмники сантиметровой точности и точно привязанные ортофотопланы - тут уже это движение становится заметным, за 10 лет все объекты уезжают уже на десятки см.

Если приёмник используется в режиме RTK (Real Time Kinematic), с использованием поправок от базовой станции - то тут немного другая история. RTK - это относительный метод и точность и эпоха координат зависит от точности и эпохи координат базовой станции. Если они фиксированные (а у большинства базовых станций это так) - значит приёмник будет определять свои координаты для той же эпохи, для какой определены координаты базовой станции. У некоторых станций есть по несколько точек подключения с разными базовыми координатами для разных систем/эпох.

Что это означает на практике?

Например это вылазит при обработке снимков для ортофото.

Явно виден систематический сдвиг опорных точек относительно центров снимков, он возникает из-за того что для их определения использовались координаты базовых станций определённых для разных эпох. Вроде бы сам сдвиг и не очень большой (порядка 15 см), однако для ортофотоснимка с разрешением в 5 см/пиксель это уже мозолит глаз.

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

Но тут как раз и встаёт изначальный вопрос - а к какой собственно эпохе приводить то?

В геодезическом сообществе подобные проблемы решают 2 способами:

  1. Использованием местных систем координат на ограниченную область, жёстко прибитых к поверхности Земли через стационарные пункты. Тогда картографические координаты со временем не меняются, а меняются просто параметры перехода к глобальным координатам. В OSM как мне кажется это решение не подходит по причине глобальности проекта.
  2. Использованием глобальных систем координат и фиксированных эпох. Т.е. договорились, что данные держим в такой-то фиксированной эпохе, а текущие измерения или проводим от базовых станций с координатами в нужной эпохе или измеряем в текущей эпохе и потом приводим к фиксированной используя скорости движения тектонических плит для района измерений. Подобное решение используется в большинстве стран, которые используют глобальные системы координат.

В общем, нужно нам договориться, какую эпоху GPS-измерений мы будем использовать для данных OSM и соответственно для привязки ортофотопланов. Если использовать текущую - то при каждом обновлении ортофотоплана будет нарастать его смещение относительно существующих данных, а получение согласованных данных в одной эпохе превращается в кошмар.

Уже была первоапрельская шутка по этому поводу - https://blog.openstreetmap.org/2017/03/31/osm-plate-tectonics/ Но в каждой шутке, как известно, есть только доля шутки.

Если же использовать фиксированную эпоху - то обновлять данные потребуется только раз в дцать лет, при смене этой опорной эпохи. Но надо будет выбрать какую именно эпоху использовать. Существующие сети референсных станций, которые используют единую эпоху, показывают в этом полный разнобой. Примеры:

Сеть Система координат Эпоха
EFS-CORS ITRF2014 2010.0
RTKNet ITRF2014 2010.0
PrinNet ITRF2008 2014.0
Геоспайдер/Сеть РС СПб ITRF2008 2013.05.23

Эстонский кадастр (который используется для отрисовки и импорта в Эстонии) использует европейскую систему ETRS89 и соответственно эпоху 1989.0.

Ещё размышления на эту тему (на английском языке): https://www.openstreetmap.org/user/StephaneP/diary/390290

А что думаете по этому поводу Вы?

Location: 7415, Купчино, Георгиевский округ, Санкт-Петербург, Северо-Западный федеральный округ, Россия

Из серии “Это вы можете”. Включаем логгер, берём фотоаппарат и гуляем по окрестностям. Потом наносим всё на карту.

И не повторяйте мою ошибку - не забудьте намазаться кремом от палящего солнца. :)

Location: Фалираки, Δήμος Ρόδου, периферийная единица Родос, периферия Южные Эгейские острова, Эгейские острова, 851 00, Греция

Очень просто. Пример для винды:

Подготовка

  1. Если на компьютере нет Java - установить её
  2. Создать каталог C:\OSM
  3. Скачать osmosis-0.40.1
  4. Распаковать его в C:\OSM - при этом там создастся подкаталог osmosis-0.40.1
  5. Создать подкаталог C:\OSM\plugins
  6. Скачать туда плугин osmrouting-1.2.jar
  7. Проверяем что всё работает запуском osmosis в каталоге C:\OSM:

    C:\OSM>C:\OSM\osmosis-0.40.1\bin\osmosis.bat
    17.11.2012 16:13:38 org.openstreetmap.osmosis.core.Osmosis run
    INFO: Osmosis Version 0.40.1
    ...
    17.11.2012 16:13:41 org.java.plugin.standard.StandardPluginManager activatePlugin
    INFO: plug-in started - OSMRouting@1.2.0
    ...

Osmosis может искать свои плугины в нескольких местах. Тут перечислены места, которые можно использовать. В данном примере используется вариант каталога plugins относительно текущего каталога запуска, поэтому запускать надо именно из каталога C:\OSM, в противном случае плугин найден не будет. Если вам более удобны другие варианты размещения плугинов - вы можете настроить osmosis по своему вкусу.

Фильтрация

  1. Скачиваем интересующий регион в формате pbf на одном из сервисов, например на gis-lab
  2. Запускаем фильтрацию дорожного графа:

    C:\OSM>C:\OSM\osmosis-0.40.1\bin\osmosis.bat –read-pbf region.osm.pbf –lp –build-routing-graph graphLevel=residential minorGraphsAction=drop –write-pbf region.graph.osm.pbf

В этом примере читается содержимое файла region.osm.pbf, фильтруется дорожный граф уровня residential (graphLevel=residential), изолированные области выкидываются (minorGraphsAction=drop), а результат записывается в выходной файл region.graph.osm.pbf.

Результат можно открыть в JOSM и проверить. Только будьте осторожны - на больших регионах JOSM может тормозить и требовать много памяти.

Что делает osm-ер в отпуске? Фотографирует всё вокруг.
А что он делает после отпуска? Конечно же заносит всё сфотографированное на карту.

До http://wiki.openstreetmap.org/wiki/File:Protaras-Before.PNG
и после http://wiki.openstreetmap.org/wiki/File:Protaras-After.PNG

Location: Протарас, Паралимни, Фамагуста, Кипр, 5297, Кипр