Proximidade das paragens ao percurso
Verifica se cada paragem servida fica a uma distância máxima de 100 metros da forma da viagem.
Propriedades da regra
| Propriedade | Valor |
|---|---|
| Rule ID | trip_path_stop_coordinates_referenced_from_stops |
| Ficheiros | trips.txt, stop_times.txt, stops.txt, shapes.txt |
| Campos | trip_id, shape_id, stop_id, stop_lat, stop_lon |
| Tipo | Identificador, Identificador, Identificador, Coordenada, Coordenada |
| Severidade | Opcional (recomendado) |
Descrição dos campos:
trip_id: identifica a viagem e as respetivas linhas de horários.shape_id: identifica a forma geográfica da viagem.stop_id: identifica cada paragem servida.stop_lat: latitude da paragem.stop_lon: longitude da paragem.
Mais informação em trips.txt, stop_times.txt, stops.txt e shapes.txt.
Como funciona
Cada paragem com coordenadas utilizáveis tem de ficar, no máximo, a 100 metros da linha densificada da forma da viagem. A regra ignora viagens sem forma e paragens sem coordenadas utilizáveis. Não confirma a ordem das paragens sobre o percurso.
A regra avalia cada viagem de trips.txt, seguindo os passos abaixo por ordem, até um deles dar o resultado.
| # | Pergunta | Se sim | Se não |
|---|---|---|---|
| 1 | Existem linhas de stop_times.txt para o trip_id? | Segue para o passo 2 | Tenta carregar as linhas diretamente; se não conseguir, termina sem problema |
| 2 | shape_id está vazio? | ✅ Passa | Segue para o passo 3 |
| 3 | A configuração da regra desativa a validação? | ✅ Passa | Segue para o passo 4 |
| 4 | A paragem já foi avaliada nesta viagem? | Ignora a repetição | Procura stop_lat e stop_lon em stops.txt |
| 5 | Existem coordenadas utilizáveis para a paragem e geometria utilizável para a forma? | Segue para o passo 6 | Ignora essa paragem |
| 6 | A distância mínima entre a paragem e a forma é superior a 100 metros? | ❌ Reporta o problema para a paragem e forma | ✅ Passa |
A distância usa a fórmula de Haversine e pontos interpolados ao longo da forma, não apenas os pontos originais de shapes.txt. Uma distância exatamente igual a 100 metros é aceite.
Como se relacionam
trip_id obtém as paragens em stop_times.txt. Cada stop_id fornece coordenadas em stops.txt, e shape_id fornece o percurso em shapes.txt.
Exemplos
| Distância mínima | Dados disponíveis | Resultado | Porquê |
|---|---|---|---|
25 m | Paragem e forma válidas | ✅ Passa | Dentro da tolerância |
100 m | Paragem e forma válidas | ✅ Passa | Igual ao limite |
125 m | Paragem e forma válidas | ❌ Problema | Superior ao limite |
| — | shape_id vazio | ✅ Passa | Não existe percurso para comparar |
| — | Coordenadas da paragem inválidas | ✅ Passa | A paragem é ignorada |
Como corrigir
| Problema | Causa provável | O que fazer |
|---|---|---|
| Paragem demasiado distante da forma | As coordenadas da paragem ou a geometria da forma não representam o mesmo percurso | Corrigir stop_lat e stop_lon em stops.txt, shape_id em trips.txt ou os pontos em shapes.txt |