Ербол Султанбаев: как я решил создать приложение Almaty Bike Tool

Ербол Султанбаев: как я решил создать приложение Almaty Bike Tool

Предлагаем вашему вниманию небольшое эссе, состоящее из бесед с Ерболом Султанбаевым, одним из самых активных популяризаторов велошеринга.

Помимо основного занятия и ведения telegram-канала “О велошеринге”, Ербол вносит серьезный практический вклад в этот растущий сегмент городского транспорта. И одним из примеров такой работы является веб-приложение для велошеринга, созданное
Ерболом практически с нуля.

“А тут уже готовое!”

В прошлом году мы с Ануаром Джусуповым, создателем telegram-чата "Сообщество Almaty Bike", хотели помочь Almaty Bike сделать аналитику распределения велостанций и доков по каждой станции. Так мы смогли бы оптимизировать ребалансировку, то есть развозку велосипедов по городу.

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

Эти данные включают в себя информацию по каждой станции: номер ID, код станции, название и адрес на 3 языках, общее количество доков, количество доступных велосипедов на станции, количество доступных доков, состояние станции (неактивная, удаленная, скрытая), а также является ли станция пунктом продажи.

Официально Almaty Bike данными делиться не хотел, поэтому Ануар решил собирать эти данные в формате CSV у себя на Google Диске с помощью нехитрого кода Google Apps Script API.

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


По факту с данными ничего не делалось, они просто накапливаются на Google Диске у Ануара. Где-то в августе-сентябре прошлого года я решил, что пора создать веб-приложение на базе Google Apps Script API и Google Spreadsheets, которое будет выстраивать графики доступных велосипедов, в зависимости от того какую станцию ты выберешь.

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

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

Я решил написать свой парсер (Программное обеспечение для сбора данных и преобразования их в структурированный формат. — Прим.ред.). Программа создает файл раз в сутки. Данные в один и тот же рабочий файл добавляются каждые 5 минут; вместо 1440 файлов Ануара в сутки — 1 файл в минуту.

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

Станция, которую переместили, расширили или уменьшили — это уже не та же самая станция, и делать по ней анализ становится сложнее.

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

При помощи этого приложения мы не раз могли уличить Almaty Bike в игнорировании тех или иных станций в техническом обслуживании.

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

Приложение, дающее общую картину велошеринга

Несмотря на то, что существует сайт Bikesharp, иногда хочется вернуться назад на месяц или пару дней и посмотреть что было с системой. Сайт этого не позволяет сделать, максимальное отображение данных — 2 дня.

А мне хочется создать приложение, в котором можно видеть положение дел сейчас и в прошлом. Например, знать сколько всего велосипедов находится сейчас на линии.

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

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

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

Сейчас у Almaty Bike: 1941 активных доков при 184 активных станциях. Велосипедов всего 720-730 штук, в зависимости от ремонта и развозки. 1941/ 730 = 2,65 — что вполне составляет хорошее числовое отношение для Алматы.

Суммарно в Almaty Bike есть около 1400 велосипедов. Конечно, не все находятся на линии, некоторая часть, например, “обута” в шипованную резину для зимнего сезона.

Если на линию выпустить 1200 велосипедов, то доков в городе должно быть минимум 2400, а лучше больше — 3000. Мы стараемся делиться с Almaty Bike такой информацией.

В итоге, я решил создать более лучшую версию приложения, назвав его Almaty Bike Tool. Я развернул его как веб-приложение на базе Google Script API (уже не на базе Google Spreadsheets). Доступ к нему пока только у меня.

Интерфейс Almaty Bike Tool создан с помощью HTML+CSS и Bootstrap. Я сделал все "свистки и кнопки", чтобы самому было удобно быстро извлечь тот или иной график на базе модуля Chart.js для JavaScript.

Almaty Bike Tool дает общую картину всей системы Almaty Bike, следовательно, можно видеть:

  • общее количество доступных велосипедов в ту или иную минуту;
  • активные доки, доступные доки, заблокированные доки/велосипеды;
  • активные станции, неактивные станции (сейчас их 7 штук, в основном, на пр. Достык из-за реконструкции);
  • удаленные станции, скрытые станции;
  • количество точек продаж.

Также показываются максимальные данные вышеперечисленных значений за сутки.

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

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

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

Например, такая информация послужила бы мощным источником для дипломных и научных проектов. К сожалению, этого нет.

Велошеринг — это общественный транспорт

В отличие от Ануара, я не велосипедист. У меня нет личного велосипеда, я использую именно Almaty Bike. Мы ведь не называем "автобусниками" людей, пользующихся городским транспортом. Для меня Almaty Bike, то есть велошеринг — это общественный транспорт.

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

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

Свобода передвижения приходит, когда создаются велополосы, автобусные “выделенки”, метро, БРТ, ЛРТ.

В США запускают частные ракеты в космос, cоздают глобальный Wi-Fi, а наш человек застрял в 70-80 годах, идеализируя личный автомобиль на советский манер.

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

Сегодня США в лидерах по велошерингу и самокатшерингу, они задают тон развитию микромобильности в мире. Мечтаю, чтобы и у нас в Казахстане было также.