@Override public void notifyStartup(StartupEvent event) { c.getEvents().addHandler(transitload); } });
@Override public void install() { bind(MobSimSwitcher.class).toInstance(mobSimSwitcher); bindMobsim().toProvider(SwitchingMobsimProvider.class); bind(WaitTimeCalculator.class).to(PSimWaitTimeCalculator.class); bind(WaitTime.class).toProvider(PSimWaitTimeCalculator.class); bind(StopStopTimeCalculator.class).to(PSimStopStopTimeCalculator.class); bind(StopStopTime.class).toProvider(PSimStopStopTimeCalculator.class); bind(TravelTimeCalculator.class).to(PSimTravelTimeCalculator.class); bind(TravelTime.class).toProvider(PSimTravelTimeCalculator.class); bind(TransitRouter.class).toProvider(TransitRouterEventsWSFactory.class); bind(PlanCatcher.class).toInstance(new PlanCatcher()); bind(PSimProvider.class).toInstance(new PSimProvider(scenario,matsimControler.getEvents())); bind(QSimProvider.class); } });
static void run(Config config) { final Scenario scenario = ScenarioUtils.createScenario( config ) ; Controler controler = new Controler( scenario ) ; final EventsManager events = controler.getEvents() ; controler.addOverridingQSimModule( new AbstractQSimModule(){ @Override public void configureQSim() { final ConfigurableQNetworkFactory factory = new ConfigurableQNetworkFactory( events, scenario ) ; factory.setLinkSpeedCalculator(null); // fill with something reasonable factory.setTurnAcceptanceLogic(null); // fill with something reasonable bind( QNetworkFactory.class ).toInstance( factory ) ; // NOTE: Other than when using a provider, this uses the same factory instance over all iterations, re-configuring // it in every iteration via the initializeFactory(...) method. kai, mar'16 } }); controler.run(); }
ConfigurableQNetworkFactory qNetworkFactory = new ConfigurableQNetworkFactory( controller.getEvents(), scenario ); qNetworkFactory.setTurnAcceptanceLogic( new TurnAcceptanceLogic() { TurnAcceptanceLogic delegate = new DefaultTurnAcceptanceLogic();
public static void main(String[] args) { Config config = ConfigUtils.createConfig(); ConfigUtils.loadConfig(config, args[0]); final Controler controler = new Controler(ScenarioUtils.loadScenario(config)); final WaitTimeStuckCalculator waitTimeCalculator = new WaitTimeStuckCalculator(controler.getScenario().getPopulation(), controler.getScenario().getTransitSchedule(), controler.getConfig(), controler.getEvents()); controler.getEvents().addHandler(waitTimeCalculator); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bind(TransitRouter.class).toProvider(new TransitRouterEventsWLFactory(controler, waitTimeCalculator.get())); } }); controler.run(); }
waitTimeCalculator = new WaitTimeCalculatorSerializable(matsimControler.getScenario().getTransitSchedule(), this.config.travelTimeCalculator().getTraveltimeBinSize(), (int) (this.config.qsim().getEndTime() - this.config.qsim().getStartTime())); matsimControler.getEvents().addHandler(waitTimeCalculator); stopStopTimeCalculator = new StopStopTimeCalculatorSerializable(matsimControler.getScenario().getTransitSchedule(), this.config.travelTimeCalculator().getTraveltimeBinSize(), (int) (this.config.qsim() .getEndTime() - this.config.qsim().getStartTime())); matsimControler.getEvents().addHandler(stopStopTimeCalculator); transitPerformanceRecorder = new TransitPerformanceRecorder(scenario, matsimControler.getEvents());
@Test public void controlerHandlesExceptionCorrectly() { Config config = utils.loadConfig("test/scenarios/equil/config_plans1.xml"); // config.qsim().setUsingThreadpool(false); Controler controler = new Controler(config); controler.getEvents().addHandler(new LinkLeaveEventHandler() { @Override public void handleEvent(LinkLeaveEvent event) { throw new RuntimeException("Haha, I hope the QSim exits cleanly."); } @Override public void reset(int iteration) { } }); try { controler.run(); } catch (RuntimeException e) { // That's fine. Only timeout is bad, which would mean qsim would hang on an Exception in an EventHandler. } }
controler.getEvents().addHandler(collector);
controler.getEvents().addHandler(collector);
public static void main(String[] args) { String configFile = "input/usecases/chessboard/passenger/config.xml"; Config config = ConfigUtils.loadConfig(configFile); Scenario scenario = ScenarioUtils.loadScenario(config); Controler controler = new Controler(config); final Carriers carriers = new Carriers(); new CarrierPlanXmlReaderV2(carriers).readFile("input/usecases/chessboard/freight/carrierPlans.xml"); CarrierVehicleTypes types = new CarrierVehicleTypes(); new CarrierVehicleTypeReader(types).readFile("input/usecases/chessboard/freight/vehicleTypes.xml"); new CarrierVehicleTypeLoader(carriers).loadVehicleTypes(types); CarrierPlanStrategyManagerFactory strategyManagerFactory = createStrategyManagerFactory(types, controler); CarrierScoringFunctionFactory scoringFunctionFactory = createScoringFunctionFactory(scenario.getNetwork()); CarrierModule carrierController = new CarrierModule(carriers, strategyManagerFactory, scoringFunctionFactory); controler.addOverridingModule(carrierController); prepareFreightOutputDataAndStats(scenario, controler.getEvents(), controler, carriers); controler.run(); }
public static void main(String[] args) { Config config = ConfigUtils.createConfig(); ConfigUtils.loadConfig(config, args[0]); final Controler controler = new Controler(ScenarioUtils.loadScenario(config)); final WaitTimeStuckCalculator waitTimeCalculator = new WaitTimeStuckCalculator(controler.getScenario().getPopulation(), controler.getScenario().getTransitSchedule(), controler.getConfig().travelTimeCalculator().getTraveltimeBinSize(), (int) (controler.getConfig().qsim().getEndTime()-controler.getConfig().qsim().getStartTime())); controler.getEvents().addHandler(waitTimeCalculator); final StopStopTimeCalculatorImpl stopStopTimeCalculator = new StopStopTimeCalculatorImpl(controler.getScenario().getTransitSchedule(), controler.getConfig().travelTimeCalculator().getTraveltimeBinSize(), (int) (controler.getConfig().qsim().getEndTime()-controler.getConfig().qsim().getStartTime())); controler.getEvents().addHandler(stopStopTimeCalculator); final VehicleOccupancyCalculator vehicleOccupancyCalculator = new VehicleOccupancyCalculator(controler.getScenario().getTransitSchedule(), ((MutableScenario)controler.getScenario()).getTransitVehicles(), controler.getConfig().travelTimeCalculator().getTraveltimeBinSize(), (int) (controler.getConfig().qsim().getEndTime()-controler.getConfig().qsim().getStartTime())); controler.getEvents().addHandler(vehicleOccupancyCalculator); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bind(TransitRouter.class).toProvider(new TransitRouterEventsWSVFactory(controler.getScenario(), waitTimeCalculator.get(), stopStopTimeCalculator.get(), vehicleOccupancyCalculator.getVehicleOccupancy())); } }); // yyyyyy note that in the above script only the router is modified, but not the scoring. With standard matsim, a slower bu // less crowded pt route will only be accepted by the agent when the faster but more crowded option was never presented // to the agent. (Alternatively, e.g. with the Singapore scenario, there may be boarding denials, in which case // routes that avoid crowded sections may also be beneficial.) kai, jul'15 controler.run(); }
transitPerformanceRecorder = new TransitPerformanceRecorder(matsimControler.getScenario(), matsimControler.getEvents(), mobSimSwitcher);
public static void main(String[] args) { Config config = ConfigUtils.createConfig(); ConfigUtils.loadConfig(config, args[0]); final Controler controler = new Controler(ScenarioUtils.loadScenario(config)); controler.getConfig().controler().setOverwriteFileSetting(OutputDirectoryHierarchy.OverwriteFileSetting.overwriteExistingFiles); final WaitTimeStuckCalculator waitTimeCalculator = new WaitTimeStuckCalculator(controler.getScenario().getPopulation(), controler.getScenario().getTransitSchedule(), controler.getConfig().travelTimeCalculator().getTraveltimeBinSize(), (int) (controler.getConfig().qsim().getEndTime()-controler.getConfig().qsim().getStartTime())); controler.getEvents().addHandler(waitTimeCalculator); final StopStopTimeCalculatorImpl stopStopTimeCalculator = new StopStopTimeCalculatorImpl(controler.getScenario().getTransitSchedule(), controler.getConfig().travelTimeCalculator().getTraveltimeBinSize(), (int) (controler.getConfig().qsim().getEndTime()-controler.getConfig().qsim().getStartTime())); controler.getEvents().addHandler(stopStopTimeCalculator); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bind(TransitRouter.class).toProvider(new TransitRouterEventsWSFactory(controler.getScenario(), waitTimeCalculator.get(), stopStopTimeCalculator.get())); } }); controler.run(); }
controler.getEvents().addHandler(collector);
controler.getEvents().addHandler(collector);
@Test public void testScenarioLoading() { final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config.xml")); Controler controler = new Controler( config ); // need to run the controler to get Scenario initilized controler.getConfig().controler().setLastIteration( 0 ); controler.run(); assertNotNull(controler.getScenario().getNetwork()); // is required, e.g. for changing the factories assertNotNull(controler.getScenario().getPopulation()); assertEquals(23, controler.getScenario().getNetwork().getLinks().size()); assertEquals(15, controler.getScenario().getNetwork().getNodes().size()); assertEquals(100, controler.getScenario().getPopulation().getPersons().size()); assertNotNull(controler.getEvents()); }
controler.getEvents().addHandler(travelTime); controler.addControlerListener(new StartupListener() { @Override