Москва: импорт данных по уличным часам из портала открытх данных

Тогда прошу Вас описать принцип обновления без ref:data.mos.ru.

Именно для часов оно не так остро, а вот когда пойдут уличные столбы из соседнего перечня, то критерий удаления(сноса столба)/смены модели или типа светильника для столба может оказаться не очень ясным. Насколько хорошо предполагать что не дальше 5 метров от указанной точки есть часы/столб с source=data.mos.ru ? Как пользователи ОСМ мы же имеем право уточнить часы или столб? И подвижки явно будут.

Ув. literan, согласно основному перечню импорта https://github.com/mkgrgis/OSM_clock_mos часов на Барышихе нет.
Согласно двум вспомогательным перечням для ручных правок такие часы есть в списке для ручной доработки https://github.com/mkgrgis/OSM_clock_mos/blob/main/Часы%20уже%20есть.geojson

Первая ссылка в теме, соответсвующий параграф https://wiki.openstreetmap.org/wiki/RU:Москва/Импорт_уличных_часов_Моссвет#.D0.A2.D0.B5.D0.B3.D0.B8.2C_.D0.BA.D0.BE.D1.82.D0.BE.D1.80.D1.8B.D0.B5_.D1.81.D1.82.D0.B0.D0.B2.D0.B8.D0.BC_.2F_Tagging_Plans

извините, я не IT-специалист, по ссылке вижу какую-то программу или скрипт. Тегов не вижу.

точку вижу, но опять же теги, которые предполагается добавлять к существующей точке, не вижу.

У меня тоже это первое нечто в PostGIS, учусь IT. Это скрипт SQL.

Из п.2 извлекаю набор тегов
“ref:data.mos.ru”, “clock:model”, rating, operator, visibility, display, support, source, amenity. Правила их значений см. в п.2.

Доработка тегов точек не будет автоматизирована, есть коллега, который поможет раскидать совпадения в ручном режиме. О плане импорта см. главу “Процесс-алгоритм слияния данных / Data Merge Workflow”, где всё указано.

Точно так же как и сейчас вы совмещаете данные мос.ру и существующие в ОСМ (вы же это делаете, да?).
Хотя походу нет, прочитав ваш пункт

я вижу, что там нет о процессе магии

ваш полученный geojson + текущий OSM => необходимые изменения в OSM отправляемы на сервер

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

Да, ибо их совсем немного так как в Москве сейчас мало как часов, так и уличных столбов.

Да. Это прямо и написано. https://wiki.openstreetmap.org/wiki/RU:Москва/Импорт_уличных_часов_Моссвет#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8_.2F_References

Эксперементальная слепая выборка нескольких точек из разных частей набора и сверка по панорамам как написано в https://wiki.openstreetmap.org/wiki/RU:Москва/Импорт_уличных_часов_Моссвет#.D0.9E.D0.A2.D0.9A_-.D0.BF.D1.80.D0.BE.D0.B2.D0.B5.D1.80.D0.BA.D0.B0.D0.BA.D0.B0.D1.87.D0.B5.D1.81.D1.82.D0.B2.D0.B0_.2F_QA вызывает вопросы? Может ли такая методология считаться непреемлимой? Если нет, то Вы вправе сообщить свои результаты по некоторому количеству случайно выбранных добавляемых часов относительно OSM и панорам разного происхождения.

Среднее отклонение по размеченным часам близко к 4м, Вы можете его вычислить самостоятельно в представлениях, код которых описан и на странице импорта, и в репозитории.

Сейчас, так скажем, привязки как такой нет. Проверяю OSM в 17 метрах на часы и в 5 метрах на уличный столб. Если что-то есть, то считаю что это наш объект. Но без ref сложно понять то или не то. Только полагаться на теги в данной окрестности того, что официально опубликовали. Как здесь отслеживать удаление часов ума не приложу. С набором столбов проблема удалений будет более острой, так как их действиетльно много. Поэтому логику лучше обсудить уже сейчас. Для масштабирования так сказать.
При удалении часов в окрестности ничего не будет, но ведь часы не только Моссветовские бывают… Надёжность привязки без ref мне не кажется достаточной. Если знаете как удачно решить пробелму удалений (и обновлений), то прочитаю с удовольствием. Достоверность скрипта с ref:data.mos.ru кажется мне абсолютной в указанном контексте задачи.

Ув. freeExec, не подскажите, каков типичный срок вылёживания исправленных документов по экспорту на форуме? Когда считается, что самое время отправлять на Talk-ru и Imports?

От коллеги, занимающегося проверкой данных:

не понимаю, еще и столбы какие-то собираетесь импортировать? выше же речь была про часы.

может, не надо нам столбы с точностью “многометров”?

обсуждение пока не закончилось. “вылеживание” будет когда несколько дней комментариев не будет (все желающие выскажутся). По импортам спешка точно не нужна.

Хорошо, будем считать, что координаты внушают доверия.

Так как самого ref на столбе нет, то это филькина грамота, которая ни чем не подтверждается и по сути к самому объекту не относится и любой желающий может туда вписать что угодно, хоть привет маме.
И тут два варианта, либо мы можем сопоставить объект с данными и утверждать, что ref не верен, но тогда зачем этот ref если других косвенных признаков достаточно для идентификации (ведь он нужен только для этого).
Либо не можем и тогда ref в общем-то не помощник, а только ухудшает ситуацию, ибо любой может изменить, передвинуть, удалить. Скрипт радостно рапортует что всё ОК, а по факту кто-то скопировал объект и теперь их 3 одинаковые штуки. Кто-то решил, что это не тот объект и утащил его в другую сторону. Т.е. полагаясь на номер мы уже не контролируем данные и соответственно в данных развивается бардак и несоответствие.

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

Неделю как минимум стоит подождать, может кто-то заходит на форум только по выходным.

Такие исключения придётся хранить у себя, что вот те координаты в данных не верные, и надо использовать для соответствия такие. И это мы только координаты смогли проверить, а ещё не можем определять электрическую мощность (кстати зачем оно нужно нам?) и типы часов по внешнему виду, я уверен в этих данных ошибок ещё больше.

В общем импорт это всегда не про открыл данные нажал выгрузить.

По своему прошлому проекту знаю, что самое сложное в слиянии 2 баз: это нормализация данных (если данные хранятся в разных форматах) и проверка на ошибки (чтобы не объединять разные объекты в один, проверка на дублирование, проверка в какой базе более точные и актуальные сведения и так далее). Задача сложная и мне самому интересно посмотреть на результат импорта.

Просьба, пришлите пожалуйста файл .osm, который вы хотите заливать в базу. Это самый удобный способ проверки импорта на этапе проверки.

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

Точно не надо. Надо на примере часов понять какая точность будет допустимой для часов, а, потом, и для столбов.

Да, проверяемая на местности маркировка часов или столбов отсутствует. Как и рек по водному реестру, как и объектов культурного наследия по ЕГРОКН…
Если примеряться к столбам, то там нередко есть носитель RFID с каким-то номером, но он на высоте ок. 3 м и явно не относится к проверяемым картографами. Значит как часы, так и столбы оставляем без ref:data.mos.ru.

Согласен. Буду опираться только на совпадение до некоторого радиуса с нужным объектом + operator=Моссвет. Ref исключаю из выгрузки.

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

Создам таблицу и обновлю документацию по импорту.

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

Его нет в природе. См. https://wiki.openstreetmap.org/wiki/RU:Москва/Импорт_уличных_часов_Моссвет#.D0.A0.D0.B5.D0.B7.D1.83.D0.BB.D1.8C.D1.82.D0.B0.D1.82.D1.8B_.D0.BF.D1.80.D0.B5.D0.BE.D0.B1.D1.80.D0.B0.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D1.85_.2F_Data_Transformation_Results Речь идёт только о полном добавлении новых данных. Увы, конфликты проще решить руками, так их мало.
Если Вам, ув. Grass-snake, известно, что JOSM может генерировать фалы измнений, прошу сообщить об этом. На первый взгляд функционал не обнаружил, документацию совсем плотно не ковырял.

Прежде всего от себя хочу написать, что есть альтернативный вариант: использовать уже готовое решение. Например, мне очень понравилась библиотека Osmapi для Python. Обратите внимание на неё, она может сильно упростить жизнь. Мне очень понравилось получать нужные мне объекты (единичные) через неё. Ещё она может загружать данные в OSM, но этот вариант я на практике не проверял.

Сам хотел заняться импортом, даже начал писать скрипт на Python. Хотел создавать osm-файл, который заливал вручную через JOSM. Тоже читал документацию, понял что ничего не понял и решил действовать методом тыка (но это костыльный способ, на практике не проверял, у меня не дощло до импорта на этапе проверки имеющихся объектов в OSM):

  1. Открываю сайт OSM и иду какой-нибудь отдельностоящий дом. Приближаю до максимума и уменьшаю размеры экрана чтобы на экране (примерно вот так):
  2. Нажимаю кнопку “Экспорт” (сверху). Далее, не меняя размера экрана, синюю кнопку “Экспортировать”. В резальтате мы должны получить файл “map.osm”.
    2.1. Не обязательно: открываем в блокноте этот файл и смотрим что получили. В идеале чтобы там были только те объекты, которые нужно изменять, например для здания 4 node + 1 way
  3. Делаем копию файла (изначальное состояние, которое не трогаем и новую версию, которую будем изменять в следующих пунктах).
  4. Открываю JOSM, ничеге не скачиваю, открываю файл (либо кнопка с синей папкой в верхнем меню, либо Файл→Открыть, либо Ctrl+O). В резальтате мы должны увидеть на экране нашу скачанную область.
  5. Изменяем что-нибудь в JOSM в зависимости от требований, например:
  • двигаем какую-нибудь точку
  • добавляем какой-нибудь тег к уже существующему объекту
  • изменяем существующий тег
  • удаляем существующий тег
  • добавляем новый объект (например, новую точку)
  • меняем существующую линию (например, добавляем в неё новые точки)
  • удаляем объекты
  1. Не отправляем сделанные изменения. Сохраняем изменения (либо кнопка с дискетой в верхнем меню, либо Файл→Сохранить, либо Ctrl+S).
  2. В результате мы должны получить 2 файла, которые отличаются друг от друга сделанными изменениями. Открываем оба файла и смотрим, что изменилось.

Дополнительное упражнение для проверки (чтобы убедиться, что способ рабочий), делаете на свой страх и риск:

  1. Скачиваем любую небольшую область, которую знаем.
  2. Делаем копию (бэкап) файла.
  3. Открываем файл в JOSM, делаем какое-нибудь полезное изменение:
  • добавляем какой-нибудь тег к имеющемуся зданию (почтовый индекс, этажность)
  • изменяем существующий тег
  • добавляем какой-нибудь объект (например, магазин)
    …и так далее.
  1. Сохраняем изменения на диск.
  2. Отправляем на сервер и (если всё прошло успешно), убеждаемся что всё прошло нормально.
    От себя хочу заметить, что передавать в OSM нужно только те объекты, которые Вы меняете

Реальная практика (сначала нужно сделать на тестовом сервере OSM)

  1. Скачиваем какую-нибудь область.
  2. Пишем скрипт который будет что-нибудь добавлять или изменять.
  3. Скармливаем скрипту файл и получаем изменённый файл на выходе.
  4. В первые разы нужно вручную проверить, что изменения верные и ничего не сломалось. У меня на отладку ушло несколько часов.
  5. Пытаемся загрузить изменения в базу. Разумеется, для начала нужно начать с тестового сервера.
    Я до этого ещё не дошёл, забил.

Зачем тут пункты 1 и 2, почему сразу не начать с жосма и загрузки нужной области?

Коллеги, обновил систему представлений для вычисления импорта https://wiki.openstreetmap.org/wiki/RU:Москва/Импорт_уличных_часов_Моссвет#.D0.92.D1.8B.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.8D.D0.BA.D1.81.D0.BF.D0.BE.D1.80.D1.82.D0.B0. Название представлений начинаю с № вычислительного этапа и сортирую представляния строго по необходимости для последующих вычислений.

Изучаю JOSM по подсказке ув. Grass-snake и Osmium с точки зрения генерации файлов измнений. .osm для импорта получил, но он какой-то неполноценный вышел.

Пришлите пожалуйста файл и почему считаете неполноценным?

Кстати, предлагаю перейти на ты.

Присылаю
https://github.com/mkgrgis/OSM_clock_mos/blob/main/Экспорт%20часов.osm
Считаю неполноценным, т. к. заголовки и ветви расходятся с форматом https://wiki.openstreetmap.org/wiki/OsmChange

Без проблем, Grass-snake!

А как ещё избавляться от дублей?

Могу ошибаться (поправьте меня кто знает), но вроде формат OsmChange существует для диффов, то есть когда сервер присылает нам те изменения, которые произошли за определённый период времени.
Если мы загружаем из JOSM в базу OSM, то нужно использовать JOSM file format. Тут меняется параметр: для новых объектов просто отрицательный id (уникальный, это важно), а для существующих объектов указывается действие action=‘modify’ при изменении или action=‘delete’ при удалении.