Introdução
Descobre o que é um GTFS e o que podes fazer com ele.
Resumo
GTFS significa General Transit Feed Specification. É um standard internacional que define como aplicações de planeamento (ex. Google Maps, Transit, CityMapper) devem interpretar redes de transportes públicos, como horários e percursos. A especificação foi criada pelo Google, mas é agora mantida e orientada pela equipa da Mobility Data, de forma aberta e partilhada.
O standard define dois grupos: o GTFS Schedule, onde estão mapeadas todas as paragens, percursos e horários planeados de uma determinada agência; e o GTFS Real Time, que funciona como uma camada em cima do GTFS Schedule para ajustar as informações à realidade do momento (ex. horários mudam pois houve um acidente na ponte).
O GTFS Schedule não é mais do que uma série de tabelas (ex. ficheiros Excel) agrupados num arquivo .zip. Cada uma destas tabelas é um ficheiro separado em formato .csv (comma-separated values). Cada ficheiro tem um nome específico e um conjunto obrigatório de colunas, formando uma estrutura relacional.
O GTFS Real Time é um pouco mais complexo pois utiliza o formato Protobuf, o que exige necessariamente aplicações adicionais ou scripts de descodificação. Não deixa de ser apenas um "ficheiro" que contém alterações ou informações adicionais ao que estava descrito no GTFS planeado.
Quem produz o GTFS são as agências de transporte público, e quase todas têm pelo menos a versão planeada.
GTFS versão 30
A TML utiliza o GTFS como formato standard para comunicar a sua operação de transportes públicos. A versão 30 define uma estrutura comum para os diferentes operadores, utilizando os campos previstos no GTFS Standard.
A informação necessária aos sistemas TML e à APEX é obtida através da leitura dos campos existentes no GTFS, não sendo necessário acrescentar campos específicos da APEX ao ficheiro fornecido pelos operadores.
Para a identificação da linha, o campo route_short_name passa a ser obrigatório no GTFS versão 30. O seu valor é utilizado diretamente como LineLongID na APEX. Desta forma, deixa de ser necessário utilizar um campo adicional line_id para representar a linha.
Para a identificação do percurso, o campo pattern_id é eliminado. O shape_id passa a ser utilizado como identificador do percurso e é mapeado diretamente para PatternLongID na APEX. O mesmo shape_id deve ser utilizado de forma consistente em trips.txt e shapes.txt, garantindo a correspondência entre as viagens e a geometria do percurso.
Recomenda-se que o shape_id seja definido através da combinação do route_id com o direction_id:
shape_id = route_id + direction_id
Desta forma, a versão 30 mantém uma estrutura comum baseada no GTFS Standard, sem necessidade de campos adicionais como line_id ou pattern_id. A informação necessária à APEX é obtida através dos campos standard e das regras de utilização definidas para o GTFS versão 30.
Ferramentas úteis
Uma breve coleção de ferramentas que utilizamos diariamente para validar e inspecionar dados em GTFS:
Validador Oficial do GTFS
Esta ferramenta verifica se um arquivo GTFS segue todas as práticas obrigatórias e recomendadas.
NAP France
Esta ferramenta valida um arquivo GTFS de forma semelhante ao validador oficial, mas apresenta os erros num mapa, facilitando a identificação visual e a compreensão dos problemas.
Vyčius GTFS-RT Inspector
Esta ferramenta serve para inspecionar feeds GTFS Real Time, como alertas de serviço ou posições de veículos.