You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1526 2013-10-13 18:19:48

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 4,030

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

А вот интересено, насколько нормальным является наличие точек-дубликатов (две точки с абсолютно одинаковыми координатами) в ОСМ? Для моего алгоритма критично что две точки имеют разные координаты если у них разные id. Но проверка объектов АТД на предмет дубликатов показала что их порядка 80. Некоторые из них весьма древние, т.е. существовавшие и во времена работы прежнего валидатора:

Изменено: Чт, 19 янв. 2012, 06:58:34 +0000

Теги:
    addr:country = RU
    addr:district = Краснокамский район
    addr:region = Башкортостан республика
    cladr:code = 0203100005900
    name = Староянзигитово
    place = hamlet

Координаты:
55,7974035, 54,0878649

http://www.openstreetmap.org/browse/node/1597340459

Изменено: Чт, 19 янв. 2012, 07:04:51 +0000

Теги:
    addr:country = RU
    addr:district = Краснокамский район
    addr:region = Башкортостан республика
    cladr:code = 0203100005900
    name = Староянзигитово
    place = hamlet

Координаты:
55,7974035, 54,0878649

http://www.openstreetmap.org/browse/node/1597342660

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


Бывший редактор ОСМ

Offline

#1527 2013-10-13 18:30:48

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,817

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

fserges wrote:

Считать что сдвоенные точки это нормально для ОСМ или всё-таки выдавать ошибки?

Это ошибка, такие точки показываются в keepright, к примеру.

Offline

#1528 2013-10-13 20:46:06

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 9,368

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

fserges wrote:
wowik wrote:

дефолтная роль outer

Дефолтный когда?.

Outer для линии применим, про них и речь

Offline

#1529 2013-10-21 17:18:54

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 4,030

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

Alexandr Zeinalov wrote:
fserges wrote:

Ну для этого нужно знать что такое PostGIS smile Изучение SQL и PostGIS боюсь займёт у меня гораздо больше времени нежели решение частной задачи не оптимальным образом.

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

Более того, PostGIS даёт возможность использовать геометрические индексы, что для немалого количества сложных задач очень помогает.

Вчерне основные геометрические проверки сделаны, теперь нужно всё тестировать и выверять. Учитывая имеющееся свободное время это не задача ближайших дней. Забавно, но проверка на вхождение точки в полигон России или региона оказалась самой простой из задач. Это линейная задача и алгоритм отрабатывает моментально. А затык оказался в в алгоритме проверки самопересечений. У меня это квадратичный алгоритм (каждый сегмент проверяется на пересечение с каждым другим сегментом), а это уже серьёзные числа! Контур Московской области это более 21 тысячи точек, соответственно квадрат этого числа это около половины миллиарда операций. Конечно это грубая оценка, при помощи оптимизаций я могу ускорить алгоритм, но не более чем на порядок. Текущий алгоритм проверяющий на вхождение точки в полигон России отрабатывает доли секунды тогда как неоптимизированная проверка самопересечений мультиполигона Московской области у меня проработала 26 минут smile Кто знает как быстро проверить самопересечение мультиполигона России (почти 68 тысяч точек)? Точнее для мультиполигона размера России ... Квадратичный алгоритм это плохая идея ...


Бывший редактор ОСМ

Offline

#1530 2013-10-21 17:28:51

citrin
Member
From: Moscow
Registered: 2008-11-09
Posts: 413
Website

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

fserges wrote:

Кто знает как быстро проверить самопересечение мультиполигона России (почти 68 тысяч точек)?

Тут https://en.wikipedia.org/wiki/Bentley%E … _algorithm в конце статьи есть ссылки на разные алгоритмы для этой задачи.

Offline

#1531 2013-10-21 17:52:47

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 4,030

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

citrin wrote:
fserges wrote:

Кто знает как быстро проверить самопересечение мультиполигона России (почти 68 тысяч точек)?

Тут https://en.wikipedia.org/wiki/Bentley%E … _algorithm в конце статьи есть ссылки на разные алгоритмы для этой задачи.

Да, спасибо, что-то подобное в голову и лезло, но в статье более формальное описание алгоритма.


Бывший редактор ОСМ

Offline

#1532 2013-10-22 03:17:11

lenux
Member
Registered: 2011-12-06
Posts: 672

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

fserges Эх... а я уж сам тут начал писать : ) .  Какую базу днных используешь для проверки списка деревень и улиц?
Вообще я покапашился c фиасом если буду вопросы  welcome на irc : ) там кодинга на день.
Полагаю , что http://gis-lab.info/docs/postgis/manual/ch06.html функция ST_Intersects(geometry, geometry) как решит твою проблему насчёт пересечений и отработает очень быстро : )

Offline

#1533 2013-10-22 13:07:56

citrin
Member
From: Moscow
Registered: 2008-11-09
Posts: 413
Website

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

lenux wrote:

функция ST_Intersects(geometry, geometry) как решит твою проблему насчёт пересечений и отработает очень быстро : )

Поскольку речь идет о самопересечении, функция нужна другая:
ST_IsSimple(geometry)

    Возвращает 1 (TRUE), если геометрия не содержит аномальные геометрические точки. Под аномальными понимаются такие точки, как точки самопересечения или самокасания.

Но похоже в PostGIS нет функции, которая возвращает координаты самопересечения (внутри GEOS это есть)

Offline

#1534 2013-10-22 13:30:57

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

citrin wrote:

Но похоже в PostGIS нет функции, которая возвращает координаты самопересечения (внутри GEOS это есть)

А вот это не она?
http://postgis.org/docs/ST_IsValidDetail.html
(я не в теме, только погуглил)

Offline

#1535 2013-10-22 15:01:42

citrin
Member
From: Moscow
Registered: 2008-11-09
Posts: 413
Website

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

akks wrote:

А вот это не она?
http://postgis.org/docs/ST_IsValidDetail.html
(я не в теме, только погуглил)

Судя по описанию - то что нужно.

Offline

#1536 2013-10-22 21:43:04

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 4,030

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

Хм, а разве JOSM не проверяет самопересечение границ? Мой валидатор сказал что отношение Новоселицкого района Ставропольского края имеет самопересечение. Я его скачал в JOSM (http://www.openstreetmap.org/browse/relation/1030124), попросил отчёта от JOSM-овского валидатора ... и всё нормально (за исключением того что ему не понравилась коллекция районов Ставропольского края, что вообще-то ерунда).

Но пристальный взгляд на отчёт привёл к точке рядом с которой обнаружилось самопересечение - http://www.openstreetmap.org/browse/node/1482270216

Собственно вопроса два:

1) Почему JOSM молчит? Он смолчал и когда я попросил выгрузку на севрер.
2) Самопересечение этого района имеет место быть уже как минимум почти год - такого рода ошибки не принципиальны для ОСМа?

И кстати да, если кто знает как рисовать границу правильно - исправьте, пожалуйста smile


Бывший редактор ОСМ

Offline

#1537 2013-10-22 22:14:28

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,817

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

fserges wrote:

1) Почему JOSM молчит? Он смолчал и когда я попросил выгрузку на севрер.

Там вроде нет таких проверок.

fserges wrote:

2) Самопересечение этого района имеет место быть уже как минимум почти год - такого рода ошибки не принципиальны для ОСМа?

Дело в том, что в OSM геометрическая модель более низкого уровня абстракции по сравнению с моделью OGC и из одной геометрии не всегда понятно ошибка это или нет. К примеру, если линия обозначает линейный объект - то самопересечение это не обязательно ошибка. Соответственно валидатор в OSM может проверять только конкретные наборы тегов, про которые он знает что они обозначают. В OGC линейные и площадные объекты - это разные типы геометрий, поэтому там этой проблемы нету.

А принципиальны эти ошибки или нет - это уже зависит конкретного конвертера, кому-то принципиально, кому то - нет. К примеру, мапнику самопересечение вроде непринципиально, а границы он вообще вроде как считает линейными объектами, судя по тому как он их рисует. smile

Offline

#1538 2013-10-23 02:53:22

lenux
Member
Registered: 2011-12-06
Posts: 672

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

fserges wrote:

2) Самопересечение этого района имеет место быть уже как минимум почти год - такого рода ошибки не принципиальны для ОСМа?

Я бы ответил не сколько иначе предыдущего поста. Нет ошибок не принципиальных и  серьёзных.  Есть просто ошибки. Другой вопрос лишь в том насколько они быстро находятся. К примеру на нахождение этой ошибку ушёл год wink . + Вполне вероятно она образовалась путём действий redaction bot . Поэтому из-за того что некоторым  конверторам она не принципиальна узнать о её существовании просто не откуда.

Offline

#1539 2013-10-26 11:21:08

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 4,030

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

Вопрос концептуального плана ... Никогда не считал что управленческие округа Свердловской области являются объектами иерархии АТД. Но у нас они - часть официальной АТД. Насколько это корректно?

Горнозаводской управленческий округ — административное формирование на территории Свердловской области, не являющееся административно-территориальной единицей. Центр округа — город Нижний Тагил.

Округ образован в 1997 году. Площадь округа составляет 15 576,3 тыс. км². Численность населения — 644,9 тыс. человек. Управляющий округом — Ершов Михаил Павлович.

В соответствии с областным законом от 22 июля 1997 года № 45-ОЗ «О Горнозаводском управленческом округе» под управленческим округом понимается часть территории Свердловской области, на которой осуществляется координация деятельности исполнительных органов государственной власти Свердловской области, действующих на его территории, анализ и прогноз социально-экономического развития входящих в округ административно-территориальных единиц, имеющих близкие природно-географические условия, ресурсный потенциал, уровни развития промышленности и социальной инфраструктуры, транспортную доступность, финансовые возможности и численность населения. Самостоятельная система органов государственной власти в округе не образуется

http://ru.wikipedia.org/wiki/%D0%93%D0% … 1%83%D0%B3

Зачем делать так:

admin_level = 5
boundary = administrative
name = Горнозаводской управленческий округ
type = boundary

http://www.openstreetmap.org/browse/relation/1469697

По смыслу это некоторое управленческое образование типа военного округа или экономического района.

Или это из-за ANY_TAG_YOU_LIKE?


Бывший редактор ОСМ

Offline

#1540 2013-10-26 11:36:58

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 8,547

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

Ну 5 уровень не верно. Я не знаю, что такое "управленческий округ". По идее если и надо то тут явно admin_level=9

Offline

#1541 2013-10-26 13:27:59

lenux
Member
Registered: 2011-12-06
Posts: 672

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

fserges краткое ознакомление с управленческими округами и т.д. у нас есть схема http://wiki.openstreetmap.org/wiki/Admin_level  в принципе 5-ый пункт:  Объединения муниципальных районов / городских округов, административные округа / районы городов федерального значения . Впринципе я бы отнёс это к объединению муниц. районов. Однако(!) перед ними стоит 4-ый admin_level, т.е. действие как бы внутри области и округа (т.е. скорее это уже местная власть не государственная), а в приведённом абзаце тобою сказано, что власть государственная. Таким образом это ближе к другому делению. Так что обозначение как элемента в том ракурсе что ты спрашиваешь я думаю не верно. Выпиливать или нет - хз, но что я думаю не правильно обозначено (или не удачно вставленно в сущ схему)  - 99% или всё правильно и 5-ый лвл это гос власть?

Last edited by lenux (2013-10-26 13:28:56)

Offline

#1542 2013-10-26 13:29:32

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,817

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

lenux wrote:

Выпиливать или нет - хз

Выпиливать не нужно, а вот теги поменять на более удачные - вполне. Главные вопрос - на какие менять?

Last edited by Sergey Astakhov (2013-10-26 13:30:07)

Offline

#1543 2013-10-26 13:41:44

StreloG
Member
Registered: 2010-06-30
Posts: 592

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

9-й р-ны внутри города (или их 10 надо? там еще пара подделений вниз есть) http://www.openstreetmap.org/browse/relation/1603128
6-й го нт http://www.openstreetmap.org/browse/relation/1317756

По идее если и надо то тут явно admin_level=9

и будет 6 внутри 9
т.ч. если и переделывать, то имхо просто admin_level = 5 удалить
если будет аргументированное обоснование, мы вообще за любой кипеш, окромя голодовки smile
http://wiki.openstreetmap.org/wiki/RU:Key:boundary

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

Last edited by StreloG (2013-10-26 13:49:16)

Offline

#1544 2013-10-26 13:47:08

lenux
Member
Registered: 2011-12-06
Posts: 672

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

Вообще предлагаю пока что ничего не править : D
Будет валидатор - будут правки)))

Offline

#1545 2013-10-26 13:47:40

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 8,547

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

Насколько я вижу (http://wiki.openstreetmap.org/wiki/RU:Ошибки_границ) 5 уровень используется только в городах федерального значения (Москва и Питер).

Offline

#1546 2013-10-26 13:51:23

StreloG
Member
Registered: 2010-06-30
Posts: 592

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

а у нас только свердл. обл отличилась с адм. округами их и попытались как-то притянуть

т.ч. если и переделывать, то имхо просто admin_level = 5 удалить

Last edited by StreloG (2013-10-26 13:52:13)

Offline

#1547 2013-10-26 20:52:25

StreloG
Member
Registered: 2010-06-30
Posts: 592

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

Суб-муниципальные уровни; admin_level = 10; Территориальные органы управления (если таковые имеются);
насколько правильно на всех деревнях, да граница на них в основном от балды, либо кадастровые кварталы не пойми чего?
freeExec сколько таких?

Offline

#1548 2013-10-26 21:11:52

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 4,030

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

StreloG wrote:

Суб-муниципальные уровни; admin_level = 10; Территориальные органы управления (если таковые имеются);
насколько правильно на всех деревнях, да граница на них в основном от балды, либо кадастровые кварталы не пойми чего?
freeExec сколько таких?

admin_level = 10 в russia.osm встречается более 1000 раз. Но я ещё не дошёл до обработки этого уровня.


Бывший редактор ОСМ

Offline

#1549 2013-10-27 05:02:02

lenux
Member
Registered: 2011-12-06
Posts: 672

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

Судя по статистике встречается 41к раз, всего населённых пунктов в России около 150к . Но ещё не известно сколько из этого действительно  замаплено правильно. Да и в целом не очень понятен смысл обрисовки деревни по административной границе из трёх домов. Деревня будет 1,5км на 400 м. А граница её все 3км на 3 км.  fserges я думаю, что его целенаправленно обрабатывать не надо. Т.к. деревни внутри какого то района будут точками. Потом поиск полигонов с таким же place   и name и вот этот полигон я бы приравнял к 10-ому(если есть необходимость). В то время как для границ городов не входящих в границы мун районов, там идут два отношения, одно города, а другое городской округ *** + b=a +a=6 wink Да и в текущий момент нет источника для адм границ деревень

Offline

#1550 2013-10-27 07:25:00

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 4,030

Re: Проверялка границ по ОКТМО, НП по ОКАТО и улиц по КЛАДР

Мне иногда кажется что валидатора у нас никогда и не было ... Вот так выглядит отношение "Салехард", центра Ямало-Ненецкого автономного округа:

admin_level = 6
boundary = administrative
name = Салехард
type = boundary
Участники: Точка Салехард (176957217) в роли admin_centre

http://www.openstreetmap.org/browse/relation/1445792

На этом отношении посыпался мой алгоритм поиска внутренних точек так как по тегам это валидный объект АТД 6-го уровня (районы и городские округа) но в нём нет КОНТУРА! Последний раз объект правился аж 31 марта 2011 и никаких наездов redaction бота на нём незаметно. И никто за 2.5 года такой глючный объект даже не заметил!

А теперь сравните с правильным объектом созданным Александром Дежиным - http://www.openstreetmap.org/browse/relation/1761336 - всё тоже самое только есть КОНТУРЫ.


Бывший редактор ОСМ

Offline

Board footer

Powered by FluxBB