Ordem cronológica das paragens

Verifica se as horas não recuam entre paragens consecutivas da mesma viagem.

Propriedades da regra

PropriedadeValor
Rule IDstop_times_arrival_departure_time_non_decreasing_by_stop_sequence
Ficheirostop_times.txt
Camposarrival_time, departure_time, stop_sequence
TipoHora
SeveridadeCondicional

Descrição dos campos:

  • arrival_time: hora de chegada à paragem.
  • departure_time: hora de partida da paragem.
  • stop_sequence: ordem em que as paragens são servidas na viagem.

Mais informação em stop_times.txt.

Como funciona

Dentro de cada trip_id, a primeira hora da paragem atual não pode ser anterior à última hora da paragem precedente. A regra ignora pares sem horas utilizáveis. Não verifica a ordem entre chegada e partida na mesma linha.

A regra avalia cada grupo de linhas com o mesmo trip_id, seguindo os passos abaixo por ordem, até um deles dar o resultado.

#PerguntaSe simSe não
1Existem pelo menos duas linhas na viagem?Segue para o passo 2✅ Passa
2As linhas estão ordenadas por stop_sequence?Segue para o passo 3Ordena-as; em caso de empate, conserva a ordem do ficheiro
3A configuração desativa a regra para o par?✅ Aceita o parSegue para o passo 4
4A linha anterior tem departure_time, ou em alternativa arrival_time, utilizável?Segue para o passo 5✅ Ignora o par
5A linha atual tem arrival_time, ou em alternativa departure_time, utilizável?Segue para o passo 6✅ Ignora o par
6A primeira hora atual é anterior à última hora precedente?❌ Reporta o problema na linha atual✅ Passa

As horas são convertidas em segundos a partir das três partes numéricas. A implementação não limita os valores das horas, minutos ou segundos.

Como se relacionam

Para a linha precedente, departure_time tem prioridade sobre arrival_time. Para a linha atual, arrival_time tem prioridade sobre departure_time. stop_sequence determina quais linhas são consecutivas.

Exemplos

Última hora precedentePrimeira hora atualResultadoPorquê
08:00:0008:05:00✅ PassaO tempo avança
08:05:0008:05:00✅ PassaValores iguais são aceites
08:10:0008:05:00❌ ProblemaO tempo recua
Vazio08:05:00✅ PassaO par é ignorado

Como corrigir

ProblemaCausa provávelO que fazer
Hora decrescenteA primeira hora da linha atual é anterior à última hora da linha precedenteCorrigir arrival_time, departure_time ou stop_sequence nas linhas da viagem em stop_times.txt

On this page