Pegando o ônibus errado em Capivara’s City — Parte I

Caroline Attilio
5 min readJan 14, 2021

--

Objetivo desse singelo post é analisar alguns dos dados do transporte público da cidade de Curitiba disponíveis para a população.

Fonte: https://unsplash.com/photos/yObnHvuwkiY

Ah, as férias da faculdade…tempo para colocar as séries em dia, ler todos os livros que você queria e não teve tempo, dançar forró com o seu crush (antes da pandemia), se aventurar na cozinha ou no meu caso: estudar Python (cada um se diverte do seu jeito, não é mesmo? 🧐).

Caso você tenha lido algum post meu nesse site, já deve saber que há pouco tempo estou me aventurando/aprendendo nos mundos dos dados. No meu antigo estágio eu trabalhava com dois estatísticos que contribuíram muito para o meu aprendizado, e nós fazíamos a grande parte das nossas análises na linguagem R de programação. OU SEJA: Python sabia que existia mas não tinha muita familiaridade, ele lá no canto dele e eu aqui no meu + R. Por outro lado, no meu atual estágio o meu time faz quase tudo em Python = the jiripoca is gonna pewpew. Tive que começar a estudar mais a linguagem e pensei “por que não fazer uma análise do transporte público de Curitiba?”. — Pensamentos enquanto eu coloco a query para rodar risosrisos.

Se você, meu querido leitor, mora em Curitiba eu tenho toda certeza que alguma vez na sua vida você já pegou um ônibus errado — quase certeza que foi um Interbairros no sentido contrário ainda. Caso você more em outra cidade, vem descobrir comigo um pouco mais sobre o transporte dessa cidade nublada e cheia de capivaras.

Essa primeira parte será divida em duas etapas: o que os dados dizem e o passo-a-passo do código.

Meu primeiro desafio foi conseguir esses dados, não tinha nem IDEIA de como conseguir. Para obter as informações você tem três opções:

  • Esperar os dados aparecerem na sua tela do nada;
  • Abrir um protocolo através do site da prefeitura solicitando as informações pela Lei de Acesso à Informação;
  • Usar os dados já prontos disponíveis nesse link;

Optei pelas duas últimas, até abri uma solicitação na prefeitura mas preferi usar o json do link. Olhei todos os dados disponíveis e escolhi as informações a respeito das linhas e dos pontos de ônibus da cidade.

Mapa com todos os pontos de ônibus de Curitiba

O que os dados dizem?

Data da extração desses dados: 12/11/2020

Linhas de ônibus

Depois que você abre o protocolo na prefeitura, você recebe um acesso para conectar na URBS Desenvolvimento -WEBSERVICES. Lá tem toda a documentação.

Essas informações são obtidas através do getLinhas().

Fonte: URBS Desenvolvimento -WEBSERVICES

Os dados tem essa carinha:

Fonte: Caroline Attilio
  • Total de linhas na cidade de Curitiba: 307;
  • Número de categoria de linhas: 10;
  • Categorias das linhas: Convencional, Alimentador, Troncal, Linha Direta, Expresso, Interbairros, Circular Centro, Ligeirão, Madrugueiro e Jardineira;
  • Quantidade por cada categoria de linha:
Fonte: Caroline Attilio

Por exemplo: temos 9 linhas de Interbairros e 144 linhas de Alimentadores.

  • Em percentual, as categorias de linhas Alimentador e Convencional possuem mais de 50% do total;
  • Do total apenas 38% das linhas trabalham somente com cartões.

Pontos de ônibus das linhas

Essas informações são obtidas através do getPontosLinha().

Fonte: URBS Desenvolvimento -WEBSERVICES

Os dados:

Fonte: Caroline Attilio
  • Total de pontos de ônibus na cidade: 7.119;
  • Número dos tipos de pontos de ônibus: 14;
  • Pontos de ônibus: Novo mobiliário, Chapéu chinês, Domus, Estação tubo, Plataforma, Sem demarcação, Placa em cano, Placa em poste, Especial Madrugueiro, Linha Turismo, Concreto, Fora do padrão e Outros;
  • Quantidade de tipos de pontos de ônibus:
Fonte: Caroline Attilio
  • Quase 4% de todos os nossos pontos de ônibus são as famosas Estações Tubo;
  • Quase 8,2% de todos os pontos de ônibus estão sem demarcação.

Código

Usei o Jupyter Notebook para o código. O código está todo comentado.

A seguir estão os pontos principais do código.

# Importando as bibliotecasimport pandas as pd 
import numpy as np
import json as json
import requests as requests
import geopy
import re
import plotly_express as px
#Lendo os arquivos que contém as informaçõesdfLinhas = pd.read_json (‘2020_11_12_linhas.json’)
dfPontos = pd.read_json (‘2020_11_12_pontosLinha.json’)
# TIPOS DE PONTOS DE ÔNIBUS
# Criei um forzinho só para ficar melhor em ler os pontos
for i in dfPontosUnicos['TIPO'].unique():
print('Ponto de ônibus do tipo',i)
# NÚMERO DE PONTOS de ÔNIBUS NA CIDADE DE CURITIBA
# Printa para mim a quantidade de tipos de pontos e a quantidade total de pontos de ônibus
print('Número de tipos de pontos de ônibus da cidade de Curitiba: ', dfPontosUnicos['TIPO'].nunique())
print('Número de pontos de ônibus da cidade de Curitiba: ', dfPontosUnicos['NOME'].nunique())

Esse mesmo raciocínio se aplica para aos dados de linhas da URBS. Como eu disse, o código está todo comentado no meu GitHub. Qualquer dúvida é só entrar em contato.

Caso você veja algum erro ou queira mostrar alguma melhoria no código pode falar 💕 estou aberta a sugestões e críticas.

É isso! Espero que tenha gostado. Até a próxima!

Referências

--

--

Caroline Attilio

engineering student | data lover | seamstress in my free time