Справка

В этом документе представлены сведения о формате и структуре файлов в наборе данных GTFS (фидах систем общественного транспорта).

Содержание

  1. Используемые термины
  2. Типы полей
  3. Файлы набора данных
  4. Требования к файлам
  5. Определения полей

Используемые термины

В этом разделе даны определения терминов, которые используются в спецификации.

  • Набор данных. Полный набор файлов, определенных в этой спецификации. Любое изменение в наборе данных создает новую его версию. Наборы данных следует публиковать по общедоступному постоянному 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 – для японской иены.
  • Дата. День обслуживания в формате ГГГГММДД. Поскольку время в течение дня обслуживания может превышать 24:00:00, день обслуживания часто содержит информацию о последующих днях.
    Пример: 20180913 – для 13 сентября 2018 года.
  • Электронная почта. Адрес электронной почты.
    Пример: example@example.com.
  • Перечисление. Значение из набора предопределенных констант, указанных в столбце "Описание".
    Пример: в поле route_type значение 0 соответствует трамваю, 1 – метро и т. д.
  • Идентификатор. Поле, где указывается внутренний идентификатор, не предназначенный для пассажиров. Его значение может быть любой последовательностью символов в кодировке UTF-8. Рекомендуется использовать только печатаемые символы ASCII. Идентификаторы, определенные в одном файле 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 будут показаны пользователям раньше, чем маршруты с более высоким значением.

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 – для высадки необходимо подать сигнал водителю.
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 – пересадка между маршрутами в этом месте невозможна.
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:
  • Немецкий: "Genf," "Zürich" и "Biel"
  • Французский: "Genève," "Zurich" и "Bienne"
  • Итальянский: "Ginevra," "Zurigo" и "Bienna"
  • Английский: "Geneva," "Zurich" и "Biel/Bienne"
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 Перечисление Обязат.

Определяет таблицу наборов данных, содержащую поле для перевода. Допускаются следующие значения:

  • agency
  • stops
  • routes
  • trips
  • stop_times
  • feed_info
  • pathways
  • levels
  • attributions
  • pathways
  • levels
  • attributions
field_name Текст Обязат.

Содержит название поля для перевода. Поля типа "Текст" можно перевести, тогда как поля типа "URL", "Адрес " и "Номер телефона" можно указать здесь, чтобы предоставить правильный перевод этих ресурсов.

language Код языка Обязат.

Содержит язык перевода.

Если указанный язык совпадает со значением feed_lang, заданным в файле feed_info.txt, исходное значение поля по умолчанию используется для языков, переводы для которых не указаны.

Например, официальное название двуязычного кантона в Швейцарии — Biel/Bienne, но по-французски он называется просто Bienne, а по-немецки — Biel.

translation Текст, URL, адрес электронной почты или номер телефона Обязат. Содержит перевод на указанный язык field_name.
record_id Идентификатор Условно обязат.

Определяет запись, соответствующую полю для перевода. В поле record_id должен быть указан основной идентификатор из таблицы набора данных, как определено в следующей таблице:

table_name record_id
agency agency_id
stops stop_id
routes route_id
trips trip_id
stop_times trip_id
pathways pathway_id
levels level_id
attributions attribution_id

Следующие условия определяют, как можно использовать это поле:

  • Запрещено, если table_name равно feed_info.
  • Запрещено, если определено field_value.
  • Обязательно, если значение field_value не указано.
record_sub_id Идентификатор Условно обязат.

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

table_name record_sub_id
agency NONE
stops NONE
routes NONE
trips NONE
stop_times stop_sequence
pathways NONE
levels NONE
attributions NONE

Следующие условия определяют, как можно использовать это поле:

  • Запрещено, если table_name равно feed_info.
  • Запрещено, если определено field_value.
  • Обязательно, если table_name равно stop_times и определено record_id.
field_value Текст, URL, адрес электронной почты или номер телефона Условно обязат.

Вместо того чтобы в полях record_id и record_sub_id указывать, какую запись нужно перевести, можно задать значение для перевода в поле field_value. В этом случае перевод применяется тогда, когда поле, определенное в table_name и field_name, содержит такое же значение, что и field_value.

Поле должно точно совпадать со значением, определенным в field_value. Если только некоторые значения совпадают с field_value, перевод не применяется.

Если одной записи соответствуют два правила перевода, одно с field_value, а другое с record_id, используется правило с record_id.

Следующие условия определяют, как можно использовать это поле:

  • Запрещено, если table_name равно feed_info.
  • Запрещено, если определено record_id.
  • Обязательно, если значение record_id не указано.

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 Номер телефона Необязат. Номер телефона организации.