Baixando rotas da SPTrans (GTFS) automaticamente

668 views
Skip to first unread message

ches...@gmail.com

unread,
Nov 10, 2015, 3:16:23 PM11/10/15
to Transparência Hacker
Bom dia, pessoal.

Como muitos aqui, eu fiquei feliz pela SPTrans publicar o GTFS com as suas rotas - até reescrevi o cruzalinhas.com (que originalmente fazia scraping do site deles) para usar este formato. E da mesma forma fiquei chateado porque este download exige se autenticar num navegador para baixar (impossibilitando que um sistema mantenha seus dados atualizados constantemente).

Neste sentido, eu escrevi este script Python(*) que, usando Selenium e Firefox, "finge" ser um usuário, autenticando e baixando o arquivo. Não garanto que vá funcionar sempre (se eles mexerem um pouco no site, já era), mas é um alento enquanto não se consegue uma solução definitiva.

O script se encontra aqui: https://github.com/chesterbr/chester-ansible-configs/blob/master/templates/download_sptrans_gtfs.py.j2

Veja nos comentários dele como colocar seu usuário e senha, entre outras instruções (ex.: rodar em modo "headless", permitindo a execução em servidores sem X11).

Recomendo não atualizar mais frequentemente do que uma vez por dia (ou nem isso, já que a informação não muda tão rápido), para evitar alguma sobrecarga no sistema deles (e um possível bloqueio).

Espero que ajude em algo!

[]s,
Chester

(*) Não reparem: o meu Python não é lá essas coisas (preferi Python porque pareceu o jeito mais fácil de pilotar o Selenium), mas enfim, melhor script feio do que nada, né? :-)

Diego Rabatone Oliveira

unread,
Nov 10, 2015, 3:34:04 PM11/10/15
to Transparência Hacker
Chester, não precisa de autenticação via navegador.

A questão é que você está tentando usar o dump do GTFS, mas você pode simplesmente usar a API deles, que disponibiliza os dados do GTFS e outras coisas mais também:
http://sptrans.com.br/desenvolvedores/APIOlhoVivo/Documentacao.aspx

Você vai precisar de um cadastro para ter uma API Key, mas depois seu código pode se autenticar via API para acessar as informações.

Inclusive tem uma lib python que o Diogo Baeder desenvolveu durante o Hackathon da SPTrans (2013) para acesso à API deles (não sei o quanto ela ainda é válida, a depender de mudanças que possam ter ocorrido na API):
http://sptrans.readthedocs.org/en/latest/

Espero que te ajude! =)

Abraços,


--------------------------------
Diego Rabatone Oliveira
http://blog.diraol.eng.br
diraol(arroba)diraol(ponto)eng(ponto)br
Twitter: @diraol

--
Você recebeu essa mensagem porque está inscrito no grupo "Transparência Hacker" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para thackday+u...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para thac...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/thackday.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/thackday/63fcf8e2-fcd8-4126-a285-12814e1aa373%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Carlos Duarte do Nascimento

unread,
Nov 10, 2015, 4:04:50 PM11/10/15
to Transparência Hacker
Diego,

Sim, para acesso à API não é preciso login, e, de fato, por si só ela permite alguns usos interessantes.

Infelizmente, para muitos usos usos (ex.: análises estatísticas, acesso offline, ou mesmo - o caso do cruzalinhas - uma modalidade de busca que a API não disponibiliza) é preciso ter os dados do seu lado - e a idéia do GTFS é justamente viabilizar essas aplicações mais "fora da casinha".

Abraço,
Chester

Vitor George

unread,
Nov 11, 2015, 9:04:04 AM11/11/15
to thac...@googlegroups.com
Faz um tempo fiz um módulo javascript pra acessar a API, veja se te ajuda:


Faltou a documentação dos métodos, mas neste arquivo é fácil de ver o que está disponível:


Vitor

Nitai B. Silva

unread,
Nov 11, 2015, 10:25:03 AM11/11/15
to thac...@googlegroups.com

Faço coro com o Chester. GTFS é um super padrão implementado por várias soluções, muitas livres. A exemplo do Open Trip Planner. Alternativas vão continuar sendo alternativas.

Todo órgão responsável pelo sistema de transporte público deveria abrir seu GTFS.

[]s
Nitai

Diego Rabatone Oliveira

unread,
Nov 11, 2015, 11:17:16 AM11/11/15
to Transparência Hacker

Só pra deixar claro, não sou conta o gtfs não!!! Só tive a impressão de que talvez uma solução com API fosse mais adequada... Mas não conheço as necessidades do Carlos a fundo... :)

Diego Rabatone Oliveira

Julio Trecenti

unread,
Nov 11, 2015, 11:22:29 AM11/11/15
to Transparência Hacker
Uma vez eu fiz um pacote em R que mexe com dados GTFS da sptrans


Pode ser meio off-topic em relação à discussão que estão fazendo, mas pode ser que seja útil pra alguém aí :)

Abs

Nitai B. Silva

unread,
Nov 11, 2015, 1:06:22 PM11/11/15
to thac...@googlegroups.com

Rabatone, tb não sou contra alternativas. Pelo contrário. Solução boa é a que resolve. :)

Meu apelo é para que a SPTrans não se acomode acreditando ser suficiente a solução dada.

Luiz Carlos V Silva

unread,
Nov 11, 2015, 1:39:06 PM11/11/15
to thac...@googlegroups.com
Oi Nitai,

Falando um pouco de infraestrutura e tambem aqui de Brasília o seguinte:  Essas informações de localização são passadas pelos GPS instalados nos onibus, em equipamentos de propriedade das empresas, que devem oferecer esse recurso de acordo com o contrato de concessão. Será que todas empresas particulares ja estão disponibilizando esses dados arcando com os custos do WiFi?  Muitas das vezes eles não dispõe desses dados.  Está certo esse raciocínio?  No caso de SP a empresa é estatal?

Falo obviamente em dados online. Não seria o caso então, como forma de pressão, operacionalizar a opção baseada nos dados dos horários das linhas que deveriam estar em operação segundo o contrato e, que o governo divulga nos sites? Ai através de um app o usuário iria marcar o horário que determinada linha passou, que iria depois mostrar as diferenças baseado no banco de dados do que deveria ser?  Isso é razoável

Faísca



Diego Rabatone Oliveira

unread,
Nov 11, 2015, 1:48:04 PM11/11/15
to Transparência Hacker
Luiz, falando de SP....

Não, aqui não é empresa estatal. Na realidade são diversos consórcios que atuam de forma independente (de acordo com as licitações que ganharam).

A SPTRans (empresa pública municipal que gerencia o transporte público municipal - quem faz interface com as concessionárias/cooperativas) disponibiliza a "API OlhoVivo",
que fornece o dado de localização de cada ônibus da cidade em "tempo real" (acho que tem um delay de até uns 80seg).
Está no link que eu mandei anteriormente.
Essa informação é "gerada/transmitida" via GPRS instalado nos ônibus da cidade, e não tem relação nenhuma com redes Wifi.
Apesar que já temos algumas linhas de ônibus da cidade que contam com Wifi-free nos ônibus, e na próxima licitação acho que isso vai passar a ser padrão.


--------------------------------
Diego Rabatone Oliveira
http://blog.diraol.eng.br
diraol(arroba)diraol(ponto)eng(ponto)br
Twitter: @diraol

Luiz Carlos V Silva

unread,
Nov 11, 2015, 3:21:32 PM11/11/15
to thac...@googlegroups.com
Sim Diego,

A questão é se o hardware que é de propriedade das empresas estão todos operacionais e estão transmitindo os dados. Mas isso não é questão fundamental para toda essa bronca.

Pelo contrato toda essa infraestrutura deveria estar funcionando de acôrdo com o contrato. E lógicamente vale para todo o Brasil pois foi uma demanda de melhoria dos transportes para a copa. 

De repente não está, e não está sendo cobrado pelos "Trans" das diversas cidades. Em Salvador a previsão para estar em  100% da frota foi em abril de 2015. Será que são Paulo já está 100% tambem?

Seria bom saber como está em todo o Brasil.. :)

Faísca




Nitai B. Silva

unread,
Nov 12, 2015, 3:56:57 PM11/12/15
to thac...@googlegroups.com

Luiz, o GTFS representa o planejamento do transporte. Inclui dados de localização das paradas, a lista de linhas de ônibus, a rota de cada linha (relação entre linhas X paradas), a tabela de horários de partida de cada linha, a tarifação de cada linha, e algumas outras informações estáticas. Ou seja, não é dado em tempo real. Por isso não tem relação com GPS. Claro que utilizar o rastro dos GPSs pode ser uma maneira de gerar o GTFS. Mas não acho que seja trivial ou o jeito mais eficiente. Toda empresa/consórcio de transporte já tem essas informações, pq são básicas para funcionamento de qualquer sistema desses, mesmo que em formatos analógicos.

Esse é o GTFS convencional. Um tempo atrás foi instituído o GTFS-realtime. Esse sim cobre os feeds de localização de cada ônibus.

Ter os 2 é o ideal. Mas ter o primeiro é fundamental.

Abs
Nitai

--
Você recebeu essa mensagem porque está inscrito no grupo "Transparência Hacker" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para thackday+u...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para thac...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/thackday.

Carlos Duarte do Nascimento

unread,
Sep 3, 2019, 9:05:12 PM9/3/19
to Transparência Hacker
Um update:

Não foi exatamente uma surpresa o fato de que o script quebrava a cada vez que a SPTrans modificava o site, e num dado momento desisti de correr atrás.

E também não me surpreendi ao ver que a SPTrans continuava não disponibilizando o arquivo para download.

A única surpresa (positiva) nesse meio-tempo foi o surgimento do OpenMobilityData (https://openmobilitydata.org/about), um serviço que agrega os feed GTFS de empresas de transporte no mundo todo e os disponibiliza do jeito que deveria ser: amigável a humanos e a scripts.

Caso alguém mais tenha esse problema, os feeds da SPTrans estão disponíveis em https://openmobilitydata.org/p/sptrans/1049 - onde é possível encontrar um link fixo para download do mais recente.

-- Chester
Reply all
Reply to author
Forward
0 new messages