/** * Creates the path where all iteration-related data should be stored. */ public final void createIterationDirectory(final int iteration) { File dir = new File(getIterationPath(iteration)); if (!dir.mkdir()) { if (this.overwriteFiles == OverwriteFileSetting.overwriteExistingFiles && dir.exists()) { log.info("Iteration directory " + getIterationPath(iteration) + " exists already."); } else { log.warn("Could not create iteration directory " + getIterationPath(iteration) + "."); } } }
/** * Returns the complete filename to access an iteration-file with the given * basename. * * @param filename * the basename of the file to access * @return complete path and filename to a file in a iteration directory. if rundId is set then it is prefixed with it */ public final String getIterationFilename(final int iteration, final String filename) { StringBuilder s = new StringBuilder(getIterationPath(iteration)); s.append('/'); if (runId != null) { s.append(runId); s.append('.'); } s.append(iteration); s.append("."); s.append(filename); return s.toString(); }
@Override public void notifyIterationEnds(IterationEndsEvent event) { MatsimServices controler = event.getServices(); ActivityFacilities facilities = controler.getScenario().getActivityFacilities(); if (event.getIteration() % 2 == 0) { printStatistics(facilities, event.getServices().getControlerIO().getIterationPath(event.getIteration()), event.getIteration(), this.eventsToFacilityLoad.getFacilityPenalties()); } }
CountsHtmlAndGraphsWriter cgw = new CountsHtmlAndGraphsWriter(controlerIO.getIterationPath(event.getIteration()), cca.getComparison(), event.getIteration()); cgw.addGraphsCreator(new CountsSimRealPerHourGraphCreator("sim and real volumes")); cgw.addGraphsCreator(new CountsErrorGraphCreator("errors"));
private static void prepareFreightOutputDataAndStats(Scenario scenario, EventsManager eventsManager, MatsimServices controler, final Carriers carriers) { final LegHistogram freightOnly = new LegHistogram(900); freightOnly.setPopulation(scenario.getPopulation()); freightOnly.setInclPop(false); final LegHistogram withoutFreight = new LegHistogram(900); withoutFreight.setPopulation(scenario.getPopulation()); CarrierScoreStats scores = new CarrierScoreStats(carriers, "output/carrier_scores", true); eventsManager.addHandler(withoutFreight); eventsManager.addHandler(freightOnly); controler.addControlerListener(scores); controler.addControlerListener((IterationEndsListener) event -> { //write plans String dir = event.getServices().getControlerIO().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()); }); }