Visão Geral do Pipeline

O sistema processa um arquivo Excel exportado do Hexagon em quatro etapas sequenciais:

1. Leitura 2. Limpeza 3. Identificação de POIs 4. Ranking TOP 50
1 Leitura do Arquivo

Tenta abrir a aba PlanilhaDadosOcorrencia; se não existir, usa a primeira aba. Colunas detectadas automaticamente por normalização de texto (sem acento, sem maiúsculas).

PapelNomes aceitos no Excel
LatitudeLatitude, lat
LongitudeLongitude, lon, lng
DataData Abertura, DataHora, DataOcorrencia
IDOcorrência, Numero, Protocolo
AgênciaAgência Principal, Agencia, Distrito
EndereçoLocalização, Logradouro, Endereço
2 Limpeza e Remoção de Duplicatas
Passagem 1 — Linhas Exatamente Iguais

Todos os campos idênticos → apenas a primeira linha é mantida.

IDDataLatAgênciaResultado
COR00101/11/2024-23.500Sul Mantida
COR00101/11/2024-23.500Sul Removida
Passagem 2 — Mesmo ID de Ocorrência (padrão Hexagon)

O Hexagon exporta uma linha por "Ponto Rio Águas" vinculado ao evento. Apenas a primeira aparição de cada ID é mantida.

IDDataLatAgênciaResultado
COR00101/11/2024-23.500Sul Mantida (1ª)
COR00101/11/2024-23.500Norte Removida (mesmo ID)
3 Identificação de Pontos de Interesse (POIs)

O primeiro registro cronológico de um local é o POI. Todos os eventos seguintes dentro de 100 metros são recorrências daquele POI.

Algoritmo de varredura cronológica
  1. Registros ordenados por data de abertura (mais antigo primeiro).
  2. Primeiro registro válido (com coordenadas) = POI nº 0.
  3. Para cada registro seguinte, calcula distância Haversine até todos os POIs existentes.
  4. ≤ 100 m → recorrência do POI mais próximo.
  5. > 100 m → novo POI criado naquele ponto.
Fórmula de Haversine
a = sin²(Δlat/2) + cos(lat₁) · cos(lat₂) · sin²(Δlon/2)
d = 2 · R · arcsin(√a)     [R = 6.371.000 m]
Otimização por bounding-box

Filtro retangular de ±0,0015° (≈ 167 m) aplicado antes do Haversine — qualquer POI dentro de 100 m está garantidamente na caixa, eliminando candidatos distantes sem cálculo trigonométrico.

4 Geração do Ranking TOP 50
Total Ocorrências (POI) = 1 (fundador) + N (recorrências dentro de 100 m)

POIs ordenados decrescentemente por total. Os 50 primeiros formam o relatório final.

Coluna Recorrências: cada evento histórico listado como ID | Data | Endereço, um por linha.

Limitações
  • Raio de 100 m fixo — locais próximos em logradouros distintos podem ser agrupados.
  • POI fundador é sempre o evento mais antigo do cluster.
  • Registros sem coordenadas são ignorados no agrupamento.
  • Não filtra por tipo de ocorrência — fazer a filtragem na exportação do Hexagon.