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.1.tar.gz (26.5 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.1-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quali_bus-0.2.1.tar.gz
  • Upload date:
  • Size: 26.5 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.1.tar.gz
Algorithm Hash digest
SHA256 b4190b04e3c034f6342197597d65e1905f9a204e3bb64cec7a4c7cf114287270
MD5 ebfaf6911687f1b6c170bcc02b2bd9c2
BLAKE2b-256 0478d19efb7ea4403c15ddc3bb785da38a561db4fc4a7ce0cd269277c4896797

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quali_bus-0.2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9b2fe9c4c72049d1b5bbc3ab7682d666d3a1a677b3ff2084eaca369167619155
MD5 667e902f0c41a05af4b3d7a5e8c5e13f
BLAKE2b-256 bada17f947350de1fc461bc07878223c4a015b86b8688448e17e77e091f7a945

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