Методика сбора данных для проекта «Метро для всех»: различия между версиями
Zverik (обсуждение | вклад) (→Таблица и JSON: закончил json) |
Zverik (обсуждение | вклад) (→Из блокнота в Inkscape: ссылка на пример) |
||
Строка 79: | Строка 79: | ||
Сохраняйтесь чаще! Когда один лист заполнится схемами, сохраните его, затем выберите «сохранить как» и введите новое имя файла. В новом файле уже можно удалить старые схемы и начать чертить новые. Советую пользоваться Dropbox: его автоматическое версионирование уже раз спасло меня от потери схемы станции. | Сохраняйтесь чаще! Когда один лист заполнится схемами, сохраните его, затем выберите «сохранить как» и введите новое имя файла. В новом файле уже можно удалить старые схемы и начать чертить новые. Советую пользоваться Dropbox: его автоматическое версионирование уже раз спасло меня от потери схемы станции. | ||
Не обязательно делать красиво или опрятно, но помните, что на ваши схемы будут смотреть тысячи человек, поэтому лучше постараться. | Не обязательно делать красиво или опрятно, но помните, что на ваши схемы будут смотреть тысячи человек, поэтому лучше постараться. Пример схемы [https://www.dropbox.com/s/ka0phk3zhuqmvyw/metro-diag.svg качайте здесь]. | ||
== Таблица и JSON == | == Таблица и JSON == |
Версия от 10:18, 21 июля 2013
Целью этого «проекта» будет сбор данных об инвалидно-колясочной доступности каждой станции метрополитена разных городов. Я удивлён, что никто этого до сих пор не сделал: всего две недели работы одного человека (для Петербурга) — и восхитительный, многофункциональный набор данных на руках. Что ж, мы, как всегда, будем здесь первыми.
Подготовка
Первым делом, нужно выбрать лучший тариф на поездки, потому что вам придётся выходить и заходить обратно на каждой станции по пути. Рассчитывайте на 80 поездок в месяц, например. Ну или сколько у вас по плану нужно собрать станций: в какой-нибудь Казани это вообще два дня и сущие копейки. Затем спланируйте маршрут на ближайшие пару дней. За день реально собрать 5-8 станций: физически объехать можно и больше, однако 1) вы задолбаетесь, 2) не забудьте, что для них ещё чертежи рисовать. Впрочем, набив руку, можно и поманьячить. На одну станцию у меня уходит в среднем 20 минут, для пересадочных станций время увеличивается пропорционально количеству линий.
Инвентарь: ручка, блокнот (если вы не привыкли мельчить, то формата А5, желательно на спирали и в твёрдой обложке), рулетка и уклонометр. Последние бывают двух типов: электронные, которые стоят от 2,5 тысяч, и обычные уровни с дополнительным поворотным глазом, окружность которого проградуирована. Поскольку точности в 1° достаточно, то уровень вполне подойдёт. Также всё это желательно носить в сумке на плече, чтобы обе руки были свободны, и желателен карман в рубашке, где будет жить ручка.
Зарисовка схемы
Основные элементы
Вы приехали на станцию метро и достали блокнот. Результатом этой прогулки будет схема расположения «препятствий» для колёсных объектов: лестниц, рамп, дверей, лифтов, даже сужений. Начнём рисовать схему с платформы:
Прямоугольники со стрелками — это пути, одна-две буквы идентифицируют следующую станцию. Допустим, с одного конца станции виден эскалатор: обозначим его двумя линиями со стрелками между ними. И встанем на него, посмотреть на устройство вестибюля.
Большинство вестибюлей похожи и просты: сразу за эскалаторами турникеты (штрихи вдоль пути), затем дверные проёмы без дверей (обозначены знаком сужения) и двери на вход и выход. Замечу, что часто направления входа и выхода жёстко разделены забором, но в контексте «преград» совпадают. Работа потребует в некоторой мере картографического склада ума: маршруты желательно располагать так, чтобы они не пересекались, и минимизировать количество одиночных направлений. То есть, лучше заранее увидеть, что хотя направления на вход и выход разделены, пассажиры там и там проходят через похожие двери и преодолевают одинаковое количество ступенек.
На второй картинке видны числа: начинаем измерять. Для дверей и проёмов указывается их ширина. Точнее, максимальная ширина объекта, который можно сквозь них протащить. Это важно для дверей, петли которых часто занимают часть проёма.
Сразу за дверью входа-выхода находится общая лестница из 4 ступенек. Кроме этого числа, ещё один параметр лестницы, который желательно записать — наличие перил. Их обозначает буква «п». Иногда, когда можно подумать, что перила есть, но автор забыл их записать (например, в каскаде из 4 пролётов, где у одного забыли сделать перила), я пишу «п» и зачёркиваю букву крест-накрест.
Обычно если пассажир может выбрать из нескольких лестниц, достаточно записать самую короткую и удобную. Аналогично, если рядом с лестницей есть аналогичный по ширине уклон без ступенек, которым пользуется большая часть людей, то лестница как бы и не важна. Однако когда на выходе есть рампа (наклонная поверхность в обход ступенек, не путать с рельсами), я обычно отмечаю её вкупе со ступеньками. Причин две: рампами часто пользоваться менее удобно, поскольку их ещё нужно найти, и путь получается длиннее. И это даёт нам возможность посчитать количество ступенек, которые преодолевает обычный пассажир без тележки.
Рампа обозначается ломаной линией, для неё вместо количества ступенек записывается угол наклона (вот и пригодился уклонометр). Если её ширина меньше метра, то можно измерить и её, иначе достаточно угла — и наличия перил, конечно.
Лестница с рельсами
Когда вы натолкнётесь на лестницу, «подготовленную» для инвалидов добавлением рельсов, начнётся настоящая, тяжёлая работа. Помимо обязательный ступенек, нужно рулеткой измерить минимальную и максимальную ширину пространства для колёс (то есть, внутри рамок рельсов). Затем посмотреть уклон. Наконец, оценить, сможет ли инвалид, катясь по рельсам, дотянуться до перил (обычно может, но иногда чувство меры проектировщикам отказывает). Всё это нужно запротоколировать, и такие лестницы отнимут не только максимум времени, но и максимум свободного пространства на листе.
Слева направо: количество ступенек, обозначение перил при рельсах (если перила есть, но от рельс не дотянуться, то «п» будет стоять у ступенек), минимальная и максимальная ширина колёс, угол наклона рельсов. Если поверхность рельс покрыта специальным материалом для увеличения трения, это тоже нужно указать, буквой «р». Вы уже заметили, что все размеры указываются в миллиметрах? Ошибка в 2-4 миллиметра (до 1%) вполне допустима, для дверей можно и полтора процента. Впрочем, двери часто ставят типовые, и вы быстро научитесь отличать их на глаз.
Что ж, введённые обозначения позволяют зарисовать станцию, и даже несколько станций (одна из которых конечная) с переходами между ними и прилегающий подземный переход:
В блокноте эта схема, конечно, выглядела более неряшливо. Готовьтесь к переходам с 16 и более лестничными пролётами (у меня был один с более чем двадцатью).
Особые случаи
На некоторых станциях вы будете натыкаться на необычные решения. Где-то для инвалидов сделали лифт, где-то рельсы обрываются за три ступеньки до пола, где-то тестируют новый наноподъёмник. Не скупитесь на заметки. Вот пример из Петербурга:
Здесь можно выйти по рампам в подземном переходе, но днём можно полениться и заехать в торговый центр, где есть лифты на поверхность (обозначаются квадратиком). В вестибюле метро есть рампа по центру, но обычно она открыта только для спускающихся пассажиров, а чтобы разомкнуть бортик, выкатываясь на коляске из метро (впереди же лестница без рельсов), нужно попросить дежурную по станции. А на станции «Парнас» специально для инвалидов сделан доступ через лифты, однако они управляются вручную дежурным по турникетам, который, по его словам, не может разорваться, поэтому ни женщины с колясками, не уставшие старушки с сумками воспользоваться лифтами не могут.
Записывайте всё, что может повлиять на выбор маршрута или сложность пути для необычных пассажиров: инвалидов, пожилых людей, людей с колясками или крупногабаритным багажом. Лучше собрать лишнюю информацию, чем пропустить важную.
Из блокнота в Inkscape
После сбора информации идёт самая сложная часть работы: перерисовать картинки из блокнота в векторном редакторе. Вам будет лень, и нужно бороться с соблазном отложить на потом, но лучше сделать сразу, чем потом плеваться от редактора. Используем Inkscape (и формат SVG), потому что он бесплатный, мультиплатформенный и с открытым форматом файлов, в отличие от иллюстратора. Правда, под маком его нетривиально запустить: понадобится XQuartz.
За основу возьмите этот файл: в нём есть все нужные символы. Сохраните его на диск и откройте в Inkscape, в браузере он выглядит пустым. Начнём с азов: перемещение холста средней кнопкой мыши, масштабирование — Ctrl+колёсико. Копирование и вставка символа — Ctrl+C, Ctrl+V. Перемещать символ стрелками, с зажатым Alt символ будет двигаться по одному пикселю. Для копирования вверх или влево удобнее сдублировать объект (Ctrl+D) и оттащить его стрелками. Поворот на 90° — Ctrl+квадратные скобки ([]), для обычного поворота достаточно два раза кликнуть на объекте и тащить за углы. Ни в коем случае не изменяйте пропорции символов!
Схема использует шрифт PT Sans 14 пунктов для заголовков и 8 — для подписей. Толщина всех линий — 1 «пиксель» (не то же самое, что экранный пиксель). Чтобы толщина линии не менялась при растяжении, отожмите кнопку «изменять толщину обводки» в панели инструментов вверху, первая кнопка после слова "Менять". Из меню «Объект» сразу включите панели «Заливка и обводка» и «Выровнять и расставить». Несколько объектов для использования последней функции выделяются с зажатым Shift.
Отрезок рисуется кнопкой с жёлтым карандашом (F6): кликните в начало и кликните в конец. Зажатый Ctrl привяжет угол отрезка к 0–45–90°. Сразу после можно продолжить отрезок, кликнув в один из его концов, либо начать новый. Проверьте в панели, что толщина обводки 1 и цвет чёрный. Двигать отдельные узлы линий можно вторым инструментом, под стрелочкой (F2). Для добавления стрелок на концы отрезка в закладке «стиль обводки» есть пункты «маркер начала / конца». Желательно использовать «Arrow1Mstart / Arrow1Mend».
Настройки, сделанные при выбранном инструменте и невыбранных объектах, запоминаются. Например, если выбрать инструмент текста (кнопка «T») и перед кликом на холсте выбрать шрифт и размер, то эти настройки сохранятся для создаваемых объектов.
Если горячие клавиши не работают, проверьте язык раскладки: Inkscape часто отказывается откликаться на русские буквы.
Сохраняйтесь чаще! Когда один лист заполнится схемами, сохраните его, затем выберите «сохранить как» и введите новое имя файла. В новом файле уже можно удалить старые схемы и начать чертить новые. Советую пользоваться Dropbox: его автоматическое версионирование уже раз спасло меня от потери схемы станции.
Не обязательно делать красиво или опрятно, но помните, что на ваши схемы будут смотреть тысячи человек, поэтому лучше постараться. Пример схемы качайте здесь.
Таблица и JSON
После черчения схем агрегированные значения собираются в три таблицы: их можно хранить в CSV на гитхабе, в страницах таблицы LibreOffice Calc или в разделах вики-страницы. Я выбрал второй вариант: он наиболее удобен, хотя и плох для совместной работы.
Первая таблица — станции метрополитена.
Дата | Линия | Станция | Название | Широта | Долгота | Мин. ширина | Мин. ступенек | Мин. ступенек без рамп | Мин. ширина рельс | Макс. ширина рельс | Макс. угол | 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°, если есть лестницы без рельсов. В комментарий нужно записывать условия для прохода пассажиров, например, «лифт только для инвалидов».
Вторая таблица содержит информацию о переходах: прямом маршруте от платформы одной станции до платформы другой. Станции адресуются по идентификаторам из первой таблицы.
Дата | Линия 1 | Станция 1 | Линия 2 | Станция 2 | Мин. ширина | Мин. ступенек | Мин. ширина рельс | Макс. ширина рельс | Макс. угол | Комментарий |
---|---|---|---|---|---|---|---|---|---|---|
9.07.13 | 2 | 12 | 5 | 12 | 930 | 32 | 360 | 748 | 27 |
Значения все те же самые. Как для станций объединяются маршруты на вход и на выход, так и здесь оба направления объединены в одну строку. Лучший или худший маршрут выбирать — дело сборщика данных: иногда можно идти против шерсти или попросить смотрителя открыть проход.
В третью таблицу собираются данные по надземным (Over) и подземным (Under) переходам.
Дата | ID | Тип | Местонахождение | Широта | Долгота | Ступенек в среднем | Мин. ширина рельс | Макс. ширина рельс | Макс. угол |
---|---|---|---|---|---|---|---|---|---|
8.07.13 | 1 | Under | Кронверкский × Каменноостровский | 59.956231 | 30.320758 | 25 | 418 | 624 | 23 |
Среднее количество ступенек — то, которое в среднем нужно преодолеть для спуска в переход или подъёма из него. Можно посчитать как округлённое среднее арифметическое всех выходов. Идентификатор нужен для связи со станциями метро, вестибюли которых находятся в подземных переходах. Он начинается с 1, порядок произвольный; у станций с вестибюлями на поверхности в колонку идентификатора записывается ноль.
Для визуализации и обработки данных их нужно будет преобразовать в формат JSON. Поскольку у нас есть координаты, появляется соблазн сделать GeoJSON, но это ошибка: так у нас не получится, например, сделать такую красивую картинку:
Поэтому данные нужно перевести в формат «как есть», а затем обрабатывать либо на стороне клиента, либо скриптами. Вот пример:
metroData = {
'stations': {
'surveyed': '2013-07-09',
'id': [ 5, 12 ],
'name': 'Садовая',
'lat': 59.92702,
'lon': 30.32057,
'width': 925,
'steps': 39,
'fullSteps': 39,
'railsMin': 361,
'railsMax': 739,
'angle': 25,
'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
}
};
Развитие проекта
Одних станций метро недостаточно: многие выходы спрятаны в подземных переходах, которые сами по себе труднопреодолимы. Поэтому к сотне станций метро нужно добавить сотню подземных — ну и надземных тоже — переходов. Расставить это всё на карте, и получим схему боевых действий, город против инвалидов. Это первая фаза проекта.