Ir para o conteúdo

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):

{
  "additional_metrics": ["Flow", "Delay Time", "Mean Speed"]
}

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

{
  "name": "Flow",
  "scope": "section",
  "object_ids": [1001, 1002, 1003],
  "aggregation": "sum"
}

Métricas Disponíveis por Escopo

Network Summary (Rede)

  • Flow - Fluxo de veículos
  • Delay Time - Tempo de atraso
  • Mean Speed - Velocidade média
  • Travel Time - Tempo de viagem
  • Number of Stops - Número de paradas
  • Density - Densidade de veículos
  • Total Distance - Distância total percorrida
  • Total Travel Time - Tempo total de viagem
  • Fuel Consumption - Consumo de combustível
  • Emissions - Emissões de poluentes

Section (Seção)

  • Flow - Fluxo na seção
  • Speed / Mean Speed - Velocidade na seção
  • Density - Densidade na seção
  • Mean Queue / Max Queue - Filas na seção
  • Travel Time - Tempo de viagem na seção
  • Delay - Atraso na seção

Turn (Movimento)

  • Flow - Fluxo do movimento
  • Turn Delay - Atraso do movimento
  • Missed 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:

  1. Navegue até a aba "Performance" ou "Métricas"
  2. Clique em "Adicionar Métrica"
  3. Selecione o escopo desejado
  4. Configure os filtros (objeto, faixa, veículo)
  5. Escolha o tipo de agregação se necessário

Configuração de Métricas Avançadas

Boas Práticas

  1. Comece pelo network_summary: Para objetivos principais, use métricas de rede
  2. Adicione granularidade conforme necessário: Use métricas por seção/nó para constraints específicas
  3. Evite excesso de métricas: Cada métrica adicional aumenta o processamento
  4. Documente os IDs usados: Mantenha um registro dos object_ids do seu modelo
  5. Verifique a disponibilidade: Nem todas as métricas estão disponíveis em todos os escopos

Próximos Passos