В этом документе представлены сведения о формате и структуре файлов в наборе данных GTFS.
Содержание
Используемые термины
В этом разделе даны определения терминов, которые используются в спецификации.
- Набор данных. Полный набор файлов, определенных в этой спецификации. Любое изменение в наборе данных создает новую его версию. Наборы данных следует публиковать по общедоступному постоянному URL, который включает имя ZIP-файла. Пример: https://www.agency.org/gtfs/gtfs.zip.
- Запись. Базовая структура данных, содержащая значения различных полей, описывающих один объект (например, транспортное агентство, остановку или маршрут). Представляется в таблице в виде строки.
- Поле. Свойство объекта. Представляется в таблице в виде столбца.
- Значение поля. Отдельная запись в поле. Представляется в таблице в виде ячейки.
- Обязательное поле. Поле, которое должно быть включено в набор данных, и для каждой записи должно быть указано значение этого поля. Для некоторых обязательных полей в качестве значения допускается пустая строка (обо всех таких случаях указано в этих спецификациях). Чтобы ввести пустую строку, ничего не указывайте между запятыми, ограничивающими это поле.
- Необязательное поле. Поле, которое можно не включать в набор данных. Если в таблицу включен необязательный столбец, некоторые ячейки в нем могут быть пустыми. Чтобы ввести пустую строку, ничего не указывайте между запятыми, ограничивающими это поле. Обратите внимание, что пропущенное поле эквивалентно полностью пустому полю.
- Условно обязательное. Поле или файл требуется при определенных условиях, изложенных в его описании. Если эти условия не выполнены, поле или файл можно не указывать.
- День обслуживания. Период времени, используемый для указания расписания по маршруту. Точное определение дня обслуживания может отличаться у разных агентств, но дни обслуживания часто не соответствуют календарным дням. Длительность дня обслуживания может превышать 24:00:00, если обслуживание начинается в один день и заканчивается на следующий. Например, услуга, которая предоставляется с 08:00:00 в пятницу до 02:00:00 в субботу, может быть обозначена как доступная с 08:00:00 до 26:00:00 в один день обслуживания.
Типы полей
- Цвет. Цвет, закодированный как шестизначное шестнадцатеричное число. Инструкции по генерированию допустимых значений приведены на странице https://htmlcolorcodes.com (начальный символ # не включен).
Примеры:FFFFFF
– для белого,000000
– для черного,0039A6
– для линий A, C и E сервиса. - Код валюты. Алфавитный код валюты по стандарту ISO 4217. Действующие коды валют можно посмотреть здесь: https://en.wikipedia.org/wiki/ISO_4217#Active_codes.
Примеры:CAD
– для канадского доллара,EUR
– для евро,JPY
– для японской иены. - Дата. День обслуживания в формате
YYYYMMDD
. Поскольку время в течение дня обслуживания может превышать 24:00:00, день обслуживания часто содержит информацию о последующих днях.
Пример:20180913
– для 13 сентября 2018 года. - Электронная почта. Адрес электронной почты.
Пример:example@example.com
. - Перечисление. Значение из набора предопределенных констант, указанных в столбце "Описание".
Пример: в полеroute_type
значение0
соответствует трамваю,1
– метро и т. д. - Идентификатор. Поле, где указывается внутренний идентификатор, не предназначенный для пассажиров. Его значение может быть любой последовательностью символов в кодировке UTF-8. Рекомендуется использовать только печатаемые символы ASCII. Идентификаторы, определенные в одном файле
.txt
, часто упоминаются в другом файле.txt
.
Пример: полеstop_id
в файлеstops.txt
– идентификатор; полеstop_id
в файлеstop_times.txt
– идентификатор из поляstops.stop_id
. - Код языка. Код языка в соответствии с синтаксисом BCP 47, разработанным Инженерным советом Интернета (IETF). Узнать больше о стандарте IETF BCP 47 можно на страницах http://www.rfc-editor.org/rfc/bcp/bcp47.txt и http://www.w3.org/International/articles/language-tags/.
Примеры:en
– для английского,en-US
– для американского английского,de
– для немецкого. - Широта. Широта по системе координат WGS84 в десятичных градусах. Значение должно быть больше или равно
-90.0
и меньше или равно90.0
.
Пример:41.890169
для Колизея в Риме. - Долгота. Долгота по системе координат WGS84 в десятичных градусах. Значение должно быть больше или равно
-180.0
и меньше или равно180.0
.
Пример:12.492269
для Колизея в Риме. - Неотрицательное значение с плавающей запятой. Число с плавающей запятой, большее или равное
0
. - Неотрицательное целое число. Целое число, большее или равное
0
. - Номер телефона. Номер телефона.
- Время. Время в формате ЧЧ:ММ:СС (также допускается формат Ч:ММ:СС). За точку отсчета дня обслуживания принимается полдень минус 12 часов (т. е. полночь, за исключением дней, в которые осуществляется переход на летнее время или обратно). Дополнительную информацию можно найти в этой статье. Время, выпадающее на следующий после полуночи календарный день, должно обозначаться как "24:00:00 плюс текущее местное время" в формате ЧЧ:ММ:СС.
Пример:14:30:00
для 14:30 или25:35:00
для 1:35 следующего дня. - Текст. Строка символов в кодировке UTF-8, которая предназначена для показа пользователям и потому должна быть удобочитаемой.
- Часовой пояс. Часовой пояс из базы данных часовых поясов: https://www.iana.org/time-zones. Названия часовых поясов не должны содержать пробелов, однако могут содержать символы подчеркивания. Список допустимых значений можно посмотреть здесь: http://en.wikipedia.org/wiki/List_of_tz_zones.
Примеры:Asia/Tokyo
,America/Los_Angeles
илиAfrica/Cairo
. - URL. Полный URL с префиксом http:// или https://; все специальные символы в URL должны быть правильно экранированы. Рекомендации по написанию URL можно найти на странице http://www.w3.org/Addressing/URL/4_URI_Recommentations.html.
Файлы набора данных
В этой спецификации определяются следующие файлы:
Имя файла | Обязательно | Что определяет |
---|---|---|
agency.txt |
Обязательно | Транспортные агентства, услуги которых представлены в наборе данных. |
stops.txt |
Обязательно | Остановки, на которых транспортные средства забирают или высаживают пассажиров. Также определяет станции и входы в них. |
routes.txt |
Обязательно | Маршруты общественного транспорта (совокупность рейсов, на которых пассажирам оказывается единая транспортная услуга). |
trips.txt |
Обязательно | Рейсы для каждого маршрута (последовательности из двух или более остановок, на которых транспортное средство останавливается в указанное время). |
stop_times.txt |
Обязательно | Время, когда транспортное средство прибывает на остановки и отправляется от них, выполняя тот или иной рейс. |
calendar.txt |
Условно обязательно | Даты обслуживания, указанные в виде еженедельных периодов с датами начала и окончания. Это поле должно быть заполнено всегда, кроме случаев, когда календарь доступности услуг определен в файле calendar_dates.txt . |
calendar_dates.txt |
Условно обязательно | Исключения для дат, определенных в файле calendar.txt . Обязателен к использованию, когда файл calendar.txt не предоставлен (в этом случае файл calendar_dates.txt должен содержать все даты предоставления услуг). |
fare_attributes.txt |
Необязательно | Тарифы на маршрутах транспортного агентства. |
fare_rules.txt |
Необязательно | Правила применения тарифов на маршрутах. |
shapes.txt |
Необязательно | Правила для привязки маршрутов транспортных средств к карте (т. н. согласование маршрутов). |
frequencies.txt |
Необязательно | Интервал между рейсами маршрутов с переменной частотой движения или сжатое представление рейсов с фиксированным расписанием. |
transfers.txt |
Необязательно | Правила пересадки в точках пересечения маршрутов. |
pathways.txt |
Необязательно | Пути, соединяющие разные места в пределах станций. |
levels.txt |
Необязательно | Уровни в пределах станций. |
feed_info.txt |
Условно обязательно | Метаданные набора данных, в том числе издатель, версия и срок действия. |
translations.txt |
Необязательно | Информация транспортного агентства, переведенная на другой язык. |
attributions.txt |
Необязательно | Указание авторства для набора данных. |
Требования к файлам
Ниже перечислены требования к формату и содержимому файлов, входящих в набор данных.
- Все файлы должны сохраняться в формате текста с разделителями-запятыми.
- Первая строка каждого файла должна содержать имена полей. Каждый подзаголовок в разделе Определения полей этого документа описывает один из файлов, который может содержаться в наборе данных GTFS, и названия полей, которые можно использовать в этом файле.
- Все имена полей чувствительны к регистру.
- Значения полей не должны содержать символов табуляции, возврата каретки или перехода на новую строку.
- Значения полей, содержащие кавычки или запятые, должны заключаться в кавычки. Кроме того, каждой кавычке в значении поля должна предшествовать другая кавычка. Это требование обусловлено порядком вывода файлов с разделителями-запятыми (CSV) в Microsoft Excel. Подробную информацию о формате CSV можно найти на странице http://tools.ietf.org/html/rfc4180.
В примере ниже показано, как значение поля будет отображаться в файле с разделителями-запятыми:
- Исходное значение поля:
Contains "quotes", commas and text
- Значение поля в CSV-файле:
"Contains ""quotes"", commas and text"
- Исходное значение поля:
- Значения полей не должны содержать комментариев, тегов HTML или управляющих последовательностей.
- Все лишние пробелы между полями или именами полей должны быть удалены, поскольку некоторые парсеры принимают пробелы за часть значения и это может вызвать ошибку.
- Каждая строка должна заканчиваться символом разрыва строки (CRLF или LF).
- Чтобы обеспечить поддержку всех символов Юникода, файлы необходимо сохранять в кодировке UTF-8. Также допускается использование файлов с маркером последовательности байтов (BOM). Дополнительная информация о Юникод-символе BOM и кодировке UTF-8 приведена на странице http://unicode.org/faq/utf_bom.html#BOM.
- Все файлы набора данных должны быть заархивированы вместе.
Определения полей
agency.txt
Обязательный файл
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
agency_id |
Идентификатор | Условно обязательно | Определяет бренд транспортного агентства (в большинстве случаев совпадает с названием). Они могут различаться, если, к примеру, одно агентство предоставляет несколько разных транспортных услуг. В этом документе вместо термина "бренд" используется термин "агентство". Набор данных может содержать информацию о нескольких агентствах. Это поле является обязательным для наборов данных, которые содержат информацию нескольких агентств. В остальных случаях его использовать необязательно. |
agency_name |
Текст | Обязательно | Полное название транспортного агентства. |
agency_url |
URL | Обязательно | URL транспортного агентства. |
agency_timezone |
Часовой пояс | Обязательно | Часовой пояс, в котором работает транспортное агентство. Если набор данных включает информацию нескольких агентств, для всех них должно быть указано одно и то же значение agency_timezone . |
agency_lang |
Код языка | Необязательно | Основной язык, используемый транспортным агентством. Это поле позволяет задать правила расстановки строчных и прописных букв, а также прочие языковые настройки текста в наборе данных. |
agency_phone |
Номер телефона | Необязательно | Номер голосового телефона транспортного агентства. Это текстовая строка, где номер телефона указан в формате, типичном для обслуживаемого перевозчиком региона. Номер может и должен содержать знаки препинания для группировки цифр. Разрешается использовать буквенные аналоги цифр (например, так выглядит телефон компании TriMet: 503-238-RIDE ), однако не допускается использование любого другого описательного текста. |
agency_fare_url |
URL | Необязательно | URL веб-страницы, на которой пассажиры могут приобрести билеты или другие средства оплаты проезда. |
agency_email |
Электронная почта | Необязательно | Адрес электронной почты, по которому пассажиры могут напрямую связаться со службой поддержки клиентов этого агентства. |
stops.txt
Обязательный файл
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
stop_id |
Идентификатор | Обязательно | Определяет остановку, станцию или вход на станцию. Термин "вход на станцию" относится в том числе и к выходам из станций. Остановки, станции и входы на станции совокупно называются "местоположениями". В одной точке могут останавливаться сразу несколько разных маршрутов. |
stop_code |
Текст | Необязательно | Краткий текст или номер, обозначающий остановку. Такие коды часто используются в сервисах, позволяющих отслеживать движение городского транспорта, или указываются на остановках, чтобы пассажирам было проще получить необходимую информацию. Значение stop_code может быть таким же, как и значение stop_id , если идентификатор является общедоступным. Для остановок, не обозначенных кодами, это поле следует оставлять пустым. |
stop_name |
Текст | Условно обязательно | Название местоположения. Используйте название, которое смогут легко понять и местные жители, и приезжие. Если местоположение является посадочной зоной ( location_type=4 ), в поле stop_name необходимо указать название этой посадочной зоны, используемое агентством в информационных материалах и указателях. Это может быть одна буква или текст, такой как "Место посадки для пассажиров в инвалидных колясках" или "Первые вагоны коротких поездов".Условно обязат. • Обязательно для остановок ( location_type=0 ), станций (location_type=1 ) и входов/выходов (location_type=2 ).• Необязательно для общих узлов ( location_type=3 ) и посадочных зон (location_type=4 ). |
stop_desc |
Текст | Необязательно | Описывает местоположение. Указывайте полезную и актуальную информацию, а не просто дублируйте наименование местоположения. |
stop_lat |
Широта | Условно обязательно | Широта местоположения. Условно обязат. • Обязательно для остановок ( location_type=0 ), станций (location_type=1 ) и входов/выходов (location_type=2 ).• Необязательно для общих узлов ( location_type=3 ) и посадочных зон (location_type=4 ). |
stop_lon |
Долгота | Условно обязательно | Долгота местоположения. Условно обязат. • Обязательно для остановок ( location_type=0 ), станций (location_type=1 ) и входов/выходов (location_type=2 ).• Необязательно для общих узлов ( location_type=3 ) и посадочных зон (location_type=4 ). |
zone_id |
Идентификатор | Условно обязательно | Определяет тарифную зону для остановки. Это поле является обязательным, если вы предоставили информацию о тарифах в файле fare_rules.txt . В противном случае заполнять его необязательно. Если запись представляет станцию или вход на нее, поле zone_id игнорируется. |
stop_url |
URL | Необязательно | URL веб-страницы с информацией о местоположении. Этот URL должен отличаться от указанных в полях agency.agency_url и routes.route_url . |
location_type |
Перечисление | Необязательно | Тип местоположения: • 0 или (пусто) – остановка или платформа: место, где пассажиры садятся в транспортное средство или выходят из него (остановка называется "платформой", если она определена в поле parent_station ).• 1 – станция: здание или пространство, внутри которого расположена одна или несколько остановок.• 2 – вход/выход: место, где пассажиры входят на станцию или выходят из нее. Если вход/выход относится к нескольким станциям, он может быть связан переходами со всеми ими, но поставщик данных должен указать только одну из них в качестве родительской или вообще не указывать родительскую станцию.• 3 – общий узел: местоположение в пределах станции, которое не соответствует ни одному другому типу location_type . Может использоваться для связывания переходов, определенных в файле pathways.txt .• 4 – посадочная зона: определенное место на платформе, где пассажиры могут садиться в транспортные средства или выходить из них. |
parent_station |
Идентификатор из поля stops.stop_id |
Условно обязательно | Определяет иерархические связи между местоположениями, указанными в файле stops.txt . Может содержать идентификатор вышестоящего местоположения в соответствии со следующими правилами:• Остановка/платформа ( location_type=0 ): поле parent_station содержит идентификатор станции.• Станция ( location_type=1 ): это поле должно быть пустым.• Вход/выход ( location_type=2 ) или общий узел (location_type=3 ): поле parent_station содержит идентификатор станции (location_type=1 )• Посадочная зона ( location_type=4 ): поле parent_station содержит идентификатор платформы.Условно обязат. • Обязательно для входов ( location_type=2 ), общих узлов (location_type=3 ) и посадочных зон (location_type=4 ).• Необязательно для остановок/платформ ( location_type=0 ).• Нельзя использовать для станций ( location_type=1 ). |
stop_timezone |
Часовой пояс | Необязательно | Часовой пояс местоположения. Если у местоположения есть родительская станция, то для него действует часовой пояс этой станции, а не его собственный. Если для станции или остановки без родительского объекта не указано значение поля stop_timezone , то используется часовой пояс из поля agency.agency_timezone . Если значения stop_timezone заданы, в файле stop_times.txt необходимо указать время, прошедшее с полуночи в часовом поясе agency.agency_timezone . За счет этого значения времени будут всегда увеличиваться в ходе поездки, даже когда рейс пересекает границы часовых поясов. |
wheelchair_boarding |
Перечисление | Необязательно | Указывает, возможна ли в этом местоположении посадка в инвалидной коляске. Возможные значения: Для остановок без родительских станций: 0 или пусто – нет информации о возможности посадки на инвалидной коляске.1 – по крайней мере некоторые транспортные средства, останавливающиеся в этом месте, приспособлены для инвалидных колясок.2 – посадка на инвалидной коляске невозможна. Для дочерних остановок: 0 или (пусто) – остановка наследует свое значение wheelchair_boarding от родительской станции, если таковая имеется.1 – от входа на станцию до остановки или платформы можно доехать на инвалидной коляске.2 – от входа на станцию до остановки или платформы нельзя доехать на инвалидной коляске.Для входов на станцию и выходов с нее: 0 или (пусто) – остановка наследует свое значение wheelchair_boarding от родительской станции, если таковая имеется.1 – вход на станцию оборудован для инвалидных колясок.2 – путь от входа до остановки или платформы не оборудован для инвалидных колясок. |
level_id |
Идентификатор из поля levels.level_id |
Необязательно | Уровень местоположения. Один и тот же уровень может использоваться несколькими не связанными между собой станциями. |
platform_code |
Текст | Необязательно | Идентификатор платформы на станции, например G или 3 . Идентификаторы не должны содержать поясняющих слов ("платформа", "путь" и т. п.) – так потребителям фидов будет проще локализовать их на разные языки. |
routes.txt
Обязательный файл
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
route_id |
Идентификатор | Обязательно | Определяет маршрут. |
agency_id |
Идентификатор из поля agency.agency_id |
Условно обязательно | Агентство для указанного маршрута. Это поле является обязательным, если в файле agency.txt представлены данные о маршрутах нескольких разных агентств. |
route_short_name |
Текст | Условно обязательно | Краткое название маршрута: используемое пассажирами абстрактное обозначение (например, 32, 100X, "зеленая линия"), которое не содержит информацию о местах следования маршрута. Необходимо указать значение хотя бы одного из этих полей (route_short_name или route_long_name ). При желании можно задать их оба. |
route_long_name |
Текст | Условно обязательно | Полное название маршрута: более описательное, чем у route_short_name , часто с названием пункта назначения или остановки маршрута. Необходимо указать значение хотя бы одного из этих полей (route_short_name или route_long_name ). При желании можно задать их оба. |
route_desc |
Текст | Необязательно | Описывает маршрут. Предоставьте полезную и актуальную информацию, а не просто дублируйте наименование маршрута. Пример: "Трамвай 3 следует по маршруту Метро "Чистые пруды" – Балаклавский проспект. Движение круглосуточное. В ночное время следует до конечной остановки "Улица Академика Янгеля". В случае ночных профилактических работ заменяется автобусом 3Н". |
route_type |
Перечисление | Обязательно | Тип транспорта, используемого на маршруте. Допустимые значения: 0 – трамвай, легкая железная дорога, любые другие системы легкорельсового уличного транспорта в пределах мегаполиса.1 – метро и любые другие системы подземного железнодорожного транспорта в пределах мегаполиса.2 – железная дорога для пригородных и междугородних перевозок.3 – автобусы (внутригородские и междугородние).4 – паромы (независимо от протяженности маршрутов).5 – канатные трамваи и системы уличного транспорта с подвагонным приводным тросом, такие как канатные трамваи в Сан-Франциско.6 – подъемники, подвесные канатные трамваи и другие виды транспорта, в которых кабины, вагоны или кресла удерживаются одним или несколькими тросами.7 – фуникулеры и любые другие системы железнодорожного транспорта, предназначенные для движения по крутым склонам.11 – троллейбусы и электробусы, получающие электрический ток через двухпроводную контактную сеть, расположенную над ними.12 – монорельсовый транспорт, в котором используется один несущий рельс. |
route_url |
URL | Необязательно | URL веб-страницы, посвященной определенному маршруту. Должен отличаться от указанного в поле agency.agency_url . |
route_color |
Цвет | Необязательно | Цвет, которым обозначается этот маршрут в информационных материалах для пассажиров. Если цвет не указан, по умолчанию используется белый (FFFFFF ). Цветовая разница между route_color и route_text_color должна обеспечивать достаточный контраст при просмотре на черно-белом экране. |
route_text_color |
Цвет | Необязательно | Цвет текста, который будет хорошо читаться на выбранном фоне (заданном в поле route_color ). Если цвет не указан, по умолчанию используется черный (000000 ). Цветовая разница между route_color и route_text_color должна обеспечивать достаточный контраст при просмотре на черно-белом экране. |
route_sort_order |
Неотрицательное целое число | Необязательно | Определяет порядок отображения маршрутов. Маршруты с более низким значением route_sort_order будут показаны пользователям раньше, чем маршруты с более высоким значением. |
continuous_pickup |
Перечисление | Необязательно | Указывает, может ли пассажир сесть в транспортное средство в любой точке пути следования. Путь следования описывается в shapes.txt для каждого рейса маршрута. Допустимые значения:0 – посадка в произвольной точке маршрута разрешена. 1 или (пусто) – посадка в произвольной точке маршрута запрещена.2 – для посадки в произвольной точке маршрута необходимо позвонить в транспортное агентство.3 – для посадки в произвольной точке маршрута необходимо подать сигнал водителю.Значение по умолчанию, определенное в routes.txt , можно переопределить в stop_times.txt . |
continuous_drop_off |
Перечисление | Необязательно | Указывает, может ли пассажир выйти из транспортного средства в любой точке пути следования. Путь следования описывается в shapes.txt для каждого рейса маршрута. Допустимые значения:0 – разрешена высадка в произвольной точке маршрута.1 или (пусто) – высадка в произвольной точке маршрута запрещена.2 – для высадки в произвольной точке маршрута необходимо позвонить в транспортное агентство.3 – для высадки в произвольной точке маршрута необходимо подать сигнал водителю.Значение по умолчанию, определенное в routes.txt , можно переопределить в stop_times.txt . |
trips.txt
Обязательный файл
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
route_id |
Идентификатор из поля routes.route_id |
Обязательно | Определяет маршрут. |
service_id |
Идентификатор из поля calendar.service_id или calendar_dates.service_id |
Обязательно | Определяет набор дат, когда обслуживание доступно на одном или нескольких маршрутах. |
trip_id |
Идентификатор | Обязательно | Определяет рейс. |
trip_headsign |
Текст | Необязательно | Текст, который пассажиры будут видеть в качестве пункта назначения рейса. Используйте это поле, если на одном маршруте возможны различные варианты движения или конечных остановок. Если маршрутный указатель изменяется во время поездки, можно переопределять trip_headsign значениями поля stop_times.stop_headsign . |
trip_short_name |
Текст | Необязательно | Текст, обозначающий рейс в расписаниях и на информационных табло (например, номер пригородного поезда). Если пассажирам не нужны наименования рейсов для их идентификации, оставьте это поле пустым. Если задано значение trip_short_name , необходимо однозначно идентифицировать поездку в течение дня обслуживания. Не используйте это поле для названий конечных пунктов или обозначений с коротким сроком действия. |
direction_id |
Перечисление | Необязательно | Указывает направление рейса. Это поле не используется в целях построения маршрутов: оно обозначает направление движения рейсов в расписаниях. Допустимые значения: 0 – направление "туда".1 – направление "обратно".Например, используя поля trip_headsign и direction_id , вы можете назначить наименования для поездок по маршруту в прямом и обратном направлении. Файл trips.txt может содержать следующие записи, применяемые в расписаниях: trip_id,...,trip_headsign,direction_id 1234,...,Airport,0 1505,...,Downtown,1 |
block_id |
Идентификатор | Необязательно | Определяет блок, к которому относится рейс. Блок может включать в себя один или несколько рейсов, выполняемых последовательно одним и тем же транспортным средством. Поездки группируются в блок по общему дню обслуживания и block_id . Один и тот же block_id в сочетании с разными датами будет давать разные блоки (см. пример ниже). |
shape_id |
Идентификатор из поля shapes.shape_id |
Условно обязательно | Определяет геопространственную форму, которая описывает движение транспортного средства, выполняющего рейс. Условно обязательное: это поле обязательно, если на маршруте применяются правила посадки и высадки, определенные на уровне маршрута или времени остановок. В остальных случаях его можно не использовать. |
wheelchair_accessible |
Перечисление | Необязательно | Указывает, возможна ли посадка в инвалидной коляске на этом рейсе. 0 – нет информации о возможности посадки на инвалидной коляске.1 – транспортное средство может вместить как минимум одного пассажира в инвалидной коляске.2 – проезд в инвалидной коляске на этом рейсе невозможен. |
bikes_allowed |
Перечисление | Необязательно | Указывает, разрешен ли провоз велосипеда на этом рейсе. Допустимые значения:0 или (пусто) – нет информации о том, разрешен ли провоз велосипеда на этом рейсе.1 – транспортное средство может вместить как минимум одного пассажира с велосипедом.2 – проезд с велосипедом на этом рейсе невозможен. |
Пример: блоки данных по дням обслуживания
В таблице ниже показаны примеры блоков для одного и того же маршрута в разные дни недели.
route_id |
trip_id |
service_id |
block_id |
(время первой остановки) | (время последней остановки) |
---|---|---|---|---|---|
red |
trip_1 |
mon-tues-wed-thurs-fri-sat-sun |
red_loop |
22:00:00 | 22:55:00 |
red |
trip_2 |
fri-sat-sun |
red_loop |
23:00:00 | 23:55:00 |
red |
trip_3 |
fri-sat |
red_loop |
24:00:00 | 24:55:00 |
red |
trip_4 |
mon-tues-wed-thurs |
red_loop |
20:00:00 | 20:50:00 |
red |
trip_5 |
mon-tues-wed-thurs |
red_loop |
21:00:00 | 21:50:00 |
Пояснения к таблице:
- В ночь с пятницы на субботу одно транспортное средство выполняет рейсы
trip_1
,trip_2
иtrip_3
(с 22:00 до 00:55). Обратите внимание, что последний рейс выполняется в субботу с 00:00 до 00:55, однако относится к дню обслуживания "пятница", о чем свидетельствует время, указанное в формате 24:00:00 и 24:55:00. - В понедельник, вторник, среду и четверг одно транспортное средство выполняет рейсы
trip_1
,trip_4
иtrip_5
в период с 20:00 до 22:55.
stop_times.txt
Обязательный файл
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
trip_id |
Идентификатор из поля trips.trip_id |
Обязательно | Определяет рейс. |
arrival_time |
Время | Условно обязательно | Время прибытия рейса, следующего по маршруту, на конкретную остановку. Если не предусмотрено разное время прибытия и отправления от остановки, укажите в полях arrival_time и departure_time одно и то же значение. Время, выпадающее на следующий после полуночи календарный день, должно обозначаться как "24:00:00 плюс текущее местное время" в формате ЧЧ:ММ:СС.Остановки, прибытие и отправление от которых строго привязано ко времени, учитываются как контрольные временные точки. Если остановка не является контрольной точкой, рекомендуется указать оценочное или интерполированное время. Можно также оставить поле arrival_time пустым. Чтобы система распознала интерполированное значение, добавьте timepoint=0 . Используйте значения timepoint=0 для интерполированных значений, а timepoint=1 – для контрольных временных точек. Укажите время прибытия для всех остановок, которые являются контрольными точками. Время прибытия должно быть указано также для первой и последней остановки рейса |
departure_time |
Время | Условно обязательно | Время отправления рейса, следующего по маршруту, с конкретной остановки. Время, выпадающее на следующий после полуночи календарный день, должно обозначаться в формате "24:00:00 плюс текущее местное время (ЧЧ:ММ:СС)". Если не предусмотрено разное время прибытия и отправления от остановки, укажите в полях arrival_time и departure_time одно и то же значение. Подробную информацию об использовании контрольных временных точек можно найти в описании arrival_time . В поле departure_time по возможности должны быть указаны временные значения, включая неточное оценочное или интерполированное время между контрольными временными точками. |
stop_id |
Идентификатор из поля stops.stop_id |
Обязательно | Определяет обслуживаемую остановку. Все обслуживаемые остановки должны быть обозначены в файле stop_times.txt . Указанные в нем местоположения должны быть остановками, а не станциями или входами на станции. На одном рейсе может быть несколько остановок в одном и том же месте. Кроме того, одну остановку могут обслуживать сразу несколько разных рейсов и маршрутов. |
stop_sequence |
Неотрицательное целое число | Обязательно | Порядок остановок для конкретного рейса. Значения должны увеличиваться на протяжении рейса, но не обязательно должны быть последовательными. Например, первой, второй и третьей остановкам рейса могут быть присвоены следующие значения: stop_sequence=1 , stop_sequence=23 и stop_sequence=40 .. |
stop_headsign |
Текст | Необязательно | Текст, который пассажиры будут видеть в качестве пункта назначения рейса. Это поле переопределяет заданное по умолчанию значение trips.trip_headsign , когда конечный пункт меняется между остановками. Если новый пункт назначения относится ко всему рейсу, используйте поле trips.trip_headsign . Значение stop_headsign , указанное для одного stop_time , не применяется для последующих stop_time в том же рейсе. Если вы хотите переопределять trip_headsign для нескольких stop_time в одном рейсе, значение stop_headsign необходимо указать в каждой строке stop_time . |
pickup_type |
Перечисление | Необязательно | Метод посадки. Возможные варианты:0 или (пусто) – посадка на остановках по расписанию. 1 – посадка пассажиров не предусмотрена.2 – для посадки необходимо позвонить в транспортное агентство.3 – для посадки необходимо подать сигнал водителю. |
drop_off_type |
Перечисление | Необязательно | Метод высадки. Возможные варианты:0 или (пусто) – высадка на остановках по расписанию.1 – высадка пассажиров не предусмотрена.2 – для высадки необходимо позвонить в транспортное агентство.3 – для высадки необходимо подать сигнал водителю. |
continuous_pickup |
Перечисление | Необязательно | Указывает, может ли пассажир сесть в транспортное средство в любой точке пути следования. Путь следования описывается в shapes.txt от текущей остановки stop_time до следующей остановки stop_time в stop_sequence рейса. Допустимые значения:0 – посадка в произвольной точке маршрута разрешена. 1 или (пусто) – посадка в произвольной точке маршрута запрещена.2 – для посадки в произвольной точке маршрута необходимо позвонить в транспортное агентство.3 – для посадки в произвольной точке маршрута необходимо подать сигнал водителю.Значение, указанное в stop_times.txt , переопределяет значения, определенные в routes.txt . |
continuous_drop_off |
Перечисление | Необязательно | Определяет, может ли пассажир выйти из транспортного средства в любой точке пути следования, который описывается в shapes.txt от текущей остановки stop_time до следующей остановки stop_time в stop_sequence рейса.0 – высадка в произвольной точке маршрута разрешена.1 или (пусто) – высадка в произвольной точке маршрута запрещена.2 – для высадки в произвольной точке маршрута необходимо позвонить в транспортное агентство.3 – для высадки в произвольной точке маршрута необходимо подать сигнал водителю.Значение, указанное в stop_times.txt , переопределяет значения, определенные в routes.txt . |
shape_dist_traveled |
Неотрицательное значение с плавающей запятой | Необязательно | Фактическое расстояние, пройденное от первой точки траектории до точки, указанной в записи. Значение в этом поле определяет, какую часть маршрутной линии между двумя остановками следует отрисовать на карте. Единицы измерения должны совпадать с теми, которые используются в файле shapes.txt . Значения shape_dist_traveled должны увеличиваться вместе со значениями stop_sequence (отрисовывать движение по маршруту в обратную сторону нельзя).Например, если автобус проезжает 5,25 км от начала маршрутной линии до остановки, то shape_dist_traveled=5.25 . |
timepoint |
Перечисление | Необязательно | Указывает, является ли время прибытия и отправления с остановки точным или приблизительным/интерполированным. С помощью этого поля поставщики данных для GTFS могут предоставлять интерполированные значения, которые учитывают текущую ситуацию на маршруте, но являются ориентировочными. Возможные варианты:0 – время считается приблизительным.1 или (пусто) – время считается точным. |
calendar.txt
Условно обязательный файл
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
service_id |
Идентификатор | Обязательно | Уникально определяет набор дат, когда услуга предоставляется на одном или нескольких маршрутах. Каждое значение service_id можно использовать в файле calendar.txt не более одного раза. |
monday |
Перечисление | Обязательно | Указывает, предоставляется ли услуга по понедельникам в течение диапазона дат, заданного в полях start_date и end_date . Исключить из диапазона определенные дни, например праздничные, можно в файле calendar_dates.txt . Возможные варианты:1 – услуга предоставляется по всем понедельникам в заданном диапазоне дат.0 – услуга не предоставляется по всем понедельникам в заданном диапазоне дат. |
tuesday |
Перечисление | Обязательно | Тот же принцип действия, что и у поля monday , но только для вторников. |
wednesday |
Перечисление | Обязательно | Тот же принцип действия, что и у поля monday , но только для сред. |
thursday |
Перечисление | Обязательно | Тот же принцип действия, что и у поля monday , но только для четвергов. |
friday |
Перечисление | Обязательно | Тот же принцип действия, что и у поля monday , но только для пятниц. |
saturday |
Перечисление | Обязательно | Тот же принцип действия, что и у поля monday , но только для суббот. |
sunday |
Перечисление | Обязательно | Тот же принцип действия, что и у поля monday , но только для воскресений. |
start_date |
Дата | Обязательно | Дата начала предоставления услуги. |
end_date |
Дата | Обязательно | Дата окончания предоставления услуги. Входит в интервал обслуживания. |
calendar_dates.txt
Условно обязательный файл
С помощью таблицы calendar_dates.txt
вы можете явным образом задать даты активации и деактивации определенных услуг. Это можно сделать двумя описанными ниже способами.
- Рекомендуемый способ. Используйте
calendar_dates.txt
в сочетании сcalendar.txt
, чтобы задать исключения для графика по умолчанию, определенного в файлеcalendar.txt
. Это удобно, если услуги предоставляются регулярно, но с некоторыми изменениями расписания в определенные даты (например, в дни праздничных мероприятий или школьных каникул). В этом случаеcalendar_dates.service_id
представляет собой идентификатор из поляcalendar.service_id
. - Альтернативный способ. Не используйте файл
calendar.txt
и укажите все даты, когда доступны услуги, в файлеcalendar_dates.txt
. Это удобно, если услуги предоставляются не по расписанию или со значительными отклонениями от него. В таком случаеservice_id
представляет собой идентификатор.
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
service_id |
Идентификатор из поля calendar.service_id или идентификатор |
Обязательно | Определяет набор дат, когда порядок оказания услуги на одном или более маршрутах отличается от обычного. Если файл calendar.txt используется в сочетании с файлом calendar_dates.txt , то каждая пара service_id и date может быть указана в файле calendar_dates.txt только один раз. Если в файлах calendar.txt и calendar_dates.txt задано одно и то же значение service_id , информация из файла calendar_dates.txt перезаписывает информацию о предоставлении услуги в файле calendar.txt . |
date |
Дата | Обязательно | Дата, когда порядок оказания услуги отличается от обычного. |
exception_type |
Перечисление | Обязательно | Указывает, предоставляется ли услуга в дату, заданную в поле date . Возможные варианты:1 – услуга доступна в указанную дату.2 – услуга недоступна в указанную дату.Предположим, что в праздничные дни на маршруте работает одна группа рейсов, а во все остальные – другая. В этом случае можно указать один service_id для регулярного графика работы и другой service_id – для расписания в праздничные дни. Тогда, добавив в файл calendar_dates.txt дату праздника, вы сможете включить ее в расписание праздничного service_id и удалить из расписания регулярного service_id . |
fare_attributes.txt
Необязательный файл
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
fare_id |
Идентификатор | Обязательно | Определяет тарифный класс. |
price |
Неотрицательное значение с плавающей запятой | Обязательно | Цена билета в единицах, указанных в currency_type . |
currency_type |
Код валюты | Обязательно | Валюта, используемая для оплаты проезда. |
payment_method |
Перечисление | Обязательно | Указывает, когда должна быть оплачена стоимость проезда. Возможные варианты:0 – проезд оплачивается при посадке.1 – проезд оплачивается до посадки. |
transfers |
Перечисление | Обязательно | Указывает максимальное количество пересадок, которые можно выполнить по условиям тарифа. Это обязательное поле можно оставить пустым, что является исключением из общего правила. Возможные варианты:0 – пересадка по этому тарифу невозможна.1 – можно совершить одну пересадку.2 – можно совершить две пересадки.(пусто) – количество пересадок не ограничено. |
agency_id |
Идентификатор из поля agency.agency_id |
Условно обязательно | Определяет соответствующее агентство для тарифа. Это поле требуется для наборов с данными нескольких агентств (их список определяется в файле agency.txt ). |
transfer_duration |
Неотрицательное целое число | Необязательно | Время в секундах, в течение которого можно выполнить пересадку. Если transfers=0 , с помощью этого поля можно указать, сколько времени будет действовать билет. Можно также оставить это поле пустым. |
fare_rules.txt
Необязательный файл
С помощью таблицы fare_rules.txt
можно указать, как тарифы из файла fare_attributes.txt
должны применяться к маршруту. В большинстве тарифов используются комбинации следующих правил:
- стоимость проезда зависит от места посадки или высадки;
- стоимость проезда зависит от того, через какие зоны проходит маршрут;
- стоимость проезда зависит от того, какими линиями пользуется пассажир.
Посмотреть примеры определения структуры тарифов с помощью файлов fare_rules.txt
и fare_attributes.txt
можно на странице https://code.google.com/p/googletransitdatafeed/wiki/FareExamples вики-сайта проекта ПО с открытым исходным кодом GoogleTransitDataFeed.
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
fare_id |
Идентификатор из поля fare_attributes.fare_id |
Обязательно | Определяет тарифный класс. |
route_id |
Идентификатор из поля routes.route_id |
Необязательно | Определяет маршрут, связанный с классом. Если у вас несколько маршрутов с одинаковыми тарифами, создайте для каждого из них отдельную запись в файле fare_rules.txt .Например, если тарифный класс "b" действителен на маршрутах TSW и TSE, то файл fare_rules.txt должен содержать следующие записи для этого тарифного класса: fare_id,route_id b,TSW b,TSE |
origin_id |
Идентификатор из поля stops.zone_id |
Необязательно | Определяет зону отправления. Если у вас несколько зон отправления с одинаковыми тарифами, создайте для каждого origin_id отдельную запись в файле fare_rules.txt .Например, если тарифный класс "b" действителен для всех поездок, начинающихся из зоны 2 или 8, то файл fare_rules.txt должен содержать следующие записи для этого тарифного класса: fare_id,...,origin_id b,...,2 b,...,8 |
destination_id |
Идентификатор из поля stops.zone_id |
Необязательно | Определяет зону прибытия. Если у вас несколько зон прибытия с одинаковыми тарифами, создайте отдельную запись для каждого destination_id в файле fare_rules.txt .Например, используя поля origin_id и destination_id , можно указать, что тарифный класс "b" действителен для всех поездок между зонами 3 и 4, а также между зонами 3 и 5. В таком случае файл fare_rules.txt должен содержать следующие записи для этого тарифного класса: fare_id,...,origin_id,destination_id b,...,3,4 b,...,3,5 |
contains_id |
Идентификатор из поля stops.zone_id |
Необязательно | Определяет зоны, входящие в тарифный класс. Используется в некоторых системах для расчета правильного тарифного класса. Например, если тарифный класс "c" применяется ко всем рейсам маршрута GRT, которые проходят через зоны 5, 6 и 7, то файл fare_rules.txt должен содержать следующие записи: fare_id,route_id,...,contains_id c,GRT,...,5 c,GRT,...,6 c,GRT,...,7 Чтобы тариф был применен, маршрут пассажира должен проходить через все зоны, определенные в поле contains_id . Так, к маршруту, который проходит через зоны 5 и 6, но не проходит через зону 7, тарифный класс "c" применен не будет. Другие примеры вы можете найти на странице https://code.google.com/p/googletransitdatafeed/wiki/FareExamples вики-сайта GoogleTransitDataFeed. |
shapes.txt
Необязательный файл
Файл shapes.txt
описывает траекторию движения транспортного средства. Траектории связаны с отдельными рейсами и состоят из последовательности точек, через которые проходит транспортное средство. Траектории не обязательно должны пересекаться с остановками, однако все остановки на рейсе должны располагаться на небольшом расстоянии от траектории (вблизи отрезков прямой, соединяющих точки траектории).
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
shape_id |
Идентификатор | Обязательно | Определяет траекторию. |
shape_pt_lat |
Широта | Обязательно | Широта точки траектории. Каждая запись в файле shapes.txt соответствует точке, используемой для определения траектории. |
shape_pt_lon |
Долгота | Обязательно | Долгота точки траектории. |
shape_pt_sequence |
Неотрицательное целое число | Обязательно | Последовательность, в которой точки траектории связываются друг с другом. Значения должны увеличиваться на протяжении рейса, но не обязательно должны быть последовательными. Например, если траектория A_shp задается тремя точками, то файл shapes.txt будет содержать следующие записи, определяющие траекторию: shape_id,shape_pt_lat,shape_pt_lon,shape_pt_sequence A_shp,37.61956,-122.48161,0 A_shp,37.64430,-122.41070,6 A_shp,37.65863,-122.30839,11 |
shape_dist_traveled |
Неотрицательное значение с плавающей запятой | Необязательно | Фактическое расстояние, пройденное от первой точки траектории до точки, указанной в записи. Благодаря этой информации планировщик поездок определяет, какую часть маршрутной линии следует отрисовать на карте. Значения этого поля должны увеличиваться вместе со значениями shape_pt_sequence (отрисовывать движение по маршруту в обратную сторону нельзя). Единицы измерения должны совпадать с теми, которые используются в файле stop_times.txt .Например, если автобус проезжает через три точки, определяющие траекторию A_shp, значения shape_dist_traveled (в данном случае – в километрах) будут записаны в следующем виде: shape_id,shape_pt_lat,shape_pt_lon,shape_pt_sequence,shape_dist_traveled A_shp,37.61956,-122.48161,0,0 A_shp,37.64430,-122.41070,6,6.8310 A_shp,37.65863,-122.30839,11,15.8765 |
frequencies.txt
Необязательный файл
Файл frequencies.txt
содержит информацию о рейсах, которые выполняются через регулярный интервал. Он может использоваться для представления двух разных типов услуг:
- Услуга на основе частоты (
exact_times=0
). Услуга не предоставляется по фиксированному расписанию в течение дня. Вместо этого операторы стараются строго соблюдать определенный интервал движения. - Сжатое представление услуги на основе расписания (
exact_times=1
). Существует точное расписание движения в определенный период, и операторы стараются строго его придерживаться.
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
trip_id |
Идентификатор из поля trips.trip_id |
Обязательно | Определяет рейс, к которому относится указанная частота движения. |
start_time |
Время | Обязательно | Время отправления первого рейса с заданной частотой движения от первой остановки. |
end_time |
Время | Обязательно | Время, когда на первой остановке рейса меняется частота движения или оно прекращается вовсе. |
headway_secs |
Неотрицательное целое число | Обязательно | Интервал времени в секундах между отправлениями от одной и той же остановки (так называемый "перегон"). Применяется в течение диапазона времени, заданного в полях start_time и end_time . В одном и том же рейсе может быть несколько перегонов, но они не должны пересекаться. Однако время окончания предыдущего и начала следующего перегона может совпадать. |
exact_times |
Перечисление | Необязательно | Указывает тип обслуживания для рейса. Дополнительную информацию можно найти в описании файла. Возможные варианты:0 (или пусто) – рейсы не привязаны к точному расписанию.1 – рейсы выполняются по точному расписанию в течение дня. В таком случае значение end_time должно быть больше, чем время отправления последнего рейса (start_time ), но меньше, чем start_time + headway_secs . |
transfers.txt
Необязательный файл
При расчете маршрута приложения, использующие данные GTFS, интерполируют пересадки на основе допустимого времени и близости остановок. Файл transfers.txt
определяет дополнительные правила и переопределения для выбранных пересадок.
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
from_stop_id |
Идентификатор из поля stops.stop_id |
Обязательно | Определяет остановку или станцию, где начинается соединение между маршрутами. Если это поле относится к станции, правило пересадки применяется ко всем ее дочерним остановкам. |
to_stop_id |
Идентификатор из поля stops.stop_id |
Обязательно | Определяет остановку или станцию, где заканчивается соединение между маршрутами. Если это поле относится к станции, правило пересадки применяется ко всем ее дочерним остановкам. |
transfer_type |
Перечисление | Обязательно | Указывает тип соединения для указанной пары остановок from_stop_id и to_stop_id . Возможные варианты:0 или (пусто) – рекомендуемая точка пересадки.1 – точка скоординированной по времени пересадки. Транспорт должен отправиться отсюда только после того, как на остановку прибудет другое транспортное средство и пройдет достаточно времени, чтобы пассажир мог пересесть.2 – для пересадки необходимо, чтобы между прибытием и отправлением пассажира оставался хотя бы минимальный запас времени. Время, требуемое для пересадки, определяется в поле min_transfer_time .3 – пересадка между маршрутами в этом месте невозможна.4 – пассажиры могут пересесть с одной линии на другую, не покидая транспортное средство.5 – пересадки без смены транспортного средства не разрешены для идущих друг за другом поездок. Пассажир должен покинуть транспортное средство и выполнить посадку снова. |
min_transfer_time |
Неотрицательное целое число | Необязательно | Количество времени (в секундах), которое должно быть заложено в маршруте для пересадки на указанных остановках. Значение min_transfer_time должно быть достаточным для того, чтобы обычный пассажир успел переместиться между остановками и совершить пересадку с учетом допустимых отклонений в расписании транспорта. |
pathways.txt
Необязательный файл
Расширение GTFS-Pathways используется для создания графического представления схемы станции с узлами (местоположениями) и ребрами (путями).
Чтобы перейти от входного узла (location_type=2
) к платформенному (location_type=0
), пассажир должен пройти через пункты контроля оплаты, по пешеходным дорожкам, лестницам или другим путям, которые представлены на графике в виде ребер. В этом расширении есть дополнительный тип местоположений – "общий узел" (например, пересечение путей, ведущих в разных направлениях).
Внимание! Описание путей в пределах станции должно быть исчерпывающим. Следовательно, если хотя бы к одной платформе (остановке), входу или узлу на станции указан путь, предполагается, что предоставлено исчерпывающее описание путей внутри этой станции. Поэтому применяются следующие правила, продиктованные здравым смыслом:
- Отсутствие "подвешенных" мест. Если к какому-либо месту на станции есть путь, то пути должны быть у всех мест. Исключение составляют платформы с посадочными зонами.
- Отсутствие заблокированных платформ. Каждая платформа должна быть соединена хотя бы с одним входом с помощью цепочки путей. Станции, из которых нельзя выйти наружу, очень редко встречаются в реальной жизни.
- Отсутствие путей у платформы с посадочными зонами. Платформа с зонами посадки рассматривается как родительский объект, а не точка. У него не может быть путей. Все пути назначаются посадочным площадкам.
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
pathway_id |
Идентификатор | Обязательно | Поле pathway_id содержит уникальный идентификатор пути. pathway_id используется в качестве внутреннего идентификатора записи (ключевого атрибута базы данных), поэтому значение pathway_id должно быть уникальным внутри набора данных. Различные пути могут вести от одной точки ( from_stop_id ) в одну и ту же точку (to_stop_id ). Например, это происходит, когда два эскалатора, едущие в противоположных направлениях, расположены рядом друг с другом или когда лестница и лифт ведут из одного и того же места в другое. |
from_stop_id |
Идентификатор из поля stops.stop_id |
Обязательно | Определяет место, в котором начинается путь. Содержит stop_id , идентифицирующий платформу, вход/выход, общий узел или посадочную зону из файла stops.txt . |
to_stop_id |
Идентификатор из поля stops.stop_id |
Обязательно | Определяет место, в котором заканчивается путь. Содержит stop_id , идентифицирующий платформу, вход/выход, общий узел или посадочную зону из файла stops.txt . |
pathway_mode |
Перечисление | Обязательно | Указывает тип пути между указанной парой from_stop_id и to_stop_id . Допустимые значения: • 1 – проход.• 2 – лестница.• 3 – движущаяся дорожка/травелатор.• 4 – эскалатор.• 5 – лифт.• 6 – пункт контроля оплаты: путь через ту область станции, где запрашивается подтверждение оплаты проезда (обычно физический платежный пункт).Пункт контроля оплаты может либо отделять платные зоны станции от бесплатных, либо отделять разные платежные зоны на одной станции друг от друга Эта информация может использоваться для маршрутизации пассажиров через станции таким образом, чтобы избежать ненужных платежей (например, чтобы пассажирам не приходилось проходить через платформу для выхода к автобусу). • 7 – выход из зоны, где требуется подтверждение оплаты. |
is_bidirectional |
Перечисление | Обязательно | Указывает, в каких направлениях ведет путь. Допустимые значения: • 0 – путь только в одном направлении (от from_stop_id к to_stop_id ).• 1 – путь в двух направлениях (можно передвигаться в обе стороны).Пункты контроля оплаты ( pathway_mode=6 ) и выходы (pathway_mode=7 ) не могут вести в двух направлениях. |
length |
Неотрицательное значение с плавающей запятой | Необязательно | Горизонтальная длина пути в метрах. Длина измеряется от местоположения, определенного в from_stop_id , до конечного местоположения, заданного в to_stop_id .Это поле рекомендуется для пешеходных проходов ( pathway_mode=1 ), пунктов контроля оплаты (pathway_mode=6 ) и выходов (pathway_mode=7 ). |
traversal_time |
Положительное число | Необязательно | Среднее время, необходимое для прохождения пути от исходного местоположения (заданного в from_stop_id ) до конечного местоположения (заданного в to_stop_id ).Это поле рекомендуется для механических путей, таких как движущиеся тротуары ( pathway_mode=3 ), эскалаторы (pathway_mode=4 ) и лифты (pathway_mode=5 ). |
stair_count |
Ненулевое целое число | Необязательно | Количество лестниц на пути. Рекомендуется приблизить длину перехода с одного этажа на другой к 15 ступеням для лестниц и к 12 ступеням для эскалаторов. Положительное значение stair_count подразумевает, что пассажир поднимается от from_stop_id к to_stop_id . Отрицательное значение stair_count предполагает, что пассажир спускается от from_stop_id к to_stop_id .Это поле рекомендуется использовать для лестниц ( pathway_mode=2 ). |
max_slope |
Число с плавающей запятой | Необязательно | Максимальный коэффициент наклона пути. Допустимые значения: • 0 или (пусто) – нет наклона.• Число с плавающей запятой – коэффициент наклона пути, положительный для восходящего и отрицательный для нисходящего. Используйте это поле только с пешеходными дорожками ( pathway_type=1 ) и движущимися тротуарами (pathway_type=3 ).Например, максимальный коэффициент наклона, разрешенный в США для инвалидных колясок с ручным приводом, составляет 0,083 (8,3 %). Это означает, что вертикальное увеличение составляет 0,083 м на каждый метр по горизонтали. |
min_width |
Положительное число с плавающей запятой | Необязательно | Минимальная ширина дорожки (в метрах). Это поле настоятельно рекомендуется использовать, если минимальная ширина составляет менее одного метра. |
signposted_as |
Текст | Необязательно | Строка текста с физического знака, предназначенного для пассажиров. Строка может использоваться для предоставления текстовых указаний. Введите текст точно в том виде, как он напечатан на знаках, без перевода на другой язык. |
reversed_signposted_as |
Текст | Необязательно | Это поле аналогично полю signposted_as с той разницей, что оно используется, когда движение выполняется в обратном направлении (то есть от to_stop_id к from_stop_id ). |
levels.txt
Необязательный файл
Описывает различные уровни станции. Этот файл лучше всего использовать вместе с pathways.txt
. Он является обязательным для лифтов (pathway_mode=5
), на которых пассажиры спускаются к уровню "Мезонин" или "Платформы".
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
level_id |
Идентификатор | Обязательно | Идентификатор уровня, на который может ссылаться stops.txt . |
level_index |
Число с плавающей запятой | Обязательно | Указывает положение этого уровня по отношению к другим. Предполагается, что уровни с более высокими порядковыми номерами расположены выше уровней с более низкими. Используйте порядковый номер 0 , чтобы указать уровень земли. Уровни над землей обозначаются положительными числами, а уровни под землей – отрицательными. |
level_name |
Текст | Необязательно | Название уровня (необязательно). Оно должно соответствовать буквенному обозначению или нумерации уровня внутри здания или станции. Это поле полезно для маршрутизации лифта (например, указаний для движения лифта к уровням "Мезонин", "Платформы" или "-1"). |
feed_info.txt
Условно обязательный файл
Этот файл содержит информацию о самом наборе данных, а не о транспортных услугах, которые в нем описаны. В некоторых случаях издатель набора данных и транспортное агентство могут быть разными организациями. Этот файл является обязательным, если предоставлен файл translations.txt
.
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
feed_publisher_name |
Текст | Обязательно | Полное название организации, которая публикует набор данных. Может совпадать с одним из значений agency.agency_name . |
feed_publisher_url |
URL | Обязательно | URL сайта организации, публикующей набор данных. Может совпадать с одним из значений agency.agency_url . |
feed_lang |
Код языка | Обязательно | Язык по умолчанию, используемый для текста в наборе данных. Это значение определяет правила расстановки строчных и прописных букв, а также прочие языковые настройки текста в наборе данных. Чтобы определить другой язык, используйте поле language в файле translations.txt .В многоязычном наборе данных может использоваться язык по умолчанию, а оригинальный текст может быть представлен на нескольких языках. В таких случаях в поле feed_lang укажите код mul по стандарту ISO 639-2. Укажите перевод для каждого языка, который используется в наборе данных в файле translations.txt . Если весь оригинальный текст приводится на одном языке, не используйте mul .Например, в наборе данных для Швейцарии можно задать поле stops.stop_name и заполнить его названиями остановок на разных языках. Каждое название записывается на языке, который более распространен в области, где находится эта остановка ("Genève" – для Женевы, где говорят по-французски, "Zürich" – для Цюриха, где говорят по-немецки, "Biel/Bienne" – для города Биль (Бьенн), в котором говорят на двух языках). Задайте значение feed_lang=mul и укажите следующие переводы в файле translations.txt :
|
default_lang |
Код языка | Необязательно | Определяет используемый язык, когда неизвестно, на каком языке говорит пассажир. Часто применяется код en (английский). |
feed_start_date |
Дата | Необязательно | Набор данных предоставляет полную и надежную информацию о расписании с даты начала (feed_start_date ) до даты окончания (feed_end_date ). Если эти даты неизвестны, используйте пустые значения. Если заданы оба значения, дата feed_end_date не должна предшествовать дате feed_start_date . Поставщики наборов данных также могут указать расписание за пределами этого периода, чтобы пассажиры могли спланировать поездки в будущем. Однако такая информация предоставляется исключительно в справочных целях и не может считаться точной. Если в файлах calendar.txt и calendar_dates.txt отсутствуют какие-либо активные календарные дни из периода, определенного с помощью feed_start_date и feed_end_date , это явным образом указывает, что в пропущенные даты между feed_start_date и feed_end_date обслуживание не производится. |
feed_end_date |
Дата | Необязательно | Дополнительная информация приведена в строке feed_start_date этой таблицы. |
feed_version |
Текст | Необязательно | Строка, обозначающая текущую версию набора данных GTFS. Приложения, работающие с GTFS, могут показывать это значение, что позволяет поставщикам проверить, используется ли последняя версия набора данных. |
feed_contact_email |
Электронная почта | Необязательно | Адрес электронной почты для вопросов о данных GTFS и их публикации. Поле feed_contact_email предназначено для технических специалистов компаний, использующих данные GTFS. Контактную информацию службы поддержки клиентов нужно указывать в файле agency.txt . |
feed_contact_url |
URL | Необязательно | Ссылка на страницу с контактной информацией, веб-форму, сайт технической поддержки или любой другой инструмент связи по вопросам о данных GTFS и их публикации. Поле feed_contact_url предназначено для технических специалистов компаний, использующих данные GTFS. Контактную информацию службы поддержки клиентов нужно указывать в файле agency.txt . |
translations.txt
Необязательный файл
Название поля | Тип | Обязательно | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
table_name |
Перечисление | Обязательно |
Определяет таблицу наборов данных, содержащую поле для перевода. Допускаются следующие значения:
|
||||||||||||||||||
field_name |
Текст | Обязательно |
Содержит название поля для перевода. Поля типа "Текст" можно перевести, тогда как поля типа "URL", "Адрес " и "Номер телефона" можно указать здесь, чтобы предоставить правильный перевод этих ресурсов. |
||||||||||||||||||
language |
Код языка | Обязательно |
Содержит язык перевода. Если указанный язык совпадает со значением Например, официальное название двуязычного кантона в Швейцарии — Biel/Bienne, но по-французски он называется просто Bienne, а по-немецки — Biel. |
||||||||||||||||||
translation |
Текст, URL, адрес электронной почты или номер телефона | Обязательно | Содержит перевод на указанный язык field_name . |
||||||||||||||||||
record_id |
Идентификатор | Условно обязательно |
Определяет запись, соответствующую полю для перевода. В поле
Следующие условия определяют, как можно использовать это поле:
|
||||||||||||||||||
record_sub_id |
Идентификатор | Условно обязательно |
Помогает переводить запись, которая содержит поле, когда в таблице, указанной в поле
Следующие условия определяют, как можно использовать это поле:
|
||||||||||||||||||
field_value |
Текст, URL, адрес электронной почты или номер телефона | Условно обязательно |
Вместо того чтобы в полях Поле должно точно совпадать со значением, определенным в Если одной записи соответствуют два правила перевода – одно с Следующие условия определяют, как можно использовать это поле:
|
attributions.txt
Необязательный файл
Название поля | Тип | Обязательно | Описание |
---|---|---|---|
attribution_id |
Идентификатор | Необязательно | Атрибуция для набора данных (или его поднабора). Это поле будет полезно при выполнении перевода. |
agency_id |
Идентификатор | Необязательно | Агентство, к которому относится атрибуция. Если для одного из полей agency_id , route_id и trip_id задано значение, остальные поля должны быть пустыми. Если не задано ни одно значение, атрибуция применяется ко всему набору данных. |
route_id |
Идентификатор | Необязательно | Тот же принцип действия, что и у поля agency_id , но только атрибуция применяется к маршруту. К одному маршруту может относиться несколько атрибуций. |
trip_id |
Идентификатор | Необязательно | Тот же принцип действия, что и у поля agency_id , но только атрибуция применяется к рейсу. К одному рейсу может относиться несколько атрибуций. |
organization_name |
Текст | Обязательно | Название организации, к которой относится набор данных. |
is_producer |
Перечисление | Необязательно | Роль организации – поставщик. Допустимые значения: • 0 или (пусто) – у организации нет этой роли.• 1 – у организации есть эта роль.Хотя бы одно из полей is_producer , is_operator и is_authority должно содержать значение 1 . |
is_operator |
Перечисление | Необязательно | Тот же принцип действия, что и у поля is_producer , но роль организации – оператор. |
is_authority |
Перечисление | Необязательно | Тот же принцип действия, что и у поля is_producer , но только роль организации – контролирующий орган. |
attribution_url |
URL | Необязательно | URL организации. |
attribution_email |
Электронная почта | Необязательно | Адрес электронной почты организации. |
attribution_phone |
Номер телефона | Необязательно | Номер телефона организации. |