Referência da GTFS (Especificação Geral sobre Feeds de Transporte Público)

Revisado em 20 de junho de 2012

Este documento explica os tipos de arquivos incluídos em um feed GTFS de transporte público e define os campos usados em cada um desses arquivos.

Sumário

Definições de termos

Esta seção define os termos usados ao longo deste documento.

  • Campo obrigatório: a coluna do campo deve ser incluída em seu feed e um valor deve ser fornecido para cada registro. Alguns campos obrigatórios permitem sequências vazias como um valor. Para inserir uma sequência vazia, basta omitir qualquer texto entre as vírgulas para esse campo. Observe que 0 é interpretado como uma "sequência de valor 0" e não como uma sequência vazia. Para obter detalhes sobre o campo, consulte sua definição.
  • Campo opcional: a coluna do campo pode ser omitida de seu feed. Se você optar por incluir uma coluna opcional, cada registro em seu feed deverá ter um valor para essa coluna. Você pode incluir uma sequência vazia como valor para registros que não tenham valores na coluna. Alguns campos opcionais permitem sequências vazias como valor. Para inserir uma sequência vazia, basta omitir qualquer texto entre as vírgulas do campo. Observe que 0 é interpretado como uma "sequência de valor 0" e não como uma sequência vazia.
  • Conjunto de dados exclusivo: o campo contém um valor que é mapeado para uma única entidade distinta na coluna. Por exemplo, se um trajeto recebe o ID 1A, nenhum outro trajeto pode usar esse ID de trajeto. No entanto, você pode atribuir o ID 1A a um local, porque os locais são um tipo diferente de entidade diferente dos trajetos.

Arquivos de feed

Esta especificação define os seguintes arquivos juntamente com seu conteúdo associado:

Nome do arquivo Obrigatório Define
agency.txt Obrigatório Uma ou mais agências de transporte público que fornecem os dados nesse feed.
stops.txt Obrigatório Locais individuais em que os veículos pegam ou deixam passageiros.
routes.txt Obrigatório Trajetos do Google Transit. Um trajeto é um grupo de viagens exibidas aos passageiros como um único serviço.
trips.txt Obrigatório As viagens de cada trajeto. Uma viagem é uma sequência de duas ou mais paradas que ocorrem em um horário específico.
stop_times.txt Obrigatório Horários de partida e chegada dos veículos em paradas específicas em cada viagem.
calendar.txt Obrigatório Datas para IDs de serviço que usam uma programação semanal. Especificam quando o serviço começa e termina, bem como os dias da semana em que o serviço está disponível.
calendar_dates.txt Opcional Exceções para IDs de serviço definidos no arquivo calendar.txt . Se o arquivo calendar_dates.txt inclui TODAS as datas de serviço, ele pode ser especificado no lugar do calendar.txt.
fare_attributes.txt Opcional Informações sobre tarifas dos trajetos de uma empresa de transporte público.
fare_rules.txt Opcional Regras para implementação das informações de tarifa dos trajetos de uma empresa de transporte público.
shapes.txt Opcional Regras para desenhar linhas em um mapa para representar os trajetos de uma empresa de transporte público.
frequencies.txt Opcional Intervalo entre as viagens nos trajetos com freqüência variável de serviços.
transfers.txt Opcional Regras para conexões em pontos de baldeação entre os trajetos.
feed_info.txt Opcional Informações adicionais sobre o feed, incluindo editor, versão e informações sobre validade.

Requisitos para os arquivos

Os requisitos a seguir aplicam-se aos formatos e ao conteúdo de seus arquivos:

  • Todos os arquivos de um feed GTFS devem ser salvos como texto delimitado por vírgulas.
  • A primeira linha de cada arquivo deve conter nomes de campos. Cada subseção da seção Definições de campos corresponde a um dos arquivos em um feed de transporte público e lista os nomes de campos que você pode usar nesse arquivo.
  • Todos os nomes de campo fazem distinção entre maiúsculas e minúsculas.
  • Os valores de campo podem não conter tabulação, retornos de carro nem novas linhas.
  • Os valores de campo que contêm aspas ou vírgulas devem ser colocados entre aspas. Além disso, cada aspa no valor do campo deve ser precedida de uma aspa. Isto é consistente com o modo como o Microsoft Excel gera arquivos delimitados por vírgula (CSV). Para obter mais informações sobre o formato de arquivo CSV, consulte http://tools.ietf.org/html/rfc4180.
    O exemplo a seguir demonstra como o valor de um campo seria exibido em um arquivo delimitado por vírgula:
    • Valor do campo original: Contains "quotes", commas and text
    • Valor do campo no arquivo CSV: "Contains ""quotes"", commas and text"
  • Os valores do campo não podem conter tags HTML, comentários nem sequências de escape.
  • Remova todos os espaços excedentes entre os campos ou nomes de campo. Muitos analisadores consideram os espaços como parte do valor, o que pode causar erros.
  • Cada linha deve terminar com um caractere de fim de linha CRLF ou LF.
  • Os arquivos devem ser codificados em UTF-8 para aceitar todos os caracteres Unicode. São aceitos arquivos que incluem caracteres BOM (byte-order mark) Unicode. Consulte as Perguntas frequentes sobre Unicode para obter mais informações sobre o caractere BOM e UTF-8.
  • Compacte os arquivos em seu feed.

Definições de campos

agency.txt

Arquivo: Obrigatório

Nome do campo Obrigatório Detalhes
agency_id Opcional

O campo agency_id é um ID que identifica uma agência de transporte público. Um feed de transporte público pode representar dados de mais de uma agência. O agency_id é um conjunto de dados exclusivo. Este campo é opcional para feeds de transporte público que contenham somente dados de uma única agência.

agency_name Obrigatório

O campo agency_name contém o nome completo da agência de transporte público. O Google Maps exibirá esse nome.

agency_url Obrigatório

O campo agency_url contém o URL da agência de transporte público. O valor deve ser um URL completo que inclui http:// ou https://, e quaisquer caracteres especiais no URL devem ser ignorados corretamente. Consulte http://www.w3.org/Addressing/URL/4_URI_Recommentations.html para obter uma descrição de como criar valores de URLs completos.

agency_timezone Obrigatório

O campo agency_timezone contém o fuso horário de onde a agência de transporte público está localizada. Os nomes de fusos horários nunca contém o caractere de espaço, mas pode conter um sublinhado. Consulte http://en.wikipedia.org/wiki/List_of_tz_zones para obter uma lista de valores válidos. Se várias agências são especificadas no feed, elas devem ter o mesmo agency_timezone.

agency_lang Opcional

O campo agency_lang contém um código ISO 639-1 de duas letras para o idioma principal usado por essa agência de transporte público. O código de idioma não faz distinção entre maiúsculas e minúsculas (são aceitos tanto "en" quanto "EN"). Esta configuração define regras para o uso de letras maiúsculas e minúsculas e outras regras específicas de idioma para todo o texto contido no feed dessa agência de transporte público. Consulte http://www.loc.gov/standards/iso639-2/php/code_list.php para obter uma lista de valores válidos.

agency_phone Opcional

O campo agency_phone contém um único número de telefone da agência especificada. Este campo é um valor de sequência que apresenta o número do telefone como é usado na área de serviço da agência. Ele pode e deve conter marcas de pontuação para agrupar os dígitos do número. Texto discável (por exemplo, TriMet's "503-238-RIDE") é permitido, mas o campo não deve conter qualquer outro texto descritivo.

agency_fare_url Opcional

O campo agency_fare_url especifica o URL de uma página da Web que permite que um passageiro compre passagens ou outros instrumentos de tarifas dessa agência on-line. O valor deve ser um URL completo que inclui http:// ou https:// e quaisquer caracteres especiais no URL devem ser ignorados corretamente. Consulte http://www.w3.org/Addressing/URL/4_URI_Recommentations.html para obter uma descrição de como criar valores de URLs completos.

stops.txt

Arquivo: Obrigatório

Nome do campo Obrigatório Detalhes
stop_id Obrigatório

O campo stop_id contém um ID que identifica uma parada ou uma estação com exclusividade. Diversos trajetos podem usar a mesma parada. O stop_id é um conjunto de dados exclusivo.

stop_code Opcional

O campo stop_code contém um pequeno texto ou um número que identifica a parada para os passageiros com exclusividade. Os códigos das paradas são usados muitas vezes em sistemas de informações sobre transporte público por telefone ou impressos em sinalizações nas paradas para que os passageiros possam obter informações sobre o horário das paradas com mais facilidade ou sobre chegadas de uma parada específica em tempo real.

O campo stop_code só deve ser usado para códigos de parada exibidos aos passageiros. Para os códigos internos, use stop_id. Este campo deve ser deixado em branco para as paradas que não têm um código.

stop_name Obrigatório

O campo stop_name contém o nome de uma parada ou estação. Use um nome compreensível para as pessoas locais e linguagem turística.

stop_desc Opcional

O campo stop_desc contém uma descrição de uma parada. Forneça informações úteis e de qualidade. Não basta repetir o nome da parada.

stop_lat Obrigatório

O campo stop_lat contém a latitude de uma parada ou estação. O valor do campo deve ser uma latitude WGS 84 válida.

stop_lon Obrigatório

O campo stop_lon contém a longitude de uma parada ou estação. O valor do campo deve ser uma latitude WGS 84 válida entre -180 e 180.

zone_id Opcional

O campo zone_id define a zona tarifária do ID de uma parada. Os IDs de zonas são obrigatórios se você deseja fornecer informações sobre tarifas usando fare_rules.txt. Se esse ID de parada representa uma estação, o ID de zona é ignorado.

stop_url Opcional

O campo stop_url contém o URL de uma página da Web sobre uma parada específica. Ele deve ser diferente dos campos agency_url e route_url .

O valor deve ser um URL completo que inclui http:// ou https://, e quaisquer caracteres especiais no URL devem ser ignorados corretamente. Consulte http://www.w3.org/Addressing/URL/4_URI_Recommentations.html para obter uma descrição de como criar valores de URLs completos.

location_type Opcional

O campo location_type identifica se este ID de parada representa uma parada ou uma estação. Se nenhum tipo de local for especificado ou se o campo location_type estiver em branco, os IDs de parada serão tratados como paradas. As estações podem ter propriedades diferentes das paradas quando são representadas em um mapa ou usadas em planejamento de viagens.

O campo de tipo de local pode ter os seguintes valores:

  • 0 ou em branco: parada. Um local onde os passageiros embarcam ou desembarcam de um veículo de transporte público.
  • 1: estação. A estrutura física ou área que contém uma ou mais paradas.
parent_station Opcional

Para paradas que estejam fisicamente localizadas dentro de estações, o campo parent_station identifica a estação associada à parada. Para usar este campo, o arquivo stops.txt também deve conter uma linha em que esse ID de parada tenha o tipo de localização=1.

Este ID de parada representa... O tipo de local desta entrada... O campo parent_station desta entrada contém...
Uma parada localizada dentro de uma estação. 0 ou vazio O ID de parada da estação onde esta parada está localizada. A parada indicada por parent_station deve ter location_type=1.
Uma parada localizada fora de uma estação. 0 ou vazio Um valor vazio. O campo parent_station não se aplica a esta parada.
Uma estação. 1 Um valor vazio. As estações não podem conter outras estações.
stop_timezone Opcional

O campo stop_timezone contém o fuso horário em que esta parada ou estação está localizada. Consulte a Lista de fusos horário do Wikipedia para obter uma lista de valores válidos. Se omitido, a parada, assume-se que a parada está localizada no fuso horário especificado por agency_timezone no arquivo agency.txt

Quando uma parada tem uma estação principal, considera-se que a parada esteja no fuso horário especificado pelo valor stop_timezone da estação principal. Se a estação principal não possui um valor stop_timezone, assume-se que as paradas que pertencem a essa estação estejam no fuso horário especificado por agency_timezone, mesmo que as paradas tenham os próprios valores stop_timezone. Em outras palavras, se uma parada específica possui um valor parent_station, qualquer valor stop_timezone especificado para essa parada deve ser ignorado.

Mesmo que os valores de stop_timezone sejam fornecidos no arquivo stops.txt, os horários em stop_times.txt devem continuar a ser especificados como horários desde a meia-noie no fuso horário especificado por agency_timezone em agency.txt. Isso garante que os valores de tempo em uma viagem sempre aumentam durante uma viagem, independentemente dos fusos horários pelos quais uma viagem passa.

wheelchair_boarding Opcional

O campo wheelchair_boarding identifica se é possível o embarque de passageiros em cadeira de rodas na parada ou estação especificada. O campo pode ter os seguintes valores:

  • 0 (ou vazio) - indica que não há informações sobre acessibilidade para a parada
  • 1 - indica que, pelo menos, alguns veículos nesta parada possibilitam o embarque de passageiros em cadeira de rodas
  • 2 - o embarque de pessoas em cadeiras de roda não é possível nesta parada

Quando uma parada faz parte de um complexo de estações maiores, como indicado por uma para com um valor parent_station, o campo wheelchair_boarding da parada possui a seguinte semântica adicional:

  • 0 (ou vazio) - a parada herdará o valor para wheelchair_boarding da estação principal, se especificado lá
  • 1 - existem vias de acesso na parte externa da estação para a parada/plataforma específica
  • 2 - não há vias de acesso na parte externa da estação para a parada/plataforma específica

routes.txt

Arquivo: Obrigatório

Nome do campo Obrigatório Detalhes
route_id Obrigatório

O campo route_id contém um ID que identifica um trajeto com exclusividade. O route_id é um conjunto de dados exclusivo.

agency_id Opcional

O campo agency_id define uma agência para o trajeto especificado. Este valor é indicado no arquivo agency.txt. Use este campo quando estiver fornecendo dados para trajetos de mais de uma agência.

route_short_name Obrigatório

O route_short_name contém o nome abreviado de um trajeto. Geralmente, será um identificador pequeno e abstrato, como, por exemplo "32", "100X" ou "Verde", que os passageiros usam para identificar um trajeto, mas que não fornece nenhuma identificação de quais lugares são atendidos pelo trajeto. Se o trajeto não tem um nome abreviado, especifique um route_long_name e use uma sequência vazia como o valor deste campo.

route_long_name Obrigatório

O campo route_long_name contém o nome completo de um trajeto. Em geral, esse nome é mais descritivo que route_short_name e incluirá o destino ou a parada do trajeto Se o trajeto não tem um nome completo, especifique um route_short_name e use uma sequência vazia como o valor deste campo.

route_desc Opcional

O campo route_desc contém uma descrição de um trajeto. Forneça informações úteis e de qualidade. Não basta repetir o nome do trajeto. Por exemplo, "Um trem opera entre Inwood-207 St, Manhattan e Far Rockaway-Mott Avenue, Queens em todos os momentos. Além disso, das 6h até meia-noite, o trem adicional A opera entre Inwood-207 St e Lefferts Boulevard (normalmente, os trens se alternam entre Lefferts Blvd e Far Rockaway)."

route_type Obrigatório

O campo route_type descreve o tipo de transporte usado em um trajeto. Os valores válidos deste campo são:

  • 0 - Bonde, ônibus elétrico, veículo leve sobre trilhos. Qualquer veículo leve sobre trilhos ou sistema de transporte de superfície em uma área metropolitana.
  • 1 - Metrô, trem subterrâneo. Qualquer sistema de trem subterrâneo em uma área metropolitana.
  • 2 - Via férrea. Usada para viagens interurbanas ou de longa distância.
  • 3 - Ônibus. Usado para trajetos curtos e de longa distância.
  • 4 - Balsa. Usado para serviço de barco de curta e longa distâncias.
  • 5 - Teleférico. Usado para teleféricos de nível de rua em que os fios passam debaixo dos carros.
  • 6 - Gôndola, teleférico suspenso. Normalmente usado para teleféricos, onde o veículo é suspenso pelo. cabo.
  • 7 - Funicular. Qualquer sistema de trilho projetado para subir ladeiras.
route_url Opcional

O campo route_url contém o URL de uma página da Web sobre esse trajeto específico. Ele deve ser diferente de agency_url.

O valor deve ser um URL completo que inclui http:// o https://, e quaisquer caracteres especiais no URL devem ser ignorados corretamente. Consulte http://www.w3.org/Addressing/URL/4_URI_Recommentations.html para obter uma descrição de como criar valores de URLs completos.

route_color Opcional

Em sistemas em que cores são atribuídas a traje, o campo route_color define uma cor que corresponda ao trajeto. A cor deve ser informada como um número hexadecimal de seis caracteres, por exemplo, 00FFFF. Se nenhuma cor é especificada, a cor padrão de trajetos é branca (FFFFFF).

A diferença de cores entre route_color e route_text_color deve fornecer contraste suficiente quando visualizado em uma tela em preto e branco. O documento Técnicas W3C para avaliação de acessibilidade e ferramentas de reparo oferece um algoritmo útil para avaliar o contraste de cores. Há também ferramentas on-line úteis para escolher cores de contraste, incluindo o aplicativo snook.ca de verificação de contraste de cores.

route_text_color Opcional

O campo route_text_color pode ser usado para especificar uma cor legível para usar em desenho de texto contra um plano de fundo de route_color. A cor deve ser informada como um número hexadecimal de seis caracteres, por exemplo, FFD700. Se nenhuma cor é Se nenhuma cor for especificada, a cor padrão do texto será preto (000000).

A diferença de cores entre route_color e route_text_color deve fornecer contraste suficiente quando visualizado em uma tela em preto e branco.

trips.txt

Arquivo: Obrigatório

Nome do campo Obrigatório Detalhes
route_id Obrigatório

O campo route_id contém um ID que identifica um trajeto com exclusividade. Este valor é indicado no arquivo agency.txt.

service_id Obrigatório

O campo service_id contém um ID que identifica um conjunto de datas em que o serviço está disponível para um ou mais trajetos. Este valor é indicado no arquivo calendar.txt ou calendar_dates.txt.

trip_id Obrigatório

O campo trip_id contém um ID que identifica uma viagem. O trip_id é um conjunto de dados exclusivo.

trip_headsign Opcional

O campo trip_headsign contém o texto que aparece em uma sinalização que identifica o destino da viagem para os passageiros. Use este campo para distinguir diferentes padrões de serviço no mesmo trajeto. Se a placa muda durante uma viagem, você pode substituir o campo trip_headsign, especificando valores para o campo stop_headsign em stop_times.txt.

trip_short_name Opcional

O campo trip_short_name contém o texto que aparace em programações e placas de sinalização para identificar a viagem para os passageiros, por exemplo, para identificar números de trens para viagens de trens suburbanos. Se os passageiros não recorrem normalmente aos nomes da viagem, deixe este campo em branco.

Um valor de trip_short_name, se possível, deve identificar, com exclusividade, uma viagem em um dia de serviço; ele não deve ser usado para nomes de destino ou designações limitadas/expressas.

direction_id Opcional

O campo direction_id contém um valor binário que indica a direção de uma viagem. Use este campo para distinguir viagens bidirecionais com o mesmo route_id. Este campo não é. usado na criação de trajetos; ele fornece uma maneira de separar viagens por direção durante a publicação de tabelas de horário. Você pode especificar nomes para cada direção com o campo trip_headsign.

  • 0 - viagem em uma única direção (por exemplo, só ida)
  • 1 - viagem na direção oposta (por exemplo, de volta)

Por exemplo, você poderia usar os campos trip_headsign e direction_id juntos para atribuir um nome a uma viagem em cada direção "1234"; o arquivo trips.txt teria estas linhas para usar nas tabelas de horário:

trip_id, ... ,trip_headsign,direction_id
1234, ... , to Airport,0
1505, ... , to Downtown,1

block_id Opcional

O campo block_id identifica o quadro a que a viagem pertence. Um bloco consiste em duas ou mais viagens sequenciais feitas usando o mesmo veículo, em que um passageiro pode passar de uma viagem para a próxima permanecendo no veículo. O campo block_id deve ser indicado por duas ou mais viagens no arquivo trips.txt.

shape_id Opcional

O campo shape_id contém um ID que define a forma da viagem. Este valor é indicado no arquivo shapes.txt. O arquivo shapes.txt permite definir como será traçada uma linha no mapa para representar uma viagem.

wheelchair_accessible Opcional
  • 0 (ou vazio) - indica que não há informações sobre acessibilidade para a viagem
  • 1 - indica que o veículo que está sendo usado nesta viagem específica pode acomodar, pelo menos, um passageiro em cadeira de rodas
  • 2 - indica que não é possível acomodar passageiros em cadeiras de rodas nesta viagem

stop_times.txt

Arquivo: Obrigatório

Nome do campo Obrigatório Detalhes
trip_id Obrigatório

O campo trip_id contém um ID que identifica uma viagem. Este valor é indicado no arquivo trips.txt.

arrival_time Obrigatório

O campo arrival_time especifica o horário de chegada em uma parada específica de uma viagem específica de um trajeto. O horário é medido de "meio-dia menos 12h" (efetivamente meia-noite, exceto para dias do horário de verão), no início da data do serviço. No caso de horários que ocorram após a meia-noite na data do serviço, digite o horário como um valor maior que 24:00:00 em horário local HH:MM:SS para o dia em que começa a programação da viagem. Se você não tem horários separados para chegada e partida em uma parada, insira o mesmo valor para arrival_time e departure_time.

Você deve especificar os horários de chegada para a primeira e a última paradas de uma viagem. Se essa parada não for programada, use uma sequência vazia para os campos arrival_time e departure_time . As paradas sem horário de chegada são programadas conforme a parada programada anterior mais próxima. Para garantir trajetos precisos, forneça horários de chegada e de partida para todas as paradas programadas. Não intercale as paradas.

Os horários devem ter oito dígitos no formato HH:MM:SS (o formato H:MM:SS também é aceito, se a hora iniciar com 0). Não preencha os horários com espaços. As colunas a seguir listam os horários de parada para uma viagem e a maneira correta de expressar esses horários no campo arrival_time:

Horário Valor de arrival_time
08:10:00 A.M. 08:10:00 ou 8:10:00
01:05:00 P.M. 13:05:00
07:40:00 P.M. 19:40:00
01:55:00 A.M. 25:55:00

Observação: as viagens que abrangem várias datas terão horários de parada maiores que 24:00:00. Por exemplo, se uma viagem começa às 10:30:00 p.m e termina às 2:15:00 a.m. do dia seguinte, os horários de parada seriam 22:30:00 e 26:15:00. A inclusão desses horários de parada como 22:30:00 e 02:15:00 não produzem os resultados desejados.

departure_time Obrigatório

O campo departure_time especifica o horário de partida de uma parada específica para uma viagem específica de um trajeto. O horário é medido de "meio-dia menos 12h" (efetivamente meia-noite, exceto para dias do horário de verão), no início da data do serviço. No caso de horários que ocorram após a meia-noite na data do serviço, digite o horário como um valor maior que 24:00:00 em horário local HH:MM:SS para o dia em que começa a programação da viagem. Se você não têm horários diferentes para a chegada e a saída em uma parada, insira o mesmo valor para arrival_time e departure_time.

Você deve especificar os horários de partida da primeira e da última paradas em uma. viagem. Se essa parada não for programada, use uma sequência vazia para os campos arrival_time e departure_time . As paradas sem horário de chegada são programadas conforme a parada programada anterior mais próxima. Para garantir trajetos precisos, forneça horários de chegada e de partida para todas as paradas programadas. Não intercale as paradas.

Os horários devem ter oito dígitos no formato HH:MM:SS (o formato H:MM:SS também é aceito, se a hora iniciar com 0). Não preencha os horários com espaços. As colunas a seguir listam os horários de parada para uma viagem e a maneira correta de expressar esses horários no campo departure_time:

Horário Valor de departure_time
08:10:00 A.M. 08:10:00 ou 8:10:00
01:05:00 P.M. 13:05:00
07:40:00 P.M. 19:40:00
01:55:00 A.M. 25:55:00

Observação: as viagens que abrangem várias datas terão horários de parada maiores que 24:00:00. Por exemplo, se uma viagem começa às 10:30:00 p.m e termina às 2:15:00 a.m. do dia seguinte, os horários de parada seriam 22:30:00 e 26:15:00. A inclusão desses horários de parada como 22:30:00 e 02:15:00 não produzem os resultados desejados.

stop_id Obrigatório

O campo stop_id contém um ID que identifica uma parada com exclusividade. Diversos trajetos podem usar a mesma parada. O campo stop_id é indicado no arquivo stops.txt. Se location_type é usado no arquivo stops.txt, todas as paradas indicadas em stop_times.txt deverão ter location_type igual a 0.

Onde possível, os valores de stop_id devem permanecer consistentes entre as atualizações de feed. Em outras palavras, a parada A, com stop_id 1, deverá ter stop_id 1 em todas as paradas de dados subsequentes. Se uma parada não está programada, digite valores em branco para arrival_time e departure_time.

stop_sequence Obrigatório

O campo stop_sequence identifica a ordem das paradas de uma viagem específica. Os valores de stop_sequence devem ser números inteiros positivos e devem aumentar ao longo da viagem.

Por exemplo, a primeira parada da viagem teria uma stop_sequence de 1, a segunda parada da viagem teria uma stop_sequence de 23, e a terceira teria uma stop_sequence de 40 e assim por diante.

stop_headsign Opcional

O campo stop_headsign contém o texto que aparece em uma sinalização que identifica o destino da viagem para os passageiros. Use este campo para substituir o trip_headsign padrão quando as placas mudarem durante as viagens. Se esta placa está associada a uma viagem inteira, use trip_headsign no lugar.

pickup_type Opcional

O campo pickup_type indica se os passageiros são embarcados em uma parada como parte da programação normal ou se não há embarque disponível na parada. Este campo também permite que a agência de transporte público indique se os passageiros devem ligar para a agência ou notificar o motorista para agendar um embarque em uma parada específica. Os valores válidos deste campo são:

  • 0 - Embarque no horário normal
  • 1 - Sem embarque disponível
  • 2 - Deve ligar para a agência a fim de agendar o embarque
  • 3- Deve combinar com o motorista para agendar o embarque

O valor padrão deste campo é 0.

drop_off_type Opcional

O campo drop_off_type indica se há desembarque de passageiros em uma parada, como parte da programação normal ou se não há desembarques na parada. Este campo também permite que a agência de transporte público indique se os passageiros devem ligar para a agência ou notificar o motorista para agendar um desembarque em uma determinada parada. Os valores válidos deste campo são:

  • 0 - Desembarque no horário normal
  • 1 - Desembarque não disponível
  • 2 - Deve telefonar para agendar o desembarque
  • 3 - Deve combinar com o motorista para agendar o desembarque

O valor padrão deste campo é 0.

shape_dist_traveled Opcional

Quando usado no arquivo stop_times.txt, o campo shape_dist_traveled posiciona uma parada como uma distância a partir do primeiro ponto de forma. O campo shape_dist_traveled representa uma distância real percorrida ao longo do trajeto em unidades como, por exemplo, pés ou quilômetros. Por exemplo, se um ônibus percorre uma distância de 5,25 quilômetros entre o início da forma até a parada, shape_dist_traveled para o ID da parada deve ser inserido como "5.25". Essas informações permitem que o planejador da viagem determinem o quanto da forma deve ser desenhado ao exibir parte de uma viagem no mapa. Os valores usados para shape_dist_traveled devem aumentar juntamente com stop_sequence: eles não podem ser usados para mostrar uma viagem inversa em um trajeto.

As unidades usadas para shape_dist_traveled no arquivo stop_times.txt devem corresponder às unidades usadas para este campo no arquivo shapes.txt.

calendar.txt

Arquivo: Obrigatório

Nome do campo Obrigatório Detalhes
service_id Obrigatório

O campo service_id contém um ID que identifica um conjunto de datas em que o serviço está disponível para um ou mais trajetos. Cada valor de service_id pode aparecer, no máximo, uma vez em um arquivo calendar.txt. Este valor é um conjunto de dados exclusivo. Ele é indicado pelo arquivo trips.txt.

monday Obrigatório

O campo monday contém um valor binário que indica se o serviço é válido para todas as segundas-feiras.

  • O valor 1 indica que o serviço está disponível todas as segundas-feiras durante o período. O período é especificado utilizando-se os campos start_date e end_date.
  • O valor 0 indica que o serviço não está disponível às segundas-feiras no período.

Observação: você pode listar exceções para datas específicas, como, por exemplo, feriados, no arquivo calendar_dates.txt.

tuesday Obrigatório

O campo tuesday contém um valor binário que indica se o serviço é válido para todas as terças-feiras.

  • O valor 1 indica que o serviço está disponível todas as terças-feiras durante o período. O período é especificado utilizando-se os campos start_date e end_date.
  • O valor 0 indica que o serviço não está disponível às terças-feiras no período.

Observação: você pode listar exceções para datas específicas, como, por exemplo, feriados, no arquivo calendar_dates.txt.

wednesday Obrigatório

O campo wednesday contém um valor binário que indica se o serviço é válido para todas as quartas-feiras.

  • O valor 1 indica que o serviço está disponível todas as quartas-feiras durante o período. O período é especificado utilizando-se os campos start_date e end_date.
  • O valor 0 indica que o serviço não está disponível às quartas-feiras no período.

Observação: você pode listar exceções para datas específicas, como, por exemplo, feriados, no arquivo calendar_dates.txt.

thursday Obrigatório

O campo thursday contém um valor binário que indica se o serviço é válido para todas as quintas-feiras.

  • O valor 1 indica que o serviço está disponível todas as quintas-feiras durante o período. O período é especificado utilizando-se os campos start_date e end_date.
  • O valor 0 indica que o serviço não está disponível às quintas-feiras no período.

Observação: você pode listar exceções para datas específicas, como, por exemplo, feriados, no arquivo calendar_dates.txt.

friday Obrigatório

O campo friday contém um valor binário que indica se o serviço é válido para todas as sextas-feiras.

  • O valor 1 indica que o serviço está disponível todas as sextas-feiras durante o período. O período é especificado utilizando-se os campos start_date e end_date.
  • O valor 0 indica que o serviço não está disponível às sextas-feiras no período.

Observação: você pode listar exceções para datas específicas, como, por exemplo, feriados, no arquivo calendar_dates.txt.

saturday Obrigatório

O campo saturday contém um valor binário que indica se o serviço é válido para todas os sábados

  • O valor 1 indica que o serviço está disponível todos os sábados durante o período. O período é especificado utilizando-se os campos start_date e end_date.
  • O valor 0 indica que o serviço não está disponível aos sábados no período.

Observação: você pode listar exceções para datas específicas, como, por exemplo, feriados, no arquivo calendar_dates.txt.

sunday Obrigatório

O campo sunday contém um valor binário que indica se o serviço é válido para todos os domingos.

  • O valor 1 indica que o serviço está disponível todos os domingos durante o período. O período é especificado utilizando-se os campos start_date e end_date.
  • O valor 0 indica que o serviço não está disponível aos sábados no período.

Observação: você pode listar exceções para datas específicas, como, por exemplo, feriados, no arquivo calendar_dates.txt.

start_date Obrigatório

O campo start_date contém a data de início do serviço.

O valor do campo start_date deve estar no formato YYYYMMDD.

end_date Obrigatório

O campo end_date contém a data final do serviço. Essa data está incluída no intervalo do serviço.

O valor do campo end_date deve estar no formato AAAAMMDD.

calendar_dates.txt

Arquivo: Opcional

A tabela calendar_dates permite ativar ou desativar explicitamente os IDs de serviço por data. Você pode usá-la de duas maneiras.

  • Recomendada: use calendar_dates.txt junto com calendar.txt, em que calendar_dates.txt define quaisquer exceções às categorias padrão de serviço definidas no arquivo calendar.txt. Se seu serviço é, em geral, regular, com poucos alterações nas datas explícitas (por exemplo, para acomodar serviços de eventos especiais ou a programação de uma escola), esta é uma boa abordagem.
  • Alternativa: omita o calendar.txt e inclua TODAS as datas do serviço em calendar_dates.txt. Se sua programação varia na maior parte dos dias do mês ou se você deseja gerar datas de serviço de forma programática sem especificar uma programação semanal normal, esta abordagem pode ser uma melhor opção.
Nome do campo Obrigatório Detalhes
service_id Obrigatório

O campo service_id contém um ID que identifica identifica um conjunto de datas em que uma exceção ao serviço está disponível para um ou mais trajetos. Cada par (service_id, date) pode aparecer somente uma vez em calendar_dates.txt. Se um valor de service_id aparace nos arquivos calendar.txt e calendar_dates.txt, as informações contidas em calendar_dates.txt modifica as informações de serviço especificadas em calendar.txt. Este campo é indicado pelo arquivo trips.txt.

date Obrigatório

O campo date especifica uma data específica em que a disponibilidade do serviço é diferente do normal. Você pode usar o campo exception_type para indicar se o serviço está disponível na data especificada.

O valor do campo date deve estar no formato AAAAMMDD.

exception_type Obrigatório

O campo exception_type indica se o serviço está disponível na data especificada no arquivo date.

  • O valor 1 indica que o serviço foi adicionado para a data especificada.
  • O valor 2 indica que o serviço foi removido para a data especificada.

Por exemplo, suponha que um trajeto tenha um conjunto de viagens disponíveis em feriados e outro conjunto de viagens disponíveis em todos os outros dias. Você poderia ter um service_id correspondendo à programação de serviços regulares e outro service_id correspondendo à programação em feriados. Para um feriado específico, você usaria o arquivo calendar_dates.txt para adicionar o feriado ao service_id de feriados e para remover o feriado da programação service_id regular.

fare_attributes.txt

Arquivo: Opcional

Nome do campo Obrigatório Detalhes
fare_id Obrigatório

O campo fare_id contém um ID que identifica uma classe de tarifas com exclusividade. O fare_id é um conjunto de dados exclusivo.

price Obrigatório

O campo price contém o preço da tarifa, na unidade especificada por currency_type.

currency_type Obrigatório

O campo currency_type define a moeda usada para pagar a tarifa. Use os códigos de moeda em ordem alfabética ISO 4217 que podem ser encontrados no seguinte URL: http://en.wikipedia.org/wiki/ISO_4217.

payment_method Obrigatório

O campo payment_method indica quando a tarifa deve ser paga. Os valores válidos deste campo são:

  • 0 - A tarifa é paga a bordo.
  • 1 - A tarifa deve ser paga antes do embarque.
transfers Obrigatório

O campo transfers especifica o número de baldeações permitidas nesta tarifa. Os valores válidos deste campo são:

  • 0 - Não são permitidas baldeações nesta tarifa.
  • 1 - Os passageiros só podem fazer uma baldeação.
  • 2 - Os passageiros podem fazer duas baldeações.
  • (empty) - Se o campo estiver vazio, não há limites para o número de baldeações.
transfer_duration Opcional

O campo transfer_duration especifica a duração, em segundos, antes da expiração da baldeação.

Quando usado com um valor 0 para transfers, o campo transfer_duration indica por quanto tempo uma passagem é válida para uma tarifa quando as baldeações não são permitidas. A menos que você pretenda usar este campo para indicar a validade da passagem, transfer_duration deve ser omitido ou deve ficar em branco, quando transfers é definido como 0.

fare_rules.txt

Arquivo: Opcional

A tabela fare_rules permite especificar a forma como as tarifas no arquivo fare_attributes.txt são aplicadas em um itinerário. A maioria das estruturas de tarifas usa uma combinação das seguintes regras:

  • A tarifa depende das estações de origem e destino.
  • A tarifa depende das zonas por onde passa o itinerário.
  • A tarifa depende do trajeto usado pelo itinerário.

Para ver exemplos que demonstram como especificar uma estrutura tarifária com fare_rules.txt e fare_attributes.txt, consulte FareExamples no wiki do projeto de código aberto GoogleTransitDataFeed.

Nome do campo Obrigatório Detalhes
fare_id Obrigatório

O campo fare_id contém um ID que identifica uma classe de tarifas com exclusividade. Este valor é indicado no arquivo fare_attributes.txt.

route_id Opcional

O campo route_id associa o ID da tarifa a um trajeto. Os IDs de trajetos são indicados no arquivo routes.txt. Se você tem diversos trajetos com os mesmos atributos de tarifa, crie uma linha no arquivo fare_rules.txt para cada trajeto.

Por exemplo, se a classe de tarifas "b" é válida no trajeto "TSW" e "TSE", o arquivo fare_rules.txt terá estas linhas para a classe de tarifas:

b,TSW
b,TSE

origin_id Opcional

O campo origin_id associa o ID da tarifa a um ID de zona de origens. Os IDs de zona são indicados no arquivo stops.txt. Se você tem vários IDs de origem com os mesmos atributos, crie uma linha no arquivo fare_rules.txt para cada ID de origem.

Por exemplo, se a classe de tarifas "b" é válida para todas a viagens com origem na zona "2" ou zona "8", o arquivo fare_rules.txt deve conter estas linhas para a classe de tarifas:

b, , 2
b, , 8

destination_id Opcional

O campo destination_id associa o ID da tarifa a um ID de zona de destino. IDs de zona são indicados no arquivo stops.txt. Se você tem vários IDs de destino com os mesmos atributos de tarifa, cria uma linha no arquivo fare_rules.txt para cada ID de destino.

Por exemplo, você pode usar os campos origin_ID e destination_ID juntos para especificar que a classe de tarifas "b" é válida para viagens entre as zonas 3 e 4; para viagens entre as zonas 3 e 5, o arquivo fare_rules.txt deve conter estas linhas para a classe de tarifas:

b, , 3,4
b, , 3,5

contains_id Opcional

O campo contains_id associa o ID da tarifa a um ID de zona ID, indicado no arquivo stops.txt. O ID da tarifa é, então, associado a itinerários que transmitem cada zona de contains_id.

Por exemplo, se a classe de tarifas "c" está associada a todas as viagens do trajeto GRT que passam pelas zonas 5, 6 7, o arquivo fare_rules.txt deve conter estas linhas:

c,GRT,,,5
c,GRT,,,6
c,GRT,,,7

Como todas as zonas contains_id devem estar associadas à tarifa a ser aplicada, um itinerário que passa pelas zonas 5 e 6, mas não passa pela zona 7, não deve ter a classe de tarifas "c". Para obter mais detalhes, consulte FareExamples no wiki do projeto GoogleTransitDataFeed.

shapes.txt

Arquivo: Opcional

Nome do campo Obrigatório Detalhes
shape_id Obrigatório

O campo route_id contém um ID que identifica uma forma com exclusividade.

shape_pt_lat Obrigatório

O campo shape_pt_lat associa a latitude de um ponto de forma ao ID de uma forma. O valor do campo deve ser uma latitude WGS 84 válida. Cada linha do arquivo shapes.txt representa um ponto de forma em sua definição de formas;

Por exemplo, se a forma "A_shp" possui três pontos em sua definição, o arquivo shapes.txt deve conter estas linhas para definir a forma:

A_shp,37.61956,-122.48161,0
A_shp,37.64430,-122.41070,6
A_shp,37.65863,-122.30839,11

shape_pt_lon Obrigatório

O campo shape_pt_lon associa a longitude de um ponto de forma ao ID de uma forma. O valor do campo deve ser uma longitude WGS 84 de valor de -180 a 180. Cada linha do arquivo shapes.txt representa um ponto de forma em sua definição de formas.

Por exemplo, se a forma "A_shp" possui três pontos em sua definição, o arquivo shapes.txt deve conter estas linhas para definir a forma:

A_shp,37.61956,-122.48161,0
A_shp,37.64430,-122.41070,6
A_shp,37.65863,-122.30839,11

shape_pt_sequence Obrigatório

O campo shape_pt_sequence associa a latitude e a longitude de uma forma de um ponto de formas com sua ordem sequencial juntamente com a forma. Os valores de shape_pt_sequence devem ser números inteiros positivos e devem aumentar com a viagem.

Por exemplo, se a forma "A_shp" possui três pontos em sua definição, o arquivo shapes.txt deve conter estas linhas para definir a forma:

A_shp,37.61956,-122.48161,0
A_shp,37.64430,-122.41070,6
A_shp,37.65863,-122.30839,11

shape_dist_traveled Opcional

Quando usado no arquivo shapes.txt, o campo shape_dist_traveled posiciona um ponto de forma como uma distância percorrida juntamente com uma forma a partir do primeiro ponto de forma. O campo shape_dist_traveled representa uma distância real percorrida ao longo do trajeto em unidades como, por exemplo, pés ou quilômetros. Esta informação permite que o planejador de viagens determine o quanto da forma deve ser desenhado ao mostrar parte de uma viagem no mapa. Os valores usados para shape_dist_traveled devem aumentar juntamente com shape_pt_sequence: eles não podem ser usados para mostrar viagem inversa em um trajeto.

As unidades usadas para shape_dist_traveled no arquivo shapes.txt devem corresponder às unidades usadas para este campo no arquivo stop_times.txt.

Por exemplo, se um ônibus percorre os três pontos definidos acima para A_shp, os valores adicionais de shape_dist_traveled (mostrados aqui em quilômetros) seriam estes:

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

Arquivo: Opcional

Esta tabela tem o objetivo de representar horários que não tenham uma lista fixa de horários de parada. Quando as viagens são definidas no frequencies.txt, o planejador de viagens ignora os valores absolutos dos campos arrival_time e departure_time para essas viagens em stop_times.txt. Em vez disso, a tabela stop_times define a sequência de paradas e a diferença de horário entre cada parada.

Nome do campo Obrigatório Detalhes
trip_id Obrigatório

O campo trip_id contém um ID que identifica uma viagem à qual a frequência especificada de serviço se aplica. Os IDs de viagem são indicados no arquivo trips.txt.

start_time Obrigatório

O campo start_time especifica o horário em que o serviço começa com a freqüência especificada. O horário é medido de "meio-dia menos 12h" (efetivamente meia-noite, exceto para dias do horário de verão), no início da data do serviço. Para horários após a meia-noite, insira-os como um valor maior que 24:00:00 no horário local HH:MM:SS para o dia em que a programação das viagens começa. Por exemplo, 25:35:00.

end_time Obrigatório

O campo end_time especifica o horário em que o serviço muda para uma frequência diferente (ou é interrompido), na primeira parada da viagem. O horário é medido de "meio-dia menos 12h" (efetivamente meia-noite, exceto para dias do horário de verão), no início da data do serviço. Para horários após a meia-noite, insira-os como um valor maior que 24:00:00 no horário local HH:MM:SS para o dia em que a programação das viagens começa. Por exemplo, 25:35:00.

headway_secs Obrigatório

O campo headway_secs indica o horário entre as saídas da mesma parada (intervalo entre as viagens) deste tipo de viagem, durante o intervalo de tempo especificado por start_time e end_time. O valor do intervalo de tempo entre duas viagens deve ser inserido em segundos.

Períodos em que intervalos entre as viagens são definidos (as linhas no arquivo frequencies.txt) não devem ser sobrepostos para a mesma viagem, uma vez que é difícil determinar o que deve ser inferido de dois intervalos de viagem sobrepostos. No entanto, um período de intervalo entre viagens pode começar exatamente no mesmo horário em que outro termina, por exemplo:

A, 05:00:00, 07:00:00, 600
B, 07:00:00, 12:00:00, 1200

exact_times Opcional

O campo exact_times determina se viagens baseadas em frequência devem ser programadas com exatidão com base nas informações especificadas dos intervalos entre as viagens. Os valores válidos deste campo são:

  • 0 ou (vazio) - Viagens baseadas em frequência não são programadas com exatidão. Este é o comportamento padrão.
  • 1 - Viagens baseadas em frequência são programadas com exatidão. Para uma linha no frequencies.txt, as viagens são programadas com início com trip_start_time = start_time + x * headway_secs para todas x em (0, 1, 2, ...), em que trip_start_time < end_time.

O valor de exact_times deve ser o mesmo para todas as linhas de frequencies.txt com o mesmo trip_id. Se exact_times for igual a 1, e uma linha de frequencies.txt tiver um start_time igual a end_time, nenhuma viagem deverá ser programada. Quando exact_times é 1, deve-se escolher um valor end_time que seja maior que o último horário de início da viagem programada, mas menor que o último horário de início da viagem desejada + headway_secs.

transfers.txt

Arquivo: Opcional

Os planejadores da viagem normalmente calculam os pontos de baldeação com base na proximidade relativa das paradas em cada trajeto. Em caso de pares de paradas potencialmente ambíguas ou baldeações em que você deseja especificar uma opção em particular, use o arquivo transfers.txt para definir regras adicionais para criar conexões ente os trajetos.

Nome do campo Obrigatório Detalhes
from_stop_id Obrigatório

O campo from_stop_id contém um ID que identifica uma parada ou uma estação onde começa uma conexão entre trajetos. Os IDs de paradas são indicados no arquivo stops.txt. Se a ID de parada se refere a uma estação que contém várias paradas, essa regra de baldeação se aplica a todas as paradas nesta estação.

to_stop_id Obrigatório

O campo to_stop_id contém um ID que identifica uma parada ou uma estação onde termina uma conexão entre trajetos. Os IDs de paradas são indicados no arquivo stops.txt. Se a ID de parada se refere a uma estação que contém várias paradas, essa regra de baldeação se aplica a todas as paradas nesta estação.

transfer_type Obrigatório

O campo transfer_type especifica o tipo de conexão para o par (from_stop_id, to_stop_id) especificado. Os valores válidos deste campo são:

  • 0 ou (vazio) - Este é um ponto de baldeação recomendado entre dois trajetos.
  • 1 - Este é um ponto de baldeação programado entre dois trajetos. Espera-se que o veículo de partida aguarde o veículo de chegada, com tempo suficiente para um passageiro fazer a baldeação entre os trajetos.
  • 2 - Essa baldeação exige um tempo mínimo entre a chegada e a partida para garantir uma conexão. O tempo necessário para a baldeação é especificado por min_transfer_time.
  • 3 - Não é possível fazer baldeações entre trajetos neste local.
min_transfer_time Opcional

Quando uma conexão entre trajetos exige um tempo entre a chegada e a partida (transfer_type=2), o campo min_transfer_time define o período de tempo que deve estar disponível em um itinerário para permitir uma baldeação entre trajetos nestas paradas. O min_transfer_time deve ser suficiente para que um passageiro típico se desloque entre as duas paradas, incluindo um tempo extra para variação na programação em cada trajeto.

O valor de min_transfer_time deve ser inserido em segundos e deve ser um número inteiro positivo.

feed_info.txt

Arquivo: Opcional

O arquivo contém informações sobre o feed, em vez de sobre os serviços que o feed descreve. Atualmente, a GTFS possui um arquivo agency.txt para fornecer informações sobre as agências que operam os serviços descritos pelo feed. No entanto, o editor do feed pode ser uma entidade diferente de qualquer uma das agências (em caso de agregadores regionais). Além disso, há campos que são, de fato, definidos pelos feeds em vez de pela agência.

Nome do campo Obrigatório Detalhes
feed_publisher_name Obrigatório

O campo feed_publisher_name contém o nome completo da organização que publica o feed. Pode ser o mesmo que aquele definido pelos valores de agency_name no arquivo agency.txt. Aplicativos que utilizam GTFS podem exibir este nome ao concederem atribuições relacionadas aos dados de um feed específico.

feed_publisher_url Obrigatório

O campo feed_publisher_url contém o URL do website da organização que está publicando o feed. Pode ser o mesmo que um dos valores de agency_url no arquivo agency.txt. O valor deve ser um URL completo que inclui http:// o https://, e quaisquer caracteres especiais no URL devem ser ignorados corretamente. Consulte http://www.w3.org/Addressing/URL/4_URI_Recommentations.html para obter uma descrição de como criar valores de URLs completos.

feed_lang Obrigatório

O campo feed_lang contém um código de idiomas IETF BCP 47 que especifica o idioma padrão usado para o texto neste feed. Esta configuração ajuda os consumidores de GTFS a escolherem regras para o uso de letras maiúsculas e minúsculas e outras configurações específicas do idioma para o feed. Para obter uma apresentação ao IETF BCP 47, consulte http://www.rfc-editor.org/rfc/bcp/bcp47.txt e http://www.w3.org/International/articles/language-tags/.

feed_start_date

feed_end_date

Opcional

O feed fornece informações completas e confiáveis sobre a programação de um serviço, no período entre o início do dia feed_start_date e o final do dia feed_end_date. As datas nos dois dias estão no formato AAAAMMDD, assim como no arquivo calendar.txt, ou são deixadas em branco se não estiverem disponíveis. A data feed_end_date não deve preceder a data feed_start_date, se ambas forem fornecidas. Os provedores de feeds são encorajados a oferecerem dados de programação fora desse período a fim de informarem sobre possíveis serviços no futuro, mas os consumidores de feed devem estar conscientes de seu status não autorizado. Se feed_start_date ou feed_end_date se estendem além das datas do calendário ativo definidas nos arquivos calendar.txt e calendar_dates.txt, o feed se torna uma afirmação explícita de que não há serviços para as datas entre feed_start_date ou feed_end_date que não estão incluídas nas datas do calendário ativo.

feed_version Opcional

O editor de feeds pode especificar uma sequència aqui que indique a versão atual do feed GTFS. Os aplicativos que utilizam GTFS podem exibir este valor para ajudar os editores de feed a determinar se foi incorporada a versão mais recente do feed.