OSMBUS2PGRuma ferramenta para importação de dados sobrerotas de ônibus no OpenStreetMap para banco dedados PostgreSQL com PostGIS e pgRouting> Elmo Neto
Universidade Federal de Santa Catarina> João H. Quoos
Instituto Federal de Santa Catarina> Pedro R. M. da Silva
Universidade Federal do Rio Grande do Sul

IntroduçãoCrescimento populacional em território brasileiro
observado pelo Censo 2022 do IBGE
124,1 milhões de pessoas vivendo em concentrações urbanas

Verticalização urbana e adensamento populacional

Demanda por infraestrutura e serviços de mobilidadeurbana(IBGE, 2023)
2Introdução
Planejamento de transportes
Modelo de 4 etapas (LOPES, 2005)
1)

Geração: quantas viagens têm origem ou destino nas zonas de tráfego consideradas?

2)

Distribuição: quantas viagens são realizadas entre as zonas de tráfego consideradas?

3)

Divisão Modal: quais os modos de transporte utilizados?

4)

Alocação de Tráfego: qual o caminho utilizado pelas pessoas (para modos de transporteque permitem a escolha da rota)?

3

Objetivos🌍Desenvolvimento de scripts com baixa dependência de bibliotecas externas para
download de malha viária e rotas de ônibus do OpenStreetMap;

🌍Importação para banco de dados PostgreSQL com as extensões PostGIS epgRouting habilitadas;

🌍Desenvolvimento de funções utilitárias para análise das rotas de ônibusimportadas.

4Introdução

Cenário de estudo:
Florianópolis, Santa Catarina, Brasil-

Capital do Estado-Formada por porção continental e porção insular-Área de ~450 km²-

97% insular e 3% continental-~500 mil habitantes

5Metodologia
Ferramentas existentes
osm2pgsql
Importa para o PostGIS, mas não cria tabelas do pgRouting

osm2pgroutingDependências a nível de SOPrecisa de .osm para a importação

OSMPythonTools
Várias dependências de outras bibliotecas Python

NetworkX/OSMnx
Complexidade desnecessária dado o objetivo
Muitas dependências de outras bibliotecas Python
6Metodologia
Tecnologias utilizadas

PostgreSQL
PostGISpgRouting

Pythonpsycopg2
Requests

Nominatim
OverpassAPI

QGIS

7

Metodologia
pgr_createTopology(...)
Função do pgRouting que cria grafo representativo da rede, associando paressource/target a partir de nós de extremidade de linhas que estão próximos
dentro de um limite de tolerância (ex.: 0,1 m)

Geometrias de entrada:
LINESTRING(x1 y1, x2 y2, x3 y3)
LINESTRING(x4 y4, x2 y2, x5 y5)Grafo gerado após execução da função:Ponto 2 inacessível.
Impossível sair do ponto 1 em
direção ao ponto 4, por exemplo

Ways no OSM nem sempre começam/terminam em cadainterseção entre uma via e outra.
Como resolver esse problema? Explodir!

8Metodologia
Geometrias de entrada:
LINESTRING(x1 y1, x2 y2)
LINESTRING(x2 y2, x3 y3)
LINESTRING(x4 y4, x2 y2)
LINESTRING(x2 y2, x5 y5)Grafo gerado após execução da função:Todos os pontos estão conectados
Grafo é considerado direcionado se issofor explicitado na chamada da funçãode cálculo de rotao que determina se a aresta ébidirecional ou não é o campo“oneway”= “yes|no” do OSM
9Metodologia

10Resultados e Discussão
2 scripts codiﬁcados:
ExtrairMalhaViaria.py
ExtrairRotas.py
Dependências:
requests
psycopg
dotenv
github.com/elmoneto/osmbus2pgr

11

Resultados e Discussão
Dados resultantes da importação:🌎77 mil segmentos de vias (arestas)

🌎73 mil vértices

🌎1657 paradas de ônibus🌎

128 rotas

12

Resultados e Discussão
Cálculo de rotas
Rota saindo do centro de Florianópolis echegando até a UFSC
SELECT vias.geom_31982
FROM(SELECT * FROM pgr_dijkstra('SELECT id, source, target, cost,reverse_cost FROM vias', 69433, 36621, TRUE)) AS route
JOIN vias ON route.edge = vias.id

13

Resultados e DiscussãoPanorama das rotas noCentro-Continente dacidade
17 das 128 rotas
importadas geraram
MULTILINESTRING com
dois segmentos de linhas
não conectados
509 das 1657 paradas deônibus importadas estãoassociadas a nenhuma rota

14

Trabalhos Futuros🌎Representação de restrições demanobra🌎

Exportação para GraphML🌎

Melhoria dadocumentação

15

Agradecimentos

16

Referências
IBGE (Instituto Brasileiro de Geograﬁa e Estatística). População brasileira cresce
6,5% e chega a 203,1 milhões de habitantes, aponta Censo 2022.
. Rio de Janeiro, 2023. Disponível em:
https://educa.ibge.gov.br/jovens/materias-especiais/21972-populacao-brasileira-cresce-6-5-e-chega-a-203-1-milhoes-de-habitantes-aponta-censo-2022.html. Acesso
em: 24 de set. de 2023.
LOPES, Simone Becker. Efeitos da dependência espacial em modelos de previsão dedemanda por transporte. 2005. Tese de Doutorado. Universidade de São Paulo.

17

Muito obrigado
Elmo Neto (elmo.neto@posgrad.ufsc.br)
OSM: https://openstreetmap.org/user/elmoneto
Mastodon: https://bertha.social/@elmonetoJoão H. Quoos (joao.quoos@ifsc.edu.br)

Pedro R. M. da Silva (pedro.ricardo@ufrgs.br)18