Forma composta pela linha e pelo sentido
Verifica se `shape_id` é a combinação de `route_id` e `direction_id`, separados por um sublinhado.
Propriedades da regra
| Propriedade | Valor |
|---|---|
| Rule ID | trips_shape_id_matches_route_id_and_direction_id |
| Ficheiro | trips.txt |
| Campos | shape_id, route_id, direction_id |
| Tipo | Identificador, Identificador, Enumeração |
| Severidade | Opcional (recomendado) |
Descrição dos campos:
shape_id: identifica a forma geográfica da viagem.route_id: identifica a linha servida.direction_id: identifica o sentido com0ou1.
Mais informação em trips.txt.
Como funciona
shape_id tem de ser route_id, seguido de um sublinhado e de direction_id. Campos vazios e sentidos diferentes de 0 e 1 são ignorados. A regra não verifica se a forma ou a linha existem.
A regra avalia cada linha do trips.txt, seguindo os passos abaixo por ordem, até um deles dar o resultado.
| # | Pergunta | Se sim | Se não |
|---|---|---|---|
| 1 | Algum dos três campos está vazio? | ✅ Passa | Segue para o passo 2 |
| 2 | A configuração da regra desativa a validação? | ✅ Passa | Segue para o passo 3 |
| 3 | direction_id é diferente de 0 e 1? | ✅ Passa | Segue para o passo 4 |
| 4 | shape_id é igual a route_id_direction_id? | ✅ Passa | ❌ Reporta o problema |
Como se relacionam
Para route_id=1001 e direction_id=0, a forma esperada é shape_id=1001_0. Os sublinhados já existentes em route_id são preservados.
Exemplos
route_id | direction_id | shape_id | Resultado | Porquê |
|---|---|---|---|---|
1001 | 0 | 1001_0 | ✅ Passa | Composição correta |
1001_2 | 0 | 1001_2_0 | ✅ Passa | Sublinhado preservado |
1001 | 0 | 1001_1 | ❌ Problema | Sentido incorreto na forma |
1001 | 0 | 1001_0_1 | ❌ Problema | Sufixo adicional |
1001 | 2 | 1001_2 | ✅ Passa | Sentido inválido é tratado por outra regra |
Como corrigir
| Problema | Causa provável | O que fazer |
|---|---|---|
| Forma composta incorretamente | shape_id não corresponde a route_id e direction_id | Corrigir shape_id em trips.txt para route_id_direction_id |