Forma consistente por linha e sentido
Verifica se cada combinação de `route_id` e `direction_id` usa um único `shape_id`.
Propriedades da regra
| Propriedade | Valor |
|---|---|
| Rule ID | trips_shape_id_consistent_per_route_direction |
| Ficheiro | trips.txt |
| Campos | route_id, direction_id, shape_id |
| Tipo | Identificador, Enumeração, Identificador |
| Severidade | Condicional |
Descrição dos campos:
route_id: identifica a linha que agrupa as viagens.direction_id: identifica o sentido0ou1.shape_id: identifica a forma geográfica da viagem.
Mais informação em trips.txt.
Como funciona
Dentro de uma linha, cada sentido válido pode usar apenas uma forma. Valores vazios de shape_id são ignorados. Sentidos vazios ou diferentes de 0 e 1 não entram na comparação por sentido. A regra não valida os valores individualmente.
A regra avalia cada grupo de viagens com o mesmo route_id, seguindo os passos abaixo por ordem, até um deles dar o resultado.
| # | Pergunta | Se sim | Se não |
|---|---|---|---|
| 1 | O grupo tem viagens? | Segue para o passo 2 | ✅ Passa |
| 2 | Para o sentido 0, existe mais de um shape_id não vazio? | Se a regra estiver ativa, reporta o problema | Segue para o passo 3 |
| 3 | Para o sentido 1, existe mais de um shape_id não vazio? | Se a regra estiver ativa, reporta o problema | ✅ Passa |
Como se relacionam
route_id e direction_id formam o grupo comparado. Todas as viagens desse grupo têm de partilhar o mesmo shape_id.
Exemplos
route_id | direction_id | Formas | Resultado | Porquê |
|---|---|---|---|---|
R1 | 0 | S1, S1 | ✅ Passa | Uma forma no sentido |
R1 | 0 | S1, S2 | ❌ Problema | Duas formas no mesmo sentido |
R1 | 0 e 1 | S1 e S2 | ✅ Passa | Uma forma por sentido |
R1 | 2 | S1, S2 | ✅ Passa | Sentido inválido ignorado |
Como corrigir
| Problema | Causa provável | O que fazer |
|---|---|---|
| Formas diferentes no mesmo sentido | Uma combinação de route_id e direction_id usa vários shape_id | Corrigir shape_id, route_id ou direction_id nas linhas afetadas de trips.txt |