Paragem de destino da transferência
Verifica se o to_stop_id de transfers.txt existe em stops.txt, é uma paragem ou estação e cumpre o transfer_type.
Propriedades da regra
| Propriedade | Valor |
|---|---|
| Rule ID | transfer_to_stop_id_references_stops_table |
| Ficheiros | transfers.txt, stops.txt |
| Campos | to_stop_id, transfer_type |
| Tipo | ID externo (refere stop_id de stops.txt), enumeração (0 a 5) |
| Severidade | Condicional (obrigatório quando o transfer_type é 1, 2 ou 3), Obrigatório |
Descrição dos campos:
to_stop_id: identifica a paragem (location_type0) ou estação (location_type1) onde a ligação termina. Se for uma estação, a regra aplica-se a todas as paragens dessa estação. Tem de ser uma paragem quando otransfer_typeé4ou5. É obrigatório quando otransfer_typeé1,2ou3e opcional quando é4ou5.transfer_type: tipo de ligação.0ou vazio é um ponto de transferência recomendado,1é uma transferência com horário (o veículo espera),2exige um tempo mínimo de transferência,3não permite transferência,4permite continuar no mesmo veículo (transferência em lugar) e5não permite continuar no mesmo veículo.
Mais informação em transfers.txt e stops.txt.
Como funciona
Quando o to_stop_id está preenchido, tem de existir em stops.txt e ser uma paragem ou estação. Com transfer_type 4 ou 5, tem de ser uma paragem. Origem e destino não podem ser a mesma paragem. Quando o to_stop_id está vazio, só é reportado para transfer_type 1, 2 ou 3. A regra não verifica as viagens nem as linhas da transferência.
A regra avalia cada linha do transfers.txt, seguindo os passos abaixo por ordem, até um deles dar o resultado.
| # | Pergunta | Se sim | Se não |
|---|---|---|---|
| 1 | O to_stop_id está vazio e o transfer_type é 1, 2 ou 3? | Se a configuração da regra não ignora o campo, ❌ reporta o problema: em falta (recomendado, ou obrigatório se a configuração da regra o exigir). Se ignora, ✅ passa | Segue para o passo 2 |
| 2 | O to_stop_id está vazio? | ✅ Passa (não é reportado nenhum problema) | Segue para o passo 3 |
| 3 | O to_stop_id existe em stops.txt? | Segue para o passo 4 | ❌ Reporta o problema: to_stop_id não encontrado |
| 4 | O location_type desse local é diferente de 0, 1 e vazio? | ❌ Reporta o problema: tipo de local inválido (só paragem ou estação) | Segue para o passo 5 |
| 5 | O transfer_type é 4 ou 5 e o location_type do local é diferente de 0 e de vazio? | ❌ Reporta o problema: tem de ser uma paragem, não uma estação | Segue para o passo 6 |
| 6 | O to_stop_id é igual ao from_stop_id? | ❌ Reporta o problema: origem e destino iguais | ✅ Passa |
Como se relacionam
O to_stop_id de transfers.txt tem de existir como stop_id em stops.txt. O location_type desse local e o transfer_type da mesma linha decidem se é aceite.
Exemplos
to_stop_id | transfer_type | Resultado | Porquê |
|---|---|---|---|
PV01 (paragem) | 1 | ✅ Passa | Paragem existente |
PV_ESTACAO (estação) | 2 | ✅ Passa | Estação aceite |
PV_ESTACAO (estação) | 4 | ❌ Problema | Com 4 ou 5 tem de ser paragem |
XPTO | 1 | ❌ Problema | Não existe em stops.txt |
| (vazio) | 2 | ❌ Problema | Obrigatório com 2, se a configuração da regra o pedir |
Como corrigir
| Problema | Causa provável | O que fazer |
|---|---|---|
to_stop_id em falta | O to_stop_id está vazio e o transfer_type é 1, 2 ou 3 | Preencher o to_stop_id em transfers.txt com um stop_id de stops.txt |
to_stop_id não encontrado | O valor tem um erro de escrita ou o local não está em stops.txt | Corrigir o to_stop_id em transfers.txt, ou adicionar o local em stops.txt |
| Tipo de local inválido | O local não é paragem, plataforma nem estação | Em transfers.txt, usar o stop_id de uma paragem ou estação |
| Tem de ser uma paragem | O transfer_type é 4 ou 5 e o local é uma estação | Em transfers.txt, usar o stop_id de uma paragem |
| Origem e destino iguais | O to_stop_id é igual ao from_stop_id | Em transfers.txt, indicar paragens diferentes na origem e no destino |