GTFS ScheduleRegras de Validação
Sentido da viagem alinhado com a direcção do padrão no feed
direction_id_matches_feed_pattern_direction
Campos que serão validados nesta regra
| Nome do Campo | Tipo | Presença | Descrição |
|---|---|---|---|
direction_id | Enum | Opcional | Indica o sentido da viagem. Este campo não deve ser utilizado no encaminhamento; fornece uma forma de separar as viagens por sentido ao publicar tabelas de horários. Opções válidas: 0 - Viagem num sentido (por exemplo, viagem de ida).1 - Viagem no sentido oposto (por exemplo, viagem de regresso). Exemplo: Os campos trip_headsign e direction_id podem ser utilizados em conjunto para atribuir um nome à viagem em cada sentido para um conjunto de viagens. Um ficheiro trips.txt poderia conter estes registos para utilização em tabelas de horários: trip_id,...,trip_headsign,direction_id 1234,...,Airport,0 1505,...,Downtown,1 |
pattern_id | ID | Obrigatório | Indica a variante de serviço em que a viagem opera na linha. Não faz parte do GTFS standart, mas é obrigatório para nós TML. |
O que esta validação faz (agrupado por pattern_id)
No ficheiro trips.txt, a regra por linha em trips.txt o direction_id da viagem tem de coincidir com o segmento de direção codificado no pattern_id, no formato esperado pelo perfil do feed (route_direção_variante em três partes separadas por _).
Convenção: o pattern_id deve ter exatamente três segmentos ao fazer split por _ (ex.: 1001_0_1 → rota 1001, direção 0, variante 1). O segundo segmento é interpretado como inteiro e só é aceite se for 0 ou 1; esse valor tem de ser igual ao direction_id da mesma linha.
Passa
- Se
pattern_idtem três partes, o segundo segmento é um inteiro 0 ou 1, edirection_idda viagem é exatamente esse valor. Porquê: a direção declarada na viagem está alinhada com a direção embutida no identificador do padrão.
Falha
direction_pattern_id_match.required-pattern_idoudirection_idem falta. Porquê: sem os dois campos não dá para verificar a correspondência.direction_pattern_id_match.invalid_pattern_id- opattern_idnão se divide em três partes por_. Porquê: o formato não segue o esquemaX_Y_Zesperado para extrair a direção.direction_pattern_id_match.invalid_direction_id- o segundo segmento não é um inteiro válido ou está fora do intervalo 0–1. Porquê: só0e1são direções válidas nesta convenção.direction_pattern_id_match.not_matching- odirection_idda viagem diferente do número obtido dopattern_id. Porquê: a viagem diz uma direção e opattern_idcodifica outra.
Nota
- Isto não valida o formato completo do
pattern_id(ex. comprimento do primeiro segmento); outras regras podem tratar disso. Aqui só importa três partes, segundo segmento 0 ou 1, e igualdade comdirection_id.