Skip to main content

Automatizar o cálculo do Índice de Qualidade do Transporte (IQT). O IQT é uma métrica essencial para a análise e otimização do transporte público, considerando fatores como pontualidade, frequência de atendimento, cumprimento de itinerários e infraestrutura.

Project description

📊 Indicadores IQT - Biblioteca para Avaliação da Qualidade do Transporte Público

Esta biblioteca tem como objetivo automatizar o cálculo do Índice de Qualidade do Transporte (IQT), baseado nos critérios estabelecidos no artigo "MESTRADO INDICADOR DE QUALIDADE PARA AVALIAR TRANSPORTE COLETIVO URBANO". O IQT é uma métrica essencial para a análise e otimização do transporte público, considerando fatores como pontualidade, frequência de atendimento, cumprimento de itinerários e infraestrutura.


🚀 Como Usar

🔹 1. Importação da Biblioteca

from quali_bus import CalcularIndicadores, MapaIQT

🔹 2. Inicializando a Classe

calc = CalcularIndicadores()

🔹 3. Carregando os Dados das Linhas de Ônibus

Os dados podem ser carregados a partir de um pandas.DataFrame ou geopandas.GeoDataFrame:

import pandas as pd
import geopandas as gpd
from shapely.geometry import LineString

# Exemplo de dados fictícios de linhas de ônibus
linhas_df = gpd.GeoDataFrame({
    'id_linha': ['101', '102'],
    'geometria_linha': [LineString([(0, 0), (1, 1), (2, 2)]), LineString([(3, 3), (4, 4), (5, 5)])]
})

frequencia_df = pd.DataFrame({
    'id_linha': ['101', '102'],
    'horario_inicio_jornada': ['06:07:57', '06:07:57'],
    'horario_fim_jornada': ['06:57:51', '06:57:57'],
    'data_jornada': ['01/01/2024', '01/01/2024'],
    'sentido_viagem': ['0', '1'],
    'quantidade_passageiros': ['3', '8'],
})

pontualidade_df = pd.DataFrame({
    'id_linha': ['101', '102'],
    'data_viagem': ['01/01/2024', '01/01/2024'],
    'sentido_viagem': ['0', '1'],
    'partida_planejada': ['06:07:00', '06:07:00'],
    'partida_real': ['06:07:57', '06:07:57'],
    'chegada_planejada': ['06:57:00', '06:57:00'],
    'chegada_real': ['06:57:57', '06:57:57'],
    'km_executado': ['31', '16'],
})

# Carregar os dados na classe
calc.carregar_dados(linhas_df, frequencia_df, pontualidade_df)

🔹 4. Carregando os Dados dos Pontos (Pontos de Ônibus e Residências)

Os dados podem ser carregados a partir de um pandas.DataFrame ou geopandas.GeoDataFrame:

import pandas as pd
import geopandas as gpd
from shapely.geometry import LineString

residencias = pd.DataFrame({
    "id": [1, 2, 3]
    "latitude" : [-41.5, -42.521321, -41.21477]
    "longitude" : [-41.5, -42.521321, -41.21477]
})

pontos_de_onibus = pd.DataFrame({
    "id": [1, 2, 3]
    "latitude" : [-41.5, -42.521321, -41.21477]
    "longitude" : [-41.5, -42.521321, -41.21477]
})

# Carregar os dados na classe
calc.carregar_dados_geometrias(pontos_de_onibus, residencias)

🔹 5. Cálculo de Indicadores

A biblioteca suporta o cálculo de diversos indicadores de qualidade do transporte, como:

# Essa função classifica cada dado da linha segundo a classificação do IQT
calc.classificar_linha()

# Essa função diz o valor IQT para cada linha
calc.processar_iqt()

🔹 6. Criação do Mapa

import geopandas as gpd

gdf_cidade = gdp.read_file(path_shapefile_cidade)

# Criando o objeto do mapa
mapa = iqt.MapaIQT(gdf_cidade)

# Adicionar no mapa as linhas de ônibus já com a classificação IQT

mapa.classificar_rota_grupo(calc.dados_completos)

🔹 7. Valores Atribuidos na Classificação

calc.classificao_linhas # DataFrame com os dados clissificados

calc.matriz # DataFrame com os dados calculcados/existentes

Classificação das Linha

id_linha I1 I2 I3 I4 I5 I6 I7 I8 I9 I10
101 3 2 1 0 0 3 2 3 0 1
102 3 2 1 0 0 3 2 3 0 1

Dados Calculados

id_linha I1 I2 I3 I4 I5 I6 I7 I8 I9 I10
101 1 148.12 Integração tarifária temporal ocorre em determinados pontos, apenas com transferências intramodais 0 49.8 1.45 0.98 1 Possuir informações em site e aplicativo atualizados Aumento equivalente ao índice
102 2 111.12 Integração tarifária temporal ocorre em determinados pontos, apenas com transferências intramodais 0 21.8 1.75 0.78 1 Possuir informações em site e aplicativo atualizados Aumento equivalente ao índice

🤝 Contribuindo

Contribuições são bem-vindas! Para contribuir:

  • Fork o repositório.
  • Crie uma branch (feature/nova-funcionalidade).
  • Faça suas alterações e commit (git commit -m "Adiciona nova funcionalidade").
  • Envie um Pull Request.

📜 Licença

Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes. 👨‍💻 Autor

Desenvolvido por Yago Maia - GitHub: https://github.com/YagoMaia

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quali_bus-0.2.0.tar.gz (26.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quali_bus-0.2.0-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file quali_bus-0.2.0.tar.gz.

File metadata

  • Download URL: quali_bus-0.2.0.tar.gz
  • Upload date:
  • Size: 26.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.1 Windows/11

File hashes

Hashes for quali_bus-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3476ebe05de43f475c464deb26b63787462d72aaf5e30f4ef67ad3a8f5f786b4
MD5 b0154d650146f332b367d02c2662fa75
BLAKE2b-256 63c448af941829109b90b4c9028cf35de882dd22612a8a59bffec33b720f58f1

See more details on using hashes here.

File details

Details for the file quali_bus-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: quali_bus-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.1 Windows/11

File hashes

Hashes for quali_bus-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53baf3cad94cd954e902538c9044c5ddada55cd22597bcd471469eed2308155e
MD5 b13af6077c0097f1c3a4631f5872d7f3
BLAKE2b-256 a16d6648ab8deba6e10187e64add16b20d5194e2d33ff256bb74c961065036e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page