Методика сбора данных для проекта «Метро для всех»: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
 
(не показаны 143 промежуточные версии 3 участников)
Строка 1: Строка 1:
{{Статья|Черновик|metro4all-collect}}
{{Статья|Опубликована|metro4all-method}}
{{Аннотация|Описание методики сбора данных}}
{{Аннотация|Эта статья описывает методику сбора и подготовки данных по доступности станций [[wikipedia:ru:Метрополитен#Россия|метрополитена]] для различных категорий маломобильных граждан. Странно (или наоборот, не странно), но этого никто до сих пор не сделал, мы, как всегда, будем здесь первыми}}


Эта статья описывает методику сбора данных по доступности станций [[wikipedia:ru:Метрополитен#Россия|метрополитена]] различным категориям маломобильных граждан. Странно (или наоборот, не странно), но этого никто до сих пор не сделал, мы, как всегда, будем здесь первыми.
Описанная методика использовалась для сбора данных для проекта "Метро для всех" в Москве, Санкт-Петербурге, Казани, Варшаве, Минске и других городах (http://metro4all.org). В рамках проекта разработано программное обеспечение ([http://metro4all.org/ru/services/ веб] и [https://play.google.com/store/apps/details?id=com.nextgis.metroaccess мобильное приложение] для Android) - это система, использующая данные для построения маршрутов с описанием всех потенциальных препятствий на входе, выходе и пересадках. Эта методика не описывает программное обеспечение, а только приводит описание процесса сбора и подготовки данных.


Описанная методика использовалась для сбора данных для проекта "Метро для всех" в Москве, Санкт-Петербурге, Казани (http://metro4all.ru).
==Структура результата==
Конечный результат - это набор отдельных файлов CSV и папок со схемами по каждому городу.
 
Схемы узлов:
*source - отсканированные файлы зарисовок схем
*svg - схемы, отрисованные в SVG
*png - схемы, отрендеренные в PNG (используются в приложениях)
 
Таблицы:
*graph - граф сети
*interchanges - параметры доступности по пересадкам
*lines - перечень линий
*portals - параметры доступности по маршрутам
*stations - перечень станций
 
Описание создания схем и подготовки таблиц приводится далее по тексту.


== Подготовка ==
== Подготовка ==


Первым делом, нужно выбрать лучший тариф на поездки, потому что вам придётся выходить и заходить обратно на каждой станции по пути. Затем, спланируйте маршрут на ближайшие пару дней. За день реально собрать данные по 5-8 станций: физически объехать можно и больше, однако 1) вы устанете, 2) кроме сбора данных есть ряд других действий занимающих значительное время. Набив руку, дело пойдет быстрее.  
Первым делом, нужно выбрать лучший тариф на поездки, потому что вам придётся выходить и заходить обратно на каждой станции по пути. Затем, спланируйте маршрут на ближайшие пару дней. За день реально собрать данные по 3-8 станциям: если станции небольшие, то физически объехать можно и больше, однако 1) вы устанете, 2) кроме сбора данных, есть ряд других действий, занимающих значительное время, - а именно, их обработка для дальнейшего использования в веб и мобильном приложениях.


[[Файл:Metro-accessories.jpg|600px|center]]
[[Файл:Metro-accessories.jpg|600px|center]]
Строка 15: Строка 30:


Ручка, блокнот (если вы не привыкли мельчить, то формата А5, желательно на спирали и в твёрдой обложке), рулетка и уклонометр. Последние бывают трёх типов:  
Ручка, блокнот (если вы не привыкли мельчить, то формата А5, желательно на спирали и в твёрдой обложке), рулетка и уклонометр. Последние бывают трёх типов:  
*специальные электронные, стоят от 2,5 тысяч
*специальные электронные
*обычные уровни с дополнительным поворотным глазом, окружность которого проградуирована. Поскольку точности в 1° достаточно, то уровень вполне подойдёт.
*обычные уровни с дополнительным поворотным глазом, окружность которого проградуирована. Поскольку точности в 1° достаточно, то уровень вполне подойдёт.
*телефонные, если у вас iPhone или телефон на Android, то вы можете легко найти программу, которая позволит измерять уклон с достаточной точностью, вам просто нужно сначала откалибровать его на ровной поверхности, а потом положить его на измеряемую наклонную. Поищите по ключевым словам level, angle, meter и т.д.
*телефонные, если у вас iPhone или телефон на Android, то вы можете легко найти программу, которая позволит измерять уклон с достаточной точностью, вам просто нужно сначала откалибровать его на ровной поверхности, а потом положить его на измеряемую наклонную. Поищите по ключевым словам level, angle, meter и т.д. Для Android, например, есть крайне простое в использовании приложение Bubble.
 
Вместо бумажного блокнота можно использовать и электронный планшет, главное - не забывать регулярно сохранять изображение.


== Зарисовка схемы ==
== Сбор данных ==
Центральной частью системы является схема станции, на ней представлены все данные. Она менее важна конечному пользователю, но является основным этапом сбора данных. На ней концентрируется вся первичная информация, в нее вносятся все изменения и обновления. С нее же снимаются количественные оценки по маршрутам.
 
Сами схемы также показываются конечному пользователю, правда не во всех деталях: некоторые служебные слои в графических файлах, показываемых конечным пользователям, отключаются. Схема должна быть красивой.
 
Далее по тексту идут условные обозначения из схем, имейте в виду, что, рисуя схему станции в блокноте, вы можете придерживаться тех же условных обозначений.


=== Основные элементы ===
=== Основные элементы ===
Мы отмечаем следующие объекты:
Мы обязательно отмечаем на схемах объекты из таблицы. Подробно нюансы, связанные с каждым элементом, описаны далее по тексту.


{| class="wikitable" style="background: white"
{| class="wikitable" style="background: white"
! Объект
! Объект
! Символ
! Символ
! Измерения
! Атрибуты
! Комментарий
! Комментарий
|-
|-
| Проход
|Проход
|align="center"|[[Файл:Metro4all-passage.png]]
|align="center"|[[Файл:Metro4all-passage.png]]
|
|нет
|
|
|-
|-
|Пути
|Пути
|align="center"|[[Файл:Metro4all-lane.png]]
|align="center"|[[Файл:Metro4all-lane.png]]
|
|направление движения, название следующей станции
|
|
|-
|-
|Лестница
|Лестница
|align="center"|[[Файл:Metro4all-stairs.png]]
|align="center"|[[Файл:Metro4all-stairs.png]]
|
|количество ступеней, наличие перил
|
|
|-
|-
|Небольшая лестница
|Небольшая лестница
|align="center"|[[Файл:Metro4all-stairs-short.png]]
|align="center"|[[Файл:Metro4all-stairs-short.png]]
|
|количество ступеней от 1 до 5, наличие перил
|
|
|-
|-
|Лестница с рельсами
|Лестница с рельсами
|align="center"|[[Файл:Metro4all-rails.png]]
|align="center"|[[Файл:Metro4all-rails.png]]
|
|количество ступеней, наличие перил,
внутренняя ширина рельс,
внешняя ширина рельс,
угол
|
|
|-
|-
|Небольшая лестница с рельсами
|Небольшая лестница с рельсами
|align="center"|[[Файл:Metro4all-rails-short.png]]
|align="center"|[[Файл:Metro4all-rails-short.png]]
|
|то же, что и выше, при количестве ступеней от 1 до 5
|
|
|-
|-
|Пандус
|Пандус
|align="center"|[[Файл:Metro4all-ramp.png]]
|align="center"|[[Файл:Metro4all-ramp.png]]
|
|угол, наличие перил
|
|
|-
|-
|Эскалатор
|Эскалатор
|align="center"|[[Файл:Metro4all-escalator.png]]
|align="center"|[[Файл:Metro4all-escalator.png]]
|
|ширина,
направление движения
|
|
|-
|-
|Дверь
|Дверь
|align="center"|[[Файл:Metro4all-door.png]]
|align="center"|[[Файл:Metro4all-door.png]]
|
|ширина дверного проема
|
|
|-
|-
|Сужение
|Сужение
|align="center"|[[Файл:Metro4all-narrowing.png]]
|align="center"|[[Файл:Metro4all-narrowing.png]]
|
|ширина
|
|сужение прохода меньше 100 см
|-
|-
|Турникеты
|Турникеты
|align="center"|[[Файл:Metro4all-turn.png]]
|align="center"|[[Файл:Metro4all-turn.png]]
|
|ширина
|
|
|-
|-
|Лифт
|Лифт или подъемник
|align="center"|[[Файл:Metro4all-elevator.png]]
|align="center"|[[Файл:Metro4all-elevator.png]]
|
|ширина дверного проема,
ширина и глубина кабины/платформы
|
|
|}
|}


*лестница
===Рабочий процесс===
*рампа
Вы приехали на станцию метро и достали блокнот.
*дверь
*эскалатор
*лифт
*сужение прохода меньше 100см


Вы приехали на станцию метро и достали блокнот. Начнём рисовать схему с платформы:
Схема создаётся для узла. Узел — одна или более станций, объединенных переходами. Например: Арбатская — Александровский сад — Библиотека им. Ленина — Боровицкая. Узел может состоять из одной станции. Необходимость введения понятия “узел” обусловлена тем, что для некоторых показателей невозможно отделить одну станцию узла от другой.


Схема создается для всех выходов на дневную поверхность независимо от того, входит или нет участок маршрута в ведение метрополитена. Исключением являются выходы в торговые центры и вокзалы - они не картируются, выходом из метро считается вход в здание. Окончанием маршрута (входом-выходом) считается продолжительный широкий участок дневной поверхности с углом наклона менее 5 градусов. При наличии такого участка все ответвления от его начала на дневной поверхности уже не картируются.
====Платформы и пути====
Схему удобно начинать рисовать от середины платформы. Прямоугольники со стрелками — это пути, наименования идентифицируют соседние станции, линия между прямоугольниками - платформа. В зависимости от того, одна ли платформа на станции или несколько, начало схемы может выглядеть так:
[[Файл:Metro-station-start1.svg|200px|center|thumb|Часто встречающая конфигурация: платформа посередине (островная), два пути.]]
или так:
[[Файл:Metro-station-start2.png|94px|center|thumb|Реже: два пути, две платформы]]
или так:
[[Файл:Metro-station-start3.png|200px|center|thumb|Еще реже: больше путей]]
Желательно сразу ориентировать станцию по сторонам света (север вверху), либо, если вы это сделать забыли, указывать на схеме стрелку на север.
Размеры путей на схеме являются одинаковыми для всех схем.  Обозначение является условным и часто недостаточно, чтобы выдержать правильный масштаб между путями и проходами (платформами). Выглядит это так, как будто на схеме платформы значительно длиннее путей, это нормально.
====Проходы====
Допустим, с одного конца станции виден эскалатор, к нему ведет проход. Удлиним платформу до следующего элемента - эскалатора.
[[Файл:Metro-station-passage.svg|200px|center]]
Особенности отрисовки проходов:
#Длины проходов не обязательно выражаются пропорционально реальным, так как маршрутизация не учитывает длину или время. Предпочтение отдается общей "стройности" схемы, а не точности соблюдения пропорций.
#Проходы не должны правильно отражать все повороты, если это сложно отобразить на схеме. Это особенно касается многоуровневых станций.
====Эскалаторы====
Обозначим эскалатор двумя линиями со стрелками между ними.
[[Файл:Metro-station.svg|300px|center]]
[[Файл:Metro-station.svg|300px|center]]


Прямоугольники со стрелками — это пути, одна-две буквы идентифицируют следующую станцию, линия между прямоугольника - платформа. Допустим, с одного конца станции виден эскалатор: обозначим его двумя линиями со стрелками между ними. И встанем на него, посмотреть на устройство вестибюля.
Особенности отрисовки эскалаторов:
#Эскалаторные группы можно отображать одним эскалатором с двунаправленной стрелкой
#Если вы уверены, что эскалатор работает всегда только на подъем или спуск, можно использовать однонаправленную стрелку. В противном случае лучше использовать двунаправленную.
 
====Двери, сужения, турникеты====
 
Вестибюли часто похожи: сразу за эскалаторами турникеты (штрихи вдоль пути), затем дверные проёмы без дверей (обозначены знаком сужения) и двери на вход и выход.  


[[Файл:Metro-hall.svg|350px|center]]
[[Файл:Metro-hall.svg|350px|center]]


Большинство вестибюлей похожи и просты: сразу за эскалаторами турникеты (штрихи вдоль пути), затем дверные проёмы без дверей (обозначены знаком сужения) и двери на вход и выход. Замечу, что часто направления входа и выхода жёстко разделены забором, но в контексте «преград» совпадают. Работа потребует в некоторой мере картографического склада ума: маршруты желательно располагать так, чтобы они не пересекались, и минимизировать количество одиночных направлений. То есть, лучше заранее увидеть, что хотя направления на вход и выход разделены, пассажиры там и там проходят через похожие двери и преодолевают одинаковое количество ступенек.
Особенности отрисовки дверей, сужений, турникетов:
#При наличии на входе/выходе дверей разной ширины измеряется самая широкая дверь.
#Измерение дверного проёма производится в чистоте: дверь в момент измерения находится в открытом состоянии, измеряется наиболее узкая часть проема
#Сужения проходов отмечаются, только если они меньше 1000 мм.
#Сужения зимой могут превращаться в двери: по мере обновления схем все сужения, где это происходит, постепенно меняются на двери.
#При наличии на входе/выходе турникетов разной ширины измеряется самый широкий турникет - грузовой. Необходимо внимательно осмотреть пространство вблизи турникета: если рядом с турникетами есть более широкий проход рядом, например в виде отдельной калитки, то турникету назначается ширина этого прохода.


На второй картинке видны числа: начинаем измерять. Для дверей и проёмов указывается их ширина. Точнее, максимальная ширина объекта, который можно сквозь них протащить. Это важно для дверей, петли которых часто занимают часть проёма.
====Лестницы====


Сразу за дверью входа-выхода находится общая лестница из 4 ступенек. Кроме этого числа, ещё один параметр лестницы, который желательно записать — наличие перил. Их обозначает буква «п». Иногда, когда можно подумать, что перила есть, но автор забыл их записать (например, в каскаде из 4 пролётов, где у одного забыли сделать перила), я пишу «п» и зачёркиваю букву крест-накрест.
Сразу за дверью входа-выхода находится лестница из 4 ступенек. Кроме этого числа также записывается наличие перил. Их обозначает буква «п». Возможна ситуация, когда у лестницы перилами обеспечивается только часть ступенек, в этом случае запись может быть следующей: 4+п10, т.е. 4 ступеньки без перил и 10 с перилами. Несколько пролетов, разделенных площадками для отдыха, можно записывать как одну лестницу, таким образом: п(10+13+14), т.е. 3 пролета по 10, 13, 14 ступенек каждый, все с перилами.


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


[[Файл:Metro-ramp.svg|200px|center]]
[[Файл:Metro-ramp.svg|200px|center]]


Рампа обозначается ломаной линией, для неё вместо количества ступенек записывается угол наклона (вот и пригодился уклонометр). Если её ширина меньше метра, то можно измерить и её, иначе достаточно угла — и наличия перил, конечно.
Пандус (сплошная наклонная поверхность в обход ступенек, не путать с рельсами) обозначается ломаной линией, для него вместо количества ступенек записывается угол наклона (тут пригодится уклонометр). Если ширина пандуса меньше метра, то можно измерить и её, в остальных случаях достаточно угла — и, конечно, наличия перил.
 
Если на выходе есть пандус, дублирующий лестницу, отмечаются оба элемента. Пандусами часто пользоваться менее удобно, поскольку их ещё нужно найти, иногда открыть дополнительную дверь, и путь получается длиннее. Отмечание всех объектов даёт возможность посчитать количество ступенек, которые преодолевает обычный пассажир.
 
У пандусов также бывают перила. Их наличие обозначается буквой "п". Если перила идут с обоих сторон пандуса и их можно достать двумя руками, то пишется "2п". Если перил нет, буква "п" не ставится.
 
====Лифты====


=== Лестница с рельсами ===
Лифты и подъемные платформы для инвалидов с вертикальным перемещением обозначаются квадратами, количество которых совпадает с количеством уровней, обслуживаемых лифтом (например, лифт, соединяющий платформу и вестибюль, обозначается двумя квадратами; аналогичный лифт, соединяющий платформу, вестибюль и дневную поверхность, обозначается тремя квадратами). Для лифта по возможности указываются следующие параметры: ширина дверного проема, ширина и глубина кабины. Если внутрь лифта попасть затруднительно, то измеряется только ширина дверного проема. Дополнительно на схеме можно отмечать особенности работы лифта (например, что лифт работает только по вызову дежурного по станции).
 
Особенности отрисовки лифтов:
#Условное обозначение лифта должно располагаться на одном уровне по вертикали или по горизонтали для каждого уровня, обслуживаемого этим лифтом (дневная поверхность, переход, платформа и т.д.)
#Для удобства, можно использовать пунктир, чтобы было понятно, что это один и тот же лифт.
 
Пример:
 
[[Файл:metro-elev-centrum-1.png|400px|center|thumb|Фрагмент станции Centrum в Варшаве с двумя лифтами, 1 - двухуровневый, 2 - трехуровневый.]]
 
==== Лестница с рельсами ====


[[Файл:Metro-staircase.jpg|600px|center]]
[[Файл:Metro-staircase.jpg|600px|center]]


Когда вы натолкнётесь на лестницу, подготовленную для колясок добавлением рельсов, начнётся настоящая, тяжёлая работа. Нужно рулеткой измерить минимальную и максимальную ширину пространства для колёс (то есть, внутри рамок рельсов). Затем посмотреть уклон. Наконец, оценить, сможет ли инвалид, катясь по рельсам, дотянуться до перил (обычно может, но иногда чувство меры проектировщикам отказывает). Всё это нужно запротоколировать, и такие лестницы отнимут не только максимум времени, но и максимум свободного пространства на листе.
У лестницы, оборудованной рельсами, нужно рулеткой измерить минимальную и максимальную ширину пространства для колёс (то есть, внутри рамок рельсов). Затем посмотреть уклон. Наконец, посчитать количество перил и оценить, если перила идут с обоих сторон рельс и их можно достать двумя руками, то пишется "2п", если не дотягивается, то просто "п". Буква ставится у измерений ширины (т.е. у рельс, а не у лестницы). Если перила есть, но от рельсов не дотянуться (иногда чувства проектировщикам отказывают), то считаем, что перил нет. Если перил нет, буква "п" не ставится.


[[Файл:Metro-stairsrails.svg|200px|center]]
[[Файл:Metro-stairsrails.svg|200px|center]]


Слева направо: количество ступенек, обозначение перил при рельсах (если перила есть, но от рельс не дотянуться, то «п» будет стоять у ступенек), минимальная и максимальная ширина колёс, угол наклона рельсов. Если поверхность рельс покрыта специальным материалом для увеличения трения, это тоже нужно указать, буквой «р». Вы уже заметили, что все размеры указываются в миллиметрах? Ошибка в 2-4 миллиметра (до 1%) вполне допустима, для дверей можно и полтора процента. Впрочем, двери часто ставят типовые, и вы быстро научитесь отличать их на глаз.
Слева направо: количество ступенек, количество перил при рельсах (одни), минимальная и максимальная ширина колёсной базы, угол наклона рельсов.


Введённые обозначения позволяют зарисовать станцию, и даже несколько станций (одна из которых конечная) с переходами между ними и прилегающий подземный переход:
====Направления====
Желательно указывать направления движения на самой станции и на входе-выходе, если они не совмещены.


[[Файл:Metro-sadovaya.png|800px|center]]
Пример:
 
[[Файл:metro-kiev-arrows.png|400px|center|thumb|Фрагмент станции Киевская и направления движения (стрелки)]]
 
===Результат===


В блокноте эта схема, конечно, выглядела более неряшливо. Готовьтесь к переходам с 16 и более лестничными пролётами (у меня был один с более чем двадцатью).
Описанные выше элементы позволяют полностью зарисовать станцию или узел (несколько станций, соединенных переходами):


[[Файл:Metro-notepad.jpg|600px|center]]
[[Файл:Metro-notepad.jpg|600px|center]]
В блокноте эта схема, конечно, может выглядеть достаточно неряшливо, поэтому ее необходимо перерисовать.


=== Особые случаи ===
=== Особые случаи ===


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


[[Файл:Metro-komendan.png|center|600px]]
[[Файл:Metro-komendan.png|center|600px]]


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


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


== Схемы - из блокнота в Inkscape ==
== Схема ==


После сбора информации идёт самая сложная часть работы: перерисовать картинки из блокнота в векторном редакторе. Вам будет лень, и нужно бороться с соблазном отложить на потом, но лучше сделать сразу, чем потом плеваться от редактора. Используем [http://inkscape.org/download/?lang=ru Inkscape] (и формат SVG), потому что он бесплатный, мультиплатформенный и с открытым форматом файлов, в отличие от иллюстратора. Правда, под маком его нетривиально запустить: понадобится [http://xquartz.macosforge.org/landing/ XQuartz].
=== Отрисовка ===


За основу возьмите [[Медиа:Metro-diag-base.svg|этот файл]]: в нём есть все нужные символы. Сохраните его на диск и откройте в Inkscape, в браузере он выглядит пустым. Начнём с азов: перемещение холста средней кнопкой мыши, масштабирование — Ctrl+колёсико. Копирование и вставка символа — Ctrl+C, Ctrl+V. Перемещать символ стрелками, с зажатым Alt символ будет двигаться по одному пикселю. Для копирования вверх или влево удобнее сдублировать объект (Ctrl+D) и оттащить его стрелками. Поворот на 90° — Ctrl+квадратные скобки ([]), для обычного поворота достаточно два раза кликнуть на объекте и тащить за углы. Ни в коем случае не изменяйте пропорции символов!
После сбора информации нужно перерисовать картинки из блокнота в векторном редакторе. Мы используем [http://inkscape.org/download/?lang=ru Inkscape] (и формат SVG), потому что он бесплатный, мультиплатформенный и с открытым форматом файлов, в отличие от иллюстратора. Под маком его запустить нетривиально: понадобится [http://xquartz.macosforge.org/landing/ XQuartz].
 
За основу возьмите [[Медиа:Metro4all common elements.svg|этот файл]]: в нём есть все нужные условные обозначения и пример одной из станций ([[Медиа:14 охотный ряд.svg|узел Охотного ряда]]). Сохраните его на диск и откройте в Inkscape, в браузере он выглядит пустым. Начнём с азов: перемещение холста средней кнопкой мыши, масштабирование — Ctrl+колёсико. Копирование и вставка символа — Ctrl+C, Ctrl+V. Перемещать символ стрелками, с зажатым Alt символ будет двигаться по одному пикселю. Для копирования вверх или влево удобнее сдублировать объект (Ctrl+D) и оттащить его стрелками. Поворот на 90° — Ctrl+квадратные скобки ([]), для обычного поворота достаточно два раза кликнуть на объекте и тащить за углы. Ни в коем случае не изменяйте пропорции символов!


Схема использует шрифт [http://www.fontstock.com/public/PTSans.zip PT Sans] 14 пунктов для заголовков и 8 — для подписей. Толщина всех линий — 1 «пиксель» (не то же самое, что экранный пиксель). Чтобы толщина линии не менялась при растяжении, отожмите кнопку «изменять толщину обводки» в панели инструментов вверху, первая кнопка после слова "Менять". Из меню «Объект» сразу включите панели «Заливка и обводка» и «Выровнять и расставить». Несколько объектов для использования последней функции выделяются с зажатым Shift.
Схема использует шрифт [http://www.fontstock.com/public/PTSans.zip PT Sans] 14 пунктов для заголовков и 8 — для подписей. Толщина всех линий — 1 «пиксель» (не то же самое, что экранный пиксель). Чтобы толщина линии не менялась при растяжении, отожмите кнопку «изменять толщину обводки» в панели инструментов вверху, первая кнопка после слова "Менять". Из меню «Объект» сразу включите панели «Заливка и обводка» и «Выровнять и расставить». Несколько объектов для использования последней функции выделяются с зажатым Shift.
Строка 164: Строка 260:
Сохраняйтесь чаще! Когда один лист заполнится схемами, сохраните его, затем выберите «сохранить как» и введите новое имя файла. В новом файле уже можно удалить старые схемы и начать чертить новые. Советую пользоваться Dropbox: его автоматическое версионирование уже раз спасло меня от потери схемы станции.
Сохраняйтесь чаще! Когда один лист заполнится схемами, сохраните его, затем выберите «сохранить как» и введите новое имя файла. В новом файле уже можно удалить старые схемы и начать чертить новые. Советую пользоваться Dropbox: его автоматическое версионирование уже раз спасло меня от потери схемы станции.


Не обязательно делать красиво или опрятно, но помните, что на ваши схемы будут смотреть тысячи человек, поэтому лучше постараться. Пример схемы [https://www.dropbox.com/s/ka0phk3zhuqmvyw/metro-diag.svg качайте здесь].
Пример результата:
 
[[Файл:Metro-sadovaya.png|800px|center]]
 
=== Текст ===
Для всего текста на карте: названия станции, названий направлений движения, дополнительной полезной информации и т.д. создаются слои name_*, где * - код языка.
 
* ru - русский
* en - английский и т.д.
 
Весь текст хранится в этих слоях. Таким образом, впоследствии схемы легко можно будет сделать многоязычными (пока, как правило, язык только один).
 
=== Параметры измерений ===
Все параметры измерений элементов инфраструктуры (цифры или формулы описанные выше) складываются в слой numbers.
 
Это нужно, чтобы впоследствии их можно было отключить для показа схемы станции человеку со стандартными потребностями, для которого эта информация, как правило, является лишней и мешает сориентироваться.
 
[[Файл:Metro-schemes-wo-numbers.png|577px|center|thumb|Схема станции Аннино (Москва) с включенными (слева) и отключенными (справа) параметрами измерений.]]
 
===Коды входов/выходов===
После отрисовки схемы проводится назначение кодов входам/выходам. Коды сквозные и глобально уникальные, удобно добавлять в конце 0, так как потом наверняка придется добавлять еще.
 
Коды вносятся в слой схемы exits.
 
Для этого визуально прослеживается путь от конечной точки до центра платформы и конечной точке назначается код.  
 
Особенности назначения кодов входам/выходам:
#Если физически вход совмещен с выходом, но маршруты от входа и на выход разные (например на выход есть эскалатор, но он не работает на вход), то это два маршрута.
#Если один и тот же физический вход ведет на несколько разных станций узла, то этому входу назначается два кода.
#Если таких станций на узле несколько, вход/выход совмещены, но от них до станций ведут разные маршруты, то количество кодов у одного физического входа/выхода может достигать 6-10.
 
[[Файл:metro-kiev-exits.png|400px|center|thumb|Фрагмент станции Киевская и набора выходов с несколькими кодами для каждого.]]
 
=== Нумерация входов/выходов (миткоды) ===
В отличие от кодов, описанных выше, нумерация нужна не для машин, а для людей. Их удобно использовать для назначения встреч: "Встречаемся у входа #3 на Киевской". Поэтому мы называем их сокращенно - миткодами (meet-code).
 
Эти номера вносятся в слой meetcode.
 
Правила расстановки следующие:
#Миткоды ставятся последовательно и сгруппированно, так же как и сами выходы
#Миткоды присваиваются реальным физическим объектам - входам/выходам
#Если выходы находятся очень близко друг от друга, то им можно назначить один миткод.
 
[[Файл:Metro-meetcodes-scheme.png|400px|center|thumb|Нумерация входов/выходов на схеме станции Молодежная (Москва)]]
 
Потом миткоды используются на картах в веб и мобильном приложении, поэтому удобная нумерация очень важна.
 
[[Файл:Metro-meetcodes-map.png|400px|center|thumb|Миткоды на карте сервиса]]
 
===Дополнительные слои===
После того, как основное содержание схемы создано, можно заняться рядом необязательных, но желательных слоёв.


== Оценка маршрутов - таблица ==
*'''elements-ids''' - Идентификаторы элементов - каждый элемент инфраструктуры узла, за исключением проходов и путей, нумеруется.
*'''pointers''' - Указатели - стрелка с номером. Стрелка указывает направление фотографирования, номер - номер указателя. Фотография указателя называется так: X-YYY.jpg, где X - код узла, а YYY - номер указателя.
*'''photos''' - Фотографии - точка, указывающая, что элемент сфотографирован. Фотография называется так: X-YYY.jpg, где X - код узла, а YYY - идентификатор элемента, к которому привязана фотография.


После черчения схем агрегированные значения собираются в три таблицы: их можно хранить в CSV на гитхабе, в страницах таблицы LibreOffice Calc или в разделах вики-страницы. Я выбрал второй вариант: он наиболее удобен, хотя и плох для совместной работы.
== Таблица маршрутов==


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


{| class="wikitable"
[[Файл:metro-varshav-1.png|600px|center|thumb|Пример окончательной схемы станции и виртуального маршрута (красная линия)]]
! Дата
! Линия
! Станция
! Название
! Широта
! Долгота
! Мин. ширина
! Мин. ступенек
! Мин. ступенек без рамп
! Мин. ширина рельс
! Макс. ширина рельс
! Макс. угол
! ID перехода
! Комментарий
|-
| 8.07.13 || 2 || 14 || Горьковская
| 59.9561 || 30.31885
| 670 || 0 || 10 || 0 || 0 || 5 || 0 ||
|-
| 9.07.13 || 5 || 12 || Садовая
| 59.92702 || 30.32057
| 925 || 39 || 39
| 361 || 739 || 25 || 0 ||
|}


Линии, если метрополитен уже не пронумеровал их, нумеруются как угодно, станции — последовательно с юга/востока на север. Желательно начинать нумерацию с 4-5 и на длинных перегонах пропускать число на случай, если там добавят станций, чтобы со временем не уйти в отрицательные номера. Координаты считаются у вестибюлей, либо посередине между входами, когда их несколько. Это точка, где на карте будет нарисована станция, и её расположение должно быть максимально понятно будущим пользователям.
'''Структура полей таблицы параметров доступности по маршрутам:'''


Дальше указываются данные для пути от поверхности или середины подземного перехода (не включая переход!): ширина самого узкого прохода, сумма количества ступенек там, где нет альтернативного пути через рампы (но могут быть рельсы) и количество ступенек, которые обычно преодолевает здоровый пассажир (т.е. без рамп). Дальше ''наибольшая'' ширина внутренней ширины рельс и наименьшая внешней. Если рельсов нет, нужно ставить нули, чтобы отличать отсутствие рельсов от отсутствия данных. Наконец, максимальный угол, который может равняться нулю, когда нет лестниц и рамп, и 90°, если есть лестницы без рельсов. В комментарий нужно записывать условия для прохода пассажиров, например, «лифт только для инвалидов».
*id_entrance - код входа/выхода, назначается при первичном заполнении таблицы
*meetcode - код для встречи
*name_ru - описание входа/выхода (русский)
*name_en - описание входа/выхода (английский)
*id_station - код станции из таблицы stations.csv
*direction - направление выхода, возможные значения: both (и вход, и выход), in (только вход), out (только выход)
*lat - широта точки, соответствующей выходу на поверхности (не указывается для выходов в сложные архитектурные сооружения, такие как торговые центры, вокзалы и т.д.)
*lon - долгота точки, соответствующей выходу на поверхности (не указывается для выходов в сложные архитектурные сооружения, такие как торговые центры, вокзалы и т.д.)
*max_width - максимальная ширина коляски (т.е. ширина самого узкого места на маршруте)
*min_step - минимальное количество ступеней на маршруте
*min_step_ramp - минимальное количество ступеней, не дублированных пандусами или рельсами (должно быть меньше или равно min_step)
*lift - количество лифтов на маршруте
*lift_minus_step - сколько ступеней экономит использование лифта
*min_rail_width - наибольшая ширина внутренней ширины рельс на маршруте
*max_rail_width - наименьшая ширина внешней ширины рельс на маршруте
*max_angle - максимальный угол наклона на маршруте


Вторая таблица содержит информацию о переходах: прямом маршруте от платформы одной станции до платформы другой. Станции адресуются по идентификаторам из первой таблицы.
Особенности заполнения таблицы:
#Координаты могут сниматься непосредственно в натуре или браться из [http://osm.org OpenStreetMap]. Мы не используем другие карты из-за лицензионных ограничений.
#Полей name_* может быть быть сколько угодно по числу языков


Пример заполнения для двух маршрутов на станции м. Варшавская (один из них изображен красной линией выше):
{| class="wikitable"
{| class="wikitable"
! Дата
! id_entrance
! Линия 1
! meetcode
! Станция 1
! name_ru
! Линия 2
! name_en
! Станция 2
! id_station
! Мин. ширина
! direction
! Мин. ступенек
! lat
! Мин. ширина рельс
! lon
! Макс. ширина рельс
! max_width
! Макс. угол
! min_step
! Комментарий
|-
| 15552 || 5 || вход в подвальный этаж торгового центра ||  entrance to shopping mall (underground level) || 27 || both ||  ||  || 740 || 37
|-
|-
| 9.07.13 || 2 || 12 || 5 || 12
| 15570 || 8 || Каширский пр-д, пригородные кассы || Kashirskij proezd, suburban trains ticket office || 27 || both || 37.6231333737 || 55.6536318325 || 740|| 87
| 930 || 32 || 360 || 748 || 27 ||
|}
|}


Значения все те же самые. Как для станций объединяются маршруты на вход и на выход, так и здесь оба направления объединены в одну строку. Лучший или худший маршрут выбирать — дело сборщика данных: иногда можно идти против шерсти или попросить смотрителя открыть проход.
продолжение таблицы:
 
В третью таблицу собираются данные по надземным (Over) и подземным (Under) переходам.


{| class="wikitable"
{| class="wikitable"
! Дата
! id_entrance
! ID
! min_step_ramp
! Тип
! lift
! Местонахождение
! lift_minus_step
! Широта
! min_rail_width
! Долгота
! max_rail_width
! Ступенек в среднем
! max_angle
! Мин. ширина рельс
! Макс. ширина рельс
! Макс. угол
|-
|-
| 8.07.13 || 1 || Under || Кронверкский × Каменноостровский
| 15552 || 37 || 0 || 0 || 0 || 0 || 0
| 59.956231 || 30.320758
|-
| 25 || 418 || 624 || 23
| 15570 || 48|| 0|| 0 || 310 || 750 || 20
|}
|}


Среднее количество ступенек — то, которое в среднем нужно преодолеть для спуска в переход или подъёма из него. Можно посчитать как округлённое среднее арифметическое всех выходов. Идентификатор нужен для связи со станциями метро, вестибюли которых находятся в подземных переходах. Он начинается с 1, порядок произвольный; у станций с вестибюлями на поверхности в колонку идентификатора записывается ноль.


Для визуализации и обработки данных их нужно будет преобразовать в формат JSON. Поскольку у нас есть координаты, появляется соблазн сделать GeoJSON, но это ошибка: так у нас не получится, например, сделать такую красивую картинку:
'''Структура полей таблицы параметров доступности по переходам:'''


[[Файл:Metro-visualization.png|432px]]
*station_from - код станции "откуда" из таблицы stations.csv
*station_to - код станции "куда" из таблицы stations.csv
*max_width - максимальная ширина коляски (т.е. ширина самого узкого места на переходе)
*min_step - минимальное количество ступеней на переходе
*min_step_ramp - минимальное количество ступеней, не дублированных пандусами или рельсами (должно быть меньше или равно min_step)
*lift - количество лифтов на переходе
*lift_minus_step - сколько ступеней экономит использование лифта
*min_rail_width - наибольшая ширина внутренней ширины рельс на переходе
*max_rail_width - наименьшая ширина внешней ширины рельс на переходе
*max_angle - максимальный угол наклона на переходе


Поэтому данные нужно перевести в формат «как есть», а затем обрабатывать либо на стороне клиента, либо скриптами. Вот пример:
Пример заполнения (первая строка - пересадка с Белорусской (Замоскворецкая) на Белорусскую (Кольцевая), вторая - с Бульвара Дмитрия Донского на Улицу Старокачаловская):
 
{| class="wikitable"
<source lang="javascript">
! station_from
metroData = {
! station_to
  'stations': {
! max_width
    'surveyed': '2013-07-09',
! min_step
    'id': [ 5, 12 ],
! min_step_ramp
    'name': 'Садовая',
! lift
    'lat': 59.92702,
! lift_minus_step
    'lon': 30.32057,
! min_rail_width
    'width': 925,
! max_rail_width
    'steps': 39,
! max_angle
    'fullSteps': 39,
|-
    'railsMin': 361,
| 35 || 67 || 950 || 45 || 45 || 0 || 0 || 0 || 0 || 0
    'railsMax': 739,
|-
    'angle': 25,
| 164 || 191 || 1000 || 48 || 0 || 0 || 0 || 300 || 770 || 20
    'passId': 0,
|}
    'comment': ''
  },
  'transfers': {
    'surveyed': '2013-07-09',
    'from': [ 2, 12 ],
    'to' : [ 5, 12 ],
    'width': 930,
    'steps': 32,
    'railsMin': 360,
    'railsMax': 748,
    'angle': 27
  },
  'passes': {
    'surveyed': '2013-07-08',
    'id': 1,
    'type': 'under',
    'name': 'Кронверкский × Каменноостровский',
    'lat': 59.956231,
    'lon': 30.320758,
    'steps': 25,
    'railsMin': 418,
    'railsMax': 624,
    'angle': 23
  }
};
</source>
 
== Предложение по структуре базы и технологическому процессу роутинга от trolleway ==
 
Решили, что роутинг по ступенькам всё-таки будет.
Техническая организация:
За основу решено взять имеющийся набор програм работающих с форматом OSM
josm
maperitive
pgrouting
 
* Исходные данные из блокнотов заносятся в программе JOSM в отдельные файлы формата .osm. Рисуем всё у себя, в базу OSM ничего не заносим. Это можно.
* Координаты этих станций будут такие же как у физических станций, но точной геопривязки переходов не нужно - нужен точный граф со всеми атрибутами.
* Атрибуты (наличие ступенек/перил/рельсов, односторонность эскалаторов, режим работы лифтов и всё подобное) заносятся в файл OSM, потому что это похоже на автомобильный роутинг. Теги мы придумаем сами, они будут написаны чуть ниже.
* В файле OSM будут обьекты "станция" (не знаю что именно, но нам надо будет связать граф метролиний с пешеходным графом).
* После завершения сбора все отдельные станции сливаются в один файл формата osm. Поскольку каждый пересадочный узел будет вводится отдельно, то эти отдельные файлы просто можно будет слить автоматически в osmosis, базу для этого поднимать не надо.
* Схемы (картинки) станций будут рендрится из формата .osm в программе maperitive или mapnik автоматически. Это позволит нам сократить нудную ручную работу по черчению в inkscape.
* Потом файл OSM будет импортирован в базу PostgreSQL. C использованием PostGIS и pgRouting будут один раз расчитаны стоимости всех возможных пересадок и выходов (в каждую сторону). Результаты будут сохранены в базе.


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


читать:
* В рамках проекта "Метро для всех" эта методика применена в 11 городах: Амстердам, Варшава, Волгоград, Екатеринбург, Казань, Лозанна, Минск, Москва, Нижний Новгород, Самара, Санкт-Петербург, Глазго, Марсель, Новосибирск,.
* мануал по тегированию в осм (отношения можно не читать)
* Закартировано 458 станций
* мануал по osgeolive (советую запускать его через virtualbox)
* Пронумерованы 2170 входов/выходов
* мануал по pgrouting
* Выпущен подробный [http://metro4all.org/ru/blog-ru/moscow-metro-accessibility-report/ доклад] о доступности Московского метро
* Создано [http://metro4all.org/ru/msk/ веб] и [https://play.google.com/store/apps/details?id=com.nextgis.metroaccess мобильное приложения].


== Развитие проекта ==
== Перспективы ==


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

Текущая версия от 15:42, 29 марта 2015

Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/metro4all-method.html


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

Описанная методика использовалась для сбора данных для проекта "Метро для всех" в Москве, Санкт-Петербурге, Казани, Варшаве, Минске и других городах (http://metro4all.org). В рамках проекта разработано программное обеспечение (веб и мобильное приложение для Android) - это система, использующая данные для построения маршрутов с описанием всех потенциальных препятствий на входе, выходе и пересадках. Эта методика не описывает программное обеспечение, а только приводит описание процесса сбора и подготовки данных.

Структура результата

Конечный результат - это набор отдельных файлов CSV и папок со схемами по каждому городу.

Схемы узлов:

  • source - отсканированные файлы зарисовок схем
  • svg - схемы, отрисованные в SVG
  • png - схемы, отрендеренные в PNG (используются в приложениях)

Таблицы:

  • graph - граф сети
  • interchanges - параметры доступности по пересадкам
  • lines - перечень линий
  • portals - параметры доступности по маршрутам
  • stations - перечень станций

Описание создания схем и подготовки таблиц приводится далее по тексту.

Подготовка

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

Metro-accessories.jpg

Инвентарь

Ручка, блокнот (если вы не привыкли мельчить, то формата А5, желательно на спирали и в твёрдой обложке), рулетка и уклонометр. Последние бывают трёх типов:

  • специальные электронные
  • обычные уровни с дополнительным поворотным глазом, окружность которого проградуирована. Поскольку точности в 1° достаточно, то уровень вполне подойдёт.
  • телефонные, если у вас iPhone или телефон на Android, то вы можете легко найти программу, которая позволит измерять уклон с достаточной точностью, вам просто нужно сначала откалибровать его на ровной поверхности, а потом положить его на измеряемую наклонную. Поищите по ключевым словам level, angle, meter и т.д. Для Android, например, есть крайне простое в использовании приложение Bubble.

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

Сбор данных

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

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

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

Основные элементы

Мы обязательно отмечаем на схемах объекты из таблицы. Подробно нюансы, связанные с каждым элементом, описаны далее по тексту.

Объект Символ Атрибуты Комментарий
Проход Metro4all-passage.png нет
Пути Metro4all-lane.png направление движения, название следующей станции
Лестница Metro4all-stairs.png количество ступеней, наличие перил
Небольшая лестница Metro4all-stairs-short.png количество ступеней от 1 до 5, наличие перил
Лестница с рельсами Metro4all-rails.png количество ступеней, наличие перил,

внутренняя ширина рельс, внешняя ширина рельс, угол

Небольшая лестница с рельсами Metro4all-rails-short.png то же, что и выше, при количестве ступеней от 1 до 5
Пандус Metro4all-ramp.png угол, наличие перил
Эскалатор Metro4all-escalator.png ширина,

направление движения

Дверь Metro4all-door.png ширина дверного проема
Сужение Metro4all-narrowing.png ширина сужение прохода меньше 100 см
Турникеты Metro4all-turn.png ширина
Лифт или подъемник Metro4all-elevator.png ширина дверного проема,

ширина и глубина кабины/платформы

Рабочий процесс

Вы приехали на станцию метро и достали блокнот.

Схема создаётся для узла. Узел — одна или более станций, объединенных переходами. Например: Арбатская — Александровский сад — Библиотека им. Ленина — Боровицкая. Узел может состоять из одной станции. Необходимость введения понятия “узел” обусловлена тем, что для некоторых показателей невозможно отделить одну станцию узла от другой.

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


Платформы и пути

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

Часто встречающая конфигурация: платформа посередине (островная), два пути.

или так:

Реже: два пути, две платформы

или так:

Еще реже: больше путей

Желательно сразу ориентировать станцию по сторонам света (север вверху), либо, если вы это сделать забыли, указывать на схеме стрелку на север.

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

Проходы

Допустим, с одного конца станции виден эскалатор, к нему ведет проход. Удлиним платформу до следующего элемента - эскалатора.

Metro-station-passage.svg

Особенности отрисовки проходов:

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

Эскалаторы

Обозначим эскалатор двумя линиями со стрелками между ними.

Metro-station.svg

Особенности отрисовки эскалаторов:

  1. Эскалаторные группы можно отображать одним эскалатором с двунаправленной стрелкой
  2. Если вы уверены, что эскалатор работает всегда только на подъем или спуск, можно использовать однонаправленную стрелку. В противном случае лучше использовать двунаправленную.

Двери, сужения, турникеты

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

Metro-hall.svg

Особенности отрисовки дверей, сужений, турникетов:

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

Лестницы

Сразу за дверью входа-выхода находится лестница из 4 ступенек. Кроме этого числа также записывается наличие перил. Их обозначает буква «п». Возможна ситуация, когда у лестницы перилами обеспечивается только часть ступенек, в этом случае запись может быть следующей: 4+п10, т.е. 4 ступеньки без перил и 10 с перилами. Несколько пролетов, разделенных площадками для отдыха, можно записывать как одну лестницу, таким образом: п(10+13+14), т.е. 3 пролета по 10, 13, 14 ступенек каждый, все с перилами.

Особенности отрисовки лестниц:

  1. На схеме можно использовать обозначение для короткой или длинной лестницы
  2. Количество ступеней считается снизу-вверх
  3. Иногда у выходов из подземных переходов и вестибюлей станций есть возвышенная площадка. Эта площадка считается как лестница с одной ступенькой, иногда она бывает дублирована рельсами/пандусами.

Пандусы

Metro-ramp.svg

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

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

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

Лифты

Лифты и подъемные платформы для инвалидов с вертикальным перемещением обозначаются квадратами, количество которых совпадает с количеством уровней, обслуживаемых лифтом (например, лифт, соединяющий платформу и вестибюль, обозначается двумя квадратами; аналогичный лифт, соединяющий платформу, вестибюль и дневную поверхность, обозначается тремя квадратами). Для лифта по возможности указываются следующие параметры: ширина дверного проема, ширина и глубина кабины. Если внутрь лифта попасть затруднительно, то измеряется только ширина дверного проема. Дополнительно на схеме можно отмечать особенности работы лифта (например, что лифт работает только по вызову дежурного по станции).

Особенности отрисовки лифтов:

  1. Условное обозначение лифта должно располагаться на одном уровне по вертикали или по горизонтали для каждого уровня, обслуживаемого этим лифтом (дневная поверхность, переход, платформа и т.д.)
  2. Для удобства, можно использовать пунктир, чтобы было понятно, что это один и тот же лифт.

Пример:

Фрагмент станции Centrum в Варшаве с двумя лифтами, 1 - двухуровневый, 2 - трехуровневый.

Лестница с рельсами

Metro-staircase.jpg

У лестницы, оборудованной рельсами, нужно рулеткой измерить минимальную и максимальную ширину пространства для колёс (то есть, внутри рамок рельсов). Затем посмотреть уклон. Наконец, посчитать количество перил и оценить, если перила идут с обоих сторон рельс и их можно достать двумя руками, то пишется "2п", если не дотягивается, то просто "п". Буква ставится у измерений ширины (т.е. у рельс, а не у лестницы). Если перила есть, но от рельсов не дотянуться (иногда чувства проектировщикам отказывают), то считаем, что перил нет. Если перил нет, буква "п" не ставится.

Metro-stairsrails.svg

Слева направо: количество ступенек, количество перил при рельсах (одни), минимальная и максимальная ширина колёсной базы, угол наклона рельсов.

Направления

Желательно указывать направления движения на самой станции и на входе-выходе, если они не совмещены.

Пример:

Фрагмент станции Киевская и направления движения (стрелки)

Результат

Описанные выше элементы позволяют полностью зарисовать станцию или узел (несколько станций, соединенных переходами):

Metro-notepad.jpg

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

Особые случаи

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

Metro-komendan.png

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

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

Схема

Отрисовка

После сбора информации нужно перерисовать картинки из блокнота в векторном редакторе. Мы используем Inkscape (и формат SVG), потому что он бесплатный, мультиплатформенный и с открытым форматом файлов, в отличие от иллюстратора. Под маком его запустить нетривиально: понадобится XQuartz.

За основу возьмите этот файл: в нём есть все нужные условные обозначения и пример одной из станций (узел Охотного ряда). Сохраните его на диск и откройте в Inkscape, в браузере он выглядит пустым. Начнём с азов: перемещение холста средней кнопкой мыши, масштабирование — Ctrl+колёсико. Копирование и вставка символа — Ctrl+C, Ctrl+V. Перемещать символ стрелками, с зажатым Alt символ будет двигаться по одному пикселю. Для копирования вверх или влево удобнее сдублировать объект (Ctrl+D) и оттащить его стрелками. Поворот на 90° — Ctrl+квадратные скобки ([]), для обычного поворота достаточно два раза кликнуть на объекте и тащить за углы. Ни в коем случае не изменяйте пропорции символов!

Схема использует шрифт PT Sans 14 пунктов для заголовков и 8 — для подписей. Толщина всех линий — 1 «пиксель» (не то же самое, что экранный пиксель). Чтобы толщина линии не менялась при растяжении, отожмите кнопку «изменять толщину обводки» в панели инструментов вверху, первая кнопка после слова "Менять". Из меню «Объект» сразу включите панели «Заливка и обводка» и «Выровнять и расставить». Несколько объектов для использования последней функции выделяются с зажатым Shift.

Inkscape-buttons.png

Отрезок рисуется кнопкой с жёлтым карандашом (F6): кликните в начало и кликните в конец. Зажатый Ctrl привяжет угол отрезка к 0–45–90°. Сразу после можно продолжить отрезок, кликнув в один из его концов, либо начать новый. Проверьте в панели, что толщина обводки 1 и цвет чёрный. Двигать отдельные узлы линий можно вторым инструментом, под стрелочкой (F2). Для добавления стрелок на концы отрезка в закладке «стиль обводки» есть пункты «маркер начала / конца». Желательно использовать «Arrow1Mstart / Arrow1Mend».

Настройки, сделанные при выбранном инструменте и невыбранных объектах, запоминаются. Например, если выбрать инструмент текста (кнопка «T») и перед кликом на холсте выбрать шрифт и размер, то эти настройки сохранятся для создаваемых объектов.

Если горячие клавиши не работают, проверьте язык раскладки: Inkscape часто отказывается откликаться на русские буквы.

Сохраняйтесь чаще! Когда один лист заполнится схемами, сохраните его, затем выберите «сохранить как» и введите новое имя файла. В новом файле уже можно удалить старые схемы и начать чертить новые. Советую пользоваться Dropbox: его автоматическое версионирование уже раз спасло меня от потери схемы станции.

Пример результата:

Metro-sadovaya.png

Текст

Для всего текста на карте: названия станции, названий направлений движения, дополнительной полезной информации и т.д. создаются слои name_*, где * - код языка.

  • ru - русский
  • en - английский и т.д.

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

Параметры измерений

Все параметры измерений элементов инфраструктуры (цифры или формулы описанные выше) складываются в слой numbers.

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

Схема станции Аннино (Москва) с включенными (слева) и отключенными (справа) параметрами измерений.

Коды входов/выходов

После отрисовки схемы проводится назначение кодов входам/выходам. Коды сквозные и глобально уникальные, удобно добавлять в конце 0, так как потом наверняка придется добавлять еще.

Коды вносятся в слой схемы exits.

Для этого визуально прослеживается путь от конечной точки до центра платформы и конечной точке назначается код.

Особенности назначения кодов входам/выходам:

  1. Если физически вход совмещен с выходом, но маршруты от входа и на выход разные (например на выход есть эскалатор, но он не работает на вход), то это два маршрута.
  2. Если один и тот же физический вход ведет на несколько разных станций узла, то этому входу назначается два кода.
  3. Если таких станций на узле несколько, вход/выход совмещены, но от них до станций ведут разные маршруты, то количество кодов у одного физического входа/выхода может достигать 6-10.
Фрагмент станции Киевская и набора выходов с несколькими кодами для каждого.

Нумерация входов/выходов (миткоды)

В отличие от кодов, описанных выше, нумерация нужна не для машин, а для людей. Их удобно использовать для назначения встреч: "Встречаемся у входа #3 на Киевской". Поэтому мы называем их сокращенно - миткодами (meet-code).

Эти номера вносятся в слой meetcode.

Правила расстановки следующие:

  1. Миткоды ставятся последовательно и сгруппированно, так же как и сами выходы
  2. Миткоды присваиваются реальным физическим объектам - входам/выходам
  3. Если выходы находятся очень близко друг от друга, то им можно назначить один миткод.
Нумерация входов/выходов на схеме станции Молодежная (Москва)

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

Миткоды на карте сервиса

Дополнительные слои

После того, как основное содержание схемы создано, можно заняться рядом необязательных, но желательных слоёв.

  • elements-ids - Идентификаторы элементов - каждый элемент инфраструктуры узла, за исключением проходов и путей, нумеруется.
  • pointers - Указатели - стрелка с номером. Стрелка указывает направление фотографирования, номер - номер указателя. Фотография указателя называется так: X-YYY.jpg, где X - код узла, а YYY - номер указателя.
  • photos - Фотографии - точка, указывающая, что элемент сфотографирован. Фотография называется так: X-YYY.jpg, где X - код узла, а YYY - идентификатор элемента, к которому привязана фотография.

Таблица маршрутов

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

Пример окончательной схемы станции и виртуального маршрута (красная линия)

Структура полей таблицы параметров доступности по маршрутам:

  • id_entrance - код входа/выхода, назначается при первичном заполнении таблицы
  • meetcode - код для встречи
  • name_ru - описание входа/выхода (русский)
  • name_en - описание входа/выхода (английский)
  • id_station - код станции из таблицы stations.csv
  • direction - направление выхода, возможные значения: both (и вход, и выход), in (только вход), out (только выход)
  • lat - широта точки, соответствующей выходу на поверхности (не указывается для выходов в сложные архитектурные сооружения, такие как торговые центры, вокзалы и т.д.)
  • lon - долгота точки, соответствующей выходу на поверхности (не указывается для выходов в сложные архитектурные сооружения, такие как торговые центры, вокзалы и т.д.)
  • max_width - максимальная ширина коляски (т.е. ширина самого узкого места на маршруте)
  • min_step - минимальное количество ступеней на маршруте
  • min_step_ramp - минимальное количество ступеней, не дублированных пандусами или рельсами (должно быть меньше или равно min_step)
  • lift - количество лифтов на маршруте
  • lift_minus_step - сколько ступеней экономит использование лифта
  • min_rail_width - наибольшая ширина внутренней ширины рельс на маршруте
  • max_rail_width - наименьшая ширина внешней ширины рельс на маршруте
  • max_angle - максимальный угол наклона на маршруте

Особенности заполнения таблицы:

  1. Координаты могут сниматься непосредственно в натуре или браться из OpenStreetMap. Мы не используем другие карты из-за лицензионных ограничений.
  2. Полей name_* может быть быть сколько угодно по числу языков

Пример заполнения для двух маршрутов на станции м. Варшавская (один из них изображен красной линией выше):

id_entrance meetcode name_ru name_en id_station direction lat lon max_width min_step
15552 5 вход в подвальный этаж торгового центра entrance to shopping mall (underground level) 27 both 740 37
15570 8 Каширский пр-д, пригородные кассы Kashirskij proezd, suburban trains ticket office 27 both 37.6231333737 55.6536318325 740 87

продолжение таблицы:

id_entrance min_step_ramp lift lift_minus_step min_rail_width max_rail_width max_angle
15552 37 0 0 0 0 0
15570 48 0 0 310 750 20


Структура полей таблицы параметров доступности по переходам:

  • station_from - код станции "откуда" из таблицы stations.csv
  • station_to - код станции "куда" из таблицы stations.csv
  • max_width - максимальная ширина коляски (т.е. ширина самого узкого места на переходе)
  • min_step - минимальное количество ступеней на переходе
  • min_step_ramp - минимальное количество ступеней, не дублированных пандусами или рельсами (должно быть меньше или равно min_step)
  • lift - количество лифтов на переходе
  • lift_minus_step - сколько ступеней экономит использование лифта
  • min_rail_width - наибольшая ширина внутренней ширины рельс на переходе
  • max_rail_width - наименьшая ширина внешней ширины рельс на переходе
  • max_angle - максимальный угол наклона на переходе

Пример заполнения (первая строка - пересадка с Белорусской (Замоскворецкая) на Белорусскую (Кольцевая), вторая - с Бульвара Дмитрия Донского на Улицу Старокачаловская):

station_from station_to max_width min_step min_step_ramp lift lift_minus_step min_rail_width max_rail_width max_angle
35 67 950 45 45 0 0 0 0 0
164 191 1000 48 0 0 0 300 770 20

Результаты

  • В рамках проекта "Метро для всех" эта методика применена в 11 городах: Амстердам, Варшава, Волгоград, Екатеринбург, Казань, Лозанна, Минск, Москва, Нижний Новгород, Самара, Санкт-Петербург, Глазго, Марсель, Новосибирск,.
  • Закартировано 458 станций
  • Пронумерованы 2170 входов/выходов
  • Выпущен подробный доклад о доступности Московского метро
  • Создано веб и мобильное приложения.

Перспективы

  1. Доступность метрополитена определяется также простотой навигации внутри метрополитена и в непосредственной близости от входов-выходов. Таким образом, одним из возможных направлений развития проекта является создание удобной и понятной системы, помогающей прокладывать маршруты с заданными параметрами доступности внутри метро и между метро и конечным пунктом назначения пользователя.
  2. Метрополитен плохо приспособлен также для слабовидящих и слабослышащих. Одним из возможных направлений развития проекта является картирование имеющейся инфраструктуры для этих категорий пассажиров
  3. Измерений внутри метрополитена недостаточно для полной оценки его доступности: выходы из метро ведут к станциям наземного транспорта, к железнодорожным вокзалам и аэропортам. Еще одним возможным направлением развития проекта является измерение и картирование инфраструктуры других видов общественного транспорта.