Pular para o conteúdo

API do Aimsun Next: Gerenciamento de Transporte Público

Ler número de Linhas de Transporte Público

Em C++ e Python

Explicação

Ler o número de linhas de transporte público carregadas.

Formato
int AKIPTGetNumberLines()
Parâmetros

Nenhum.

Saída
  • ≥ 0: Número de linhas de transporte público.
  • < 0: Error.

Ler o identificador de uma Linha de Transporte Público

Em C++ e Python

Explicação

Ler o identificador de uma linha de transporte público.

Formato
int AKIPTGetIdLine(int elem);
Parâmetros
  • elem: O número da linha de transporte público no intervalo 0 ≤ elem < Número de Linhas -1.
Saída
  • ≥ 0: Identificador da linha de transporte público.
  • < 0: Error.

Ler o número de veículos em uma Linha de Transporte Público

Em C++ e Python

Explicação

Lê o número de veículos que estão atualmente seguindo a rota de uma linha de transporte público.

Formato
int AKIGetNbVehiclesFollowingPTLine (int lineId)
Parâmetros
  • lineId: O identificador da linha de transporte público.
Saída
  • ≥ 0: Número de veículos na rota da linha de transporte público.
  • < 0: Error.

Ler o identificador de um veículo em uma Linha de Transporte Coletivo

Em C++ e Python

Explicação

Lê o identificador do veículo do n-ésimo veículo em uma rota de linha de transporte público.

Formato
int AKIGetVehicleFollowingPTLine(int lineId, int vehPos);
Parâmetros
  • lineId: O identificador da linha de transporte público.
  • vehPos: A posição do veículo na linha. Ela deve estar no intervalo 0 ≤ vehPost < AKIGetNbVehiclesFollowingPTLine.
Saída
  • ≥ 0: Identificador do veículo na rota da linha de transporte coletivo.
  • < 0: Error.

Ler o número de seções em uma Linha de Transporte Público

Em C++ e Python

Explicação

Ler o número de seções que definem a rota de uma linha de transporte público.

Formato
int AKIPTGetNumberSectionsInLine (int lineId)
Parâmetros
  • lineId: O identificador da linha de transporte público.
Saída
  • ≥ 0: Número de seções que definem a rota da linha de transporte público.
  • < 0: Error.

Ler o identificador de uma seção em uma Linha de Transporte Coletivo

Em C++ e Python

Explicação

Lê o identificador da seção da n-ésima seção em uma rota de linha de transporte público.

Formato
int AKIPTGetIdSectionInLine(int lineId, int elem);
Parâmetros
  • lineId: O identificador da linha de transporte público.
  • elem: O índice da seção. Deve estar no intervalo 0 ≤ elem < Number of Sections -1.
Saída
  • ≥ 0: Identificador da seção elem-th na rota da linha de transporte público.
  • < 0: Error.

Ler o número de paradas em uma Linha de Transporte Público

Em C++ e Python

Explicação

Ler o número de paradas em uma linha de transporte público.

Formato
int AKIPTGetNumberStopsInLine(int lineId)
Parâmetros
  • lineId: O identificador da linha de transporte público.
Saída
  • ≥ 0: Número de paradas na linha de transporte público com ID lineId.
  • < 0: Error.

Ler o identificador de uma parada em uma Linha de Transporte Coletivo

Em C++ e Python

Explicação

Ler o identificador da parada em uma linha de transporte público.

Formato
int AKIPTGetIdStopsInLine(int lineId, int elem);
Parâmetros
  • lineId: O identificador da linha de transporte público.
  • elem: A posição da parada na lista de paradas da linha entre 0 e AKIPTGetNumberStopsInLine(for the transit line).
Saída
  • ≥ 0: Identificador da parada elem-ésima na linha de transporte público.
  • < 0: Error.

Introduzir um Veículo de Transporte Público

Em C++ e Python

Explicação

Introduzir um veículo de transporte público no sistema.

Formato
int AKIPTEnterVeh (int lineId, int vehTypePos, bool tracked);
Parâmetros
  • lineId: O identificador da linha de transporte público.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. Deve ser usado um valor de 1 a AKIVehGetNbVehTypes().
  • rastreamento: False quando o veículo não deve ser rastreado; true caso contrário.
Saída
  • ≥ 0: identificador do veículo para o veículo inserido.
  • 0: Erro.

Ler o Tempo de Parada de um Veículo de Transporte Público

Em C++ e Python

Explicação

Ler o tempo de parada de um veículo.

Formato
double AKIPTGetServiceTimeStopsInLine (int aidVeh, int nstop)
Parâmetros
  • aidVeh: O identificador do veículo de transporte público.
  • nstop: Posição da parada para modificar seu tempo de parada na lista de paradas da linha. O valor vai de 0 a AKIPTGetNumberStopsInLine( para a linha de transporte coletivo do veículo).
Saída
  • &gt = 0: Tempo de Parada.
  • < 0: Error.

Modificar um Tempo de Parada de um Veículo de Transporte Público

Em C++ e Python

Explicação

Modifique o tempo de parada de um veículo. Quando o novo tempo de parada é definido como zero, a parada será ignorada pelo veículo.

Formato
int AKIPTVehModifyStopTime (int aidVeh, int nstop, double stopTime);
Parâmetros
  • aidVeh: O identificador do veículo de transporte público.
  • nstop: Posição da parada para modificar seu tempo de parada na lista de paradas da linha. Entre 0 e AKIPTGetNumberStopsInLine( para a linha de transporte público do veículo) .
  • stopTime: O novo tempo de parada do veículo na parada (em segundos).
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Error.

Ler as informações de um Veículo de Transporte Público

Em C++ e Python

Explicação

Ler as informações de um veículo de transporte público.

Formato
InfPTVeh AKIPTVehGetInf(int aidVeh)
Parâmetros
  • aidVeh: Identificador do veículo.
Saída
struct InfPTVeh{
    int report;
    int idVeh;
    int type;
    // Information in Vehicle when it is in a section
    int idSection;
    int segment;
    int numberLane;
    // Information in Vehicle when it is in a node
    int idJunction;
    int idSectionFrom;
    int idLaneFrom;
    int idSectionTo;
    int idLaneTo;
    double CurrentPos; 
    double distance2End;
    double xCurrentPos, yCurrentPos, zCurrentPos;
    double xCurrentPosBack, yCurrentPosBack, zCurrentPosBack; 
    double CurrentSpeed, PreviousSpeed;
    double TotalDistance;
    double SystemGenerationT;
    double SystemEntranceT;
    double SectionEntranceT;
    double CurrentStopTime;
    bool stopped;
    uint mNbLostTurnings;
    double theoreticalGenerationTime;   
    int nbStopsDone;
    double observedLastStopTime;
    double observedLastInitialStopTime;
    int nextStopId;
    double offsetInNextStop;
    double distanceNextStop;
    double nextServiceTime;
    double currentStoppedTmeInBusStop;
    int currentLoad;
    double energyState;
    bool isLost;
};

em que:

  • relatório: 0, OK, caso contrário, um código de erro.
  • idVeh: O identificador do veículo.
  • type: O tipo de veículo (carro, ônibus, caminhão etc.).
  • idSection: O identificador da seção, quando o veículo está em uma seção.
  • numberLane: Número da faixa, quando o veículo está em uma seção.
  • idSectionFrom: Identificador da seção de origem.
  • idLaneFrom: Faixa da seção de origem pela qual o veículo entra no cruzamento. 1 sendo a faixa mais à direita e N a faixa mais à esquerda, sendo N o número de faixas na seção de origem.
  • idSectionTo: Identificador da seção de destino.
  • idLaneTo: Faixa da seção de destino pela qual o veículo sai do cruzamento. 1 sendo a faixa mais à direita e N a faixa mais à esquerda, sendo N o número de faixas na seção de destino.
  • CurrentPos: Posição dentro da seção dada pela distância (metros ou pés, dependendo das unidades definidas na rede) a partir do início da seção, ou posição dentro do entroncamento dada pela distância desde a entrada do entroncamento.
  • distance2End: Distância até o fim da seção (metros ou pés, dependendo das unidades definidas na rede) quando o veículo está localizado em uma seção, ou a distância até o fim do movimento de conversão quando o veículo está em uma junção.
  • xCurrentPos, yCurrentPos, zCurrentPos: Coordenadas globais do ponto médio do para-choque dianteiro do veículo.
  • xCurrentPosBack, yCurrentPosBack, zCurrentPosBack: Coordenadas globais do ponto médio do para-choque traseiro do veículo.
  • CurrentSpeed: A velocidade atual (em km/h ou mph, dependendo das unidades definidas na rede.
  • PreviousSpeed: A velocidade na etapa de simulação anterior (em km/h ou mph, dependendo das unidades definidas na rede.
  • TotalDistance: A distância total percorrida (metros ou pés).
  • SystemGenerationT: O tempo absoluto de geração do veículo no sistema. Se nenhuma fila virtual estava presente em sua seção de entrada, será igual ao SystemEntranceT.
  • SystemEntranceT: O tempo absoluto de entrada do veículo no sistema, ou seja, em sua seção de entrada. Se nenhuma fila virtual for encontrada na seção de entrada, será igual ao SystemGenerationT.
  • SectionEntranceT: O tempo absoluto de entrada do veículo na seção atual.
  • CurrentStopTime: O tempo de parada atual.
  • parado: True se o veículo permanecer parado.
  • mNbLostTurnings O número de movimentos de conversão perdidos.
  • theoreticalGenerationTime: O tempo teórico de geração de acordo com a tabela de horários.
  • nbStopsDone: O número de paradas concluídas.
  • observedLastStopTime: A duração total da última parada.
  • observedLastInitialStopTime: O tempo inicial da última parada.
  • nextStopId: Identificador da próxima parada se o veículo não estiver atualmente parando em uma parada, ou o identificador da parada atual quando ele estiver na parada.
  • offsetInNextStop: Defasagem atribuída à próxima parada
  • distanceNextStop: Distância até a próxima parada (metros ou pés).
  • nextServiceTime: Se o veículo estiver em uma parada: o tempo de parada atual. Se o veículo não estiver em uma parada; o tempo de parada planejado na próxima parada(segundos)
  • currentStoppedTimeInBusStop: O tempo de parada até agora na parada atual (segundos).
  • currentLoad: Número atual de pessoas dentro do veículo de transporte público.
  • energyState Nível atual do tanque de combustível em veículos a combustão (l) ou Estado de Carga atual da bateria em veículos elétricos (kW)
  • isLost Verdadeiro se o veículo estiver perdido e não puder alcançar seu destino.

Ler as Informações Estáticas de um Veículo de Transporte Coletivo

Em C++ e Python

Explicação

Lê as informações estáticas de um veículo de transporte público. Informações estáticas significam as características do veículo que foram definidas quando o veículo entrou no sistema.

Formato
StaticInfPTVeh AKIPTVehGetStaticInf(int aidVeh);
Parâmetros
  • aidVeh: identificador do veículo.
Saída
struct StaticInfPTVeh{
    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 maxCapacity;
    int idLine;
    int engineTypeId;
    int EUEmissionId;
    double energyCapacity;
};

em que:

  • relatório: 0, OK, caso contrário, um código de erro.
  • idVeh: Identificador do veículo.
  • type: O 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: Desaceleração máxima do veículo que pode ser aplicada em condições normais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • maxDeceleration: Desaceleração máxima do veículo que pode ser aplicada 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 precedente (metros ou pés, dependendo das unidades definidas na rede).
  • giveWayTime: O tempo após o qual o veículo se torna mais agressivo em situações de cedência de passagem (segundos).
  • guidanceAcceptance: O nível de conformidade do veículo com as indicações de orientação.
  • em rota: 0: o veículo não atualizará o caminho em rota. 1: o veículo mudará o caminho em rota. Isso depende da porcentagem de veículos que atualizam o caminho em rota definida para o tipo de veículo.
  • equipados: 0: veículo não está equipado. 1: veículo está equipado.
  • rastreados: 0: o veículo não é rastreado. 1 significa que o veículo é rastreado.
  • keepfastLane: O veículo permanece na faixa rápida durante a ultrapassagem.
  • safetyMarginFactor: Fator de margem de segurança.
  • headwayMin: Headway mínimo a manter em relação ao seu líder.
  • sensitivityFactor: Fator de estimativa da aceleração do líder.
  • reactionTime: Tempo de reação do veículo.
  • reactionTimeAtStop: Tempo de reação do veículo quando parado.
  • reactionTimeAtTrafficLight: Tempo de reação do veículo quando ele é o primeiro na fila em um semáforo.
  • laneChangingCooperation:
  • laneChangingAggressivenessLevel:
  • distanceZoneFactor:
  • maxCapacity: Número máximo de pessoas dentro de um veículo de transporte público.
  • idLine: Identificador da linha de transporte público.
  • engineTypeId: Identificador do tipo de motor do veículo (modelos de emissão, consumo e aceleração MFC), em que: None = 0, Petrol = 1, Diesel = 2, Electric = 3, LPG = 4.
  • EUEmissionId: Identificador Standard Emission para LEM. Null= 0, Zero = 1, Euro 0 = 2, Euro 1 = 3, Euro 2 = 4, Euro 3= 5, Euro 4 = 6, Euro 5 = 7, Euro 6 = 8, Euro 6c = 9 (Light Duty vehicles (car, taxi, van) ), Euro I = 10, Euro II = 11, Euro III = 12, Euro IV = 13, Euro IV EGR = 14, Euro V = 15, Euro V EGR = 16, Euro V SCR = 17, Euro VI = 18 (Heavy Duty vehicles (LGV, HGV, Bus, Coach) ).
  • energyCapacity: Capacidade Total do tanque (l) ou da bateria (kW)

Modificar as Informações Estáticas de um Veículo de Transporte Coletivo

Em C++ e Python

Explicação

Modifique alguns parâmetros estáticos de um veículo de transporte público. Parâmetros estáticos significam as características do veículo que foram definidas quando o veículo entrou no sistema. Os parâmetros estáticos que podem ser alterados são: type, length, width, maxDesiredSpeed, maxAcceleration, normalDeceleration, maxDeceleration, speedAcceptance, minDistanceVeh, giveWayTime, guidanceAcceptance, em rota, equipados, rastreados, keepfastLane, safetyMarginFactor, headwayMin, sensitivityFactor, reactionTime, reactionTimeAtStop, e reactionTimeAtTrafficLight. O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los posteriormente.

Formato
int AKIPTVehSetStaticInf(int aidVeh, StaticInfPTVeh staticinfVeh)
Parâmetros
  • aidVeh: Identificador do veículo.
  • staticinfVeh: Novos parâmetros estáticos a serem atribuídos.
Saída
  • = 0: Sem erro.
  • < 0: Error.

Modificar a carga atual do veículo

Em C++ e Python

Explicação

Modifique o número de pessoas dentro do veículo de transporte público. O novo valor não pode ser maior que a capacidade máxima.

Formato
int AKIPTVehSetCurrentLoad (int aidVeh, int currentLoad);
Parâmetros
  • aidVeh: O identificador do veículo de transporte público.
  • currentLoad: A nova carga do veículo de transporte público.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Error.

Modificar a rota atual do veículo

Em C++ e Python

Explicação

Modifica a rota do veículo de transporte público. Isso fará com que um veículo especificado se desvie de sua rota prescrita, atenda pontos de ônibus nesse desvio e retorne à sua rota original ao final do desvio. Essa função destina-se ao uso no tratamento de incidentes para desviar temporariamente veículos de transporte público ou na modelagem de interações dinâmicas entre ônibus e passageiros com desvios sob demanda.

Formato
int     AKIPTVehReroute(int aidVeh, int nbsections, int *aSections, int *aNewstops, double *aDwellTime, double *aOffset);
Parâmetros
  • aidVeh: O identificador do veículo de transporte público.
  • nbsections: Número de seções fornecidas. Também usado para informar o tamanho dos novos arrays de paradas, tempo de permanência e offset.
  • aSections: Array contendo os identificadores de seção atribuídos à nova rota. A primeira seção e a última seção devem fazer parte da linha de transporte público original.
  • aNewstops: Array contendo os identificadores de paradas atribuídos a cada nova seção da rota. Se não houver parada nessa seção, defina o valor como 0.
  • aDwellTime: Array contendo o tempo de parada atribuído à parada em cada nova seção da rota. Se não houver parada nessa seção, defina o valor como 0.
  • aOffset: Array contendo o valor de deslocamento que fornece o horário de partida atribuído à parada em cada nova seção da rota. Se não houver parada nessa seção, defina o valor como 0.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Error.

Modificar a rota atual de transporte público

Em C++ e Python

Explicação

Modificar a rota de uma linha de transporte público. Isso adicionará à rota um novo conjunto de seções após uma seção de divergência designada. A proporção de veículos de transporte público que então usam este segmento de rota pode ser especificada. Ao final do subcaminho, a rota retorna à rota original da linha de transporte público.

Uma aplicação desta função seria em uma parada em uma linha de bonde quando há múltiplas plataformas para o mesmo destino e o requisito é selecionar uma delas. Os múltiplos caminhos que podem ser adicionados são mostrados abaixo.


Subcaminhos de transporte público

Formato
int     AKIActionAddNextSubPathPTAction(int ang_sectionId, int nbSections, int * aSections, int idline, int VehType, double acomplianceLevel, double visibilityDistance);
Parâmetros
  • ang_sectionId: O identificador da última seção antes do desvio.
  • nbSections: O número de seções subsequentes fornecidas.
  • aSections: Um array contendo os identificadores das novas seções atribuídas à nova rota. A última seção no subcaminho também deve ser uma seção na rota de transporte público.
  • idline: Identificador da linha de transporte coletivo. Somente veículos de transporte coletivo seguindo esta linha serão afetados.
  • VehType: Tipo de veículo de transporte público. Somente veículos de transporte público deste tipo serão afetados. Um valor de 0 implica todos os tipos de veículos de transporte público que seguem a linha de transporte público.
  • acomplianceLevel: A proporção de veículos de transporte coletivo que seguirá a nova rota no intervalo 0 - 1.
  • visibilityDistance: A distância em metros onde os veículos começam a ver a ação.
Saída
  • Ponteiro de referência da ação.
  • NULL/None: Erro

Modificar a rota de transporte coletivo atual e as paradas de transporte coletivo associadas

Em C++ e Python

Explicação

Modificar a rota de uma linha de transporte público adicionando novas seções com paradas de transporte público associadas.

Formato
int     AKIActionAddNextSubPathAndStopsPTAction(int ang_sectionId, int nbSections, int * aSections, int *aStops, double *aDwellTime, double *aOffset, int idline, int VehType, double acomplianceLevel, double , double visibilityDistance);
Parâmetros
  • ang_sectionId: O identificador da última seção antes do desvio.
  • nbSections: O número de seções subsequentes fornecidas. Isso também fornece o tamanho dos arrays de novas paradas, tempo de permanência e deslocamento.
  • aSections: Um array contendo os identificadores das novas seções atribuídas à nova rota. A última seção no subcaminho também deve ser uma seção na rota de transporte público.
  • aStops: Um array contendo os identificadores das paradas atribuídas em cada nova seção da rota. Onde nenhuma parada estiver definida, é definido um valor zero.
  • aDwellTime: Um array contendo o tempo de permanência atribuído à parada em cada nova seção da rota. Se não houver parada nessa seção, defina o valor como 0..
  • aOffset: Uma matriz contendo o valor de offset que fornece o horário de partida atribuído à parada em cada nova seção da rota. Se não houver parada nessa seção, defina o valor como 0..
  • idline: Identificador da linha de transporte público. Somente veículos de transporte público que seguem esta linha de transporte público são afetados.
  • VehType: Tipo de veículo de transporte público. 0 significa que afeta qualquer tipo de veículo que siga a Linha de transporte público.
  • acomplianceLevel: A proporção de veículos que seguirão a nova rota no intervalo 0 - 1.
  • visibilityDistance: distância em metros a partir da qual os veículos começam a ver a ação.
Saída
  • Ponteiro de referência da ação.
  • NULL/None: Erro