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:
- Obter o experimento macro (neste exemplo, usando seu identificador).
- 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:
- Obter o experimento.
- Configure os parâmetros de ajuste.
- Execute o ajuste.
- 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:
- Obtenha o experimento de ajuste de partidas OD estático.
- 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:
- Obter o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
- 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:
- Obter o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
- 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:
- Obter o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
- 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:
- Obter o Experimento de Ajuste de OD de Transporte Público (neste exemplo, usando seu identificador).
- 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
- Obter o Experimento de Ajuste de OD de Transporte Público (neste exemplo, usando seu identificador).
- Acesse seu resultado.
- 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 )
`````
Exemplo: Cálculo de travessia estática¶
Para realizar um cálculo de percurso estático:
- Obter o experimento.
- Obter a sub-rede a partir da qual a travessia será criada.
- Configure os parâmetros de cálculo de travessia.
- 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, "" )