OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#51 2012-11-02 20:35:16

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

Sergey Astakhov wrote:

Это зависит от того, как использовать данные OSM.

Не зависит, ибо речь идёт о исправлении ошибок в данных, а не о костыляции.

Offline

#52 2012-11-02 20:46:30

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

К слову, хочу обратить внимание что в relation:route включаются именно станиции, а не stop_position. Так, убирать из маршрутов станции, добавляя stop_position - это ошибка. Чтобы с этим не было путаницы - ещё один из аргументов для разделения станций и stop_position.

Last edited by AMDmi3 (2012-11-02 21:10:52)

Offline

#53 2012-11-02 21:11:09

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

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:
Sergey Astakhov wrote:

Это зависит от того, как использовать данные OSM.

Не зависит, ибо речь идёт о исправлении ошибок в данных, а не о костыляции.

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

Last edited by Sergey Astakhov (2012-11-02 21:12:32)

Offline

#54 2012-11-02 21:40:28

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

Смысл моего начинания - найти ошибки, а не получить абы как работающий роутинг.

Offline

#55 2012-11-06 19:48:57

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

Доделал валидатор: http://amdmi3.ru/files/rail_routing/

Для каждой пары станций вычисляется путь в обе стороны, и перегон считается корректным, если:
- обе станции нашлись в базе (а это, напомню, точки на путях, либо с тэгами railway=station|halt + name=*, либо public_transport=stop_position + train=yes + name=*).
- между ними нашелся путь в обе стороны
- разница в длине пути в разные стороны не превышает 500м (запас на ж/д развязки типа такой: http://osm.org/go/04qFAfET-- , случаи когда платформы разных направлений смещены друг относительно друга, платформы разной длины и т.д.)
- путь не превышает 150km (вылавливает явно неправильные обходные маршруты и маршруты до станций с таким же названием но в другой части страны)

Кроме пар соседних станций, в проверке участвуют пары их конечные станции линий из ЕСР - они выделены жирным и ограничений на расстояние между ними не накладывается.

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

Замечание по исправлению: не поломайте маршруты, отцепляя станции от путей. Я не нашёл как в JOSM отцепить точку от линии, не создавая новой точки. Если например, сделать UnGlue ways на станцию которая есть в relation=route, будет создана новая точка, на неё перенесены тэги со старой (а с последней удалены), в отношении останутся обе точки, причём старая точка с ролью stop, а новая - с пустой role, и в конце списка членов (т.е. вдобавок можно потерять порядок станций). Пока не придумал ничего лучше чем вырезать из линии небольшой кусок, содержащий станцию, удалить его, а линию склеить обратно. Так станция останется и отношение не будет покорёжено.

Offline

#56 2012-11-06 22:01:17

Felis Pimeja
Member
Registered: 2010-10-27
Posts: 1,035

Re: Подготовка базы для ж/д роутинга

Отличные новости!
Реквестирую ЖосмоСсылки smile

Offline

#57 2012-11-07 04:32:33

Paspartu
Member
From: Владивосток
Registered: 2011-03-12
Posts: 318

Re: Подготовка базы для ж/д роутинга

Как часто валидатор будет запускаться?

Offline

#58 2012-11-07 07:01:24

Дмитрий Кудряшов
Member
From: Санкт-Петербург, Пушкин
Registered: 2010-06-15
Posts: 444

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:

Доделал валидатор: http://amdmi3.ru/files/rail_routing/

Для каждой пары станций вычисляется путь в обе стороны, и перегон считается корректным, если:
- обе станции нашлись в базе (а это, напомню, точки на путях, либо с тэгами railway=station|halt + name=*, либо public_transport=stop_position + train=yes + name=*)...

Правильно ли я понял - две stop_position - два name? Отношение остановка общественного транспорта для поиска имени не проверяется ?

Offline

#59 2012-11-07 14:27:23

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

Paspartu wrote:

Как часто валидатор будет запускаться?

Как всегда, раз в сутки.

Дмитрий Кудряшов wrote:

Правильно ли я понял - две stop_position - два name?

Да.

Дмитрий Кудряшов wrote:

Отношение остановка общественного транспорта для поиска имени не проверяется ?

Нет.

Offline

#60 2012-11-07 16:54:18

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

Felis Pimeja wrote:

Реквестирую ЖосмоСсылки smile

Сделал. Также сделал возможность посмотреть построенные маршруты.

Вот пример негодного маршрута, видимо из-за лишних oneway или отсутствующих перемычек:
http://amdmi3.ru/files/rail_routing/route_6200.html

Вот разорванные пути:
http://amdmi3.ru/files/rail_routing/route_2736.html
http://amdmi3.ru/files/rail_routing/route_10970.html

Вот что происходит в отсутствие stop_position на всех путях:
http://amdmi3.ru/files/rail_routing/route_5263.html

Last edited by AMDmi3 (2012-11-07 17:13:05)

Offline

#61 2012-11-07 17:13:20

dkiselev
Member
Registered: 2010-02-09
Posts: 3,362

Re: Подготовка базы для ж/д роутинга

http://www.openstreetmap.org/browse/node/975728293
Это огородная которая не находится вот тут http://amdmi3.ru/files/rail_routing/RU-SVE.html вроде halt как устаревший явным образом не помечен хотя и советуют public_transport использовать. Меняем?

И может halt тоже обрабатывать в таком случа но помечать их ворнингом?

Last edited by dkiselev (2012-11-07 17:13:55)


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#62 2012-11-07 17:15:34

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

dkiselev wrote:

http://www.openstreetmap.org/browse/node/975728293
Это огородная которая не находится вот тут http://amdmi3.ru/files/rail_routing/RU-SVE.html вроде halt как устаревший явным образом не помечен хотя и советуют public_transport использовать. Меняем?

И может halt тоже обрабатывать в таком случа но помечать их ворнингом?

halt обрабатываются также как и station, эта Огородная просто не привязана к пути.

Offline

#63 2012-11-07 17:16:47

dkiselev
Member
Registered: 2010-02-09
Posts: 3,362

Re: Подготовка базы для ж/д роутинга

Понял, не внимательно посмотрел.


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#64 2012-11-07 18:13:32

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

Re: Подготовка базы для ж/д роутинга

Еще было бы неплохо подложку мапника сделать немного по-прозрачней, а то маршрут теряется из виду.
Такой еще вопрос. С утра я поправил точку http://www.openstreetmap.org/browse/node/1864767264 вижу, что обновление роутера прошло сейчас вечером, но то ли я плохо поправил, то ли правки не дошли sad

Offline

#65 2012-11-07 18:33:23

Дмитрий Кудряшов
Member
From: Санкт-Петербург, Пушкин
Registered: 2010-06-15
Posts: 444

Re: Подготовка базы для ж/д роутинга

Ну вот, уже пошло рисование "под валидатор":
есть здание станции с тегами railway=station, на путях стоят public_transport=stop_position, так нет, ставят ещё точку на путях с тегом railway=station, к тому же не в месте платформы... sad

Offline

#66 2012-11-07 18:36:22

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

freeExec wrote:

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

Сделал маршрут шире и ярче.

freeExec wrote:

Такой еще вопрос. С утра я поправил точку http://www.openstreetmap.org/browse/node/1864767264 вижу, что обновление роутера прошло сейчас вечером, но то ли я плохо поправил, то ли правки не дошли sad

Дамп не обновлялся (дополнительно к обычному обновлению утром), так что да, пока не дошли.

Offline

#67 2012-11-07 20:17:53

one_half_3544
Member
Registered: 2009-02-24
Posts: 771

Re: Подготовка базы для ж/д роутинга

Дмитрий Кудряшов wrote:

есть здание станции с тегами railway=station,

А зачем там этот тэг? Может там достаточно buliding=train_station?

Offline

#68 2012-11-07 20:38:15

Дмитрий Кудряшов
Member
From: Санкт-Петербург, Пушкин
Registered: 2010-06-15
Posts: 444

Re: Подготовка базы для ж/д роутинга

one_half_3544 wrote:
Дмитрий Кудряшов wrote:

есть здание станции с тегами railway=station,

А зачем там этот тэг? Может там достаточно buliding=train_station?

Судя по wiki комбинации railway=station+building=yes и building=train_station должны быть идентичны, второй вариант кажется предпочтительным, так как сразу показывает предназначение здания, без необходимости анализа дополнительных тегов. Однако складывается впечатление, что многие программы в обязательном порядке ждут объект с тегом railway=station/halt sad

Offline

#69 2012-11-07 21:37:58

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

Дмитрий Кудряшов wrote:

Судя по wiki комбинации railway=station+building=yes и building=train_station должны быть идентичны

С чего вы взяли? Здание это здание, станция это станция, они никак не связаны.
Точку railway=station ставить в здание можно, но ставить тэг railway=station на здание не стоит, потому что таким образом площадь станции ограничивается площадью здания, что неверно.

Offline

#70 2012-11-07 22:18:24

Дмитрий Кудряшов
Member
From: Санкт-Петербург, Пушкин
Registered: 2010-06-15
Posts: 444

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:
Дмитрий Кудряшов wrote:

Судя по wiki комбинации railway=station+building=yes и building=train_station должны быть идентичны

С чего вы взяли? Здание это здание, станция это станция, они никак не связаны.
Точку railway=station ставить в здание можно, но ставить тэг railway=station на здание не стоит, потому что таким образом площадь станции ограничивается площадью здания, что неверно.

Возможно неправильно интерпретировал:
RU:Railway stations

Как обозначать:
Чтобы обозначить место расположения станции, используйте точку с тегами railway=station или railway=halt (вместо точки желательно ставить эти теги на строения станции, о которых сказано ниже).
Строения:
Для более крупных станций зачастую удобно бывает обозначить разом всё здание. Для того, чтобы сделать это, создайте замкнутую линию и используйте на ней тег building=train_station.



RU:Общественный транспорт

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

Тег                    Значение     Описание
public_transport      station     Определяет, что это станция.

Last edited by Дмитрий Кудряшов (2012-11-07 22:27:42)

Offline

#71 2012-11-07 22:57:38

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

Re: Подготовка базы для ж/д роутинга

А глюк с тем, что надпись Start station not found + End station not found пишутся в любом случае, даже если одна из станций в след строке находиться поправишь ?

Offline

#72 2012-11-07 23:10:08

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

Дмитрий Кудряшов wrote:

вместо точки желательно ставить эти теги на строения станции

Эта фраза была неправильно переведена в русской версии, исправил. Там должно быть не "желательно", а "можно", а по мне - так крайне нежелательно.

Дмитрий Кудряшов wrote:

Если станция помещается в одном здании, то теги ставятся прямо на это здание.

Если станция помещается в одном здании. Вся станция. Это относится к например, такой станции монорельса: http://www.openstreetmap.ru/#zoom=18&la … 3&marker=1 но не к ж/д станциям.

freeExec wrote:

А глюк с тем, что надпись Start station not found + End station not found пишутся в любом случае, даже если одна из станций в след строке находиться поправишь ?

Где здесь глюк? Если одна из станций не найдена, маршрута нет.

Offline

#73 2012-11-07 23:23:04

Дмитрий Кудряшов
Member
From: Санкт-Петербург, Пушкин
Registered: 2010-06-15
Posts: 444

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:
Дмитрий Кудряшов wrote:

вместо точки желательно ставить эти теги на строения станции

Эта фраза была неправильно переведена в русской версии, исправил. Там должно быть не "желательно", а "можно", а по мне - так крайне нежелательно.

Дмитрий Кудряшов wrote:

Если станция помещается в одном здании, то теги ставятся прямо на это здание.

Если станция помещается в одном здании. Вся станция. Это относится к например, такой станции монорельса: http://www.openstreetmap.ru/#zoom=18&la … 3&marker=1 но не к ж/д станциям.

Исправил "испорченные" мной станции... 

AMDmi3 wrote:
freeExec wrote:

А глюк с тем, что надпись Start station not found + End station not found пишутся в любом случае, даже если одна из станций в след строке находиться поправишь ?

Где здесь глюк? Если одна из станций не найдена, маршрута нет.

Глюк в том, что в таблице начальная (или конечная) станция маршрута найдена строкой выше (или ниже), хотя маршрут при этом действительно не найден.
Пример: станция Тосно в Ленинградской области, маршрут Тосно 2-Тосно найден, однако на маршруте Тосно-Ушаки, выдаётся диагностика: End station not found/Start station not found, хотя ст. Тосно присутствует...

Last edited by Дмитрий Кудряшов (2012-11-07 23:24:10)

Offline

#74 2012-11-07 23:36:19

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

Дмитрий Кудряшов wrote:

Глюк в том, что в таблице начальная (или конечная) станция маршрута найдена строкой выше (или ниже), хотя маршрут при этом действительно не найден.
Пример: станция Тосно в Ленинградской области, маршрут Тосно 2-Тосно найден, однако на маршруте Тосно-Ушаки, выдаётся диагностика: End station not found/Start station not found, хотя ст. Тосно присутствует...

Так это относится ко второй станции, Ушаки.

Offline

#75 2012-11-08 07:10:10

gryphon
Member
From: Pskov
Registered: 2010-09-16
Posts: 1,609

Re: Подготовка базы для ж/д роутинга

Я правильно понял, что крупная станция будет обозначаться так:
  - всю территорию станции (здания, пути, платформы, депо) обводим полигоном railway=station, сюда же ставим name и прочие характеристики станции
  - на путях ставим railway=stop либо public_transport=stop_position, этих точек будет по количеству путей
  - на здание вокзала ставим building=railway_station
  - на платформы public_transport=platform

Всё так?

Offline

Board footer

Powered by FluxBB