@Inject OutputDirectoryHierarchy(ControlerConfigGroup config) { this(config.getOutputDirectory(), config.getRunId(), config.getOverwriteFileSetting()); }
File outputDir = new File(par, config.controler().getOutputDirectory()); try { txtOutput.setText(outputDir.getCanonicalPath());
@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 + "/"; } }
void write(double time, Id<Link> linkId, Coord coord, double speed ) { if (writer == null) { final String filename = config.controler().getOutputDirectory() + "/output_disruptionCoords.txt.gz"; log.warn("writing disruption data to " + filename); writer = IOUtils.getPrintStream(filename); writer.println("time\tlinkId\tx\ty\tnewSpeed"); } // can't do this earlier since the output directories are not yet prepared by the controler. kai, dec'17 // Since we are memorizing the records towards the very end, could as well just open and close the writer there. // kai, feb'18 final String str = Time.writeTime(time) + "\t" + linkId + "\t" + coord.getX() + "\t" + coord.getY() + "\t" + speed ; // need time in hh:mm:ss since it is to be string-sorted based on that, and otherwise would need numerical sorting. // kai, feb'18 log.info( "disruption data: " + str ) ; records.add( str ) ; // memorizing the entries towards the very end, since the "begin" and "end" disruption events come together, but I // want to have the output sorted by time. kai, feb'18 }
private static void writeAdditionalRunOutput( Config config, Carriers carriers ) { // ### some final output: ### new CarrierPlanXmlWriterV2(carriers).write( config.controler().getOutputDirectory() + "/output_carriers.xml" ) ; new CarrierPlanXmlWriterV2(carriers).write( config.controler().getOutputDirectory() + "/output_carriers.xml.gz") ; new CarrierVehicleTypeWriter( CarrierVehicleTypes.getVehicleTypes(carriers )).write(config.controler().getOutputDirectory() + "/output_vehicleTypes.xml" ); new CarrierVehicleTypeWriter(CarrierVehicleTypes.getVehicleTypes(carriers)).write(config.controler().getOutputDirectory() + "/output_vehicleTypes.xml.gz"); }
@Override public void reset(int iteration) { String outputDir = noiseContext.getScenario().getConfig().controler().getOutputDirectory(); if (!outputDir.endsWith("/")) outputDir = outputDir + "/"; this.outputDirectory = outputDir + "ITERS/" + "it." + iteration + "/"; log.info("Setting the output directory to " + outputDirectory); this.iteration = iteration; this.totalCausedNoiseCost = 0.; this.totalAffectedNoiseCost = 0.; this.noiseEventsCaused.clear(); this.noiseEventsAffected.clear(); this.noiseContext.getNoiseLinks().clear(); this.noiseContext.getTimeInterval2linkId2noiseLinks().clear(); this.noiseContext.getLinkId2vehicleId2lastEnterTime().clear(); this.noiseContext.setCurrentTimeBinEndTime(this.noiseContext.getNoiseParams().getTimeBinSizeNoiseComputation()); this.noiseContext.getVehicleId2PersonId().clear(); for (NoiseReceiverPoint rp : this.noiseContext.getReceiverPoints().values()) { rp.reset(); } }
private void writeMaxEps() { for (Person person : this.scenario.getPopulation().getPersons().values()) { for (String flexibleType : this.flexibleTypes) { double maxType = (Double)person.getCustomAttributes().get(flexibleType); this.personsMaxDCScoreUnscaled.putAttribute(person.getId().toString(), flexibleType, maxType); } } ObjectAttributesXmlWriter attributesWriter = new ObjectAttributesXmlWriter(this.personsMaxDCScoreUnscaled); attributesWriter.writeFile(this.config.controler().getOutputDirectory() + maxEpsFile); }
@Override public void notifyStartup(StartupEvent event) { NoiseWriter.writeReceiverPoints(noiseContext, event.getServices().getConfig().controler().getOutputDirectory() + "/receiverPoints/", false); }
@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(); } } }
private void assignKValuesPersons() { for (Person p : this.scenario.getPopulation().getPersons().values()) { this.personsKValues.putAttribute(p.getId().toString(), "k", rnd.getUniform(1.0)); } // write person k values ObjectAttributesXmlWriter attributesWriter = new ObjectAttributesXmlWriter(this.personsKValues); attributesWriter.writeFile(config.controler().getOutputDirectory() + pkValuesFile); } private void assignKValuesAlternatives() {
@Override public void notifyIterationStarts(IterationStartsEvent event) { if (event.getIteration() == scenario.getConfig().controler().getFirstIteration()) { /* * do all the stuff that is needed only once a simulation: - calculating coordinations for the via file - getting the signals data out of the scenario */ init(); } String signalCSVFilename = scenario.getConfig().controler().getOutputDirectory() + "/ITERS/it." + event.getIteration() + "/signalEvents2Via.csv"; // log.info("Initializing SignalsCSVWriter ..."); signalsCSVWriter = IOUtils.getBufferedWriter(signalCSVFilename); log.info("Writing signal events of iteration " + event.getIteration() + " as csv file for via to " + signalCSVFilename + " ..."); // create header try { signalsCSVWriter.write(SIGNAL_ID + ";" + X_COORD + ";" + Y_COORD + ";" + TIME + ";" + SIGNAL_STATE); signalsCSVWriter.newLine(); } catch (IOException e) { e.printStackTrace(); log.error("Something went wrong while writing the header of the signals csv file."); } }
private void assignKValuesAlternatives() { for (ActivityFacility facility : this.scenario.getActivityFacilities().getFacilities().values()) { this.facilitiesKValues.putAttribute(facility.getId().toString(), "k", rnd.getUniform(1.0)); } ObjectAttributesXmlWriter attributesWriter = new ObjectAttributesXmlWriter(this.facilitiesKValues); attributesWriter.writeFile(config.controler().getOutputDirectory() + fkValuesFile); }
@Override public void install() { final CarrierScoreStats scores = new CarrierScoreStats(carriers, config.controler().getOutputDirectory() +"/carrier_scores", true); final int statInterval = 1; final LegHistogram freightOnly = new LegHistogram(900); freightOnly.setInclPop(false); binder().requestInjection(freightOnly); final LegHistogram withoutFreight = new LegHistogram(900); binder().requestInjection(withoutFreight); addEventHandlerBinding().toInstance(withoutFreight); addEventHandlerBinding().toInstance(freightOnly); addControlerListenerBinding().toInstance(scores); addControlerListenerBinding().toInstance(new IterationEndsListener() { @Inject private OutputDirectoryHierarchy controlerIO; @Override public void notifyIterationEnds(IterationEndsEvent event) { if (event.getIteration() % statInterval != 0) return; //write plans String dir = controlerIO.getIterationPath(event.getIteration()); new CarrierPlanXmlWriterV2(carriers).write(dir + "/" + event.getIteration() + ".carrierPlans.xml"); //write stats freightOnly.writeGraphic(dir + "/" + event.getIteration() + ".legHistogram_freight.png"); freightOnly.reset(event.getIteration()); withoutFreight.writeGraphic(dir + "/" + event.getIteration() + ".legHistogram_withoutFreight.png"); withoutFreight.reset(event.getIteration()); } }); } });
config.controler().getOutputDirectory() + "/cadyts.log", MatsimRandom.getLocalInstance().nextLong(),cadytsConfig.getTimeBinSize() ) ; matsimCalibrator.setStatisticsFile(config.controler().getOutputDirectory() + "/calibration-stats.txt"); return matsimCalibrator;
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(); }
controler.run(); Assert.assertTrue(new File(config.controler().getOutputDirectory() + "ITERS/it.0/0.countscompare.txt").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.1/1.countscompare.txt").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.2/2.countscompare.txt").exists()); Assert.assertTrue(new File(config.controler().getOutputDirectory() + "ITERS/it.3/3.countscompare.txt").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.4/4.countscompare.txt").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.5/5.countscompare.txt").exists()); Assert.assertTrue(new File(config.controler().getOutputDirectory() + "ITERS/it.6/6.countscompare.txt").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.7/7.countscompare.txt").exists());
controler.run(); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.0/0.countscompareAWTV.txt").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.1/1.countscompareAWTV.txt").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.2/2.countscompareAWTV.txt").exists()); Assert.assertTrue(new File(config.controler().getOutputDirectory() + "ITERS/it.3/3.countscompareAWTV.txt").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.4/4.countscompareAWTV.txt").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.5/5.countscompareAWTV.txt").exists()); Assert.assertTrue(new File(config.controler().getOutputDirectory() + "ITERS/it.6/6.countscompareAWTV.txt").exists()); Assert.assertFalse(new File(config.controler().getOutputDirectory() + "ITERS/it.7/7.countscompareAWTV.txt").exists()); Assert.assertEquals(3.5, getVolume(config.controler().getOutputDirectory() + "ITERS/it.3/3.countscompareAWTV.txt"), 1e-8); Assert.assertEquals(6.5, getVolume(config.controler().getOutputDirectory() + "ITERS/it.6/6.countscompareAWTV.txt"), 1e-8);
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());
prefix = prefix + File.separator; config.controler().setOutputDirectory(getAbsolutePath(prefix, config.controler().getOutputDirectory())); config.network().setInputFile(getAbsolutePath(prefix, config.network().getInputFile())); config.plans().setInputFile(getAbsolutePath(prefix, config.plans().getInputFile()));
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);