RU:Imagery Offset Database
Эта страница описывает базу смещений подложек и принципы её работы, а также использование базы в 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.