@Override public void notifyAfterMobsim(AfterMobsimEvent event) { // change signal green split every INTERVAL iteration if (event.getIteration() % INTERVAL == 0 && event.getIteration() != scenario.getConfig().controler().getFirstIteration()){ computeDelays(event); LOG.info("+++ Iteration " + event.getIteration() + ". Update signal green split..."); updateSignals(); } }
@Override public void notifyAfterMobsim(AfterMobsimEvent event) { legTimes.writeStats(controlerIO.getIterationFilename(event.getIteration(), "tripdurations.txt")); // - print averages in log log.info("[" + event.getIteration() + "] average trip (probably: leg) duration is: " + (int) legTimes.getAverageTripDuration() + " seconds = " + Time.writeTime(legTimes.getAverageTripDuration(), Time.TIMEFORMAT_HHMMSS)); // trips are from "true" activity to "true" activity. legs may also go // from/to ptInteraction activity. This, in my opinion "legs" is the correct (matsim) term // kai, jul'11 }
@Override public void notifyAfterMobsim(AfterMobsimEvent event) { int it = event.getIteration(); if ( isActiveInThisIteration( it ) ) { eventsManager.removeHandler(occupancyAnalyzer); occupancyAnalyzer.write(controlerIO.getIterationFilename(it, "occupancyAnalysis.txt")); } }
@Override public void notifyAfterMobsim(final AfterMobsimEvent event) { int it = event.getIteration(); // Get all stations of all analyzed lines and invoke the method write to get all information of them Set<Id<TransitStopFacility>> stopIds = new HashSet<>(); for ( String pseudoLineId : this.cadytsConfig.getCalibratedItems()) { Id<TransitLine> lineId = Id.create(pseudoLineId, TransitLine.class); TransitLine line = scenario.getTransitSchedule().getTransitLines().get(lineId); for (TransitRoute route : line.getRoutes().values()) { for (TransitRouteStop stop : route.getStops()) { stopIds.add(stop.getStopFacility().getId()); } } } String outFile = controlerIO.getIterationFilename(it, OCCUPANCYANALYSIS_FILENAME); this.cadytsPtOccupAnalyzer.writeResultsForSelectedStopIds(outFile, this.occupCounts, stopIds); }
@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 notifyAfterMobsim(AfterMobsimEvent event) { if (innovationEndsAtIter > 0 && event.getIteration() > innovationEndsAtIter) return; if (event.getIteration() == innovationEndsAtIter) { startSlaveHandlersInMode(CommunicationsMode.DIE); return; waitForSlaveThreads(); boolean isLoadBalanceIteration = event.getIteration() > config.controler().getFirstIteration() && (event.getIteration() % loadBalanceInterval == 0 || slavesHaveRequestedShutdown() || hydra.hydraSlaves.size() > 0);
String outputFile = controlerIO.getIterationFilename(event.getIteration(), EXECUTEDPLANSFILE); writeExecutedPlans( outputFile ) ;