Medidas do Detetor da Aimsun Next API¶
Funções relacionadas às Medidas do Detetor¶
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