Sequência de paragens da viagem
Verifica a ordem de `stop_sequence`, a progressão de `shape_dist_traveled` e paragens consecutivas repetidas.
Propriedades da regra
| Propriedade | Valor |
|---|---|
| Rule ID | trips_stop_sequence_increasing_by_one_along_trip |
| Ficheiros | trips.txt, stop_times.txt |
| Campos | stop_sequence, shape_dist_traveled, stop_id |
| Tipo | Número inteiro não negativo, Número decimal, Identificador |
| Severidade | Obrigatório |
Descrição dos campos:
stop_sequence: define a ordem das paragens ou localizações na viagem.shape_dist_traveled: indica a distância acumulada ao longo da forma.stop_id: identifica a paragem servida em cada posição.
Mais informação em trips.txt e stop_times.txt.
Como funciona
As posições têm de ser números inteiros estritamente crescentes. As distâncias preenchidas não podem diminuir e duas posições seguidas não podem usar o mesmo stop_id. Apesar do nome da regra, os valores não têm de crescer de um em um.
A regra avalia cada grupo de linhas de stop_times.txt com o mesmo trip_id, seguindo os passos abaixo por ordem, até um deles dar o resultado.
| # | Pergunta | Se sim | Se não |
|---|---|---|---|
| 1 | A configuração da regra desativa a validação? | ✅ Passa | Segue para o passo 2 |
| 2 | A viagem tem trip_id? | Segue para o passo 3 | ✅ Passa; a ausência é tratada por outra regra |
| 3 | Existem linhas de stop_times.txt para a viagem? | Segue para o passo 4 | ✅ Passa |
| 4 | Todos os valores de stop_sequence são números inteiros? | Segue para o passo 5 | ❌ Reporta o problema: sequência inválida |
| 5 | Todos os valores preenchidos de shape_dist_traveled são números? | Segue para o passo 6 | ❌ Reporta o problema: distância inválida |
| 6 | Após remover linhas exatamente repetidas e ordenar, stop_sequence cresce estritamente? | Segue para o passo 7 | ❌ Reporta o problema: sequência não crescente |
| 7 | Entre duas linhas com distância preenchida, shape_dist_traveled não diminui? | Segue para o passo 8 | ❌ Reporta o problema: distância decrescente |
| 8 | Duas posições consecutivas usam o mesmo stop_id não vazio? | ❌ Reporta o problema: paragem consecutiva repetida | ✅ Passa |
Como se relacionam
trip_id liga a viagem de trips.txt às linhas de stop_times.txt. A ordem resulta de stop_sequence; nessa ordem, a regra compara a distância e os identificadores das paragens.
Exemplos
stop_sequence | shape_dist_traveled | stop_id | Resultado | Porquê |
|---|---|---|---|---|
1, 23, 40 | 0, 5, 10 | A, B, C | ✅ Passa | Ordem e distância crescentes |
1, X, 3 | 0, 5, 10 | A, B, C | ❌ Problema | Sequência não numérica |
1, 2, 2 | 0, 5, 10 | A, B, C | ❌ Problema | Sequência repetida |
1, 2, 3 | 0, 10, 5 | A, B, C | ❌ Problema | Distância diminui |
1, 2, 3 | 0, 5, 10 | A, B, B | ❌ Problema | Paragem consecutiva repetida |
Como corrigir
| Problema | Causa provável | O que fazer |
|---|---|---|
| Sequência inválida | stop_sequence não é um número inteiro | Corrigir stop_sequence nas linhas da viagem em stop_times.txt |
| Distância inválida | shape_dist_traveled não é um número | Corrigir shape_dist_traveled nas linhas da viagem em stop_times.txt |
| Sequência não crescente | Um valor de stop_sequence é igual ou inferior ao anterior | Reordenar ou corrigir stop_sequence em stop_times.txt |
| Distância decrescente | shape_dist_traveled diminui ao longo da sequência | Corrigir shape_dist_traveled em stop_times.txt |
| Paragem consecutiva repetida | Duas posições seguidas usam o mesmo stop_id | Corrigir ou remover uma das linhas consecutivas de stop_times.txt |