Este repositório dedica-se à formulação de grafos com arestas ponderadas utilizando dados de tráfego intramunicipais do Estado de São Paulo (ESP).
O material gerado aqui é projetado para ser utilizado em cálculos de propagação espacial de doenças (como o sarampo, dengue, entre outras) utilizando modelos de inferência Bayesiana via R-INLA.
Para garantir o funcionamento correto do pipeline, os scripts devem ser executados na seguinte ordem (já que os Grafos #2 e #3 dependem dos resultados iniciais):
0_inventario_fontes_peso.Re1_grafo_rodoviario_sp.R(Podem ser rodados em qualquer ordem entre si)2_grafo_pesos_fundidos.R3_grafo_atalhos_fluxo.R
Abaixo está o detalhamento dos quatro scripts que compõem este repositório, seus insumos e os arquivos gerados.
NÃO é um grafo. É o script de pré-processamento para o reconhecimento das fontes de fluxo/tráfego. Ele lê cada fonte bruta, descreve sua estrutura e a converte em uma tabela agregada por par de municípios.
- Lê: Dados da ARTESP (pedágios), VDM/DER, OD/Metrô (
.dbf) e IBGE Ligações (da pastadados_entrada/). - Gera:
der_vdm_pares.csv,od_municipios_fluxo.csv,ibge_ligacoes_sp.csv(usados nos grafos #2 e #3) eartesp_praca_diaria.csv+ logs (salvos emResultados_Inventario/).
Monta o grafo base. Os nós são os municípios de SP. Existe uma aresta quando uma rodovia cruza a divisa entre dois municípios vizinhos; o peso é o número de vias que cruzam aquela divisa. Trata nós isolados ligando-os ao vizinho mais próximo.
- Lê: Shapefiles de municípios e malhas (federal, estadual e BC250) da pasta
dados_entrada/. - Gera: Matriz estrutural para o INLA (
C_estrutura.rds), pesos (W_pesos.rds), arquivo de restrições, grafo binário, mapas e logs (salvos emResultados_Grafo1/).
Pergunta respondida pelo modelo: "As cidades estão ligadas por estrada?"
Mantém EXATAMENTE a topologia do Grafo #1 (somente vizinhos físicos), mas substitui o peso "nº de vias" por uma fusão de 4 fontes (vias, VDM, OD e IBGE). Cada fonte é normalizada por log1p + z-score e combinada por média ponderada das fontes presentes.
- Lê: O arquivo
W_pesos.rdsdo Grafo #1, os 3 CSVs do Inventário, o shapefile de municípios e o dicionário OD. - Gera:
W_fundida.rds,C_fundida.rds, restrições, grafo binário, 2 mapas, tabela de arestas e pesos (grafo2_arestas_pesos.csv) e logs (salvos emResultados_Grafo2/).
Pergunta respondida pelo modelo: "As cidades vizinhas estão ligadas, e com que INTENSIDADE de tráfego?"
O grafo mais completo. Ele amplia a topologia além da vizinhança geográfica, adicionando atalhos de proximidade (cidades até 150 km de distância via kNN) e "saltos" de OD (pares de cidades distantes, mas com fluxo real e significativo de pessoas). Todas as fontes são normalizadas em uma régua única global, tornando os pesos comparáveis em toda a rede.
- Lê: Os mesmos insumos do Grafo #2 (
W_pesos.rds, os 3 CSVs e os shapefiles). - Gera:
W_grafo3.rds,C_grafo3.rds, restrições, grafo binário, 2 mapas, tabela de arestas (grafo3_arestas.csv) e logs (salvos emResultados_Grafo3/).
Pergunta respondida pelo modelo: "As cidades estão acopladas pelo FLUXO REAL e pela proximidade, mesmo sem fazer divisa territorial?"
Organização padronizada de diretórios (entradas e saídas):
.
├── 0_inventario_fontes_peso.R (Lê fontes brutas e gera os 3 CSVs estruturados)
├── 1_grafo_rodoviario_sp.R (Grafo #1: topologia de vizinhança + nº de vias)
├── 2_grafo_pesos_fundidos.R (Grafo #2: mesma topologia, pesos de 4 fontes fundidas)
├── 3_grafo_atalhos_fluxo.R (Grafo #3: adição de atalhos kNN e saltos OD de fluxo)
│
├── dados_entrada/ (Shapefiles e bases de dados brutas necessárias)
│
├── Resultados_Inventario/ (Saídas do Script 0: .csvs de VDM, OD e IBGE)
├── Resultados_Grafo1/ (Saídas do Script 1: W_pesos.rds, C_estrutura.rds, mapas)
├── Resultados_Grafo2/ (Saídas do Script 2: W_fundida.rds, C_fundida.rds, mapas)
└── Resultados_Grafo3/ (Saídas do Script 3: W_grafo3.rds, C_grafo3.rds, mapas)