Pular para o conteúdo

Scripts de Modelagem Macroscópica do Aimsun Next

O Plug-in Macro do Aimsun Next oferece serviços para executar uma alocação de tráfego (single ou multi user), ajustar uma matriz OD usando dados de detecção e calcular a matriz de travessia para uma área arbitrária da rede.

Para usar os recursos do Macrosimulator, primeiro importe seus módulos Python:

from PyMacroKernelPlugin import *
from PyMacroAdjustmentPlugin import *
from PyMacroToolPlugin import *
from PyMacroPTPlugin import *
from PyPTAdjustmentPlugin import *

 Os recursos macroscópicos estão disponíveis nas assinaturas anuais das Edições Advanced e Expert do Aimsun Next.

Alocação Macro

Para executar um experimento existente:

  1. Obter o experimento macro (neste exemplo, usando seu identificador).
  2. Execute a ação que roda o experimento.

como mostrado no exemplo abaixo:

experiment = model.getCatalog().find( 720 )
selection = []
GKSystem.getSystem().executeAction( "execute", experiment, selection, "static assignment")

O GKSystem.getSystem().executeAction() método executa o executar ação sobre o experimento (id 720) e os objetos na lista de seleção (aqui, essa lista está vazia). O identificador único da tarefa de ação é definido como "static assignment".

O experiment.getStatsManager().createTrafficState() método é então usado para criar estados de tráfego usando os resultados do experimento:

experiment.getStatsManager().createTrafficState()

Recuperando resultados de atribuição do banco de dados

Para recuperar resultados de atribuição do banco de dados, chame o recuperar ação:

experiment = model.getCatalog().find( 720 )
selection = []
GKSystem.getSystem().executeAction( "retrieve", experiment, selection, "static assignment retrieve")

Recuperando caminhos de um arquivo APA

Para recuperar caminhos de um arquivo APA, chame o retrievePaths ação:

experiment = model.getCatalog().find( 720 )
selection = []
GKSystem.getSystem().executeAction( "retrieve_paths", experiment, selection, "")

Exemplo: Ajuste de Matriz

Para realizar um ajuste de demanda:

  1. Obter o experimento.
  2. Configure os parâmetros de ajuste.
  3. Execute o ajuste.
  4. Salve as matrizes ajustadas.

conforme mostrado no exemplo abaixo usando o experimento 720 e um ID de agrupamento de detectores 762:

experiment = model.getCatalog().find( 720 )
scenario = experiment.getScenario()
parameters = scenario.getParams()
experiment.setOuterIterations( 10 )
experiment.setGradientDescentIterations( 10 )
parameters.setDetectorGrouping( 762 )
GKSystem.getSystem().executeAction( "execute_adj", experiment, [], "" )
experiment.getOutput().publishMatrices( model )

Exemplo: ajuste de partida OD estático

Para executar um ajuste estático de partidas OD:

  1. Obtenha o experimento de ajuste de partidas OD estático.
  2. Chame a ação de kernel "execute".

conforme mostrado no exemplo abaixo usando o experimento 720

depAdtExperiment = model.getCatalog().find( 1001 )
GKSystem.getSystem().executeAction( "execute", depAdtExperiment, [], "" )

Exemplo: Alocação Macroscópica de Transporte Público

Para executar uma Transit Assignment estática:

  1. Obter o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
  2. Chame a ação de kernel "execute".
macroPtExperiment = model.getCatalog().find( 1001 )
GKSystem.getSystem().executeAction( "execute", macroPtExperiment, [], "" )

Para recuperar os dados de uma Alocação de Transporte Público estática:

  1. Obter o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
  2. Chame a ação de kernel "retrieve" ou "retrieve_and_show" se os resultados recuperados devem ser exibidos na UI.
macroPtExperiment = model.getCatalog().find( 1001 )
GKSystem.getSystem().executeAction( "retrieve", macroPtExperiment, [], "" )

Para recuperar os caminhos de uma alocação estática de transporte público:

  1. Obter o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
  2. Chamar a ação de kernel "retrieve_paths".
macroPtExperiment = model.getCatalog().find( 1001 )
GKSystem.getSystem().executeAction( "retrieve_paths", macroPtExperiment, [], "" )

Exemplo: Ajuste Macroscópico de Transporte Público

Para executar um Ajuste de OD de Transporte Público estático:

  1. Obter o Experimento de Ajuste de OD de Transporte Público (neste exemplo, usando seu identificador).
  2. Chame a ação de kernel "execute".
macroPtAdjExperiment = model.getCatalog().find( 1001 )
GKSystem.getSystem().executeAction( "execute", macroPtAdjExperiment, [], "" )

Para acessar os resultados do Adjustment e publicar a demanda e as matrizes ajustadas

  1. Obter o Experimento de Ajuste de OD de Transporte Público (neste exemplo, usando seu identificador).
  2. Acesse seu resultado.
  3. A partir do resultado, crie a demanda ajustada (e suas matrizes) ou acesse as classes de usuário e crie as matrizes por usuário.

macroPtAdjExperiment = model.getCatalog().find( 1001 )
macroPTAdjustmentResults = macroPtAdjExperiment.getResult()
macroPTAdjustmentResults.publishAdjustedDemand( model )
`````
macroPtAdjExperiment = model.getCatalog().find( 1001 ) macroPTAdjustmentResults = macroPtAdjExperiment.getResult() users = macroPTAdjustmentResults.getUsers() for user in users: macroPTAdjustmentResults.publishMatrix( user, true ) ````

Exemplo: Cálculo de travessia estática

Para realizar um cálculo de percurso estático:

  1. Obter o experimento.
  2. Obter a sub-rede a partir da qual a travessia será criada.
  3. Configure os parâmetros de cálculo de travessia.
  4. Executar o cálculo de travessia.

como mostrado no exemplo abaixo:

from PyMacroToolPlugin import *

experiment = model.getCatalog().find( 720 )
subNet = model.getCatalog().find( 675 )

plugin = GKSystem.getSystem().getPlugin( "MacroToolsPlugin" )
parameters = MacroTraversalPars( problemNet, experiment, MacroTraversalPars.eOriginal )
plugin.traversal( parameters, "" )