RJ-SMTR / mobilidade-rio-api

⚙️ API do web-app de mobilidade da SMTR
http://api.mobilidade.rio
5 stars 1 forks source link

Atualizar dados GTFS em produção #134

Closed gmartinsoc closed 1 year ago

gmartinsoc commented 1 year ago

Objetivo

Validar os campos do GTFS BRT que estão em staging em 3 categorias de validação:

  1. Campos necessários para o Front-end.
  2. Campos com critérios especiais, definidos pela SMTR (stop pai e filho)
  3. Utilizar validação GTFS definida no Google Transit (e gtfs.org).

Justificativa

O principal motivo é garantir que os dados foram validados da melhor forma possível. Caso ocorra algum bloqueio, esta issue será de grande ajuda.

Observações

Dependências

Tarefas

Verificações

1. Campos necessários para o frontend (v2.1.0)

Legenda - Comparando com o Google Transit:

  • obrigatório
  • obrigatório com critérios*
  • opcional

Todos os campos a seguir são obrigatórios para o frontend.

stops:

stop_times:

trips:

shapes:

2. Campos com critérios SMTR:

Legenda - Comparando com o Google Transit:

  • obrigatório
  • obrigatório com critérios*
  • opcional

stops:

3. Campos com critérios GTFS:

Os critérios dos demais campos seguem o modelo do Google Transit e gtfs.org.

stops:

trips:

shapes:

routes:

stop_times:

Validações opcionais

Apenas para confirmar a coerência dos dados, não há pressa para fazer isso.

Onde


Notas:

Após validar, criar um comentário com os critérios usados e o resultado.

Caso os critérios mudem, atualize este comentário.

Referências:

gmartinsoc commented 1 year ago

GTFS do BRT com problema na exportação, alguns arquivos não estão sendo exportados. SPPO mudou o padrão _ e está com duplicações. Precisamos verificar um padrão para remover as duplicações.

Precisamos validar se as trips e a forma que identificamos expresso/parador e as plataformas nas telas do brt estão de acordo com o preenchido no GTFS.

gmartinsoc commented 1 year ago

Dados atualizados com mockup dos campos stop_desc e stop_code, enquanto o preenchimento é GTFS finalizado.

fernandascovino commented 1 year ago

Relacionado a: #140

yxuo commented 1 year ago

Verificando as colunas GTFS

Foram usados os arquivos GTFS mais atuais obtidos do SPPO, fornecidos pela equipe.

Critérios da validação

Seguindo os critérios mencionados acima, foi feita a validação usando um algoritmo.

Em stops:

Resultado

✅ Tabelas que passaram no teste

❌ Tabelas que falharam no teste:

stops

Adicionado em 06/02/2022 Os itens abaixo não devem ocorrer:

  • "stop pai" com stop_code - 2/484
  • "stop pai" sem platform_code - 154/484
  • "stop filho" sem stop_code - 330/484
  • "stop filho" sem stop_desc - 324/484

trips

routes

stoptimes

Com este resultado, o que pode ser feito?

Todas as tabelas, exceto stops, possuem pelo menos uma coluna com todas as ocorrências inválidas, tornando impossível subi-las.

Com isso temos as seguintes opções:


Caso deseje testar, será deixado o arquivo jupyter e log em anexo:

Atualizado em 06/02/2022 validate-gtfs 2022-02-06.zip

yxuo commented 1 year ago

A tabela stops passou pela validação hoje (06/02/2022) e falhou. O comentário acima foi atualizado.

yxuo commented 1 year ago

Reunião sobre as falhas na 1ª validação

Foi feita reunião hoje (08/02/2023 10:50) com @gsperim e @gbragaalves sobre o GTFS e entendeu-se que:

O que foi definido sobre os requisitos

Em todas as tabelas

Em stops:

Se alguma informação acima estiver equivocada, podem avisar!

Portanto, o que será feito

yxuo commented 1 year ago

A issue foi fechada por engano.

yxuo commented 1 year ago

Validação dos dados GTFS - tentativa 2

Foram usados os mesmos arquivos GTFS mais atuais obtidos do SPPO, fornecidos pela equipe (veja o comentário da 1ª tentativa de validação).

Resumo

Validação do GTFS - passou ✅

Validação da SMTR (stop pai e filho) - falhou ❌

Validação de campos usados pelo frontend - falhou ❌

Critérios da validação

Seguindo os critérios mencionados no primeiro comentário da issue, foi feita a validação usando um algoritmo.

Essas informações são repetidas aqui pois o primeiro comentário mostra apenas os últimos critérios adotados.

Validação do GTFS

Validação do Frontend

stops:

stop_times:

trips:

shapes:

Validação da SMTR

Onde:

Resultado

Validação do GTFS - passou ✅

Todas as tabelas analisadas passaram nessa validação:

Validação do frontend

Tabelas analisadas:

✅ Tabelas que passaram nessa validação:

❌ Tabelas que falharam:

stops

Validação da SMTR

✅ Critérios que passaram:

❌ Critérios que falharam:

📋 Critérios hipotéticos (para usar na reunião):

Com este resultado, o que pode ser feito?


Caso deseje testar, será deixado o arquivo jupyter em anexo: 2023-02-09 validate gtfs v2.zip

yxuo commented 1 year ago

Reunião com o Frontend sobre a validação (tentativa 2)

Foi feita reunião hoje (13/02/2023 13:20) com @Gabriel0109 sobre o GTFS.

Problema

stop_code falhou na validação.

O que foi definido sobre sobre o stop_code

O que será feito?

Caso seja necessário, o app seria capaz de pesquisar stops sem stop_code.

Portanto, o melhor é conversar com o responsável pelo GTFS sobre o que deve ser feito com os dados.

yxuo commented 1 year ago

Reunião com o responsável pelo GTFS BRT sobre a validação (tentativa 2)

Foi feita reunião em 14/02/2023 11:20 com @gbragaalves e @gsperim sobre o GTFS.

Resumo

Sobre o frontend:

Sobre a validação SMTR (stop pai e filho):

Sobre como obter informação do corredor

Sobre os erros na validação de stop pai e filho

Por garantia, a segunda tentativa de validação previu erros caso um campo seja do stop pai ou do stop filho. Foi feita a confirmação dos critérios de validação para então mostrar o resultado.

O que foi definido

Os critérios usados estavam corretos:

Portanto houve os seguintes erros:

O que será feito

Sobre o stop_code que falhou na validação do frontend

O que foi definido

O que será feito

Sobre como obter informação do corredor

yxuo commented 1 year ago

Validação dos dados GTFS - tentativa 3

Foram usados os arquivos GTFS BRT de 24/02/2023, que são os mais atuais obtidos do SPPO, obtidos direto da fonte usada pela equipe.

Resultado do GTFS BRT

✅ Validação do GTFS - passou

✅ Validação de campos usados pelo frontend - passou

❌ Validação da SMTR (stop pai e filho) - menos erros que antes (validação, tentativa 2)

Com este resultado, o que pode ser feito?

Script jupyter em anexo: 2023-02-24 validate gtfs v3.zip


Critérios da validação

Os critérios foram definidos na reunião sobre a validação, tentativa 2.

Criterios do GTFS

Os campos seguem o modelo do Google Transit e gtfs.org.

Os critérios abaixo são os mesmos, apenas com outras palavras para aplicar no script.

stops:

trips:

shapes:

routes:

stop_times:

Validação do Frontend

stops:

stop_times:

trips:

shapes:

Validação dos stops pai e filho

Onde:

yxuo commented 1 year ago

Validação dos dados GTFS - tentativa 4

Hoje, 02/03/2023, foram usados os arquivos GTFS BRT atualizados em 27/02/2023, obtidos do SIGMOB e carregados no banco de dados da api.

Resultado do GTFS BRT

✅ Validação do GTFS - passou

✅ Validação de campos usados pelo frontend - passou

❌ Validação da SMTR (stop pai e filho) - menos erros que antes (validação, tentativa 3)

Com este resultado, o que pode ser feito?

Script jupyter em anexo: 2023-03-02 validate gtfs v4.zip


Critérios da validação

Os critérios usados encontram-se na validação, tentativa 3.

yxuo commented 1 year ago

Hoje, 03/03/2023, foram enviados os stops que falharam no critério de stop pai e filho validação, tentativa 4

yxuo commented 1 year ago

Os dados do GTFS de BRT + SPPO do dia 10/03/2023 foram carregados em dev e staging.