Scripts de Modelagem Macroscópica do Aimsun Next¶
O Plug-in Macro do Aimsun Next oferece serviços para executar uma atribuição de tráfego (usuário único ou múltiplo), ajustar uma matriz OD usando dados de detecção e calcular a matriz de tráfego para uma área arbitrária da rede.
Para usar os recursos do Macrosimulador, 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 Avançada e Especialista do Aimsun Next.
Atribuição Macroscópica¶
Para executar um experimento existente:
- Obtenha o experimento macroscópico (neste exemplo, usando seu identificador).
- Execute a ação que roda o experimento.
conforme mostrado no exemplo abaixo:
experiment = model.getCatalog().find( 720 )
selection = []
GKSystem.getSystem().executeAction( "execute", experiment, selection, "atribuição estática")
O GKSystem.getSystem().executeAction() método executa a ação execute no 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 "atribuição estática".
O método experiment.getStatsManager().createTrafficState() é então usado para criar estados de tráfego usando os resultados do experimento:
experiment.getStatsManager().createTrafficState()
Recuperando resultados da atribuição do banco de dados¶
Para recuperar resultados da atribuição do banco de dados, chame a ação retrieve:
experiment = model.getCatalog().find( 720 )
selection = []
GKSystem.getSystem().executeAction( "retrieve", experiment, selection, "recuperar atribuição estática")
Recuperando caminhos de um arquivo APA¶
Para recuperar caminhos de um arquivo APA, chame a ação retrievePaths:
experiment = model.getCatalog().find( 720 )
selection = []
GKSystem.getSystem().executeAction( "retrieve_paths", experiment, selection, "")
Exemplo: Ajuste de Matriz¶
Para realizar um ajuste de demanda:
- Obtenha 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 detector 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ática¶
Para realizar um ajuste de partida OD estática:
- Obtenha o experimento de ajuste de partida OD estático.
- Chame a ação do kernel "execute".
conforme mostrado no exemplo abaixo usando o experimento 720
depAdtExperiment = model.getCatalog().find( 1001 )
GKSystem.getSystem().executeAction( "execute", depAdtExperiment, [], "" )
Exemplo: Atribuição Macroscópica de Transporte Público¶
Para executar uma Atribuição de Transporte Público estática:
- Obtenha o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
- Chame a ação do kernel "execute".
macroPtExperiment = model.getCatalog().find( 1001 )
GKSystem.getSystem().executeAction( "execute", macroPtExperiment, [], "" )
Para recuperar os dados de uma Atribuição de Transporte Público estática:
- Obtenha o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
- Chame a ação do kernel "retrieve" ou "retrieve_and_show" se os resultados recuperados devem ser exibidos na interface do usuário.
macroPtExperiment = model.getCatalog().find( 1001 )
GKSystem.getSystem().executeAction( "retrieve", macroPtExperiment, [], "" )
Para recuperar os caminhos de uma Atribuição de Transporte Público estática:
- Obtenha o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
- Chame a ação do 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:
- Obtenha o Experimento de Ajuste de OD de Transporte Público (neste exemplo, usando seu identificador).
- Chame a ação do kernel "execute".
macroPtAdjExperiment = model.getCatalog().find( 1001 )
GKSystem.getSystem().executeAction( "execute", macroPtAdjExperiment, [], "" )
Para acessar os resultados do Ajuste e publicar a demanda e matrizes ajustadas
- Obtenha o Experimento de Ajuste de OD de Transporte Público (neste exemplo, usando seu identificador).
- Acesse seu resultado.
- Do resultado, crie a demanda ajustada (e suas matrizes) ou acesse as classes de usuários e crie as matrizes por usuário.
macroPtAdjExperiment = model.getCatalog().find( 1001 )
macroPTAdjustmentResults = macroPtAdjExperiment.getResult()
macroPTAdjustmentResults.publishAdjustedDemand( model )
`````
Exemplo: Cálculo de tráfego estático¶
Para realizar um cálculo de tráfego estático:
- Obtenha o experimento.
- Obtenha a sub-rede da qual o tráfego será criado.
- Configure os parâmetros de cálculo de tráfego.
- Execute o cálculo de tráfego.
conforme 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, "" )