Перейти к содержанию

Ссылка на GTFS Schedule

Пересмотрено 9 мая 2022 года. Более подробную информацию см. в Истории пересмотра.

Этот документ определяет формат и структуру файлов, составляющих набор данных GTFS

Оглавление

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

Условные обозначения документов

Ключевые слова "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" и "OPTIONAL" в этом документе должны интерпретироваться так, как описано в RFC 2119.

Определения терминов

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

  • Набор данных - полный набор файлов, определенных в данной спецификации. Изменение набора данных создает новую версию набора данных. Наборы данных должны быть опубликованы на общедоступном, постоянном URL, включая имя файла zip. (например, https://www.agency.org/gtfs/gtfs.zip).
  • Запись - базовая структура данных, состоящая из нескольких различных значений полей, описывающих один объект (например, транзитное агентство, остановка, маршрут и т.д.). В таблице представлена в виде строки.
  • Поле - свойство объекта или сущности. В таблице представлено в виде столбца.
  • Значение поля - отдельная запись в поле. В таблице представлено в виде одной ячейки.
  • День обслуживания - день обслуживания - это период времени, используемый для указания расписания маршрутов. Точное определение сервисного дня варьируется от агентства к агентству, но сервисные дни часто не совпадают с календарными днями. День обслуживания может превышать 24:00:00, если обслуживание начинается в один день и заканчивается на следующий день. Например, услуга, выполняемая с 08:00:00 в пятницу до 02:00:00 в субботу, может быть обозначена как выполняемая с 08:00:00 до 26:00:00 в один день обслуживания.
  • Поле для преобразования текста в речь - Поле должно содержать ту же информацию, что и его родительское поле (к которому оно возвращается, если оно пустое). Оно предназначено для чтения текста в речь, поэтому аббревиатуру следует либо убрать ("St" следует читать либо как "Street", либо как "Saint"; "Elizabeth I" следует читать как "Elizabeth the first"), либо оставить так, чтобы она читалась как есть ("JFK Airport" говорится сокращенно).
  • Путь - поездка, во время которой пассажир садится и выходит из автобуса между парой последующих пунктов на протяжении поездки.
  • Поездка - общее путешествие от пункта отправления до пункта назначения, включая все этапы и пересадки между ними.
  • Субпутешествие - два или более этапа, составляющие часть путешествия.
  • Тарифный продукт - Приобретаемые тарифные продукты, которые могут быть использованы для оплаты или подтверждения поездки.

Присутствие

Условия присутствия, применимые к полям и файлам:

  • Обязательный - поле или файл должны быть включены в набор данных и содержать действительное значение для каждой записи.
  • Необязательный - поле или файл могут быть опущены в наборе данных.
  • Условно обязательный - поле или файл должны быть включены при соблюдении условий, указанных в описании поля или файла.
  • Conditionally Forbidden - Поле или файл не должны быть включены при условиях, указанных в описании поля или файла.

Типы полей

  • Цвет - Цвет, закодированный в виде шестизначного шестнадцатеричного числа. Обратитесь к https://htmlcolorcodes.com для создания правильного значения (ведущий "#" не должен быть включен).
    Пример: FFFFFF для белого, 000000 для черного или 0039A6 для линий A,C,E в NYMTA.
  • Код валюты - алфавитный код валюты ISO 4217. Список текущей валюты см. на сайте https://en.wikipedia.org/wiki/ISO_4217#Active_codes.
    Пример: CAD - канадские доллары, EUR - евро или JPY - японские иены.
  • Сумма валюты - десятичное значение, обозначающее сумму валюты. Количество знаков после запятой определено стандартом ISO 4217 для сопутствующего кода валюты. Все финансовые вычисления должны обрабатываться как десятичная дробь, валюта или другой эквивалентный тип, подходящий для финансовых вычислений, в зависимости от language программирования, используемого для потребления данных. Обработка валютных сумм как плавающих не рекомендуется из-за увеличения или потери денег во время вычислений.
  • Дата - День обслуживания в формате YYYYMMDD. Поскольку время в течение сервисного дня может быть больше 24:00:00, сервисный день может содержать информацию для последующего дня (дней).
    Пример: 20180913 для 13 сентября 2018 года.
  • Email - Адрес электронной почты.
    Пример: example@example.com.
  • Enum - Вариант из набора предопределенных констант, определенных в колонке "Описание".
    Пример: Поле route_type содержит 0 для трамвая, 1 для метро...
  • ID - Значение поля ID является внутренним идентификатором, не предназначенным для показа пассажирам, и представляет собой последовательность любых символов UTF-8. Рекомендуется использовать только печатаемые символы ASCII. ID обозначается как "уникальный ID", если он должен быть уникальным в пределах файла. Идентификаторы, определенные в одном файле .txt, часто ссылаются на другой файл .txt. Идентификаторы, которые ссылаются на идентификатор в другой таблице, обозначаются как "внешний идентификатор".
    Пример: Поле stop_id в файле stops.txt является "уникальным идентификатором". Поле parent_station в stops.txt - это "внешний идентификатор, ссылающийся на stops.stop_id".
  • Кодlanguage - Код language IETF BCP 47. Введение в IETF BCP 47 см. на сайтах https://www.rfc-editor.org/rfc/bcp/bcp47.txt и language-tags/">language
    Пример: en - английский, en-US - американский английский или de - немецкий.
  • Широта - широта WGS84 в десятичных градусах. Значение должно быть больше или равно -90.0 и меньше или равно 90.0.
    Пример: 41.890169
    для Колизея в Риме.
  • Долгота - долгота WGS84 в десятичных градусах. Значение должно быть больше или равно -180.0 и меньше или равно 180.0.
    Пример: 12.492269 для Колизея в Риме.
  • Float - Число с плавающей запятой.
  • Integer - Целое число.
  • Номер телефона - Номер телефона.
  • Time - Время в формате HH:MM:SS (также принимается H:MM:SS). Время измеряется от "полдень минус 12 часов" дня обслуживания (фактически полночь, за исключением дней, в которые происходит переход на летнее время). Для времени, наступающего после полуночи, введите время как значение, превышающее 24:00:00 по местному времени ЧЧ:ММ:СС для дня, в который начинается поездка по Schedule.
    Пример: 14:30:00 для 2:30 вечера или 25:35:00 для 1:35 утра следующего дня.
  • Текст - Строка символов UTF-8, которая предназначена для отображения и поэтому должна быть читаема человеком.
  • Часовой пояс - часовой пояс TZ с сайта https://www.iana.org/time-zones. Имена часовых поясов никогда не содержат символ пробела, но могут содержать символ подчеркивания. Список допустимых значений см. на https://en.wikipedia.org/wiki/List_of_tz_zones.
    Пример: Asia/Tokyo, America/Los_Angeles или Africa/Cairo.
  • URL - полностью определенный URL, включающий http:// или https://, при этом любые специальные символы в URL должны быть правильно экранированы. См. следующий https://www.w3.org/Addressing/URL/4_URI_Recommentations.html для описания создания полностью определенных значений URL.

Знаки полей

Признаки, применимые к полям типа Float или Integer:

  • Неотрицательный - Больше или равно 0.
  • Ненулевой - Не равный 0.
  • Положительный - Больше 0.

Пример: Non-negative float** - Число с плавающей точкой, большее или равное 0.

Атрибуты набора данных

Первичный ключ набора данных - это поле или комбинация полей, которые однозначно идентифицируют строку. Первичный ключ (*) используется, когда все поля файла используются для однозначной идентификации строки. Первичный ключ (none) означает, что файл допускает только одну строку.

Пример: поля trip_id и stop_sequence составляют первичный ключ файла stop_times.txt.

Файлы наборов данных

Данная спецификация определяет следующие файлы:

Имя файла Присутствие Описание
agency.txt Требуется Транзитные агентства, услуги которых представлены в этом наборе данных.
stops.txt Требуется Остановки, на которых транспортные средства забирают или высаживают пассажиров. Также определяет станции и входы на станции.
routes.txt Требуется Транзитные маршруты. Маршрут - это группа поездок, которые отображаются для пассажиров как единая услуга.
trips.txt Требуется Поездки для каждого маршрута. Поездка - это последовательность из двух или более остановок, которые происходят в течение определенного периода времени.
stop_times.txt Требуется Время прибытия транспортного средства на остановки и отправления с них для каждой поездки.
calendar.txt Условно обязательный Даты обслуживания, указанные с помощью недельного Schedule

Условно обязательные:
- Требуется если все даты обслуживания не определены в calendar_dates.txt.
- Необязательно в противном случае.
calendar_dates.txt Условно обязательный Исключения для услуг, определенных в calendar.txt.

Условно обязательно:
- Требуется если calendar.txt опускается. В этом случае calendar_dates.txt должна содержать все даты оказания услуг.
- Необязательно в противном случае.
fare_attributes.txt Дополнительно Информация о стоимости проезда на маршрутах транзитного агентства.
fare_rules.txt Условно обязательный Правила применения тарифов на проезд для маршрутов.

Условно обязательно:
- Требуется если fare_attributes.txt определено.
- Запрещено иначе.
fare_products.txt Необязательно Описать различные типы билетов или тарифов, которые могут приобрести пассажиры.

Файл fare_products.txt описывает тарифные продукты, которые не представлены в fare_attributes.txt и fare_rules.txt. Таким образом, использование fare_products.txt полностью отделено от файлов fare_attributes.txt и fare_rules.txt.
fare_leg_rules.txt Факультативно Правила оплаты проезда на отдельных участках пути.

Файл fare_leg_rules.txt обеспечивает более детальный метод моделирования структуры тарифов. Как таковое, использование fare_leg_rules.txt полностью отделено от файлов fare_attributes.txt и fare_rules.txt.
fare_transfer_rules.txt Необязательно Правила тарифов для пересадок между этапами поездки.

Вместе с fare_leg_rules.txt файл fare_transfer_rules.txt обеспечивает более детальный метод моделирования структуры тарифов. Как таковое, использование fare_transfer_rules.txt полностью отделено от файлов fare_attributes.txt и fare_rules.txt.
areas.txt Необязательно Группировка остановок по районам.
stop_areas.txt Необязательно Правила назначения остановок районам.
shapes.txt Необязательно Правила составления схемы маршрутов движения транспортных средств, иногда называемые выравниванием маршрутов.
frequencies.txt Необязательно Путь следования (время между поездками) для сервиса, основанного на пути следования, или сжатого представления сервиса с фиксированным расписанием.
transfers.txt Необязательно Правила создания пересадок в пунктах пересадки между маршрутами.
pathways.txt Необязательно Пути, соединяющие места на станциях.
levels.txt Условно обязательный Уровни внутри станций.

Условно обязательно:
- Требуется при описании путей с лифтами (pathway_mode=5).
- Необязательно в противном случае.
translations.txt Необязательно Переводы значений наборов данных для клиентов.
feed_info.txt Необязательно Метаданные набора данных, включая информацию об издателе, версии и сроке действия.
attributions.txt Необязательно Атрибуты набора данных.

Требования к файлам

Следующие требования относятся к формату и содержанию файлов набора данных:

  • Все файлы должны быть сохранены в виде текста, разделенного запятыми.
  • Первая строка каждого файла должна содержать имена полей. Каждый подраздел раздела " Определения полей " соответствует одному из файлов набора данных GTFS и перечисляет имена полей, которые могут использоваться в этом файле.
  • Все имена файлов и полей чувствительны к регистру.
  • Значения полей не должны содержать символов табуляции, возврата каретки или новых строк.
  • Значения полей, содержащие кавычки или запятые, должны быть заключены в кавычки. Кроме того, перед каждой кавычкой в значении поля должна стоять кавычка. Это соответствует тому, как Microsoft Excel выводит файлы с разделителями-запятыми (CSV). Более подробную информацию о формате файла CSV см. на сайте https://tools.ietf.org/html/rfc4180.

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

  • Исходное значение поля: Содержит "кавычки", запятые и текст.
  • Значение поля в CSV-файле: "Содержит ""кавычки"", запятые и текст".
  • Значения полей не должны содержать HTML-теги, комментарии или управляющие последовательности.
  • Лишние пробелы между полями или именами полей должны быть удалены. Многие анализаторы считают пробелы частью значения, что может привести к ошибкам.
  • Каждая строка должна заканчиваться символом перевода строки CRLF или LF.
  • Файлы должны быть закодированы в UTF-8 для поддержки всех символов Unicode. Файлы, включающие символ метки порядка байтов (BOM) Юникода, допустимы. Дополнительную информацию о символе BOM и UTF-8 см. на сайте https://unicode.org/faq/utf_bom.html#BOM.
  • Все файлы набора данных должны быть упакованы в zip-архив.

Определения полей

agency.txt

Файл: Требуется

Первичный ключagency_id)

Имя поля Тип Присутствие Описание
agency_id Уникальный идентификатор Условно обязательные Определяет транзитный бренд, который часто является синонимом транзитного агентства. Обратите внимание, что в некоторых случаях, например, когда одно агентство управляет несколькими отдельными услугами, агентства и бренды различаются. В данном документе термин "агентство" используется вместо термина "бренд". Набор данных может содержать данные от нескольких агентств.

Conditionally Required:
- Требуется когда набор данных содержит данные для нескольких транзитных агентств.
- Необязательно в противном случае.
agency_name Текст Требуется Полное название транзитного агентства.
agency_url URL Требуется URL-адрес транзитного агентства.
agency_timezone Часовой пояс Требуется Часовой пояс, в котором находится транзитное агентство. Если в наборе данных указаны несколько агентств, каждое из них должно иметь одинаковые значения agency_timezone.
agency_lang кодlanguage Необязательно Основной language, используемый данным транзитным агентством. Должен быть предоставлен, чтобы помочь потребителям GTFS выбрать правила капитализации и другие language
agency_phone Номер телефона Необязательно Номер голосового телефона для указанного агентства. Это поле представляет собой строковое значение, в котором телефонный номер представлен как типичный для зоны обслуживания агентства. Оно может содержать знаки препинания для группировки цифр номера. Допускается набираемый текст (например, TriMet "503-238-RIDE"), но поле не должно содержать никакого другого описательного текста.
agency_fare_url URL Необязательно URL веб-страницы, которая позволяет пассажиру приобрести билеты или другие инструменты оплаты проезда в данном агентстве в режиме онлайн.
agency_email Электронная почта Необязательно Адрес электронной почты, активно отслеживаемый отделом обслуживания клиентов агентства. Этот адрес электронной почты должен быть прямым контактным лицом, по которому пассажиры могут связаться с представителем службы поддержки клиентов агентства.

stops.txt

Файл: Требуется

Первичный ключstop_id)

Имя поля Тип Присутствие Описание
stop_id Уникальный идентификатор Требуется Идентифицирует местоположение: остановка/платформа, станция, вход/выход, типовой узел или посадочная площадка (см. location_type).

Несколько маршрутов могут использовать один и тот же stop_id.
stop_code Текст Необязательно Короткий текст или номер, который идентифицирует местоположение для пассажиров. Эти коды часто используются в телефонных системах транзитной информации или печатаются на вывесках, чтобы облегчить пассажирам получение информации о конкретном месте. Сайт stop_code может быть таким же, как stop_id если это общественное место. Это поле следует оставить пустым для мест, где нет кода, представляемого пассажирам.
stop_name Текст Условно обязательные Название места. Поле stop_name должно совпадать с названием места, которое агентство предлагает пассажирам, напечатанным в расписании, опубликованным в Интернете или представленным на вывесках. Для перевода на другие языки используйте translations.txt.

Если место является зоной посадки (location_type=4), то stop_name должно содержать название зоны посадки, как оно отображается в агентстве. Это может быть всего одна буква (как на некоторых европейских междугородних железнодорожных станциях) или текст типа "Зона посадки для инвалидов-колясочников" (метрополитен Нью-Йорка) или "Начальник коротких поездов" (RER в Париже).

Conditionally Required:
- Требуется для мест, которые являются остановками (location_type=0), станции (location_type=1) или входы/выходы (location_type=2).
- Необязательно для мест, которые являются общими узлами (location_type=3) или зоны посадки (location_type=4).
tts_stop_name Текст Необязательно Читаемая версия stop_name. См. раздел "Поле для преобразования текста в речь". Определения терминов подробнее.
stop_desc Текст Необязательно Описание места, предоставляющего полезную, качественную информацию. Не должно быть дубликатом stop_name.
stop_lat Широта Условно обязательные Широта местоположения.

Для остановок/платформ (location_type=0) и зоны посадки (location_type=4), координаты должны соответствовать координатам автобусного столба - если он существует - и иному месту посадки пассажиров в транспортное средство (на тротуаре или платформе, а не на проезжей части или пути, где останавливается транспортное средство).

Conditionally Required:
- Требуется для мест, которые являются остановками (location_type=0), станции (location_type=1) или входы/выходы (location_type=2).
- Необязательно для мест, которые являются общими узлами (location_type=3) или зоны посадки (location_type=4).
stop_lon Долгота Условно обязательные Долгота местоположения.

Для остановок/платформ (location_type=0) и зоны посадки (location_type=4), координаты должны быть координатами автобусного столба - если он существует - и иначе места посадки пассажиров в транспортное средство (на тротуаре или платформе, а не на проезжей части или трассе, где останавливается транспортное средство).

Conditionally Required:
- Требуется для мест, которые являются остановками (location_type=0), станции (location_type=1) или входы/выходы (location_type=2).
- Необязательно для мест, которые являются общими узлами (location_type=3) или зоны посадки (location_type=4).
zone_id ID Условно обязательные Определяет тарифную зону для остановки. Если данная запись представляет собой станцию или вход на станцию, параметр zone_id игнорируется.

Conditionally Required:
- Требуется если информация о стоимости проезда предоставляется с использованием fare_rules.txt
- Необязательно иначе.
stop_url URL Необязательно URL-адрес веб-страницы о данном месте. Это должно отличаться от agency.agency_url и routes.route_url значения полей.
location_type Enum Необязательно Тип местоположения. Допустимыми вариантами являются:

0 (или пустой) - Остановка (или Платформа). Место, где пассажиры садятся или высаживаются из транзитного транспортного средства. Называется платформой, когда определяется в пределах parent_station.
1 - Станция. Физическая структура или область, содержащая одну или несколько платформ.
2 - Вход/выход. Место, где пассажиры могут войти или выйти на станцию с улицы. Если вход/выход принадлежит нескольким станциям, он может быть связан путями с обеими, но поставщик данных должен выбрать одну из них в качестве родительской.
3 - Общий узел. Место в пределах станции, не совпадающее ни с каким другим. location_type, которое может быть использовано для соединения путей, определенных в файле pathways.txt
4 - Зона посадки. Определенное место на платформе, где пассажиры могут садиться и/или выходить из транспортных средств.
parent_station Ссылка на иностранный идентификатор stops.stop_id Условно обязательные Определяет иерархию между различными местоположениями, определенными в stops.txt. Он содержит ID родительского местоположения, как указано ниже:

- Остановка/площадка (location_type=0): the parent_station поле содержит идентификатор станции.
- Станция (location_type=1): это поле должно быть пустым.
- Вход/выход (location_type=2) или типовой узел (location_type=3): the parent_station поле содержит идентификатор станции (location_type=1)
- Зона посадки (location_type=4): the parent_station поле содержит идентификатор платформы.

Conditionally Required:
- Требуется для мест, которые являются входами (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 Enum Необязательно Указывает, возможна ли посадка в инвалидное кресло из данного места. Доступными вариантами являются:

Для остановок без родителей:
0 или пусто - Информация о доступности остановки отсутствует.
1 - В некоторые транспортные средства на этой остановке может сесть пассажир в инвалидном кресле.
2 - Посадка в инвалидное кресло на этой остановке невозможна.

Для остановок с детьми:
0 или пустая - Остановка наследует свое wheelchair_boarding поведение от родительской остановки, если она указана в родительской.
1 - Существует некоторый доступный путь извне станции к конкретной остановке/платформе.
2 - Не существует доступного пути извне станции к конкретной остановке/платформе.

Для входов/выходов станции:
0 или пусто - Вход на станцию наследует свое wheelchair_boarding поведение от родительской станции, если она указана для родительской станции.
1 - Вход на станцию доступен для инвалидной коляски.
2 - Нет доступного пути от входа на станцию до остановок/платформ.
level_id Ссылка на иностранный идентификатор levels.level_id Необязательно Уровень расположения. Один и тот же уровень может использоваться несколькими несвязанными станциями.
platform_code Текст Необязательно Идентификатор платформы для остановки на платформе (остановка, относящаяся к станции). Это должен быть только идентификатор платформы (например, "G" или "3"). Такие слова, как "платформа" или "путь" (или их эквивалент на language

routes.txt

Файл: Требуется

Первичный ключroute_id)

Имя поля Тип Присутствие Описание
route_id Уникальный идентификатор Требуется Идентифицирует маршрут.
agency_id Ссылка на иностранный идентификатор agency.agency_id Условно обязательные Агентство для указанного маршрута.

Conditionally Required:
- Требуется если несколько агентств определены в agency.txt.
- Необязательно иначе.
route_short_name Текст Условно обязательные Краткое название маршрута. Часто это короткий, абстрактный идентификатор (например, "32", "100X", "Green"), который пассажиры используют для идентификации маршрута. Оба route_short_name и route_long_name может быть определено.

Conditionally Required:
- Требуется если routes.route_long_name пусто.
- Необязательно иначе.
route_long_name Текст Условно обязательные Полное имя маршрута. Это имя обычно более описательное, чем route_short_name и часто включает конечный пункт или остановку маршрута. Оба . route_short_name и route_long_name может быть определено.

Conditionally Required:
- Требуется если routes.route_short_name пуст.
- Необязательно иначе.
route_desc Текст Необязательно Описание маршрута, содержащее полезную, качественную информацию. Не должно быть дубликатом route_short_name или route_long_name.
Пример: Поезда "А" постоянно курсируют между улицами Инвуд-207, Манхэттен и Фар Рокавей-Мотт Авеню, Квинс. Также примерно с 6 утра до полуночи дополнительные поезда "А" курсируют между Inwood-207 St и Lefferts Boulevard (поезда обычно чередуются между Lefferts Blvd и Far Rockaway).
route_type Enum Требуется Указывает тип транспорта, используемого на маршруте. Возможными вариантами являются:

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 Enum Необязательно Указывает, что пассажир может сесть в транзитное транспортное средство в любой точке на пути следования транспортного средства в соответствии с описанием shapes.txtв каждой поездке по маршруту. Возможны следующие варианты:

0 - Непрерывная остановка.
1 или пустой - Без непрерывных остановок.
2 - Необходимо позвонить в агентство, чтобы договориться о непрерывной остановке.
3 - Должен согласовать с водителем, чтобы организовать непрерывную остановку.

Значения для routes.continuous_pickup могут быть отменены путем определения значений в разделе stop_times.continuous_pickup для конкретного stop_timeпо маршруту.
continuous_drop_off Enum Необязательно Указывает, что пассажир может выйти из транзитного транспортного средства в любой точке на пути следования транспортного средства, как описано в пункте shapes.txt, во время каждой поездки по маршруту. Возможны следующие варианты:

0 - Непрерывная остановка высадка.
1 или пустой - Без непрерывной остановки.
2 - Должен позвонить в агентство для организации непрерывной остановки.
3 - Должен согласовать с водителем организацию непрерывной остановки.

Значения для routes.continuous_drop_off могут быть отменены путем определения значений в stop_times.continuous_drop_off для конкретного stop_times вдоль маршрута.
network_id ID Необязательно Обозначает группу маршрутов. Несколько рядов в routes.txt могут иметь одинаковые network_id.

trips.txt

Файл: Требуется

Первичный ключtrip_id)

Имя поля Тип Присутствие Описание
route_id Ссылка на иностранный идентификатор routes.route_id Требуется Идентифицирует маршрут.
service_id Ссылка на иностранный идентификатор calendar.service_id или calendar_dates.service_id Требуется Идентифицирует набор дат, когда обслуживание доступно для одного или нескольких маршрутов.
trip_id Уникальный идентификатор Требуется Идентифицирует поездку.
trip_headsign Текст Необязательно Текст, который появляется на табличках, указывающих пассажирам место назначения поездки. Должен использоваться для различения различных схем обслуживания на одном и том же маршруте.

Если вывеска меняется во время поездки, значения для trip_headsign могут быть отменены путем определения значений в stop_times.stop_headsign для конкретных stop_timeна протяжении всей поездки.
trip_short_name Текст Необязательно Текст для публичного пользования, используемый для идентификации поездки для пассажиров, например, для определения номера поезда для поездок на пригородном железнодорожном транспорте. Если пассажиры обычно не полагаются на названия поездок, trip_short_name должен быть пустым. A trip_short_name значение, если оно предоставляется, должно однозначно идентифицировать поездку в течение дня обслуживания; оно не должно использоваться для названий пунктов назначения или обозначений ограниченных/экспрессных поездов.
direction_id Enum Необязательно Указывает направление движения для поездки. Это поле не должно использоваться в маршрутизации; оно позволяет разделить поездки по направлениям при публикации временных таблиц. Возможны следующие варианты:

0 - Движение в одном направлении (например, исходящее движение).
1 - Поездка в противоположном направлении (например, входящая поездка).
Пример: Сайт trip_headsign и direction_id Поля можно использовать вместе, чтобы присвоить имя поездке в каждом направлении для набора поездок. A trips.txt файл может содержать эти записи для использования в таблицах времени:
trip_id,...,trip_headsign,direction_id
1234,...,Airport,0
1505,...,Downtown,1
block_id ID Необязательно Идентифицирует блок, к которому относится поездка. Блок состоит из одной поездки или множества последовательных поездок, выполненных с использованием одного и того же транспортного средства, определяемых общими днями обслуживания и block_id. A block_id могут быть поездки с разными днями обслуживания, образуя отдельные блоки. См. пример ниже
shape_id Ссылка на иностранный идентификатор shapes.shape_id Условно обязательные Идентифицирует геопространственную форму, описывающую маршрут движения транспортного средства для поездки.

Требуется условно:
- Требуется если поездка имеет непрерывный маршрут заезда или выезда, определенный либо в routes.txt или в stop_times.txt.
- Необязательно иначе.
wheelchair_accessible Enum Необязательно Указывает на доступность для инвалидных колясок. Возможные варианты:

0 или пусто - Нет информации о доступности для данной поездки.
1 - Транспортное средство, используемое в данной конкретной поездке, может вместить по крайней мере одного пассажира в инвалидном кресле.
2 - В данной поездке не может быть размещено ни одного пассажира в инвалидном кресле.
bikes_allowed Enum Необязательно Указывает, разрешено ли использование велосипедов. Возможны следующие варианты:

0 или пусто - Информация о велосипедах для данной поездки отсутствует.
1 - Транспортное средство, используемое в данной поездке, может вместить как минимум один велосипед.
2 - Велосипеды в данной поездке не допускаются.

Пример: Блоки и день обслуживания

Приведенный ниже пример действителен при наличии отдельных блоков в каждый день недели.

route_id trip_id service_id block_id (время первой остановки) (время последней остановки)
красный поездка_1 пн-вт-ср-чт-чт-пт-сб-сб red_loop 22:00:00 22:55:00
красный трип_2 пятница-суббота-солнце красная_петля 23:00:00 23:55:00
красный поездка_3 пятница-суббота красная петля 24:00:00 24:55:00
красный поездка_4 пн-вт-ср-чт красная петля 20:00:00 20:50:00
красный поездка_5 пн-вт-ср-чт красная петля 21:00:00 21:50:00

Примечания к приведенной выше таблице:

  • Например, в пятницу и субботу утром один автомобиль выполняет поездки_1, поездки_2 и поездки_3 (с 22:00 вечера до 12:55 утра). Обратите внимание, что последняя поездка выполняется в субботу с 12:00 до 12:55, но является частью пятничного "дня обслуживания", поскольку время с 24:00:00 до 24:55:00.
  • В понедельник, вторник, среду и четверг один автомобиль выполняет поездки_1, поездки_4 и поездки_5 в блоке с 20:00 до 22:55.

stop_times.txt

Файл: Требуется

Первичный ключtrip_id, stop_sequence)

Имя поля Тип Присутствие Описание
trip_id Ссылка на иностранный идентификатор trips.trip_id Требуется Идентифицирует поездку.
arrival_time Время Условно обязательные Время прибытия на остановку (определяется stop_times.stop_id) для конкретной поездки (определяемой stop_times.trip_id).

Если на остановке нет раздельного времени прибытия и отправления, arrival_time и departure_time должно быть одинаковым.

Для времени, наступающего после полуночи в день обслуживания, введите время как значение, превышающее 24:00:00 по местному времени ЧЧ:ММ:СС для дня, в который начинается поездка Schedule.

Если точное время прибытия и отправления (timepoint=1 или пустое) недоступно, расчетное или интерполированное время прибытия и отправления (timepoint=0) должно быть предоставлено.

Conditionally Required:
- Требуется для первой и последней остановки в поездке (определяется по stop_times.stop_sequence).
- Требуется для timepoint=1.
- Необязательно иначе.
departure_time Время Условно обязательные Время отправления с остановки (определяется stop_times.stop_id) для конкретной поездки (определяется stop_times.trip_id).

Если нет раздельного времени прибытия и отправления на остановке, arrival_time и departure_time должно быть одинаковым.

Для времени, наступающего после полуночи в день обслуживания, укажите время, превышающее 24:00:00 по местному времени ЧЧ:ММ:СС для дня, в который начинается действие Schedule поездок.

Если точное время прибытия и отправления (timepoint=1 или пустое) недоступно, следует указать расчетное или интерполированное время прибытия и отправления (timepoint=0) должны быть предоставлены.

Conditionally Required:
- Требуется для timepoint=1.
- Необязательно иначе.
stop_id Ссылка на иностранный идентификатор stops.stop_id Требуется Определяет обслуживаемую остановку. Все остановки, обслуживаемые во время поездки, должны иметь запись в журнале stop_times.txt. Ссылающиеся места должны быть остановками/платформами, т.е. их stops.location_type значение должно быть 0 или пустыми. Остановка может обслуживаться несколько раз за одну поездку, и несколько поездок и маршрутов могут обслуживать одну и ту же остановку.
stop_sequence Целое неотрицательное число Требуется Порядок остановок для конкретной поездки. Значения должны увеличиваться по ходу поездки, но не обязательно должны быть последовательными.
Пример: Первая остановка в поездке может иметь stop_sequence=1, во втором месте поездки может быть stop_sequence=23, третье место может иметь stop_sequence=40и так далее.
stop_headsign Текст Необязательно Текст, который появляется на табличках, идентифицирующих пункт назначения поездки для пассажиров. Это поле переопределяет значение по умолчанию trips.trip_headsign когда знак меняется между остановками. Если указатель отображается в течение всей поездки, trips.trip_headsign следует использовать вместо этого.

A stop_headsign значение, указанное для одного stop_time не применяется к последующим stop_timeв той же поездке. Если вы хотите переопределить trip_headsign для нескольких stop_times в одной и той же поездке, то stop_headsign значение должно быть повторено в каждой поездке. stop_time ряд.
pickup_type Enum Необязательно Указывает способ забора. Возможные варианты:

0 или пусто - Регулярно запланированный забор.
1 - Забрать нельзя.
2 - Необходимо позвонить в агентство, чтобы договориться о доставке.
3 - Должен договориться с водителем, чтобы организовать забор.
drop_off_type Enum Необязательно Указывает способ высадки. Возможны следующие варианты:

0 или пустой - Регулярная высадка по расписанию.
1 - Нет возможности высадки.
2 - Необходимо позвонить в агентство, чтобы договориться о высадке.
3 - Должен согласовать с водителем, чтобы договориться о высадке.
continuous_pickup Enum Необязательно Указывает, что пассажир может сесть в транзитное транспортное средство в любой точке на пути следования транспортного средства, как описано в пункте shapes.txt, из этого stop_time до следующего stop_time в поездке stop_sequence. Возможны следующие варианты:

0 - Непрерывная остановка.
1 или пустой - Без непрерывных остановок.
2 - Должен позвонить в агентство, чтобы организовать непрерывную остановку.
3 - Должен согласовать с водителем, чтобы организовать непрерывную остановку.

Если это поле заполнено, то оно отменяет любое поведение непрерывного сбора, определенное в поле routes.txt. Если это поле пустое, то stop_time наследует любое поведение непрерывного подбора, определенное в routes.txt.
continuous_drop_off Enum Необязательно Означает, что пассажир может выйти из транзитного транспортного средства в любой точке на пути следования транспортного средства, как это описано shapes.txt, от этого stop_time до следующего stop_time в поездке stop_sequence. Допустимыми вариантами являются:

0 - Непрерывная остановка высадка.
1 или пустой - Без непрерывной остановки.
2 - Должен позвонить в агентство для организации непрерывной остановки.
3 - Должен согласовать с водителем организацию непрерывной остановки.

Если это поле заполнено, то оно переопределяет любое поведение непрерывного отбрасывания, определенное в routes.txt. Если это поле пустое, то stop_time наследует любое поведение непрерывного отбрасывания, определенное в routes.txt.
shape_dist_traveled Неотрицательный поплавок Необязательно Фактическое расстояние, пройденное вдоль связанной фигуры, от первой остановки до остановки, указанной в этой записи. Это поле определяет, какую часть фигуры нужно провести между любыми двумя остановками во время поездки. Должно быть в тех же единицах, которые используются в shapes.txt. Значения, используемые для shape_dist_traveled должны увеличиваться вместе с stop_sequence; они не должны использоваться для отображения обратного движения по маршруту.
Пример: Если автобус проходит расстояние в 5,25 км от начала формы до остановки,shape_dist_traveled=5.25.
timepoint Enum Необязательно Указывает, строго ли соблюдается транспортным средством время прибытия и отправления на остановке или это приблизительное и/или интерполированное время. Это поле позволяет производителю GTFS предоставлять интерполированное время остановок, указывая при этом, что время является приблизительным. Возможны следующие варианты:

0 - Времена считаются приблизительными.
1 или пусто - Времена считаются точными.

calendar.txt

Файл: условно обязательный

Первичный ключservice_id)

Имя поля Тип Присутствие Описание
service_id Уникальный идентификатор Требуется Идентифицирует набор дат, когда обслуживание доступно для одного или нескольких маршрутов. Каждое service_id значение должно быть уникальным в calendar.txt файл.
monday Enum Требуется Указывает, работает ли услуга по всем понедельникам в диапазоне дат, указанном в полях start_date и end_date полями. Обратите внимание, что исключения для конкретных дат могут быть перечислены в разделе calendar_dates.txt. Допустимыми параметрами являются:

1 - Услуга доступна для всех понедельников в диапазоне дат.
0 - Услуга недоступна для понедельников в диапазоне дат.
tuesday Enum Требуется Функционирует так же, как monday кроме вторников
wednesday Enum Требуется Функционирует так же, как monday кроме применяется к средам
thursday Enum Требуется Функции в том же виде, что и monday кроме применяется к четвергам
friday Enum Требуется Функции в том же виде, что и monday кроме распространяется на пятницы
saturday Enum Требуется Функции в том же виде, что и monday кроме распространяется на субботы.
sunday Enum Требуется Функции в том же виде, что и monday кроме применяется к воскресеньям.
start_date Дата Требуется День начала обслуживания для интервала обслуживания.
end_date Дата Требуется Конечный день обслуживания для интервала обслуживания. Этот день обслуживания включен в интервал.

calendar_dates.txt

Файл: условно обязательный

Первичный ключservice_id, date)

Таблица calendar_dates.txt явно активирует или отключает обслуживание по дате. Она может использоваться двумя способами.

  • Рекомендуется: Использовать calendar_dates.txt вместе с calendar.txt для определения исключений из стандартных шаблонов обслуживания, определенных в calendar.txt. Если обслуживание в целом регулярное, с небольшими изменениями в определенные даты (например, для обслуживания специальных мероприятий или школьного Schedule), это хороший подход. В этом случае calendar_dates.service_id является внешним идентификатором, ссылающимся на calendar.service_id.
  • Альтернативный вариант: Опустить файл calendar.txt и указать каждую дату обслуживания в файле calendar_dates.txt. Это позволяет значительно варьировать обслуживание и позволяет использовать обслуживание без обычного еженедельного расписания. В этом случае service_id - это идентификатор.
Имя поля Тип Присутствие Описание
service_id Ссылка на иностранный идентификатор calendar.service_id или идентификатор Требуется Идентифицирует набор дат, когда происходит исключение обслуживания для одного или нескольких маршрутов. Каждая (service_id, date) пара может встречаться только один раз в calendar_dates.txt если используется calendar.txt и calendar_dates.txt в сочетании. Если service_id значение появляется в обоих calendar.txt и calendar_dates.txtто информация в calendar_dates.txt изменяет информацию об обслуживании, указанную в calendar.txt.
date Дата Требуется Дата, когда происходит исключение обслуживания.
exception_type Enum Требуется Указывает, доступно ли обслуживание в дату, указанную в поле даты. Возможны следующие варианты:

1 - Услуга была добавлена на указанную дату.
2 - Услуга была удалена для указанной даты.
Пример: Предположим, маршрут имеет один набор поездок, доступных по праздникам, и другой набор поездок, доступных во все остальные дни. Один service_id может соответствовать Schedule регулярного обслуживания, а другой service_id может соответствовать праздничному Schedule. Для конкретного праздника calendar_dates.txt может быть использован для добавления праздника в праздничное расписание service_id и для удаления праздника из обычного service_id Schedule.

fare_attributes.txt

Файл: Необязательный

Первичный ключfare_id)

Версии
Существует два варианта моделирования для описания тарифов.

GTFS V1 - это унаследованный вариант для описания минимальной информации о тарифах.

GTFS V2 - это обновленный метод, позволяющий более детально описать структуру тарифов агентства. Оба метода могут присутствовать в наборе данных, но потребитель данных должен использовать только один метод для данного набора данных. Рекомендуется, чтобы GTFS V2 имел приоритет над GTFS V1.

Файлы, связанные с GTFS V1, следующие:
- fare_attributes.txt
- fare_rules.txt

Файлами, связанными с GTFS V2, являются:
- fare_products.txt
- fare_leg_rules.txt
- fare_transfer_rules.txt


Имя поля Тип Присутствие Описание
fare_id Уникальный идентификатор Требуется Идентифицирует класс тарифа.
price Неотрицательный поплавок Требуется Стоимость проезда в единицах, указанных currency_type.
currency_type Код валюты Требуется Валюта, используемая для оплаты проезда.
payment_method Enum Требуется Указывает, когда необходимо оплатить проезд. Возможны следующие варианты:

0 - Проезд оплачивается на борту.
1 - Тариф должен быть оплачен до посадки.
transfers Enum Требуется Указывает количество пересадок, разрешенных по данному тарифу. Возможны следующие варианты:

0 - Пересадки по данному тарифу не разрешены.
1 - Всадники могут сделать одну пересадку.
2 - Пересадка возможна дважды.
пустой - разрешены неограниченные пересадки.
agency_id Ссылка на иностранный идентификатор agency.agency_id Условно обязательные Указывает соответствующее агентство для данного тарифа.

Conditionally Required:
- Требуется если несколько агентств определены в 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 Необязательно Идентифицирует зону отправления. Если тарифный класс имеет несколько зон отправления, создайте запись в файле fare_rules.txt для каждого origin_id.
Пример: Если тарифный класс "b" действителен для всех поездок из зоны "2" или зоны "8", поля fare_rules.txt файл будет содержать эти записи для класса тарифа:
fare_id,...,origin_id
b,...,2
b,...,8
destination_id Ссылка на иностранный идентификатор stops.zone_id Необязательно Идентифицирует зону назначения. Если тарифный класс имеет несколько зон назначения, создайте запись в разделе fare_rules.txt для каждого destination_id.
Пример: The 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.

fare_products.txt

Файл: Необязательный

Первичный ключfare_product_id)

Описать различные типы билетов или тарифов, которые могут быть приобретены пассажирами.

Имя поля Тип Присутствие Описание
fare_product_id ID Требуется Идентифицирует тарифный продукт.
fare_product_name Текст Необязательно Название тарифного продукта, отображаемое для пассажиров.
amount Сумма валюты Требуется Стоимость тарифного продукта. Может быть отрицательной для обозначения скидок при пересадке. Может быть равна нулю, чтобы обозначить бесплатный тарифный продукт.
currency Код валюты Требуется Валюта стоимости тарифного продукта.

fare_leg_rules.txt

Файл: Необязательно

Первичный ключnetwork_id, from_area_id, to_area_id, fare_product_id).

Правила оплаты проезда на отдельных участках пути.

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

Для обработки стоимости ноги:

  1. Файл fare_leg_rules.txt должен быть отфильтрован по полям, определяющим характеристики поездки, этими полями являются:
    • fare_leg_rules.network_id
    • fare_leg_rules.from_area_id
    • fare_leg_rules.to_area_id
  2. Если этап точно совпадает с записью в файле fare_leg_rules.txt по характеристикам поездки, эта запись должна быть обработана для определения стоимости этапа.
  3. Если точных совпадений не найдено, то пустые записи в fare_leg_rules.network_id, fare_leg_rules.from_area_id и fare_leg_rules.to_area_id должны быть проверены для обработки стоимости этапа:
    • Пустая запись в fare_leg_rules.network_id соответствует всем сетям, определенным в routes.txt, за исключением тех, которые перечислены в fare_leg_rules.network_id.
    • Пустая запись в fare_leg_rules.from_area_id соответствует всем областям, определенным в areas.area_id, исключая те, которые перечислены в fare_leg_rules.from_area_id
    • Пустая запись в fare_leg_rules.to_area_id соответствует всем областям, определенным в areas.area_id исключая те, которые перечислены в fare_leg_rules.to_area_id
  4. Если нога не соответствует ни одному из правил, описанных выше, то тариф неизвестен.
Имя поля Тип Присутствие Описание
leg_group_id ID Необязательно Идентифицирует группу записей в fare_leg_rules.txt.

Используется для описания правил передачи тарифов между fare_transfer_rules.from_leg_group_id и fare_transfer_rules.to_leg_group_id.

Несколько записей в fare_leg_rules.txt могут принадлежать одному и тому же fare_leg_rules.leg_group_id.

Одна и та же запись в fare_leg_rules.txt (не включая fare_leg_rules.leg_group_id) не должна принадлежать нескольким fare_leg_rules.leg_group_id.
network_id Ссылка на иностранный идентификатор routes.network_id Необязательно Идентифицирует маршрутную сеть, которая применяется для правила "нога тарифа".

Если нет совпадений fare_leg_rules.network_id значения для network_id фильтруется, пусто fare_leg_rules.network_id будет соответствовать по умолчанию.

Пустая запись в fare_leg_rules.network_id соответствует всем сетям, определенным в routes.txt исключая перечисленные в fare_leg_rules.network_id
from_area_id Ссылка на иностранный идентификатор areas.area_id Необязательно Идентифицирует зону вылета.

Если нет совпадений fare_leg_rules.from_area_id значения для area_id фильтруется, пустой fare_leg_rules.from_area_id будет соответствовать по умолчанию.

Пустая запись в fare_leg_rules.from_area_id соответствует всем областям, определенным в areas.area_id исключая перечисленные в fare_leg_rules.from_area_id
to_area_id Ссылка на иностранный идентификатор areas.area_id Необязательно Определяет зону прибытия.

Если нет совпадений fare_leg_rules.to_area_id значения для area_id фильтруется, пустой fare_leg_rules.to_area_id будет соответствовать по умолчанию.

Пустая запись в fare_leg_rules.to_area_id соответствует всем областям, определенным в areas.area_id исключая перечисленные в fare_leg_rules.to_area_id
fare_product_id Ссылка на иностранный идентификатор fare_products.fare_product_id Требуется Тарифный продукт, необходимый для путешествия по данному участку.

fare_transfer_rules.txt

Файл: Необязательно

Первичный ключfrom_leg_group_id, to_leg_group_id, fare_product_id, transfer_count, duration_limit).

Правила тарифов для пересадок между этапами поездки определены в fare_leg_rules.txt.

Для обработки стоимости поездки, состоящей из нескольких этапов:

  1. Применимые группы ног тарифа, определенные в fare_leg_rules.txt, должны быть определены для всех отдельных ног поездки на основе поездки велосипедиста.

  2. Файл fare_transfer_rules.txt должен быть отфильтрован по полям, определяющим характеристики пересадки, такими полями являются:

    • fare_transfer_rules.from_leg_group_id
    • fare_transfer_rules.to_leg_group_id

  3. Если трансфер точно соответствует записи в файле fare_transfer_rules.txt по характеристикам трансфера, то эта запись должна быть обработана для определения стоимости трансфера.

  4. Если точных совпадений не найдено, то для обработки стоимости трансфера необходимо проверить пустые записи в from_leg_group_id или to_leg_group_id:

    • Пустая запись в fare_transfer_rules.from_leg_group_id соответствует всем группам ног, определенным в fare_leg_rules.leg_group_id, за исключением тех, которые перечислены в fare_transfer_rules.from_leg_group_id.
    • Пустая запись в fare_transfer_rules.to_leg_group_id соответствует всем группам ног, определенным в fare_leg_rules.leg_group_id, исключая те, которые перечислены в fare_transfer_rules.to_leg_group_id

  5. Если трансфер не соответствует ни одному из правил, описанных выше, то трансфер не организуется, и ноги считаются отдельными.


Имя поля Тип Присутствие Описание
from_leg_group_id Ссылка на иностранный идентификатор fare_leg_rules.leg_group_id Необязательно Идентифицирует группу правил для ног до передачи тарифа.

Если нет совпадений fare_transfer_rules.from_leg_group_id значения для leg_group_id фильтруется, пустой fare_transfer_rules.from_leg_group_id будет соответствовать по умолчанию.

Пустая запись в fare_transfer_rules.from_leg_group_id соответствует всем группам ног, определенным в разделе fare_leg_rules.leg_group_id исключая перечисленные в fare_transfer_rules.from_leg_group_id
to_leg_group_id Ссылка на иностранный идентификатор fare_leg_rules.leg_group_id Необязательно Идентифицирует группу правил для ног после пересадки.

Если нет совпадений fare_transfer_rules.to_leg_group_id значения для leg_group_id быть отфильтрованным, пустой fare_transfer_rules.to_leg_group_id будет соответствовать по умолчанию.

Пустая запись в fare_transfer_rules.to_leg_group_id соответствует всем группам ног, определенным в разделе fare_leg_rules.leg_group_id исключая перечисленные в fare_transfer_rules.to_leg_group_id
transfer_count Ненулевое целое число Условно запрещено Определяет, к скольким последовательным пересадкам может применяться правило пересадки.

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

Если подпутешествие соответствует нескольким записям с разными transfer_counts, то правило с минимальным transfer_count которое больше или равно текущему количеству переносов подпутешествия, будет выбрано.

Условно запрещено:
- Запрещено если fare_transfer_rules.from_leg_group_id не равно fare_transfer_rules.to_leg_group_id.
- Требуется если fare_transfer_rules.from_leg_group_id равно fare_transfer_rules.to_leg_group_id.
duration_limit Положительное целое число Необязательно Определяет предел продолжительности передачи.

Должно быть выражено в целых приращениях секунд.

Если предел длительности отсутствует, fare_transfer_rules.duration_limit должно быть пустым.
duration_limit_type Enum Условно обязательные Определяет относительное начало и конец fare_transfer_rules.duration_limit.

Валидными параметрами являются:
0 - Между подтверждением тарифа отправления на текущем участке и подтверждением тарифа прибытия на следующем участке.
1 - Между валидацией тарифа отправления на текущем участке и валидацией тарифа прибытия на следующем участке.
2 - Между валидацией тарифа прибытия на текущем участке и валидацией тарифа отправления на следующем участке.
3 - Между подтверждением тарифа прибытия на текущем участке и подтверждением тарифа прибытия на следующем участке.

Conditionally Required:
- Требуется если fare_transfer_rules.duration_limit определено.
- Запрещено если fare_transfer_rules.duration_limit пуст.
fare_transfer_type Enum Требуется Указывает метод обработки стоимости при пересадке между этапами поездки:

Допустимыми параметрами являются:
0 - От-ноги fare_leg_rules.fare_product_id плюс fare_transfer_rules.fare_product_id; A + AB.
1 - с ноги fare_leg_rules.fare_product_id плюс fare_transfer_rules.fare_product_id плюс к ноге fare_leg_rules.fare_product_id; A + AB + B.
2 - fare_transfer_rules.fare_product_id; AB.

Обработка затрат на взаимодействие между несколькими пересадками в пути:

fare_transfer_typeОбработка A > BОбработка B > C
0A + ABS + BC
1A + AB +BS + BC + C
2ABS + BC
Где S указывает общую стоимость обработки предыдущего(их) этапа(ов) и пересадки(ей).
fare_product_id Ссылка на иностранный идентификатор fare_products.fare_product_id Необязательно Тарифный продукт, необходимый для пересадки между двумя тарифными ногами. Если пусто, стоимость правила пересадки равна 0.

areas.txt

Файл: Факультативно

Первичный ключarea_id)

Определяет идентификаторы районов.

Имя поля Тип Присутствие Описание
area_id Уникальный идентификатор Требуется Идентифицирует область. Должен быть уникальным в areas.txt.
area_name Текст Необязательно Название области, отображаемое для водителя.

stop_areas.txt

Файл: Необязательно

Первичный ключ(*)

Присваивает остановки из файла stops.txt районам.

Имя поля Тип Присутствие Описание
area_id Ссылка на иностранный идентификатор areas.area_id Требуется Идентифицирует область, к которой принадлежит один или несколько stop_idпринадлежат. Одно и то же stop_id может быть определено во многих area_ids.
stop_id Ссылка на иностранный идентификатор stops.stop_id Требуется Идентифицирует остановку. Если станция (т.е. остановка с символом stops.location_type=1) определена в этом поле, предполагается, что все ее платформы (т.е. все остановки с stops.location_type=0 на которых эта станция определена как stops.parent_station) являются частью одной и той же зоны. Это поведение можно отменить, назначив платформы другим районам.

shapes.txt

Файл: Необязательно

Первичный ключshape_id, shape_pt_sequence)

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

Имя поля Тип Присутствие Описание
shape_id 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

Файл: Необязательно

Первичный ключtrip_id, start_time)

frequencies.txt представляет поездки, которые осуществляются с регулярными интервалами (время между поездками). Этот файл может использоваться для представления двух различных типов обслуживания.

  • Обслуживание на основе частоты(exact_times=0), при котором обслуживание не следует фиксированному Schedule в течение дня. Вместо этого операторы стараются строго соблюдать заранее установленные интервалы между поездками.
  • Сжатое представление сервиса Schedule(exact_times=1), при котором маршруты следуют точно по расписанию в течение определенного периода времени. При обслуживании по Schedule операторы стараются строго придерживаться Schedule.
Имя поля Тип Присутствие Описание
trip_id Ссылка на иностранный идентификатор trips.trip_id Требуется Идентифицирует поездку, к которой применяется указанный интервал движения.
start_time Время Требуется Время, в которое первое транспортное средство отправляется с первой остановки поездки с указанным интервалом движения.
end_time Время Требуется Время, когда обслуживание переходит на другой путь (или прекращается) на первой остановке поездки.
headway_secs Положительное целое число Требуется Время, в секундах, между отправлениями с одной и той же остановки (интервал движения) в поездке в течение интервала времени, указанного start_time и end_time. Для одной и той же поездки может быть определено несколько интервалов движения, но они не должны пересекаться. Новые перегоны могут начинаться точно в то время, когда заканчивается предыдущий перегон.
exact_times Enum Необязательно Указывает тип обслуживания для поездки. Дополнительную информацию см. в описании файла. Возможные варианты:

0 или пусто - Поездки, основанные на частоте.
1 - Поездки Schedule с одинаковым интервалом движения в течение дня. В этом случае end_time должно быть больше, чем время последней желаемой поездки start_time но меньше, чем start_time последней желаемой поездки + headway_secs.

transfers.txt

Файл: Необязательно

Первичный ключfrom_stop_id, to_stop_id, from_trip_id, to_trip_id, from_route_id, to_route_id)

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

Поля from_trip_id, to_trip_id, from_route_id и to_route_id позволяют более высокий порядок конкретизации для правил трансфера. Наряду с from_stop_id и to_stop_id, рейтинг специфичности следующий:

  1. Определены оба trip_id: from_trip_id и to_trip_id.
  2. Определен один набор trip_id и route_id:from_trip_id и to_route_id) илиfrom_route_id и to_trip_id).
  3. Определен один trip_id: from_trip_id или to_trip_id.
  4. Определены оба route_id: from_route_id и to_route_id.
  5. Определен один route_id: from_route_id или to_route_id.
  6. Определены только from_stop_id и to_stop_id: поля, связанные с маршрутом или поездкой, не установлены.

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

Имя поля Тип Присутствие Описание
from_stop_id Ссылка на иностранный идентификатор stops.stop_id Требуется Определяет остановку или станцию, где начинается соединение между маршрутами. Если это поле относится к станции, правило пересадки применяется ко всем ее дочерним остановкам.
to_stop_id Ссылка на иностранный идентификатор stops.stop_id Требуется Определяет остановку или станцию, где заканчивается соединение между маршрутами. Если это поле относится к станции, правило пересадки применяется ко всем дочерним остановкам.
from_route_id Ссылка на иностранный идентификатор routes.route_id Необязательно Определяет маршрут, на котором начинается соединение.

Если from_route_id определено, то пересадка будет применяться к прибывающей поездке на маршруте для данного маршрута. from_stop_id.

Если оба from_trip_id и from_route_id определены, то trip_id должны принадлежать route_id, и from_trip_id будет иметь приоритет.
to_route_id Ссылка на иностранный идентификатор routes.route_id Необязательно Определяет маршрут, на котором заканчивается соединение.

Если to_route_id определено, то пересадка будет применяться к отправляющейся поездке на маршруте для данного маршрута. to_stop_id.

Если оба to_trip_id и to_route_id определены, то trip_id должен принадлежать route_id, и to_trip_id будет иметь приоритет.
from_trip_id Ссылка на иностранный идентификатор trips.trip_id Необязательно Определяет поездку, в которой начинается соединение между маршрутами.

Если from_trip_id определено, пересадка будет применяться к прибывающей поездке для данного маршрута. from_stop_id.

Если оба from_trip_id и from_route_id определены, то trip_id должен принадлежать route_id, и from_trip_id будет иметь приоритет.
to_trip_id Ссылка на иностранный идентификатор trips.trip_id Необязательно Определяет поездку, в которой соединение между маршрутами заканчивается.

Если to_trip_id определена, пересадка будет применяться к отправляющейся поездке для данного маршрута. to_stop_id.

Если оба to_trip_id и to_route_id определены, то trip_id должны принадлежать route_id, и to_trip_id будет иметь приоритет.
transfer_type Enum Требуется Указывает тип соединения для указанной пары (from_stop_id, to_stop_id) пары. Возможные варианты:

0 или пусто - Рекомендуемый пункт пересадки между маршрутами.
1 - Временной пункт пересадки между двумя маршрутами. Ожидается, что отправляющееся транспортное средство будет ждать прибывающее и оставит достаточно времени для пересадки между маршрутами.
2 - Пересадка требует минимального времени между прибытием и отправлением для обеспечения стыковки. Время, необходимое для пересадки, определяется min_transfer_time.
3 - Пересадка между маршрутами в данном месте невозможна.
min_transfer_time Неотрицательное целое число Необязательно Количество времени в секундах, которое должно быть доступно для пересадки между маршрутами на указанных остановках. Сайт min_transfer_time должно быть достаточно для того, чтобы типичный пассажир мог пересесть между двумя остановками, включая буферное время, чтобы обеспечить разницу в Schedule на каждом маршруте.

pathways.txt

Файл: Необязательно

Первичный ключpathway_id)

Файлы pathways.txt и levels.txt используют графовое представление для описания станций метро или поездов, где узлы представляют места, а ребра - пути.

Чтобы добраться от входа/выхода станции (узел, представленный как местоположение с location_type=2) до платформы (узел, представленный как местоположение с location_type=0 или пустое), велосипедист будет перемещаться по пешеходным дорожкам, проходам, лестницам и другим краям, представленным как пути. Общие узлы (узлы, представленные с location_type=3) могут использоваться для соединения путей по всей станции.

Пути должны быть определены на станции полностью. Если определены какие-либо пути, предполагается, что все пути на станции представлены. Поэтому применяются следующие рекомендации:

  • Никаких висячих мест: Если любое место на станции имеет путь, то все места на этой станции должны иметь пути, за исключением платформ с зонами посадки(location_type=4, см. рекомендации ниже).
  • Нет путей для платформы с посадочными площадками: Платформа(location_type=0 или пустая), имеющая зоны посадки(location_type=4), рассматривается как родительский объект, а не как точка. В таких случаях платформа не должна иметь назначенных путей. Все пути должны быть назначены для каждой зоны посадки платформы.
  • Нет заблокированных платформ: Каждая платформа(location_type=0 или пустая) или зона посадки(location_type=4) должна быть соединена хотя бы с одним входом/выходом(location_type=2) через некоторую цепочку путей. Станции, не допускающие прохода на внешнюю сторону станции с данной платформы, встречаются редко.
Имя поля Тип Присутствие Описание
pathway_id Уникальный идентификатор Требуется Идентифицирует путь. Используется системами в качестве внутреннего идентификатора записи. Должен быть уникальным в наборе данных.

Разные пути могут иметь одинаковые значения для from_stop_id и to_stop_id.
Пример: Когда два эскалатора находятся рядом в противоположных направлениях, или когда лестница и лифт идут из одного и того же места в одно и то же место, разные pathway_id могут иметь одинаковые значения from_stop_id и to_stop_id значения.
from_stop_id Ссылка на иностранный идентификатор stops.stop_id Требуется Место, с которого начинается путь.

Должно содержать stop_id обозначающее платформу (location_type=0 или пустая), вход/выход (location_type=2), общий узел (location_type=3) или зона посадки (location_type=4).

Значения для stop_id которые идентифицируют станции (location_type=1) запрещены.
to_stop_id Ссылка на иностранный идентификатор stops.stop_id Требуется Место, в котором заканчивается путь.

Должен содержать stop_id обозначающую платформу (location_type=0 или пустой), вход/выход (location_type=2), общий узел (location_type=3) или зона посадки (location_type=4).

Значения для stop_id которые идентифицируют станции (location_type=1) запрещены.
pathway_mode Enum Требуется Тип пути между указанными (from_stop_id, to_stop_id) парой. Возможные варианты:

1 - Пешеходная дорожка.
2 - Лестница.
3 - Движущийся тротуар/путепровод.
4 - Эскалатор.
5 - Лифт.
6 - Ворота для оплаты проезда (или ворота для оплаты): Проход, который ведет в зону станции, где для прохода требуется подтверждение оплаты. Ворота для оплаты проезда могут отделять платные зоны станции от неоплачиваемых или отделять друг от друга различные зоны оплаты в пределах одной станции. Эта информация может быть использована для того, чтобы избежать маршрутизации пассажиров через станции с использованием коротких путей, которые потребуют от пассажиров ненужных платежей, например, направить пассажира пройти через платформу метро, чтобы попасть на автобусную остановку.
7- Выходной шлюз: Путь, ведущий из платной зоны в неоплачиваемую зону, для пересечения которого не требуется подтверждение оплаты.
is_bidirectional Enum Требуется Указывает направление, в котором можно пройти:

0 - Однонаправленный путь, по которому можно идти только из здания. from_stop_id на to_stop_id.
1 - Двунаправленный путь, который можно использовать в обоих направлениях.

Выходные ворота (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 Non-null целое число Необязательно Количество ступеней пути.

Положительное значение stair_count подразумевает, что велосипедист поднимается по лестнице от from_stop_id на to_stop_id. А отрицательное stair_count подразумевает, что всадник спускается с from_stop_id к to_stop_id.

Это поле рекомендуется использовать для лестниц (pathway_mode=2).

Если можно указать только приблизительное количество лестниц, рекомендуется приблизительно считать, что на 1 этаж приходится 15 лестниц.
max_slope Поплавок Необязательно Максимальный коэффициент уклона дорожки. Возможные варианты:

0 или пусто - Нет уклона.
Float - Коэффициент наклона дорожки, положительный для восходящего движения, отрицательный для нисходящего.

Это поле следует использовать только для пешеходных дорожек (pathway_mode=1) и движущихся тротуаров (pathway_mode=3).
Пример: В США 0,083 (также пишется 8,3%) - это максимальный коэффициент уклона для инвалидной коляски с ручным приводом, что означает увеличение на 0,083 м (8,3 см) на каждый 1 м.
min_width Положительный настил Необязательно Минимальная ширина дорожки в метрах.

Это поле рекомендуется, если минимальная ширина меньше 1 метра.
signposted_as Текст Необязательно Текст, обращенный к публике, с физического указателя, который виден велосипедистам.

Может использоваться для текстовых указаний велосипедистам, например, "следуйте указателям до '. Текст в singposted_as должен выглядеть именно так, как он напечатан на знаках.

Если физические указатели многоязычные, это поле может быть заполнено и переведено по примеру stops.stop_name в определении поля feed_info.feed_lang.
reversed_signposted_as Текст Необязательно Аналогично signposted_as, но когда используется путь от to_stop_id к from_stop_id.

levels.txt

Файл: условно обязательный

Первичный ключlevel_id)

Описывает уровни на станции. Используется совместно с файлом pathways.txt и необходим для навигации по путям с лифтами(pathway_mode=5).

Имя поля Тип Присутствие Описание
level_id Уникальный идентификатор Требуется Идентифицирует уровень на станции.
level_index Поплавок Требуется Числовой индекс уровня, указывающий на его относительное положение.

Уровень земли должен иметь индекс 0, причем уровни над землей обозначаются положительными индексами, а уровни под землей - отрицательными индексами.
level_name Текст Необязательно Название уровня, как его видит велосипедист внутри здания или станции.
Пример: Поднимитесь на лифте в "Мезонин" или "Платформа" или "-1".

translations.txt

Файл: Необязательно

Первичный ключtable_name, field_name, language, record_id, record_sub_id, field_value).

В регионах, где существует несколько официальных языков, транзитные агентства/операторы обычно имеют названия и веб-страницы language. Чтобы лучше обслуживать пассажиров в этих регионах, полезно, чтобы набор данных включал эти language значения.

Имя поля Тип Присутствие Описание
table_name Enum Требуется Определяет таблицу, содержащую переводимое поле. Допустимыми значениями являются:

- agency
- stops
- routes
- trips
- stop_times
- pathways
- levels
- feed_info
- attributions

Любой файл, добавленный в GTFS, будет иметь table_name значение, эквивалентное имени файла, как указано выше (т.е. не включая .txt расширение файла).
field_name Текст Требуется Имя переводимого поля. Поля с типом Text могут быть переведены, поля с типом URL, Email и Phone number также могут быть "переведены" для предоставления ресурсов на нужном language. Поля с другими типами переводить не следует.
language кодlanguage Требуется language перевода.

Если language перевода такой же, как в feed_info.feed_langто исходное значение поля будет принято за значение по умолчанию для использования в языках без специальных переводов (если default_lang не указано иное).
Пример: В Швейцарии город в двуязычном кантоне официально называется "Биль/Бьенн", но на французском языке он будет называться просто "Бьенн", а на немецком - "Биль".
translation Текст или URL, электронная почта или номер телефона Требуется Переведенное значение.
record_id Иностранный идентификатор Условно обязательные Определяет запись, соответствующую переводимому полю. Значение в record_id должно быть первым или единственным полем первичного ключа таблицы, как определено в атрибуте первичного ключа для каждой таблицы и ниже:

- agency_id для agency.txt
- stop_id для stops.txt;
- route_id для routes.txt;
- trip_id для trips.txt;
- trip_id для stop_times.txt;
- pathway_id для pathways.txt;
- level_id для levels.txt;
- attribution_id для attribution.txt.

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

- service_id для calendar.txt;
- service_id для calendar_dates.txt;
- fare_id для fare_attributes.txt;
- fare_id для fare_rules.txt;
- shape_id для shapes.txt;
- trip_id для frequencies.txt;
- from_stop_id для transfers.txt.

Conditionally Required:
- Запрещено если table_name это feed_info.
- Запрещено если field_value определено.
- Требуется если field_value пустой.
record_sub_id Иностранный идентификатор Условно обязательные Помогает перевести запись, содержащую поле, если таблица не имеет уникального идентификатора. Таким образом, значение в record_sub_id является вторичным идентификатором таблицы, как определено в таблице ниже:

- Нет для agency.txt;
- Нет для stops.txt;
- Нет для routes.txt;
- Нет для trips.txt;
- stop_sequence для stop_times.txt;
- Нет для pathways.txt;
- Не для levels.txt;
- Не для attributions.txt.

Поля в таблицах, не определенных выше, не должны переводиться. Однако производители иногда добавляют дополнительные поля, которые выходят за рамки официальной спецификации, и эти неофициальные поля могут быть переведены. Ниже приведен рекомендуемый способ использования record_sub_id for those tables:

- Не для calendar.txt;
- date для calendar_dates.txt;
- Не для fare_attributes.txt;
- route_id для fare_rules.txt;
- Нет для shapes.txt;
- start_time для frequencies.txt;
- to_stop_id для transfers.txt.

Conditionally Required:
- Запрещено если table_name это feed_info.
- Запрещено если field_value определено.
- Требуется если table_name=stop_times и record_id определено.
field_value Текст или URL, или электронная почта, или номер телефона Условно обязательные Вместо того чтобы определять, какая запись должна быть переведена, с помощью поля record_id и record_sub_idэто поле может быть использовано для определения значения, которое должно быть переведено. При использовании этого поля перевод будет применен, если поля, обозначенные символом table_name и field_name содержит точно такое же значение, определенное в field_value.

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

Если два правила перевода соответствуют одной и той же записи (одно из них имеет значение field_value, а другое - с record_id), правило с record_id имеет приоритет.

Условно обязательно:
- Запрещено если table_name это feed_info.
- Запрещено если record_id определено.
- Требуется если record_id пустой.

feed_info.txt

Файл: необязательно(требуется, если предоставлен файл translations.txt ).

Первичный ключ (нет)

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

Если оба метода ссылкиrecord_id, record_sub_id) и field_value используются для перевода одного и того же значения в двух разных строках, приоритет имеет перевод, предоставленный с помощьюrecord_id, record_sub_id).

Имя поля Тип Присутствие Описание
feed_publisher_name Текст Требуется Полное название организации, которая публикует набор данных. Оно может совпадать с одним из agency.agency_name значения.
feed_publisher_url URL Требуется URL-адрес веб-сайта организации, публикующей набор данных. Это может совпадать с одним из agency.agency_url значения.
feed_lang кодlanguage Требуется language по умолчанию, используемый для текста в этом наборе данных. Этот параметр помогает потребителям GTFS выбрать правила капитализации и другие настройки, language данного набора данных. Файл translations.txt может использоваться, если текст необходимо перевести на языки, отличные от языка по умолчанию.

language по умолчанию может быть многоязычным для наборов данных с оригинальным текстом на нескольких языках. В таких случаях поле feed_lang поле должно содержать код language mul определенный нормой ISO 639-2, а перевод для каждого language, используемого в наборе данных, должен быть представлен в поле translations.txt. Если весь оригинальный текст в наборе данных на одном language, то mul не следует использовать.
Пример: Рассмотрим набор данных из многоязычной страны, такой как Швейцария, с оригинальным полем stops.stop_name поле заполнено названиями остановок на разных языках. Название каждой остановки написано в соответствии с преобладающим language в географическом местоположении этой остановки, напр. 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 кодlanguage Необязательно Определяет language, который должен использоваться, когда потребитель данных не знает language райдера. Часто это будет en (английский).
feed_start_date Дата Необязательно Набор данных предоставляет полную и достоверную информацию о Schedule обслуживания в период с начала feed_start_date дня до конца feed_end_date дня. Оба дня могут быть оставлены пустыми, если они недоступны. Сайт feed_end_date дата не должна предшествовать feed_start_date если указаны оба дня. Рекомендуется, чтобы поставщики наборов данных предоставляли данные Schedule за пределами этого периода, чтобы сообщить о возможном будущем обслуживании, но потребители наборов данных должны относиться к ним с учетом их неавторитетного статуса. Если feed_start_date или feed_end_date выходят за пределы активных календарных дат, определенных в calendar.txt и calendar_dates.txtто набор данных делает явное утверждение об отсутствии обслуживания на даты в диапазоне feed_start_date или feed_end_date но не включенных в активные календарные даты.
feed_end_date Дата Необязательно (см. выше)
feed_version Текст Необязательно Строка, указывающая на текущую версию набора данных GTFS. Приложения, GTFS, могут отображать это значение, чтобы помочь издателям наборов данных определить, был ли включен последний набор данных.
feed_contact_email Электронная почта Необязательно Адрес электронной почты для связи относительно набора данных GTFS и практики публикации данных. feed_contact_email технический контакт для приложений, GTFS. Предоставьте контактную информацию службы поддержки клиентов через agency.txt.
feed_contact_url URL Необязательно URL для контактной информации, веб-формы, службы поддержки или других инструментов для связи относительно набора данных GTFS и практики публикации данных. feed_contact_url является техническим контактом для приложений, GTFS. Предоставление контактной информации службы поддержки клиентов через agency.txt.

attributions.txt

Файл: Необязательно

Первичный ключattribution_id)

Определяет атрибуции, применяемые к набору данных.

Имя поля Тип Присутствие Описание
attribution_id Уникальный идентификатор Необязательно Идентифицирует атрибуцию для набора данных или его подмножества. В основном это полезно для переводов.
agency_id Ссылка на иностранный идентификатор agency.agency_id Необязательно Агентство, к которому применяется атрибуция.

Если определено одно agency_id, route_id, или trip_id атрибуция определена, другие должны быть пустыми. Если ни одна из них не указана, атрибуция будет применяться ко всему набору данных.
route_id Ссылка на иностранный идентификатор routes.route_id Необязательно Функции в том же виде, что и agency_id кроме атрибуции, применяемой к маршруту. Несколько атрибуций могут применяться к одному и тому же маршруту.
trip_id Ссылка на иностранный идентификатор trips.trip_id Необязательно Функции в том же виде, что и agency_id кроме атрибуции применяется к поездке. Несколько атрибуций могут применяться к одной и той же поездке.
organization_name Текст Требуется Название организации, которой приписывается набор данных.
is_producer Enum Необязательно Роль организации - производитель. Возможные варианты:

0 или пусто - Организация не имеет этой роли.
1 - Организация имеет эту роль.

По крайней мере, одно из полей is_producer, is_operator, или is_authority должно быть установлено в 1.
is_operator Enum Необязательно Функции в том же виде, что и is_producer кроме роли организации - оператор.
is_authority Enum Необязательно Функции в том же смысле, что и is_producer кроме роли организации - авторитет.
attribution_url URL Необязательно URL организации.
attribution_email Электронная почта Необязательно Электронная почта организации.
attribution_phone Номер телефона Опционально Номер телефона организации.