Métricas Avançadas
O OptFlow oferece um sistema avançado de especificação de métricas que permite coletar indicadores de desempenho com granularidade detalhada. Você pode especificar métricas por escopo geográfico, tipo de veículo, e aplicar diferentes tipos de agregação.
Escopos de Métricas
O Aimsun fornece estatísticas em diferentes níveis de agregação. O OptFlow suporta os seguintes escopos:
| Escopo | Descrição | Exemplo de Uso |
|---|---|---|
network_summary |
Estatísticas agregadas de toda a rede | Atraso total, fluxo total |
section |
Por seção (trecho de via) | Velocidade na Av. Paulista |
section_lane |
Por faixa dentro de seções | Fila na faixa da direita |
turn |
Por movimento de conversão | Fluxo de conversão à esquerda |
node |
Por nó/interseção | Atraso no cruzamento X |
sub_path |
Por sub-rota | Tempo de viagem no corredor |
detector |
Por detector | Contagem de veículos |
pt_stop |
Por parada de transporte público | Tempo de espera no ponto |
pt_line |
Por linha de transporte público | Velocidade comercial da linha |
Especificação de Métricas
Sintaxe Básica
A forma mais simples é usar apenas o nome da métrica (assumindo network_summary):
Especificação Detalhada
Para métricas granulares, use o formato MetricSpecification:
{
"additional_metrics": [
{
"name": "Flow",
"scope": "section",
"object_id": 1234
},
{
"name": "Mean Queue",
"scope": "section_lane",
"object_id": 1234,
"lane_number": 2
},
{
"name": "Speed",
"scope": "section",
"object_id": 5678,
"vehicle_type_id": 154
}
]
}
Campos Disponíveis
| Campo | Tipo | Descrição |
|---|---|---|
name |
string | Nome da métrica (obrigatório) |
scope |
string | Escopo da métrica (default: "network_summary") |
object_id |
number | ID do objeto alvo (seção, detector, etc.) |
object_ids |
number[] | Lista de IDs para agregação múltipla |
lane_number |
number | Número da faixa (0=todas, 1,2,3...=específica) |
vehicle_type_id |
number | ID do tipo de veículo (0=todos) |
aggregation |
string | Tipo de agregação |
include_series |
boolean | Incluir série temporal |
time_interval |
number | Índice do intervalo temporal |
Tipos de Agregação
Quando você especifica múltiplos objetos ou intervalos temporais, precisa definir como agregar os valores:
| Agregação | Descrição | Uso Típico |
|---|---|---|
mean |
Média aritmética | Velocidade média de um corredor |
max |
Valor máximo | Fila máxima ao longo do dia |
min |
Valor mínimo | Velocidade mínima (gargalo) |
sum |
Soma total | Fluxo total de um grupo de seções |
last |
Último valor | Valor final de uma simulação |
Exemplo de Agregação
Métricas Disponíveis por Escopo
Network Summary (Rede)
Flow- Fluxo de veículosDelay Time- Tempo de atrasoMean Speed- Velocidade médiaTravel Time- Tempo de viagemNumber of Stops- Número de paradasDensity- Densidade de veículosTotal Distance- Distância total percorridaTotal Travel Time- Tempo total de viagemFuel Consumption- Consumo de combustívelEmissions- Emissões de poluentes
Section (Seção)
Flow- Fluxo na seçãoSpeed/Mean Speed- Velocidade na seçãoDensity- Densidade na seçãoMean Queue/Max Queue- Filas na seçãoTravel Time- Tempo de viagem na seçãoDelay- Atraso na seção
Turn (Movimento)
Flow- Fluxo do movimentoTurn Delay- Atraso do movimentoMissed Turns- Conversões perdidas
Node (Nó)
Node Delay- Atraso no nóNode LOS- Nível de serviço do nóQueue at Node- Fila no nó
Exemplos Práticos
Exemplo 1: Corredor Viário
Monitorar múltiplas seções de um corredor:
{
"additional_metrics": [
{
"name": "Mean Speed",
"scope": "section",
"object_ids": [101, 102, 103, 104, 105],
"aggregation": "mean"
},
{
"name": "Flow",
"scope": "section",
"object_ids": [101, 102, 103, 104, 105],
"aggregation": "sum"
},
{
"name": "Max Queue",
"scope": "section",
"object_ids": [101, 102, 103, 104, 105],
"aggregation": "max"
}
]
}
Exemplo 2: Por Tipo de Veículo
Analisar indicadores separados por categoria veicular:
{
"additional_metrics": [
{
"name": "Flow",
"scope": "network_summary",
"vehicle_type_id": 154
},
{
"name": "Flow",
"scope": "network_summary",
"vehicle_type_id": 155
},
{
"name": "Delay Time",
"scope": "section",
"object_id": 1234,
"vehicle_type_id": 156
}
]
}
IDs de Tipos de Veículos
Os IDs dos tipos de veículos variam por modelo. Consulte a API /api/v1/aimsun/vehicle-types para obter a lista completa do seu modelo.
Exemplo 3: Série Temporal
Capturar a evolução de uma métrica ao longo do tempo:
{
"additional_metrics": [
{
"name": "Flow",
"scope": "section",
"object_id": 1234,
"include_series": true
}
]
}
Exemplo 4: Faixa Específica
Monitorar uma faixa específica de uma seção:
{
"additional_metrics": [
{
"name": "Mean Queue",
"scope": "section_lane",
"object_id": 1234,
"lane_number": 1
},
{
"name": "Mean Queue",
"scope": "section_lane",
"object_id": 1234,
"lane_number": 2
}
]
}
Usando Métricas em Fórmulas
As métricas coletadas podem ser usadas nas fórmulas de desempenho e constraints. O nome da métrica na fórmula segue um padrão:
# Métrica de rede (simples)
"Delay Time"
# Métrica de seção específica
"Flow Section 1234"
# Métrica por tipo de veículo
"Flow Vehicle 154"
# Métrica de faixa
"Mean Queue Lane 2 Section 1234"
Nomes de Métricas
Os nomes exatos das métricas compostas dependem de como o Aimsun as reporta. Consulte os logs de simulação ou a resposta da API para confirmar os nomes corretos.
Configuração pela Interface
Na interface web do OptFlow:
- Navegue até a aba "Performance" ou "Métricas"
- Clique em "Adicionar Métrica"
- Selecione o escopo desejado
- Configure os filtros (objeto, faixa, veículo)
- Escolha o tipo de agregação se necessário
Boas Práticas
- Comece pelo network_summary: Para objetivos principais, use métricas de rede
- Adicione granularidade conforme necessário: Use métricas por seção/nó para constraints específicas
- Evite excesso de métricas: Cada métrica adicional aumenta o processamento
- Documente os IDs usados: Mantenha um registro dos object_ids do seu modelo
- Verifique a disponibilidade: Nem todas as métricas estão disponíveis em todos os escopos
Próximos Passos
- Constraints: Use métricas granulares em restrições
- Multi-Objetivo: Crie objetivos usando métricas específicas
- Filtro de Demanda: Reduza o tempo de simulação para iterações mais rápidas
