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 indicador_iqt 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file indicador_iqt-0.1.8.tar.gz.
File metadata
- Download URL: indicador_iqt-0.1.8.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.2 CPython/3.13.1 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e89405cbfb64541305d521d5c65900d44e684a5b70e37dae899fd2e59d7e4f6
|
|
| MD5 |
828e4897ba2e1404c67bec2bcd01ec23
|
|
| BLAKE2b-256 |
711cce78a27419b967cab501f420baf27fabb928e369e4f746318e51462b1c40
|
File details
Details for the file indicador_iqt-0.1.8-py3-none-any.whl.
File metadata
- Download URL: indicador_iqt-0.1.8-py3-none-any.whl
- Upload date:
- Size: 29.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.2 CPython/3.13.1 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d3d9f35ffd4c9c801ba92d05a1876c93ed55e7990c44c2c3225b320c367972c
|
|
| MD5 |
14cf61f08fd4e14d8f43c2d575ad6a77
|
|
| BLAKE2b-256 |
3b98977031b09057a8af80eac4833034cab9ba1718f120b8c20b9f7d21a81c93
|