RU:Imagery Offset Database

From OpenStreetMap Wiki
Jump to: navigation, search
Доступные языки — Imagery Offset Database
· Afrikaans · Alemannisch · aragonés · asturianu · azərbaycanca · Bahasa Indonesia · Bahasa Melayu · Bân-lâm-gú · Basa Jawa · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · dansk · Deutsch · eesti · English · español · Esperanto · estremeñu · euskara · français · Frysk · Gaeilge · Gàidhlig · galego · Hausa · hrvatski · Igbo · interlingua · Interlingue · isiXhosa · isiZulu · íslenska · italiano · Kiswahili · Kreyòl ayisyen · kréyòl gwadloupéyen · Kurdî · latviešu · Lëtzebuergesch · lietuvių · magyar · Malagasy · Malti · Nederlands · Nedersaksies · norsk bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · română · shqip · slovenčina · slovenščina · Soomaaliga · suomi · svenska · Tiếng Việt · Türkçe · Vahcuengh · vèneto · Wolof · Yorùbá · Zazaki · српски / srpski · беларуская · български · қазақша · македонски · монгол · русский · тоҷикӣ · українська · Ελληνικά · Հայերեն · ქართული · नेपाली · मराठी · हिन्दी · অসমীয়া · বাংলা · ਪੰਜਾਬੀ · ગુજરાતી · ଓଡ଼ିଆ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · සිංහල · ไทย · မြန်မာဘာသာ · ລາວ · ភាសាខ្មែរ · ⵜⴰⵎⴰⵣⵉⵖⵜ · አማርኛ · 한국어 · 日本語 · 中文(简体)‎ · 吴语 · 粵語 · 中文(繁體)‎ · ייִדיש · עברית · اردو · العربية · پښتو · سنڌي · فارسی · ދިވެހިބަސް

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

Иллюстрированная пошаговая инструкция

Для установки плагина откройте меню настроек (F12), выберите вкладку с вилкой и розеткой, в появившемся списке найдите и включите плагин «imagery_offset_db». Затем перезапустите редактор.

Чтобы не залезать каждый раз в меню, добавьте кнопку запроса смещений на верхнюю панель инструментов: щёлкните на ней правой кнопкой, выберить пункт настройки, найдите справа «Offset/Получить смещение» и добавьте его в левую панель.

Поиск смещений

Для получения смещения снимка выберите пункт с таким названием из меню «Сдвиг» («Offset»). В открывшемся окне нажмите наиболее подходящую кнопку смещения, руководствуясь датой, расстоянием и описанием. Вот что означают элементы окна:

Iodb-plugin-description-ru.png

При выборе смещения оно применяется сразу, а кнопка калибровочной геометрии добавит слой с контуром. Для привязки снимка нужно найти на нём объект, соответствующий контурам (обычно он описан в окне выбора), и сдвинуть подложку, чтобы калибровочная геометрия точно совпала с границами объекта. После этого слой можно удалить.

Регистрация сдвига

Убедитесь, что ни один объект не выделен, видна правильная подложка, и её смещение идеально. Затем выберите пункт «Сохранить смещение снимка» из меню «Сдвиг» («Offset»). Там введите описание области применимости снимка. Это не описание места, где вы определили смещение, а способ человеку, рисующему карту за несколько километров от этого места, понять, может ли он воспользоваться вашим смещением. В городе можно назвать район (например, «к востоку от реки и до железной дороги» или «Сосновка»), в сельской местности можно воспользоваться реками или перечислить деревни. Если подложка выдаёт снимки разной детальности, желательно указать, какой масштаб имеется в виду (например, «Снимок самого крупного масштаба»).

Единственное техническое требование к описанию — его длина должна быть от 3 до 200 символов.

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

Регистрация геометрии

Первым делом, найдите на снимке объект с чёткими границами небольшой высоты. Дом — плохой кандидат, лесное озеро или перекрёсток дорог — хороший. Чем больше объект — тем лучше: некоторые снимки не так детальны, как бинг. Попробуйте найти выбранный объект на, например, слое Landsat.

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

Выберите калибровочный объект, затем пункт меню «Сохранить смещение снимка». Тут вам должен предстать выбор между геометрией и смещением (где нужно нажать первую кнопку). Если его нет, убедитесь, что на карте выбран только один объект, и если он загружен из OSM, все его точки входят в загруженную область. В качестве описания геометрии расскажите про калибровочный объект, если с ним могут быть проблемы (например, болотное озеро может сместиться) — упомяните их (но лучше выберите более надёжный объект). Требования к описанию те же: от 3 до 200 символов.

Ключи расширенной настройки

Ключ Начальное значение Описание
iodb.server.url http://offsets.textual.ru/ Адрес сервера смещений.
iodb.radius -1 Радиус поиска смещений в километрах, -1 означает умолчательное значение сервера, 10 км.
iodb.calibration.message false Показывалась ли хоть раз инструкция по использованию калибровочных геометрий.
iodb.offset.message false Показывалась ли хоть раз инструкция по использованию сохранённых смещений.
iodb.max.offsets 5 Ограничение на количество отображаемых смещений.
iodb.show.calibration true Отображать ли в списке смещений калибровочные геометрии.
iodb.show.deprecated false Отображать ли в списке смещений записи, отмеченные как устаревшие.
iodb.close.on.select true Закрывать ли окно со списком после выбора смещения.
iodb.offset.radius 15 Радиус актуальности смещения в километрах. Отрицательное значение отключает проверку.
iodb.modify.toolbar true Добавлять ли кнопку получения смещения на панель инструментов. Изменяется на false после первого успешного добавления.
iodb.remember.offsets true Восстанавливать ли смещения подложек при запуске редактора с прошлого раза.
iodb.stored.offsets [] Сохранённые значения смещений подложек для восстановления при перезапуске.

Интеграция

На сегодня с базой смещений общается плагин, но в перспективе эта функциональность должна быть интегрирована в редактор, как когда-то произошло с плагином WMSPlugin. Как это должно выглядеть?

Очевидно, вся функциональность (т.е. обе кнопки) должна быть запрятана в меню смещений подложки. Пользовательские закладки переместятся в подменю, а в самом меню закладки будут автоматически подгружаться каждый раз при его открытии (или наоборот). Для этого придётся подкрутить внешний вид пунктов: для выбора смещения важно не только описание, но и дата и дальность от окна пользователя.

При этом должно остаться окно выбора, как позволяющее найти удалённые смещения и получить подробную информацию по каждому из смещений. Собственно, пресловутые два пункта как раз уместятся сразу после «новое смещение».

Также возможен аналог «I'm feeling lucky»: если в определённом радиусе (2-3 км) нашлось только одно неустаревшее смещение подложки с подходящим масштабом, то оно выбирается автоматически. Делать всю работу автоматически, без нажатия кнопок, нежелательно: иначе пользователь потеряет контроль над используемыми подложками (например, в случае присутствия в базе намеренно ошибочных смещений).

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

http://offsets.textual.ru/