Нормализация данных (пилотный проект — Спб и ЛО)

ИМХО, рисуют landuse=fores бездумно обводя именно лес, исключительно по причине кривого рендеринга таких территорий мапником. По идее-бы рендер landuse=forest и natural=wood поменять местами, или даже землепользование сделать ещё более тусклым, как всё остальное землепользование. Сейчас-же landuse=forest отрисовывается пышным зелёным лесом с ёлочками иль сосенками.

А по-моему, корень путаницы состоит в том, что в джосм лэндюз=форест переведён на русский язык как лесопосадки.

Раньше там вообще было landuse=forest - “Лес”, natural=wood - “Лесистая местность”. Потом я предложил поменять на текущий вариант. Если у вас есть лучшие предложения - welcome в тему о русификации JOSM.

Надо сказать, это далеко не самый худший вариант.
natural=wood - лес,
landuse=forest - искусственные лесопосадки.
Что здесь нелогичного?
И какая предлагается альтернатива?

Обнаружил в Питере у многих building=yes наличие addr:street без addr:housenumber. Думаю, такую комбинацию тоже следует считать ошибкой.

andriano, такое реально бывает: дом приписан улице, но без номера (б/н)

http://forum.openstreetmap.org/viewtopic.php?pid=146740#p146740

Можно пример?

Можно пример из КЛАДРа?

а откуда в кладре номера домов???

Там есть диапазоны номеров, но их актуальность и аккуратность их заполнения – неизвестны.

По Питеру есть уже адресный валидатор от liosh-а :slight_smile: http://gis-lab.info/data/mp/addr/?base=rgis
Так что это проблема под контролем :slight_smile:

я ставлю addr:street без housenumber, когда знаю, что дом прописан по улице, но в номере не уверен. Это не ошибка. Так же, как building:levels без building=* — не ошибка.

С шестого уровня:

andriano, ты сам кладр посмотри, а не его описание :slight_smile:

Первые две итерации завершены. По нескольким регионам (Ленинградская, Московская, Новосибирская, Владимирская области, Краснодарский край) был составлен словарь тегов. 236 ключей и 927 значений довольно неплохо описывают реальность. Непонятными оказываются порядка 0.5% данных что для начала неплохо.

Хотел проверить - а как мой словарь работает на “буржуйских” данных. Но оказалось что их файлы .osm гораздо больше наших (даже файл Финляндии в 2 раза больше Москвы и Московской области) и вычислительные ресурсы оказались узким горлышком. Поэтому пришлось полностью переделать базу данных с точки зрения оптимизации. База данных из красивой и понятной превратилась в оптимизированную, в которой не особо то и разберёшься. Но в результате она стала меньше где-то на 30% да и скорость обработки выросла пропорционально. Для обработки стран средней величины уже должно хватить. Впрочем, для обработки крупных стран придётся делать ещё одну оптимизацию. Но там уже будет статистическая оптимизация, с преобразованием данных (идеология в духе алгоритма Хаффмана) и это уже будет перед промэксплуатацией, т.к. база будет что чёрт ногу сломит.

А сейчас работаю над сочетанием тегов. Задача полностью не разрешима в рамках идеологии OSM, но до некоторого практического уровня валидатор довести можно. Например, регулярно в данных находятся сочетания типа highway=* и building=yes и т.п.

Я в таких случаях ставлю “addr:housenumber=00” , очень удобно.
а) теги собраны правильно
б) наглядно на карте сразу видно что номер дома неизвестен (неточен) и проезжая мимо можно глянуть
в) опять же на карте видно, что это именно дом, а не скажем служебное здание или еще что-либо

Спасибо.
Вот здесь http://forum.openstreetmap.org/viewtopic.php?id=11467 я как раз столкнулся с тем, что существование записей такого вида входит в конфликт с концепцией, принятой для упаковки данных.
И придерживаюсь мнения, что в данном случаен имеет место умышленное искажение информации. Хотя для кого-то, это, возможно, и удобно.
На мой взгляд, отсутствие информации значительно лучше, чем искаженная информация. Из каких благих целей бы эта информация не искажалась.

А можно ознакомиться с этим списком?
И еще, из 236 ключей и 927 значений можно составить 218772 комбинаций. Каким образом определяется, какие из этих комбинаций допустимы, а какие - нет?
И каким образом обрабатывается ситуация, когда для определенного ключа допустимы произвольные значения?

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

По поводу комбинаций тегов. Полное решение задачи может и возможно теоретически, но по-крайней мере крайне сложно практически. Даже если предположить, что удастся всё подробно расписать относительно одного объекта, то придётся разбираться с комбинацией объектов. Взять тот же building=yes. Ничто не мешает навесить на контур здания shop=* или amenity=*. И каждый дополнительный тег может привнести свои собственные комбинации. В реальных данных на контур building=yes, например, ещё накладываются man_made, landuse, highway. Где проходит грань между допустимыми и недопустимыми комбинациями тегов, особенно если учесть что “any tag you like”? В файле Владимирской области, например, 17 зданий, они же landuse, 4 здания highway, 5 населённых пунктов помечены тегом layer, 105 веев имеют только тег addr:housenumber и ничего более (нет addr:street) и т.п. Вообще комбинации порой весьма причудливы :slight_smile:

Я придерживаюсь единственного рационального (с моей точки зрения) подхода - строю частотные таблицы и далее, сопоставляю сочетания с документацией. Если потенциально сочетание возможно (с моей точки зрения), то сочетание пропускается, если нет - то отбраковывается. Валидатор получается довольно грубым, но во многом это в силу свободности семантики языка OSM и трактовки правил. Нужно не забывать что и русском языке складывая валидные слова языка можно получить бессмыслицу, “мама ныла раму”. Но с другой стороны парадоксальные сочетания слов иногда имеют смысл, скажем, “папа глушил водку” :slight_smile:

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

Хотя валидатор будет запускаться только по СПб и ЛО, он обкатывается и на других странах. Недавно прогонял Бельгию. Хотя в планах нет глобальной экспансии, но разрабатывая сложную вещь нужно в архитектуру решения закладывать масштабируемость. Вдруг окажется полезным?

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