OpenStreetMap

Sergey Astakhov's diary

Recent diary entries

Высокоточные измерения или В какой эпохе живёт OSM?

Posted by Sergey Astakhov on 15 May 2020 in Russian (Русский)

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

А для какой эпохи мы вносим наши геоданные в 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, Купчино, Георгиевский округ, Фрунзенский район, Санкт-Петербург, Северо-Западный федеральный округ, 190000, Россия

Отпуск на Родосе.

Posted by Sergey Astakhov on 21 July 2013 in Russian (Русский)

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

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

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

Как можно извлечь роутинговый граф из OSM?

Posted by Sergey Astakhov on 17 November 2012 in Russian (Русский)

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

Подготовка

  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 может тормозить и требовать много памяти.

Картоотпуск на Кипре.

Posted by Sergey Astakhov on 17 October 2010 in Russian (Русский)

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

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

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