Closed gmartinsoc closed 1 year ago
dev-local
feat/shapes_with_stops
de feat/stop_name-stops
dev-local
Motivo do cancelamento: Após uma reunião entre @yxuo e @gmartinsoc (em 05/01/2022) , entendeu-se que esta comparação exige muito tempo para adaptar o código da UFRJ. Além disso, a query criada já se mostrou satisfatória.
dev
local
(Docker)dev
local
(Docker)dev
(se necessário)Testar código da UFRJ-Analytica:
Comparando as colunas sugeridas por GMOC e as colunas utilizadas pela UFRJ-Analytica, é possível ver a seguinte diferença:
shapes_with_stops (UFRJ-Analytica) vs GMOC
Colunas Tabelas
–––––––––––––––––––––––––––––––– ––––––––––––––––––––––––––––
trip_id brt_stops; trips; stoptimes
stop_id brt_stops; stops; stoptimes
stop_name brt_stops; stops
latitude (stop_lat) brt_stops; stops
longitude (stop_lon) brt_stops; stops
shape_dist_traveled brt_stops; shapes; stoptimes
stop_sequence brt_stops; stoptimes
route_id brt_stops; routes; trips
route_short_name brt_stops; routes
route_long_name brt_stops; routes
+ previous_stop_id (stop_id) .
+ previous_stop_name (stop_name) .
+ next_stop_id (stop_name) .
+ next_stop_name (stop_name) .
brt_stops(UFRJ-Analytica) vs GMOC
Colunas Tabelas
––––––––––––––––––––– ––––––––––––––––––
trip_id trips; stoptimes
+ arrival_time stoptimes
+ departure_time stoptimes
stop_id stops; stoptimes
shape_dist_traveled shapes, stoptimes
stop_sequence stoptimes
+ pickup_type stoptimes
+ drop_off_type stoptimes
stop_name stops
stop_lat stops
stop_lon stops
+ stop_code stops
+ stop_desc stops
+ zone_id stops
+ stop_url stops
+ stop_timezone stops
+ wheelchair_boarding stops
route_id routes; trips
route_short_name routes
route_long_name routes
brt_stops
) que o requerido para shapes_with_stops
.❌ Tarefa cancelada:
Após @yxuo e @gmartinsoc discutirem a necessidade de comparar a query com o código da URFJ, entendeu-se que não compensa o tempo dispendido, pois não é fácil inserir os mesmos dados em ambos projetos, onde uma das fontes é uma tabela pré aninhada, inexistente no servidor, que é a junção de stoptimes com stops, trips, etc.
Inserir opção de filtrar por disância geográfica (3d):
Para funcionar é necessário instalar no postgres a extensão postgis
(link).
CREATE EXTENSION postgis;
Motivo:
Normalmente os dados de GTFS seguem o padrão WGS84, que utiliza uma projeção esférica da Terra, e não uma projeção cartesiana bidimensional.
Para curtas distâncias ainda foi possível notar uma diferença entre o ponto 3D e 2D na posição de alguns dos pontos listados. Para distâncias grandes a diferença teoricamente tende a aumentar.
Verificando se há diferença significativa para o usuário final:
Parâmetros: stop_id = 1001O00006C0, 1003O00006C0
Distância 2D:
id, ... ,shape_pt_lat,shape_pt_lon,stop_lat,stop_lon
2212190, ... ,-22.897663,-43.202313,-22.897653,-43.202279
2221840, ... ,-22.897331,-43.18731,-22.89731,-43.18737
2234241, ... ,-22.897329,-43.187309,-22.89731,-43.18737
2234437, ... ,-22.897341,-43.187314,-22.89731,-43.18737
2240451, ... ,-22.89767,-43.20231,-22.897653,-43.202279
2240923, ... ,-22.897333,-43.187311,-22.89731,-43.18737
2246369, ... ,-22.897332,-43.18731,-22.89731,-43.18737
2246373, ... ,-22.897663,-43.20231,-22.897653,-43.202279
2248808, ... ,-22.897334,-43.187311,-22.89731,-43.18737
2249585, ... ,-22.897341,-43.187314,-22.89731,-43.18737
Distância 3D:
id, ... ,shape_pt_lat,shape_pt_lon,stop_lat,stop_lon
2212190, ... ,-22.897663,-43.202313,-22.897653,-43.202279
2221840, ... ,-22.897331,-43.18731,-22.89731,-43.18737
2234241, ... ,-22.897329,-43.187309,-22.89731,-43.18737
+ 2234437, ... ,-22.897333,-43.18731,-22.89731,-43.18737
2240451, ... ,-22.89767,-43.20231,-22.897653,-43.202279
2240923, .. ,-22.897333,-43.187311,-22.89731,-43.18737
2246369, .. ,-22.897332,-43.18731,-22.89731,-43.18737
2246373, .. ,-22.897663,-43.20231,-22.897653,-43.202279
2248808, .. ,-22.897334,-43.187311,-22.89731,-43.18737
+ 2249585, .. ,-22.897333,-43.18731,-22.89731,-43.18737
O que mudou?
O0355AAA0AIDU02
, stop_id: 1001O00006C0
-22.897341
-22.897333
O0385AAA0AIDU01
, stop_id: 1001O00006C0
-22.897341
-22.897333
Resultado final:
Toda a operação foi feita em SQL ao invés de Pandas, pois neste cenário o Pandas se mostrou muito complexo de implementar e mais lento, se comparado com o SQL.
Por padrão a query calcula a distância cartesiana (2D). De cada 10 stops, 8 são iguais à distância 3D.
(recomendado) Caso o banco de dados do servidor possua a extensão postgis, o servidor irá usar a distância geodésica (3D).
Alterei tarefa para ser apenas a tabela no BQ
Este modelo foi criado para dar suporte a um modelo descontinuado do preditor.
Novo preditor: #116
Objetivo