1 package tutorial.programming.mobsimPassingVehicleQ;
3 import com.google.inject.Provider;
24 import javax.inject.Inject;
25 import java.util.HashMap;
37 class RunMobsimWithMultipleModeVehiclesExample {
39 public static void main ( String[] args ) {
42 Config config = ConfigUtils.loadConfig( args[0] ) ;
43 config.qsim().setLinkDynamics(QSimConfigGroup.LinkDynamics.PassingQ.toString());
44 config.plans().setRemovingUnneccessaryPlanAttributes(
true) ;
47 Scenario scenario = ScenarioUtils.loadScenario( config ) ;
50 Controler controler =
new Controler( scenario ) ;
51 controler.addOverridingModule(
new AbstractModule() {
53 public void install() {
54 bindMobsim().toProvider(MultipleModeVehiclesQSimFactory.class);
69 static class MultipleModeVehiclesQSimFactory
implements Provider<Mobsim> {
71 @Inject Scenario scenario;
72 @Inject EventsManager eventsManager;
77 QSimConfigGroup conf = scenario.getConfig().qsim();
79 throw new NullPointerException(
"There is no configuration set for the QSim. Please add the module 'qsim' to your config file.");
83 QSim qSim =
new QSim(scenario, eventsManager);
86 ActivityEngine activityEngine =
new ActivityEngine(eventsManager, qSim.getAgentCounter());
87 qSim.addMobsimEngine(activityEngine);
88 qSim.addActivityHandler(activityEngine);
91 QNetsimEngine netsimEngine =
new QNetsimEngine(qSim) ;
92 qSim.addMobsimEngine(netsimEngine);
93 qSim.addDepartureHandler(netsimEngine.getDepartureHandler());
95 TeleportationEngine teleportationEngine =
new TeleportationEngine(scenario, eventsManager);
96 qSim.addMobsimEngine(teleportationEngine);
98 AgentFactory agentFactory =
new DefaultAgentFactory(qSim);
100 PopulationAgentSource agentSource =
new PopulationAgentSource(scenario.getPopulation(), agentFactory, qSim);
101 Map<String, VehicleType> modeVehicleTypes =
new HashMap<>();
103 VehicleType car = VehicleUtils.getFactory().createVehicleType(Id.create(
"car", VehicleType.class));
104 car.setMaximumVelocity(60.0/3.6);
105 car.setPcuEquivalents(1.0);
106 modeVehicleTypes.put(
"car", car);
108 VehicleType bike = VehicleUtils.getFactory().createVehicleType(Id.create(
"bike", VehicleType.class));
109 bike.setMaximumVelocity(60.0/3.6);
110 bike.setPcuEquivalents(0.25);
111 modeVehicleTypes.put(
"bike", bike);
113 VehicleType bicycles = VehicleUtils.getFactory().createVehicleType(Id.create(
"bicycle", VehicleType.class));
114 bicycles.setMaximumVelocity(15.0/3.6);
115 bicycles.setPcuEquivalents(0.05);
116 modeVehicleTypes.put(
"bicycle", bicycles);
118 VehicleType walks = VehicleUtils.getFactory().createVehicleType(Id.create(
"walk", VehicleType.class));
119 walks.setMaximumVelocity(1.5);
120 walks.setPcuEquivalents(0.10);
121 modeVehicleTypes.put(
"walk", walks);
123 agentSource.setModeVehicleTypes(modeVehicleTypes);
125 qSim.addAgentSource(agentSource);