Skip to content

Medidas do Detetor da Aimsun Next API

Notas

Se as medidas do detetor forem acessadas usando o Nome do Detetor, os valores retornados correspondem ao primeiro Detetor cujo nome corresponda ao nome passado como parâmetro. Portanto, quando um modelo de rede possui vários detetores com o mesmo nome, é melhor acessar as medidas do Detetor usando o Identificador do Detetor.

A detecção instantânea refere-se aos atributos medidos por um detetor naquele instante, sendo essa duração instantânea definida pelo Ciclo de Detecção, em contraste com os dados agregados coletados durante um intervalo de saída de detecção.

Ler Número de detetores

Em C++ e Python

Explicação

Ler o número total de detetores na rede viária

Formato
int AKIDetGetNumberDetectors ()
Parâmetros

Nenhum

Saída
  • > 0: Número total de detetores
  • < 0: Erro

Ler Identificador de um detetor

Em C++ e Python

Explicação

Ler o identificador do detetor elem-th.

Formato
int AKIDetGetIdDetector (int elem)
Parâmetros
  • elem: Número do detetor. Deve estar entre 0 e o número total de detetores -1
Saída
  • > 0: O identificador do detetor
  • < 0: Erro

Ler as Informações de um detetor

Em C++ e Python

Explicação

Ler as informações do detetor elem-th.

Formato
structA2KDetector AKIDetGetPropertiesDetector(int elem)
structA2KDetector AKIDetGetPropertiesDetectorById (int IdDetector)
Parâmetros
  • elem: Número do detetor. Deve estar entre 0 e o número total de detetores -1
  • IdDetector O identificador do detetor.
Saída
struct structA2KDetector {
    int report;
    int Id; 
    int IdSection
    int IdFirstLane;
    int IdLastLane;
    int Capabilities;
    double InitialPosition;     
    double FinalPosition;       
};

onde:

  • report: 0, OK, senão código de erro
  • Id: Identificador do detetor
  • IdSection: Identificador da seção onde o detetor está localizado
  • IdFirstLane: primeira faixa que o detetor cobre
  • IdLastLane: última faixa que o detetor cobre
  • Capabilities: conjunto de bits que codifica as capacidades de detecção.
  • InitialPosition: posição do início do detetor, em relação ao início da seção.
  • FinalPosition: posição do final do detetor, em relação ao início da seção.

Verificar as capacidades de detecção

Em C++ e Python

Explicação

Verificar as capacidades de detecção para um detetor lido anteriormente. Elas são usadas para verificar se um detetor pode detectar contagem, presença, velocidade, ocupação, tempo de cabeça, densidade ou veículos equipados.

Formato
bool AKIDetIsCountGather(int Capability);
bool AKIDetIsPresenceGather(int Capability);
bool AKIDetIsSpeedGather(int Capability);
bool AKIDetIsOccupancyGather(int Capability);
bool AKIDetIsHeadwayGather(int Capability);
bool AKIDetIsDensityGather(int Capability);
bool AKIDetIsInfEquippedVehGather (int Capability);
Parâmetros
  • Capability: Um conjunto de bits que codifica as capacidades de detecção. Este conjunto de bits pode ser obtido usando o AKIDetGetPropertiesDetector
Saída
  • true: Capacidade permitida.
  • false: Sem Capacidade ou Erro

Ler o Intervalo de Detecção

Em C++ e Python

Explicação

Ler o intervalo de detecção (segundos) usado para coletar as medidas agregadas.

Formato
double AKIDetGetIntervalDetection ()
Parâmetros
  • Nenhum
Saída
  • ≥ 0: o intervalo de detecção retornado em segundos
  • < 0: Erro

Ler o Intervalo de Detecção Instantânea

Explicação

Ler o intervalo (segundos) usado para coletar as medidas de detecção instantânea.

Formato
double AKIDetGetCycleInstantDetection ()
Parâmetros

Nenhum

Saída
  • ≥ 0: o intervalo de detecção retornado em segundos
  • < 0: Erro

Ler o número de medidas de Detecção Instantânea disponíveis durante o último ciclo de detecção

Em C++ e Python

Explicação

Ler o número de medidas de detecção instantânea disponíveis durante o último Ciclo de Detecção

int AKIDetGetNbMeasuresAvailableInstantDetection ()
Parâmetros

Nenhum

Saída
  • ≥ 0: número de medidas
  • < 0: Erro

Ler o Hora de Fim da medida de Detecção Instantânea disponível durante o último ciclo de detecção

Em C++ e Python

Explicação

Ler a hora de fim das medidas de detecção instantânea disponíveis durante o último Ciclo de Detecção.

Formato
double AKIDetGetEndTimeMeasureAvailableInstantDetection(int elem)
Parâmetros
  • elem: Número do detetor. Deve ser ≥ 0 e < número total de medidas disponíveis (veja a função anterior)
Saída
  • ≥ 0: o intervalo de detecção retornado em segundos
  • < 0: Erro

Ler a Presença Instantânea de um detetor

Em C++ e Python

Explicação

Ler a presença instantânea durante o último ciclo de detecção de um detetor. Isso será 0 se nenhum veículo tiver passado sobre o detetor e 1 caso contrário. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último ciclo e a segunda dá a medida para um instante específico durante o último ciclo (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetPresenceCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetPresenceInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime)
Parâmetros
  • IdDetector: O identificador do detetor.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • &ge 0: a presença retornada
  • < 0: Erro

Ler o Tempo Ocupado Instantâneo de um detetor

Em C++ e Python

Explicação

Ler a porcentagem do tempo que o detetor esteve ocupado em um instante. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação e a segunda dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
double AKIDetGetTimeOccupedCyclebyId (int IdDetector, int vehTypePos)
double  AKIDetGetTimeOccupedInstantDetectionbyId(int IdDetector, int vehType, double endtime);
Parâmetros
  • IdDetector: O identificador do detetor.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • ≥ 0: a porcentagem do tempo ocupado retornada
  • < 0: Erro

Ler a medida de Contador Instantânea de um detetor

Em C++ e Python

Explicação

Ler o número de veículos que passaram pelo detetor durante um instante. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação e a segunda dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetCounterCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetCounterInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime)
Parâmetros
  • IdDetector: O identificador do detetor.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • ≥ 0: o contador retornado
  • < 0: Erro

Ler a Velocidade Média Instantânea de um detetor

Em C++ e Python

Explicação

Ler a média instantânea da velocidade dos veículos (km/h ou mph dependendo das unidades definidas na rede) que estão sobre o detetor. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação e a última dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
double AKIDetGetSpeedCyclebyId (int IdDetector, int vehTypePos)
double AKIDetGetSpeedInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime)
Parâmetros
  • IdDetector: O identificador do detetor.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • ≥ 0: a velocidade retornada
  • < 0: Erro

Ler o Número Instantâneo de Intervals Ocupados de um detetor

Em C++ e Python

Explicação

Ler o número total de intervalos que o detetor esteve ocupado durante um instante. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação e a segunda dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetNbintervalsOccupedCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetNbintervalsOccupedInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detetor.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • ≥ 0: o número de intervalos retornado
  • < 0: Erro

Ler a Hora Inicial Instantânea de um Intervalo Ocupado de um detetor

Em C++ e Python

Explicação

Ler a hora inicial instantânea de um intervalo ocupado de um detetor. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação enquanto a última dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
double AKIDetGetIniTimeOccupedCyclebyId (int IdDetector, int elem, int vehTypePos)
double AKIDetGetIniTimeOccupedInstantDetectionbyId(int IdDetector, int elem, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detetor.
  • elem: O número do intervalo. Deve estar entre 0 e o número total de intervalos -1
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea
Saída
  • ≥ 0: a hora inicial retornada, em segundos a partir da meia-noite.
  • < 0: Erro

Ler a Hora Final Instantânea de um Intervalo Ocupado de um detetor

Em C++ e Python

Explicação

Ler a hora final instantânea de um intervalo ocupado de um detetor. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação e a última dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
double AKIDetGetFinTimeOccupedCyclebyId (int IdDetector, int elem, int vehTypePos)
double AKIDetGetEndTimeOccupedInstantDetectionbyId(int IdDetector, int elem, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detetor.
  • elem: O número do intervalo. Deve estar entre 0 e o número total de intervalos -1
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea
Saída
  • ≥ 0: a hora final retornada
  • < 0: Erro

Ler a Ocupação SCOOT de um detetor no Último Ciclo

Em C++ e Python

Explicação

Ler a ocupação instantânea em formato SCOOT, que requer 1 segundo como intervalo de detecção instantânea. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação enquanto a última dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetSCOOTOccupancyCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetSCOOTOccupancyInstantDetectionbyId( int IdDetector, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detetor.
  • vehTypePos A posição do tipo de veículo na lista de veículos tipos sendo usados. 0 deve ser usado para todos os veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea
Saída
  • ≥ 0: a ocupação SCOOT retornada
  • < 0: Erro

Ler a Densidade Instantânea de um detetor

Em C++ e Python

Explicação

Ler a densidade instantânea (expressa em veh/km ou veh/mi dependendo das unidades definidas na rede). É possível distinguir a detecção para diferentes tipos de veículos. No caso de um tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação enquanto a última função dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection).

Nota: A Densidade (veh/km) é calculada por faixa, não por seção. Porque uma seção pode conter duas ou mais faixas, por favor, esteja ciente do impacto do número de faixas no valor de saída. Por exemplo, um único veículo em uma seção de um quilômetro com três faixas retornaria um valor de densidade de 0,33.

Formato
double AKIDetGetDensityCyclebyId (int IdDetector, int vehTypePos)
double AKIDetGetDensityInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detetor.
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea
Saída
  • ≥ 0: a densidade instantânea retornada
  • < 0: Erro

Ler o Tempo de Cabeça de um detetor

Em C++ e Python

Explicação

Ler a média instantânea do tempo de cabeça entre veículos (tempo médio entre para-choque e para-choque) que passaram pelo detector. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação enquanto a última dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
double AKIDetGetHeadwayCyclebyId (int IdDetector, int vehTypePos)
double AKIDetGetHeadwayInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime)
Parâmetros
  • IdDetector: O identificador do detetor.
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea
Saída
  • ≥ 0: o tempo de cabeça retornado
  • < 0: Erro

Ler o Número Instantâneo de Veículos com suas Informações Estáticas coletadas por um detetor

Em C++ e Python

Explicação

Ler o número instantâneo de veículos que passaram pelo detetor, quando o detetor tem a capacidade de "Veículo Equipado" ativada. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação enquanto a última dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetNbVehsEquippedInDetectionCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (int IdDetector, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detetor.
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor a partir de 1 a AKIVehGetNbVehTypes (), para um tipo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • ≥ 0: o número de veículos
  • < 0: Erro

Ler o Número Instantâneo de Veículos sobre um detetor com suas Informações Estáticas coletadas por um detetor

Em C++ e Python

Explicação

Ler o número instantâneo de veículos sobre o detetor, quando o detetor tem a capacidade de "Veículo Equipado" ativada. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação enquanto a última dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetNbVehsEquippedOverCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetNbVehsEquippedOverInstantDetectionbyId (int IdDetector, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detetor.
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea
Saída
  • ≥ 0: o número de veículos
  • < 0: Erro

Ler as Informações Instantâneas sobre Veículos de um Detetor

Em C++ e Python

Explicação

Ler as informações estáticas instantâneas de todos os veículos equipados que passaram pelo detetor, quando o detetor tem a capacidade de "Veículo Equipado" ativada. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação enquanto a última dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection). É altamente recomendável que o ciclo de detecção seja igual ao passo de simulação. Isso pode ser feito verificando a opção Mesmo que o passo de simulação localizada na aba Principal do editor de cenários. Esta função requer que o número de veículos que passaram pelo detetor seja conhecido ao chamar AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId.

Formato
StaticInfVeh AKIDetGetInfVehInDetectionStaticInfVehCyclebyId (int iddet, int elem, int vehTypePos);
StaticInfVeh AKIDetGetInfVehInDetectionStaticInfVehInstantDetectionbyId(int iddet, int elem, int vehTypePos, double endtime);
Parâmetros
  • iddet: O identificador do detetor.
  • elem: O número do veículo. Deve estar entre 0 e o número total de identificadores de veículos - 1 retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
struct StaticInfVeh{
    int report;
    int idVeh;
    int type;
    double length;
    double width;
    double maxDesiredSpeed;
    double maxAcceleration;
    double normalDeceleration;
    double maxDeceleration;
    double speedAcceptance;
    double minDistanceVeh;
    double giveWayTime;
    double guidanceAcceptance;
    int enrouted;
    int equipped;
    int tracked;
    bool keepfastLane;
    double safetyMarginFactor;
    double headwayMin;
    double sensitivityFactor;
    double reactionTime;
    double reactionTimeAtStop;
    double reactionTimeAtTrafficLight;
    bool laneChangingCooperation;
    double laneChangingAggressivenessLevel;
    double distanceZoneFactor;
    int centroidOrigin;
    int centroidDest;
    int idsectionExit;
    int idLine;
    void * internalInfo;
};

onde:

  • report: 0, OK, senão código de erro
  • idVeh: Identificador do veículo
  • type: Tipo de veículo (carro, ônibus, caminhão, etc.)
  • length: Comprimento do veículo (m ou pés, dependendo das unidades definidas na rede).
  • width: Largura do veículo (m ou pés, dependendo das unidades definidas na rede).
  • maxDesiredSpeed: Velocidade máxima desejada do veículo (km/h ou mph, dependendo das unidades definidas na rede).
  • maxAcceleration: Aceleração máxima do veículo (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • normalDeceleration: Aceleração máxima que o veículo pode aplicar em condições normais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • maxDeceleration: Aceleração máxima que o veículo pode aplicar em condições especiais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • speedAcceptance: Grau de aceitação dos limites de velocidade.
  • minDistanceVeh: Distância que o veículo mantém entre si e o veículo que o precede (metros ou pés, dependendo das unidades definidas na rede).
  • giveWayTime: Tempo após o qual o veículo se torna mais agressivo em situações de dê preferência (segundos).
  • guidanceAcceptance: Nível de conformidade do veículo com indicações de orientação.
  • enrouted: 0 significa que o veículo não atualizará o caminho durante a viagem, 1 significa que o veículo mudará de caminho durante a viagem, dependendo da porcentagem definida de veículos que atualizam o caminho durante a viagem.
  • equipped: 1 significa veículo equipado.
  • tracked: 0 significa que o veículo não está rastreado, 1 significa que o veículo está rastreado.
  • keepfastLane: Significa que o veículo mantém a faixa rápida durante a ultrapassagem
  • safetyMarginFactor: Fator de Margem de Segurança
  • headwayMin: Tempo mínimo para manter com seu líder
  • sensitivityFactor: Estimativa da aceleração do líder
  • reactionTime: Tempo de reação do veículo
  • reactionTimeAtStop: Tempo de reação ao parar do veículo
  • reactionTimeAtTrafficLight: Tempo de reação do veículo ao ser parado o primeiro da fila em um semáforo.
  • laneChangingCooperation:
  • laneChangingAggressivenessLevel:
  • distanceZoneFactor:
  • centroidOrigin: Identificador do centroide de origem do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • centroidDest: : Identificador do centroide de destino do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • idsectionExit: : Identificador da seção de saída de destino do veículo, quando o centroide de destino utiliza porcentagens como destino (caso contrário é –1) e as condições de tráfego são definidas por uma matriz OD.
  • idLine: Identificador da Linha de Transporte, quando o veículo foi gerado como um veículo de transporte.
  • internalInfo: Somente para uso interno.

Ler as Informações Instantâneas sobre Veículos sobre um Detetor

Em C++ e Python

Explicação

Ler as informações estáticas instantâneas de todos os veículos equipados sobre o detetor, quando o detetor tem a capacidade de "Veículo Equipado" ativada. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação enquanto a última dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection). É altamente recomendável que o ciclo de detecção seja igual ao passo de simulação. Isso pode ser feito verificando a opção Mesmo que o passo de simulação localizada na aba Principal do editor de cenários. Esta função requer que o número de Veículos que passaram pelo detetor seja conhecido ao chamar AKIDetGetNbVehsEquippedOverCyclebyId ou AKIDetGetNbVehsEquippedOverInstantDetectionbyId.

Formato
StaticInfVeh AKIDetGetInfVehOverStaticInfVehCyclebyId (int iddet, int elem, int vehTypePos);
StaticInfVeh AKIDetGetInfVehInOverStaticInfVehInstantDetectionbyId(int iddet, int elem, int vehTypePos, double endtime);
Parâmetros
  • iddet: O identificador do detetor.
  • elem: O número do veículo. Deve estar entre 0 e o número total de identificadores de veículos - 1 retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
struct StaticInfVeh{
    int report;
    int idVeh;
    int type;
    double length;
    double width;
    double maxDesiredSpeed;
    double maxAcceleration;
    double normalDeceleration;
    double maxDeceleration;
    double speedAcceptance;
    double minDistanceVeh;
    double giveWayTime;
    double guidanceAcceptance;
    int enrouted;
    int equipped;
    int tracked;
    bool keepfastLane;
    double safetyMarginFactor;
    double headwayMin;
    double sensitivityFactor;
    double reactionTime;
    double reactionTimeAtStop;
    double reactionTimeAtTrafficLight;
    bool laneChangingCooperation;
    double laneChangingAggressivenessLevel;
    double distanceZoneFactor;
    int centroidOrigin;
    int centroidDest;
    int idsectionExit;
    int idLine;
    void * internalInfo;
};

onde:

  • report: 0, OK, senão código de erro
  • idVeh: Identificador do veículo
  • type: Tipo de veículo (carro, ônibus, caminhão, etc.)
  • length: Comprimento do veículo (m ou pés, dependendo das unidades definidas na rede).
  • width: Largura do veículo (m ou pés, dependendo das unidades definidas na rede).
  • maxDesiredSpeed: Velocidade máxima desejada do veículo (km/h ou mph, dependendo das unidades definidas na rede).
  • maxAcceleration: Aceleração máxima do veículo (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • normalDeceleration: Aceleração máxima que o veículo pode aplicar em condições normais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • maxDeceleration: Aceleração máxima que o veículo pode aplicar em condições especiais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • speedAcceptance: Grau de aceitação dos limites de velocidade.
  • minDistanceVeh: Distância que o veículo mantém entre si e o veículo que o precede (metros ou pés, dependendo das unidades definidas na rede).
  • giveWayTime: Tempo após o qual o veículo se torna mais agressivo em situações de dê preferência (segundos).
  • guidanceAcceptance: Nível de conformidade do veículo com indicações de orientação.
  • enrouted: 0 significa que o veículo não atualizará o caminho durante a viagem, 1 significa que o veículo mudará de caminho durante a viagem, dependendo da porcentagem definida de veículos que atualizam o caminho durante a viagem.
  • equipped: 1 significa veículo equipado.
  • tracked: 0 significa que o veículo não está rastreado, 1 significa que o veículo está rastreado.
  • keepfastLane: Significa que o veículo mantém a faixa rápida durante a ultrapassagem
  • safetyMarginFactor: Fator de Margem de Segurança
  • headwayMin: Tempo mínimo para manter com seu líder
  • sensitivityFactor: Estimativa da aceleração do líder
  • reactionTime: Tempo de reação do veículo
  • reactionTimeAtStop: Tempo de reação ao parar do veículo
  • reactionTimeAtTrafficLight: Tempo de reação do veículo ao ser parado o primeiro da fila em um semáforo.
  • laneChangingCooperation:
  • laneChangingAggressivenessLevel:
  • distanceZoneFactor:
  • centroidOrigin: Identificador do centroide de origem do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • centroidDest: : Identificador do centroide de destino do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • idsectionExit: : Identificador da seção de saída de destino do veículo, quando o centroide de destino utiliza porcentagens como destino (caso contrário é –1) e as condições de tráfego são definidas por uma matriz OD.
  • idLine: Identificador da Linha de Transporte, quando o veículo foi gerado como um veículo de transporte.
  • internalInfo: Somente para uso interno.

Ler as Informações Instantâneas sobre Veículos sobre um Detetor

Em C++ e Python

Explicação

Ler as informações estáticas instantâneas de todos os veículos equipados sobre o detetor, quando o detetor tem a capacidade de "Veículo Equipado" ativada. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação enquanto a última dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection). É altamente recomendável que o ciclo de detecção seja igual ao passo de simulação. Isso pode ser feito verificando a opção Mesmo que o passo de simulação localizada na aba Principal do editor de cenários. Esta função requer que o número de Veículos que passaram pelo detetor seja conhecido ao chamar AKIDetGetNbVehsEquippedOverCyclebyId ou AKIDetGetNbVehsEquippedOverInstantDetectionbyId.

Formato
StaticInfVeh AKIDetGetInfVehOverStaticInfVehCyclebyId (int iddet, int elem, int vehTypePos);
StaticInfVeh AKIDetGetInfVehInOverStaticInfVehACCParamsInstantDetectionbyId(int iddet, int elem, int vehTypePos, double endtime);
Parâmetros
  • iddet: O identificador do detetor.
  • elem: O número do veículo. Deve estar entre 0 e o número total de identificadores de veículos - 1 retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos sendo usados. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
struct StaticInfVeh{
    int report;
    int idVeh;
    int type;
    double length;
    double width;
    double maxDesiredSpeed;
    double maxAcceleration;
    double normalDeceleration;
    double maxDeceleration;
    double speedAcceptance;
    double minDistanceVeh;
    double giveWayTime;
    double guidanceAcceptance;
    int enrouted;
    int equipped;
    int tracked;
    bool keepfastLane;
    double safetyMarginFactor;
    double headwayMin;
    double sensitivityFactor;
    double reactionTime;
    double reactionTimeAtStop;
    double reactionTimeAtTrafficLight;
    bool laneChangingCooperation;
    double laneChangingAggressivenessLevel;
    double distanceZoneFactor;
    int centroidOrigin;
    int centroidDest;
    int idsectionExit;
    int idLine;
    void * internalInfo;
};

onde:

  • report: 0, OK, senão código de erro
  • idVeh: Identificador do veículo
  • type: Tipo de veículo (carro, ônibus, caminhão, etc.)
  • length: Comprimento do veículo (m ou pés, dependendo das unidades definidas na rede).
  • width: Largura do veículo (m ou pés, dependendo das unidades definidas na rede).
  • maxDesiredSpeed: Velocidade máxima desejada do veículo (km/h ou mph, dependendo das unidades definidas na rede).
  • maxAcceleration: Aceleração máxima do veículo (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • normalDeceleration: Aceleração máxima que o veículo pode aplicar em condições normais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • maxDeceleration: Aceleração máxima que o veículo pode aplicar em condições especiais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • speedAcceptance: Grau de aceitação dos limites de velocidade.
  • minDistanceVeh: Distância que o veículo mantém entre si e o veículo que o precede (metros ou pés, dependendo das unidades definidas na rede).
  • giveWayTime: Tempo após o qual o veículo se torna mais agressivo em situações de dê preferência (segundos).
  • guidanceAcceptance: Nível de conformidade do veículo com indicações de orientação.
  • enrouted: 0 significa que o veículo não atualizará o caminho durante a viagem, 1 significa que o veículo mudará de caminho durante a viagem, dependendo da porcentagem definida de veículos que atualizam o caminho durante a viagem.
  • equipped: 1 significa veículo equipado.
  • tracked: 0 significa que o veículo não está rastreado, 1 significa que o veículo está rastreado.
  • keepfastLane: Significa que o veículo mantém a faixa rápida durante a ultrapassagem
  • safetyMarginFactor: Fator de Margem de Segurança
  • headwayMin: Tempo mínimo para manter com seu líder
  • sensitivityFactor: Estimativa da aceleração do líder
  • reactionTime: Tempo de reação do veículo
  • reactionTimeAtStop: Tempo de reação ao parar do veículo
  • reactionTimeAtTrafficLight: Tempo de reação do veículo ao ser parado o primeiro da fila em um semáforo.
  • laneChangingCooperation:
  • laneChangingAggressivenessLevel:
  • distanceZoneFactor:
  • centroidOrigin: Identificador do centroide de origem do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • centroidDest: : Identificador do centroide de destino do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • idsectionExit: : Identificador da seção de saída de destino do veículo, quando o centroide de destino utiliza porcentagens como destino (caso contrário é –1) e as condições de tráfego são definidas por uma matriz OD.
  • idLine: Identificador da Linha de Transporte, quando o veículo foi gerado como um veículo de transporte.
  • internalInfo: Somente para uso interno.

Ler as Informações do Veículo de Controle de Cruzeiro Adaptativo a partir de um Detetor

Em C++ e Python

Explicação

Ler os parâmetros de Controle de Cruzeiro Adaptativo das informações estáticas do veículo de todos os veículos equipados que passaram pelo detetor, quando o detetor tem a capacidade de "Veículo Equipado" ativada. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção do tipo de veículo não é levada em conta. A primeira função dá a última medida disponível durante o último passo de simulação enquanto a segunda dá a medida para um instante específico durante o último passo de simulação (este tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection). É altamente recomendável que o ciclo de detecção seja igual ao passo de simulação. Isso pode ser feito verificando a opção Mesmo que o passo de simulação localizada na aba Principal do editor de cenários. Esta função requer que o número de Veículos que passaram pelo detetor seja conhecido ao chamar AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId.

Formato
StaticInfVehACCParams AKIDetGetInfVehInDetectionStaticInfVehACCParamsCyclebyId (int iddet, int elem, int vehTypePos);
StaticInfVehACCParams AKIDetGetInfVehInDetectionStaticInfVehACCParamsInstantDetectionbyId