OpenStreetMap

Max Vasilev's Diary

Recent diary entries

После короткого традиционного весенне-зимнего установочного сбора загрузил треки в ОСМ, а заодно решил сравнить точность разных устройств. Катались с напарником вдвоём, у меня был Edge 1000, у него бюджетный Bryton Rider 40. Про геморрой выковыривания треков из Брайтона писать не буду и про то, что это устройства разного ценового сегмента тоже забудем, просто сравним результат.

Технически оба устройства были установлены одинаково на руле велосипеда, т.е. исключалась болтанка в кармане и был доступен максимальный обзор спутников устройствам. Велосипеды были одного класса - шоссейные и двигались практически с одинаковой скоростью, так что можно считать что условия были идентичными на 100%. В обоих устройствах была выставлена максимальная точность, у Edge 1000 - это запись с интервалом в 1 секунду и GPS+Glonass, у Bryton это просто настройка GPS Power = Max.

Первое что сразу бросается в глаза - это треки по открытому пространству, у гармина на открытом пространстве независимо от скорости (10-15 км/час вверх и 50-60 км/час вниз) треки ложатся практически идеально, а вот у Брайтон на скорости около 50 км/час едва попал в габарит развязки. Здесь и далее треки Edge - зелёные, Bryton - красные.

01

У Брайтона замечено поведение древних MTK чипсетов - его откровенно шарахает на ровном месте, причём даже на медленной скорости по прямой: 02

Следующая картинка - поведение в трудных для GPS условиях. Именно здесь очень плотная и узкая застройка, стены домов прямо по габариту дороги, а где их нет - высокий забор, видимость неба только вертикально вверх. При этом работа GPS осложняется тем, что в данном месте дорога имеет градиент от 15 до 20% а в стабильность положения навигатора в пространстве вмешивается сильная раскачка велосипеда из стороны в сторону, т.к. ехать приходится стоя выламывая приличный кардан. Налажали оба навигатора, примерно одинаково. 03

Микротрекинг. На этой картинке видно, как меня дважды порывами ветра разворачивало поперёк дороги и мне пришлось дважды останавливаться и возвращаться на свою полосу. Всё таки высокий профиль колёс не для ветра в 12 м/сек :) 04

Стоянки/остановки, старт/стоп. Брайтон традиционно рисует звёзды на всю округу, в то врем как Гармин на остановках стоит очень чётко. Даже не всегда по треку видно, что была остановка на несколько минут в одной точке. 05

А вот и косяки Гармина :) Плотный лес, видимость неба из под крон практически 0%. Градиент дороги почти равномерные 5%. При медленной езде вверх (~13-15 км/час) Гармин успевает отрисовать траекторию дороги очень точно, не путаясь в деревьях, однако при движении вниз (20-40 км/час) он тоже рисует повороты очень чётко и гладко, однако со стабильным смещением в пространстве, причём опережающим. Дорога здесь идёт с севера на юг. А что Брайтон? Тоже лажает, но без уверенного опрежения, просто гуляет по лесу. 06

Картинки и сами треки для самостоятельного ознакомления.

Ну или тест на зрение, если будет угодно :)

Дано: 5 скриншотов разных рендеров одного и того же места в одном и том же масштабе.

Задача, оценить их по двум критериям, выстроив относительно друг за друга, начиная с самого лучшего до самого худшего.

Первый критерий оценки:

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

Второй критерий:

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

Напомню, вопрос касается только надписей на дорогах!

Образцы:

  1. MapSurfer
  2. OSM-mapnik
  3. Yandex
  4. Google
  5. образец-номер-0.7.0.1.

Пример ответа

(от лучшего к худшему)

По первому критерию (читаемость): 1, 3, 5, 2, 4

По второму критерию (наполненность): 4, 2, 1, 3, 5

KoTone

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

Что радует: написав всего несколько строк, я смог буквально за несколько минут набросать пару палитр в текстовом редакторе и склонировать заготовку для нового стиля с разными палитрами.

Что огорчает: я не программист и питон вижу в первый раз в жизни, так что пока 90% времени занимает изучение самого языка.

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

Архив карт на серверах Рамблера: http://garmin.osm.rambler.ru/archive/ Планируется выкладывать в архив карты примерно раз в месяц, а так же туда же возможно будут выкладываться нерегулярные сборки, делаемые по запросам.

p.s. Спасибо Рамблеру за хостинг и Gleb Smirnoff за помощь.

Карты федеральных округов на серверах Рамблер: http://garmin.osm.rambler.ru/federal/

Обновление примерно раз в неделю. Эти карты собираются непосредственно на серверах рамблера (пока только ПФО, будут появляться по мере сборки)

Так же принимаются заказы на сборку отдельных нестандартных регионов, для этого вы обводите область в JOSM в виде полигона, для которой нужна карта, или сразу готовый POLY файл. Выкладываете его туда, где я смогу его забрать, указываете периодичность (не чаще 1 раза в неделю, для начала) и через какое то время получаете карту на сервере Рамблера.

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

В своё время мы ходили по Воньге по нарисованной от руки карандашной схеме, с одним неисправным компасом и текстовым описанием в стиле “в одном из поворотов есть протока в следующее озеро, вы её найдёте, наверное”.

По тегированию, хотел бы напомнить про некоторые частые ошибки, которые заметил:

1) если река, даже очень маленькая впадает в большое озеро и на другом его конце вытекает и течёт дальше и это именно эта же река, то надо обязательно соединять сегменты линий waterway=river (впадающие и вытекающие) между собой, через всё озеро, по маршруту наиболее похожему на кротчайший форватерный курс. Река может впадать и вытекать и протекать сквозь три десятка озёр, как например та же Воньга и вся река должна быть цельной линией или состоять из соединённых между собой линий, а не заканчиваться на каждом впадении и начинаться снова в месте вытекания из озера. Это позволяет прокладывать маршрут, в том числе и роутинговый в навигаторах, определять расстояние движения по реке и т.д. Мы же помним, что навигаторы (правильные) умеют прокладывать маршрут по рекам.

2) если остров на озере имеет собственное название, то его надо обозначить как place=island; name=Название. Если же у острова нет названия, коих тысячи, то незачем каждому острову ставить place=island. То, что это остров - это и так понятно из того, что он вырезан и озера. Тег place - для построения списка объектов имеющих какое-то топологическое значение, т.е. для острова это как минимум наличие собственного имени.

3) не забываем обозначать отмели (не пороги, а места низкого уровня воды, которые при изменениях уровня воды, могут оказаться на поверхности). Для этого есть тег water=tidal (для полигонов, не для линий). Сам по себе тег water=* является расширением тега natural=water или waterway=riverbank, поэтому либо ставиться вместе с ним, либо можно отдельным объектом, поверх полигона natural=water.

4) так же в ОСМ можно обозначать пороги на реках. Пороги обозначаются как точка на линии реки waterway=rapids, если у порога есть собственное имя, то так же следует указать name. Пока что в ОСМ нет однозначности описания категорий порогов, но наличие их вообще на карте - очень нужная вещь.

Location: Амбарнское сельское поселение, Лоухский район, Республика Карелия, Северо-Западный федеральный округ, 186675, Россия

Большинству “картографов” ОСМ совершенно чуждо понятие ответственности в плане поддержания чистоты, полноты, корректности и актуальности данных. У некоторых оно есть, но сильно в однобокой и не всегда адекватной форме. Когда вторые - это новички, а первые - “опытные” маперы, то ничего не происходит, потому что первым влом. Когда “опытные” маперы - это вторые, а первые новички, то начинаются массовые правки пустого в порожнее.

Когда чувство обострённой картографической справедливости обостряется не у картографов, а у программистов, а полноты восприятия всей системы, как единого набора данных нет - рождаются сферические валидаторы в вакууме. Основная причина отсутствия полноты восприятия - закостенелость мышления и видение только одной, сугубо прикладной стороны применения всех данных. Чаще всего это звучит так: “в моём конвертере под мой конкретный навигатор это работает только так, значит так должно быть везде”.

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

Мой личный эксперимент показал, что группа из 5-8 школьников старших классов, после 20-ти минутной устной лекции об основах классификации и генерализации геопространственных данных и 10-ти минутным знакомством с GIS инструментом, способна за один факультативный час (одна пара уроков по 45 минут) обрисовать больше чем десяток опытных участников проекта ОСМ за тот же период времени, совершив при этом на порядок меньше логических, структурных и взаимосвязанных ошибок.

Почему же тот же гугл очень не охотно идёт на контакт в плане обмена технологиями и методами работы в своих пользовательских картопроектах с участниками других проектов, а предпочитает организовывать регулярные семинары для полных нубов, разжёвывая каждый раз с нуля то, что казалось бы не нужно было бы объяснять тем, кто уже был знаком с основами “пользовательской картографии”? Всё просто - обучить правильно группу школьников проще и результат в итоге будет качественней, чем передалбливать сомны догматических заблуждений закоренелым маперам, которые уже завесили свой мозг непробиваемыми шорами и подписали свои все свои догмы как “аксиома №1, №2” и т.д., даже не предпринимая более попыток анализировать картину абстрагируясь от устоев.

Сразу замечу, что при более правильном и экономичном подходе в организации работ, у того же гугла в районе пользовательской картографии есть свои, специфичные ему родовые травмы, которые тоже не делают из него конфетку, но речь не об этом.

Можно ли сейчас использовать проект ОСМ как полноценный и достоверный источник геопространственных и справочных данных? Напрямую - нет. Ни как достоверный, ни как полноценный. По крайней мере актуально нельзя получить. Требуется процесс несколькоуровневой ревалидации данных на реальных, а не синтетических тестах, построенных по реальному шаблону применения данных. Это и полнота и взаимосвязанность данных и роутинговые тесты и логические структурные тесты. Чем больше тестов - тем больше времени, зачастую ручного времени, тем меньше актуальность данных. По статистике и общей практике 80% времени тратится на приведение косяков в норму, откат вандализма, структурирование данных, 15% на обработку отвалидированных данных с целью получения конечного результата и только 5% на добавление новой информации в проект.

Если нужны самые актуальные данные, то ни о какой достоверности уже речи не может идти. Сам по себе этот компромисс в проекте ОСМ смещён строго в сторону актуальности. Т.е. беря данные напрямую из проекта, вы всегда берёте самые актуальные данные с всем самым актуальным вандализмом, без какой либо претензии на адекватность данных.

Если ваш проект чуть крупнее чем маленькая самосборка на коленке, то для вас такая актуальность уже не так важна как качество выходных данных, а значит вы уже по определению будете тратить время на постобработку и ревалидацию данных, почти независимо от сроков выполнения этой процедуры. Такая модель (модель ступенчатых фриз-релизов после серии QC тестов) знакома разработчикам ПО и стандартна в рамках работы любого крупного издателя конечного продукта. Модель же роллингового развития продукта характерна для большинства децентрализованных, не-production-ориентированных проектов.

Что делать, если всё таки есть желание использовать ОСМ как источник данных? Вводить двухуровневую систему. Брать данные из ОСМ, определять для себя и своих потребностей два вида критериев достоверности данных: 1) структурные ошибки, которые могут быть исправлены только в самой базе ОСМ; 2) нормализация и генерализация даннных, не требующая внесения изменения даннных в самом проекте ОСМ, а выполняемая на копии локальных данных. После проведения этих двух этапов необходимо определить перечень и объём QC тестов и планомерно достигать полного их прохождения, путём внесения изменений в сам проект ОСМ и копии изменений в локальные данные, а так же возможно и внесение изменений в методы нормализации и генерализации. Если же объём изменений самих данных велик, то возможно придётся спустя некоторое время заново взять полный объём данных из ОСМ и заново запустить процесс итераций по нормализации локальной копии данных.

Почему это нельзя сделать в проекте целиком? Потому что ОСМ - это всего лишь набор данных, без привязки к конкретному конечному использованию, а методы нормализации данных всегда жёстко завязаны на конечный выходной продукт, следовательно все постобработки возможны только персонально под каждый конкретный конечный продукт, т.е. говоря другими словами: ОСМ - всегда только полуфабрикат без этикетки, остальное - самостоятельно напильником, газовым ключём и изолентой.

Что нужно проекту сейчас от его активных участников?

  1. Самое главное, давайте периодически постараемся быть школотой и забудем ненадолго о придуманных нами же догмах, а подумаем о предмете нашего труда абстрактно, в целом, с нуля. Что бы увидеть главное, иногда надо отойти в сторону и взглянуть издалека. Многие аксиомы в таком случае теряют свой определяющий фактор и начинают казаться искусственными.

  2. Давайте не будем превращать базу ОСМ в “локальную копию данных” под свой конечный продукт, доводя до абсурда некоторые вещи и вводя в аксиомы искусственные ограничения отдельных продуктов и распространяя это на весь набор данных.

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

Кирово-Чепецкий велоклуб «Сотня» с подачи и начинания ОО «Минское велосипедное общество» стартует свой проект по мониторингу велопроишествий, ориентированный на Кировскую область и республику Удмуртия:

http://crash.velo100.ru/

Проект основан на той же кодовой базе, что и Минский проект crash.bike.org.by но только ориентирован на другую географическую аудиторию.

Запущен, пока что только в тестовом режиме, рендер на базе mod_tile/renderd с покрытием на всю Россию: http://чепецк.net

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

Данные по состоянию до коматозного периода ОСМ, т.е. на 1 апреля. Обновление данных планируется приблизительно раз в неделю сразу на всю страну (но только когда выгрузка планеты оживёт, если вообще оживёт).

Что-то я не вижу той воодушевлённой толпы мапперов, которая год назад кричала “пускай hint всё удаляет и своё и чужое, пофигу, всё с нуля нарисуем за неделю!”. Прошёл год, ничего не изменилось. Так по прежнему ничего кроме конькобежного центра, нарисованного мною по строительным планам, на карте нет.

Location: Коломна, городской округ Коломна, Московская область, Центральный федеральный округ, Россия

Мне нравятся перекрёстки в новых картах гугля, особено Воровского-Большевиков в Вятке (известной у коммунистов как "Киров").

Ну и конечно, несуществующий мост через Вятку, заботливо взятый с роскартографии бережно перенесён и в новую картооснову.

Location: Красный Химик, Первомайский район, Киров, городской округ Киров, Кировская область, Приволжский федеральный округ, 610000, Россия

Что бы не поломать сайт локальным хаброэффектом, анонсирую сюда с некоторой задержкой.

Ежедневно обновляемая карта для навигаторов Garmin, на базе выгрузок gis-lab.info в виде всей страны одним файлом и отдельно Кировская область + Удмуртия с контурами высот по своему полигону обрезки из дампа всей России. Сборка производится mkgmap-ом, версия которого поддерживается актуальной из транка не реже чем один-два раза в месяц. На сервере карта выкладывается ежедневно в районе 10 часов утра.

Карта позиционируется как универсальная навигационная с упором на туризм и без выкидывания всех "излишних" объектов с карты и отображением основных топографических объектов.

Карта ориентирована на приборы серий 62, Colorado, Dakota, Oregon, Etrex30, Montana, Edge800.

Страница загрузки карты: http://velo100.ru/gps/download
Скриншоты на разных зумлевелах: http://velo100.ru/garmin_screenshot

Обсуждение, вопросы, замечания: http://velo100.ru/forums_2 или http://forum.openstreetmap.org/viewtopic.php?id=15613

Количество мапперов, отметившихся в полигоне города неуклонно растёт, но количество правок от них по прежнему остаётся на том же уровне, т.е. ~0%

Location: 22-й микрорайон, городской округ Кирово-Чепецк, Кировская область, Приволжский федеральный округ, Россия