RU:Imagery Offset Database

From OpenStreetMap Wiki
Jump to navigation Jump to search

Эта страница описывает базу смещений подложек и принципы её работы, а также использование базы в JOSM и, в будущем, других редакторах. Описание API здесь. Обсуждение на форуме.

Введение

Каждый диванный картограф должен знать: все спутниковые снимки и прочие источники, кроме GPS-треков, смещены. И должен уметь привязывать их по трекам в любимых редакторах. Привязка отнимает пять-десять минут, и из-за погрешности навигаторов точность может разниться. Это не страшно, если вы — единственный маппер на сто километров и сто лет, но для совместной работы расхождение в привязке даже на метр вредно.

Эту проблему частично решили в JOSM, сопоставив смещениям точные числа, которыми можно обмениваться. В результате сложилось несколько способов решения общей задачи привязки:

  • закладки в редакторе: стоит сменить компьютер, как всё приходится перепривязывать;
  • список смещений на региональных страницах вики: никто не читает вики, кроме авторов страниц;
  • точки note=смещение Bing: -4;10: эффективно, но может не попасть в загруженный фрагмент;
  • полигоны со значениями смещения: позволяют автоматическую обработку, но очень сложны для рисования.

Главный недостаток — все эти способы не работают в других редакторах: значения смещения вычисляются алгоритмами JOSM, которые могут быть сложны для реализации в другой модели.

База смещений

Анализ проблемы показал, что решений два, и они одинаково эффективны. Поэтому база и плагин реализуют оба: они не исключают, а дополняют друг друга, позволяя проверять смещения не только по GPS, но и по альтернативному способу привязки.

Все объекты в базе имеют координаты (WGS84 aka EPSG:4326, в градусах), дату создания, автора и описание, которые помогают в определении актуальности и области действия смещения.

Калибровочные геометрии

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

Калибровочная геометрия — это точка или линия, соответствующая реальным достаточно крупным объектам с контрастными границами, которые легко различить на спутниковом снимке. Такая геометрия должна рисоваться по заранее привязанному снимку наивысшего качества, и затем может использоваться для привязки любых подложек, даже тех, что отсутствовали на момент создания геометрии. Достаточно подвинуть снимок так, чтобы геометрия совпала с контурами соответствующего объекта.

Сдвиги подложек

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

То есть, получается централизованная база закладок смещений, не привязанных к единственному редактору.

Удаление смещений

Снимки обновляются, и значения их сдвигов требуется исправлять. Калибровочные геометрии оказываются нарисованы по косо привязанным подложкам, или их объекты пропадают со снимков. Наконец, кто-то использовал свои смещения, а другие показали, что они неправильны. Во всех этих случаях соответствующая запись в базе отмечается устаревшей, с указанием причины. Смещения нельзя редактировать, можно лишь удалить старое и зарегистрировать новое. Отсутствие версий позволяет упростить восстановление случайно или злонамеренно удалённых смещений, а также проверку обоснованности новых смещений.

Почему не данные OSM

Почему калибровочные геометрии не хранятся в базе OSM? Можно изобрести специальный тег, например, calibration=yes и вешать его на идеально привязанные объекты. Собственно, как изначально и планировалось, пока автор не окинул взглядом размер кода, отвечающего за скачивание объектов, проверки, что их никто не менял, и соответствующие действия и предупреждения. На данные в базе OpenStreetMap, которые может изменить любой человек в любой момент, рассчитывать нельзя. Редко какие узлы, особенно в населённых местах, остаются в первой версии. Калибровочные геометрии по определению должны быть идеально привязаны, но вдруг кто-то захочет привязать их «более идеально», подвинув к одному из доступных снимков?

Хранить информацию о смещениях в базе OSM ещё более бессмысленно. Для понимания достаточно окинуть взглядом варианты такого хранения в начале статьи: каждый из них заточен под единственный редактор, редко даёт дополнительную информацию, помимо значения, и легко теряется в массе данных, медленно устаревая.

Лицензия

База данных смещений и её фрагменты публикуются под лицензией PDDL: по сути, CC0 для баз данных. То есть, если владелец одной из подложек захочет воспользоваться собранными смещениями для автоматической перепривязки, ничто ему не помешает. Передавая смещение в базу, вы соглашаетесь с тем, что оно будет опубликовано под PDDL.

Чтобы не «заражать» базу осмовским ODbL, сервис насколько возможно дистанцируется от данных OSM. Каждая точка калибровочной геометрии проверена пользователем, загружающим смещение, а зависимости от конкретных GPS-треков в базе нет: привязка по трекам — это творческий процесс пользователя, а не производное от геометрии треков.

Использование с редакторами

JOSM

Посмотрите наше Руководство по плагину для JOSM, и Иллюстрированная пошаговая инструкция.

Vespucci

As of version 0.9.4, Vespucci supports reading and setting offsets from the database. Currently geometries are not supported.

Веб-интерфейс

http://offsets.textual.ru/