Skip to content

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:

  1. Obtenha o experimento macroscópico (neste exemplo, usando seu identificador).
  2. 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:

  1. Obtenha 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 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:

  1. Obtenha o experimento de ajuste de partida OD estático.
  2. 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:

  1. Obtenha o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
  2. 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:

  1. Obtenha o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
  2. 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:

  1. Obtenha o Experimento de Atribuição de Transporte Público (neste exemplo, usando seu identificador).
  2. 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:

  1. Obtenha o Experimento de Ajuste de OD de Transporte Público (neste exemplo, usando seu identificador).
  2. 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

  1. Obtenha o Experimento de Ajuste de OD de Transporte Público (neste exemplo, usando seu identificador).
  2. Acesse seu resultado.
  3. 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 )
`````
macroPtAdjExperiment = model.getCatalog().find( 1001 ) macroPTAdjustmentResults = macroPtAdjExperiment.getResult() users = macroPTAdjustmentResults.getUsers() for user in users: macroPTAdjustmentResults.publishMatrix( user, true ) ````

Exemplo: Cálculo de tráfego estático

Para realizar um cálculo de tráfego estático:

  1. Obtenha o experimento.
  2. Obtenha a sub-rede da qual o tráfego será criado.
  3. Configure os parâmetros de cálculo de tráfego.
  4. 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, "" )