/** * @param args the path to your config file */ public static void main(String[] args) { Config config; if (args.length==0 || args.length>1) { // --- create a config for the example scenario config = ConfigUtils.loadConfig("./examples/tutorial/example90TrafficLights/useSignalInput/withLanes/config.xml"); config.controler().setOverwriteFileSetting(OverwriteFileSetting.deleteDirectoryIfExists); config.controler().setLastIteration(0); config.controler().setOutputDirectory("output/runSignalSystemsExample/"); } else { // --- create a config from the arguments you provided config = ConfigUtils.loadConfig(args[0]); } run(config, true); // The run method is extracted so that a test can operate on it. }
@Override public void notifyStartup(StartupEvent event) { log.info("decongestion settings: " + congestionInfo.getDecongestionConfigGroup().toString()); this.outputDirectory = this.congestionInfo.getScenario().getConfig().controler().getOutputDirectory(); if (!outputDirectory.endsWith("/")) { log.info("Adjusting output directory."); outputDirectory = outputDirectory + "/"; } }
public SlaveScoreStats(Config config) { firstIter = config.controler().getFirstIteration(); int size = config.controler().getLastIteration() - firstIter+1; this.history = new double[4][size]; }
@Inject EventsHandlingImpl( final EventsManager eventsManager, final ControlerConfigGroup config, final OutputDirectoryHierarchy controlerIO) { this.eventsManager = eventsManager; this.writeEventsInterval = config.getWriteEventsInterval(); this.lastIteration = config.getLastIteration() ; this.eventsFileFormats = config.getEventsFileFormats(); this.controlerIO = controlerIO; this.writeMoreUntilIteration = config.getWriteEventsUntilIteration() ; }
@Inject OutputDirectoryHierarchy(ControlerConfigGroup config) { this(config.getOutputDirectory(), config.getRunId(), config.getOverwriteFileSetting()); }
@Test(expected = RuntimeException.class) public void testRunMobsim_missingMobsimFactory() { Config cfg = this.utils.loadConfig("test/scenarios/equil/config_plans1.xml"); cfg.controler().setLastIteration(0); cfg.controler().setMobsim("counting"); cfg.controler().setWritePlansInterval(0); Controler c = new Controler(cfg); c.getConfig().controler().setCreateGraphs(false); c.getConfig().controler().setDumpDataAtEnd(false); c.getConfig().controler().setWriteEventsInterval(0); c.run(); }
config.controler().setMobsim("dummy"); config.controler().setFirstIteration(0); config.controler().setLastIteration(7); controler.getConfig().controler().setCreateGraphs(false); controler.getConfig().controler().setDumpDataAtEnd(false); controler.getConfig().controler().setWriteEventsInterval(0); config.controler().setWritePlansInterval(0); controler.run(); Assert.assertTrue(new File(config.controler().getOutputDirectory() + "ITERS/it.0/0.linkstats.txt.gz").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.1/1.linkstats.txt.gz").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.2/2.linkstats.txt.gz").exists()); Assert.assertTrue(new File(config.controler().getOutputDirectory() + "ITERS/it.3/3.linkstats.txt.gz").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.4/4.linkstats.txt.gz").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.5/5.linkstats.txt.gz").exists()); Assert.assertTrue(new File(config.controler().getOutputDirectory() + "ITERS/it.6/6.linkstats.txt.gz").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.7/7.linkstats.txt.gz").exists());
/** * Test method for {@link org.matsim.core.mobsim.qsim.qnetsimengine.RunConfigurableQNetworkFactoryExample#main(java.lang.String[])}. */ @SuppressWarnings("static-method") @Test public final void testMain() { try { Config config = ConfigUtils.createConfig() ; config.controler().setOverwriteFileSetting( OverwriteFileSetting.deleteDirectoryIfExists ); config.controler().setLastIteration(5); RunConfigurableQNetworkFactoryExample.run(config); } catch ( Exception ee ) { throw new RuntimeException("something went wrong") ; } }
public static void main(String[] args) throws IOException { Config config = ConfigUtils.loadConfig(configFile, new NoiseConfigGroup()); Scenario scenario = ScenarioUtils.loadScenario(config); Controler controler = new Controler(scenario); controler.addOverridingModule(new NoiseModule(scenario)); controler.getConfig().controler().setOverwriteFileSetting(OutputDirectoryHierarchy.OverwriteFileSetting.deleteDirectoryIfExists); controler.run(); // optionally process the output data String workingDirectory = controler.getConfig().controler().getOutputDirectory() + "/ITERS/it." + controler.getConfig().controler().getLastIteration() + "/immissions/"; String receiverPointsFile = controler.getConfig().controler().getOutputDirectory() + "/receiverPoints/receiverPoints.csv"; NoiseConfigGroup noiseParameters = ConfigUtils.addOrGetModule(config, NoiseConfigGroup.class ) ; ProcessNoiseImmissions processNoiseImmissions = new ProcessNoiseImmissions(workingDirectory, receiverPointsFile, noiseParameters.getReceiverPointGap()); processNoiseImmissions.run(); }
public void setOverwriteFiles(final boolean overwriteFiles) { this.controler.getConfig().controler().setOverwriteFileSetting( overwriteFiles ? OutputDirectoryHierarchy.OverwriteFileSetting.overwriteExistingFiles : OutputDirectoryHierarchy.OverwriteFileSetting.failIfDirectoryExists ); }
private void createAndRunControler(Config config) { final Controler controler = new Controler(ScenarioUtils.loadScenario(config)); controler.addOverridingModule(new AbstractModule() { @Override public void install() { bind(Mobsim.class).to(DummyMobsim2.class); } }); controler.getConfig().controler().setCreateGraphs(false); controler.getConfig().controler().setDumpDataAtEnd(false); controler.getConfig().controler().setOverwriteFileSetting(OutputDirectoryHierarchy.OverwriteFileSetting.overwriteExistingFiles); controler.getConfig().controler().setWriteEventsInterval(0); config.controler().setWritePlansInterval(0); controler.run(); }
@Ignore @Test public void testIterationInServicesEqualsIterationInEvent() { Config config = ConfigUtils.createConfig(); config.controler().setLastIteration(1); config.controler().setOutputDirectory(utils.getOutputDirectory()); Controler controler = new Controler( config ); controler.addOverridingModule(new AbstractModule() { @Override public void install() { addControlerListenerBinding().toInstance(new IterationStartsListener() { @Override public void notifyIterationStarts(IterationStartsEvent event) { Assert.assertSame(event.getIteration(), event.getServices().getIterationNumber()); } }); } }); controler.run(); }
public Config createConfigWithTestInputFilePathAsContext() { try { Config config = ConfigUtils.createConfig(); config.setContext(new File(this.getInputDirectory()).toURI().toURL()); this.outputDirectory = getOutputDirectory(); config.controler().setOutputDirectory(this.outputDirectory); return config; } catch (MalformedURLException e) { throw new RuntimeException(e); } }
@Inject TerminateAtFixedIterationNumber(ControlerConfigGroup controlerConfigGroup) { this.lastIteration = controlerConfigGroup.getLastIteration(); }
public Config prepareConfig(){ final URL url = ExamplesUtils.getTestScenarioURL("freight-chessboard-9x9"); final URL configURL = IOUtils.newUrl(url, "config.xml"); config = ConfigUtils.loadConfig(configURL ); config.controler().setOverwriteFileSetting( OutputDirectoryHierarchy.OverwriteFileSetting.overwriteExistingFiles ); config.global().setRandomSeed(4177); config.controler().setOutputDirectory("./output/"); return config; }
@Override public void notifyIterationEnds(IterationEndsEvent event) { if (event.getIteration() != scenario.getConfig().controler().getLastIteration()) return; try { delegate.writeSimulationResultsToTabSeparated(scenario.getConfig().controler().getOutputDirectory(),"output_"); } catch (IOException e) { log.error("Writing of traveldiaries failed."); e.printStackTrace(); } } }
cConfig.setInputFile("counts.xml"); // just any file to activate the counts feature config.controler().setMobsim("dummy"); config.controler().setFirstIteration(0); config.controler().setLastIteration(3); Assert.assertEquals(150, getVolume(config.controler().getOutputDirectory() + "ITERS/it.3/3.countscompareAWTV.txt"), 1e-8); cConfig.setFilterModes(true); createAndRunControler(config); Assert.assertEquals(100, getVolume(config.controler().getOutputDirectory() + "ITERS/it.3/3.countscompareAWTV.txt"), 1e-8); cConfig.setFilterModes(true); createAndRunControler(config); Assert.assertEquals(50, getVolume(config.controler().getOutputDirectory() + "ITERS/it.3/3.countscompareAWTV.txt"), 1e-8); cConfig.setFilterModes(true); createAndRunControler(config); Assert.assertEquals(0, getVolume(config.controler().getOutputDirectory() + "ITERS/it.3/3.countscompareAWTV.txt"), 1e-8);
@Test public final void testLanesInvertedNetworkRouting() { InvertedNetworkRoutingTestFixture f = new InvertedNetworkRoutingTestFixture(false, true, false); f.scenario.getConfig().controler().setOutputDirectory(testUtils.getOutputDirectory()); Controler c = new Controler(f.scenario); c.getConfig().controler().setDumpDataAtEnd(false); c.getConfig().controler().setCreateGraphs(false); final InvertedNetworkRoutingTestEventHandler testHandler = new InvertedNetworkRoutingTestEventHandler(); c.addControlerListener(new StartupListener(){ @Override public void notifyStartup(StartupEvent event) { event.getServices().getEvents().addHandler(testHandler); } }); c.run(); Assert.assertTrue("No traffic on link", testHandler.hadTrafficOnLink25); }
@Override public void notifyAfterMobsim(AfterMobsimEvent event) { if (event.getIteration() % this.congestionInfo.getDecongestionConfigGroup().getWriteOutputIteration() == 0. || event.getIteration() % this.congestionInfo.getDecongestionConfigGroup().getUpdatePriceInterval() == 0.) { computeDelays(event); } if (event.getIteration() == this.congestionInfo.getScenario().getConfig().controler().getFirstIteration()) { // skip first iteration } else if (event.getIteration() % this.congestionInfo.getDecongestionConfigGroup().getUpdatePriceInterval() == 0.) { int totalNumberOfIterations = this.congestionInfo.getScenario().getConfig().controler().getLastIteration() - this.congestionInfo.getScenario().getConfig().controler().getFirstIteration(); int iterationCounter = event.getIteration() - this.congestionInfo.getScenario().getConfig().controler().getFirstIteration(); if (iterationCounter < this.congestionInfo.getDecongestionConfigGroup().getFractionOfIterationsToEndPriceAdjustment() * totalNumberOfIterations && iterationCounter > this.congestionInfo.getDecongestionConfigGroup().getFractionOfIterationsToStartPriceAdjustment() * totalNumberOfIterations) { if (tollComputation != null) { log.info("+++ Iteration " + event.getIteration() + ". Update tolls per link and time bin."); tollComputation.updateTolls(); } } } if (event.getIteration() % this.congestionInfo.getDecongestionConfigGroup().getWriteOutputIteration() == 0.) { CongestionInfoWriter.writeDelays(congestionInfo, event.getIteration(), this.outputDirectory + "ITERS/it." + event.getIteration() + "/", this.congestionInfo.getScenario().getConfig().controler().getRunId()); CongestionInfoWriter.writeTolls(congestionInfo, event.getIteration(), this.outputDirectory + "ITERS/it." + event.getIteration() + "/", this.congestionInfo.getScenario().getConfig().controler().getRunId()); } }
@Override public void notifyStartup(final StartupEvent event) { this.minIteration = controlerConfigGroup.getFirstIteration(); // int maxIter = controlerConfigGroup.getLastIteration(); // int iterations = maxIter - this.minIteration; // if (iterations > 5000) iterations = 5000; // limit the history size for ( ScoreItem item : ScoreItem.values() ) { scoreHistory.put( item, new TreeMap<Integer,Double>() ) ; } }