@Override public void notifyStartup(final StartupEvent event) { MatsimServices controler = event.getServices(); /* * Scales the load of the facilities (for e.g. 10 % runs), assuming that only integers * can be used to scale a x% scenario ((100 MOD x == 0) runs e.g. x=10%) */ DestinationChoiceConfigGroup dccg = (DestinationChoiceConfigGroup) controler.getConfig().getModule(DestinationChoiceConfigGroup.GROUP_NAME); double scaleNumberOfPersons = dccg.getScaleFactor(); this.eventsToFacilityLoad = new EventsToFacilityLoad( controler.getScenario().getActivityFacilities(), scaleNumberOfPersons, this.facilityPenalties, ((DestinationChoiceConfigGroup)controler.getConfig().getModule("locationchoice")) ); event.getServices().getEvents().addHandler(this.eventsToFacilityLoad); }
@Override public final void notifyShutdown(ShutdownEvent event) { writeData(event.getServices().getScenario(), event.getServices().getControlerIO()); }
@Override public TransitRouter get() { return new TransitRouterVariableImpl(config, new TransitRouterNetworkTravelTimeAndDisutilityWW(config, network, routerNetwork, controler.getLinkTravelTimes(), waitTime, controler.getConfig().travelTimeCalculator(), controler.getConfig().qsim(), new PreparedTransitSchedule(controler.getScenario().getTransitSchedule())), routerNetwork); }
public StageContainer2AgentMoneyEvent(MatsimServices controler, TicketMachineI ticketMachine) { controler.addControlerListener(this); this.eventsManager = controler.getEvents(); this.mobsimShutdownTime = controler.getConfig().qsim().getEndTime(); this.ticketMachine = ticketMachine; }
@Override public AbstractPersonAlgorithm getPersonAlgorithm() { return stuckFactory.getReRouteStuck(new PlanRouter( controler.getTripRouterProvider().get(), controler.getScenario().getActivityFacilities() ), ((MutableScenario)controler.getScenario()), agentsStuckHandler.getAgentsStuck()); } });
@Deprecated // use TripRouter instead. kai, dec'13 public PlanRouterAdapter( final MatsimServices controler) { this.planRouter = new PlanRouter( controler.getTripRouterProvider().get(), controler.getScenario().getActivityFacilities() ); TravelTime time = controler.getLinkTravelTimes(); TravelDisutility disutility = controler.getTravelDisutilityFactory().createTravelDisutility( time); LeastCostPathCalculatorFactory factory = controler.getLeastCostPathCalculatorFactory(); Network network = controler.getScenario().getNetwork(); this.routeAlgo = factory.createPathCalculator(network, disutility, time); PopulationFactory populationFactory = controler.getScenario().getPopulation().getFactory(); this.routeFactory = ((PopulationFactory) populationFactory).getRouteFactories(); }
@Override public void notifyStartup(StartupEvent event) { this.calcLegTimes = new KNAnalysisEventsHandler( event.getServices().getScenario() ) ; event.getServices().getEvents().addHandler( this.calcLegTimes ) ; }
void notifyStartup(StartupEvent event) { TimeProvider timeProvider = new TimeProvider(this.pConfig, event.getServices().getControlerIO().getOutputPath()); event.getServices().getEvents().addHandler(timeProvider); this.routeDesignScoreManager.init(this.pConfig, event.getServices().getScenario().getNetwork()); this.stageCollectorHandler.init(event.getServices().getScenario().getNetwork()); event.getServices().getEvents().addHandler(this.stageCollectorHandler); event.getServices().addControlerListener(this.stageCollectorHandler); this.stageCollectorHandler.addStageContainerHandler(this.scorePlansHandler); this.operatorCostCollectorHandler.init(event.getServices().getScenario().getNetwork()); event.getServices().getEvents().addHandler(this.operatorCostCollectorHandler); event.getServices().addControlerListener(this.operatorCostCollectorHandler); this.operatorCostCollectorHandler.addOperatorCostContainerHandler(this.scorePlansHandler); this.pStopsOnly = PStopsFactory.createPStops(event.getServices().getScenario().getNetwork(), this.pConfig, event.getServices().getScenario().getTransitSchedule()); LinkedList<Operator> operatorsFromSchedule = this.operatorInitializer.createOperatorsFromSchedule(event.getServices().getScenario().getTransitSchedule()); this.operators.addAll(operatorsFromSchedule); LinkedList<Operator> initialOperators = this.operatorInitializer.createAdditionalOperators(this.strategyManager, event.getServices().getConfig().controler().getFirstIteration(), (this.pConfig.getNumberOfOperators() - operatorsFromSchedule.size())); this.operators.addAll(initialOperators);
Config config = controler.getConfig(); this.travelTime = controler.getLinkTravelTimes(); this.network = controler.getScenario().getNetwork(); this.timeSlice = config.travelTimeCalculator().getTraveltimeBinSize(); int maxTime = 30 * 3600; // default value from TravelTimeCalculator OutputDirectoryHierarchy controlerIO = event.getServices().getControlerIO(); int iteration = event.getIteration();
@Override public void notifyStartup(StartupEvent event) { String outFilename = event.getServices().getControlerIO().getOutputPath() + PConstants.statsOutputFolder; new File(outFilename).mkdir(); } });
@Override public void notifyIterationEnds(IterationEndsEvent event) { outputPath = event.getServices().getControlerIO().getOutputPath(); Map<String, Integer> fullGeneCount = new HashMap<>(); Map<String, Double> fullGeneScore = new HashMap<>(); Map<String, Double> fullGeneAltScore = new HashMap<>(); Map<Id<Person>, ? extends Person> persons = event.getServices().getScenario().getPopulation().getPersons(); boolean append = event.getIteration() != event.getServices().getConfig().controler().getFirstIteration(); try { PrintWriter writer = null;
@Override public void notifyStartup(StartupEvent event) { MatsimServices controler = event.getServices(); // compute or read maxDCScore but do not add it to the context: // context can then be given to scoring classes both during regular scoring and in pre-processing ReadOrComputeMaxDCScore computer = new ReadOrComputeMaxDCScore(dcContext); computer.readOrCreateMaxDCScore(controler.getConfig(), dcContext.kValsAreRead()); ObjectAttributes personsMaxDCScoreUnscaled = computer.getPersonsMaxEpsUnscaled(); for (String actType : this.dcContext.getFlexibleTypes()) { controler.addControlerListener(new DistanceStats(controler.getConfig(), "best", actType, dcContext.getConverter(), TransportMode.car)); controler.addControlerListener(new DistanceStats(controler.getConfig(), "best", actType, dcContext.getConverter(), TransportMode.pt)); controler.addControlerListener(new DistanceStats(controler.getConfig(), "best", actType, dcContext.getConverter(), TransportMode.bike)); controler.addControlerListener(new DistanceStats(controler.getConfig(), "best", actType, dcContext.getConverter(), TransportMode.walk)); controler.addControlerListener(new DistanceStats(controler.getConfig(), "best", actType, dcContext.getConverter(), TransportMode.other)); controler.addControlerListener(new DistanceStats(controler.getConfig(), "best", actType, dcContext.getConverter(), TransportMode.ride)); controler.addControlerListener(new DistanceStats(controler.getConfig(), "best", actType, dcContext.getConverter(), TransportMode.transit_walk)); } MaxDCScoreWrapper dcScore = new MaxDCScoreWrapper(); dcScore.setPersonsMaxDCScoreUnscaled(personsMaxDCScoreUnscaled); controler.getScenario().addScenarioElement(DestinationChoiceContext.ELEMENT_NAME, dcContext); controler.getScenario().addScenarioElement(MaxDCScoreWrapper.ELEMENT_NAME, dcScore); log.info("dc initialized"); } }
this.minIteration = controler.getConfig().controler().getFirstIteration(); int maxIter = controler.getConfig().controler().getLastIteration(); int iterations = maxIter - this.minIteration; this.tripsHistory = new double[this.sortedModes.size() + 1][iterations + 1]; this.tripsFileName = event.getServices().getControlerIO().getOutputFilename(defaultTripsFileName); this.durationsFileName = event.getServices().getControlerIO().getOutputFilename(defaultDurationsFileName); controler.getEvents().addHandler(this);
public OperatorInitializer(PConfigGroup pConfig, PFranchise franchise, TransitSchedule pStopsOnly, MatsimServices controler, TimeProvider timeProvider) { this.pConfig = pConfig; this.operatorFactory = new OperatorFactory(this.pConfig, franchise); this.routeProvider = PRouteProviderFactory.createRouteProvider(controler.getScenario().getNetwork(), controler.getScenario().getPopulation(), this.pConfig, pStopsOnly, controler.getControlerIO().getOutputPath(), controler.getEvents()); if (this.pConfig.getStartWith24Hours()) { this.initialStrategy = new CreateNew24hPlan(new ArrayList<String>()); } else { ArrayList<String> parameter = new ArrayList<>(); parameter.add(Double.toString(pConfig.getTimeSlotSize())); parameter.add(Double.toString(pConfig.getMinInitialStopDistance())); this.initialStrategy = new CreateNewPlan(parameter); ((CreateNewPlan) this.initialStrategy).setTimeProvider(timeProvider); } }
@Override public void notifyShutdown(ShutdownEvent event) { // call shutdown for all remaining gexf for (SimpleGexfPStat gexf : this.lineId2GexfPStat.values()) { gexf.notifyShutdown(event.getServices().getConfig().controler().getLastIteration()); } log.info("terminated the last " + this.lineId2GexfPStat.values().size() + " gexf handlers..."); } }
public TransitRouterEventsWLFactory(final MatsimServices controler, final WaitTime waitTime) { this.config = new TransitRouterConfig(controler.getScenario().getConfig().planCalcScore(), controler.getScenario().getConfig().plansCalcRoute(), controler.getScenario().getConfig().transitRouter(), controler.getScenario().getConfig().vspExperimental()); this.network = controler.getScenario().getNetwork(); this.controler = controler; this.waitTime = waitTime; routerNetwork = TransitRouterNetworkWW.createFromSchedule(network, controler.getScenario().getTransitSchedule(), this.config.getBeelineWalkConnectionDistance()); } @Override
@Override public void notifyStartup(final StartupEvent event) { MatsimServices controler = event.getServices(); if(this.pConfig.getWriteStatsInterval() > 0){ log.info("enabled"); this.pStatsWriter = IOUtils.getBufferedWriter(controler.getControlerIO().getOutputFilename("pStats.txt")); try { this.pStatsWriter.write(PStatsOverviewDataContainer.getHeaderLine()); this.pStatsWriter.newLine(); } catch (IOException e) { throw new UncheckedIOException(e); } } else { this.pStatsWriter = null; } this.minIteration = controler.getConfig().controler().getFirstIteration(); int maxIter = controler.getConfig().controler().getLastIteration(); int iterations = maxIter - this.minIteration; if (iterations > 10000) iterations = 10000; // limit the history size this.history = new double[29][iterations+1]; this.statsContainer = new RecursiveStatsContainer(); this.statsApproxContainer = new RecursiveStatsApproxContainer(0.1, 10); }
@Override public void notifyStartup(StartupEvent event) { MatsimServices controler = event.getServices(); if (autoConfig) { // use all activity types defined in the config Set<String> activityTypes = new TreeSet<String>(event.getServices().getConfig().planCalcScore().getActivityTypes()); for (String activityType : activityTypes) { this.activityCountData.put(activityType, new LinkedList<ActivityData>()); } controler.getEvents().addHandler(this); } }
private static CarrierPlanStrategyManagerFactory createStrategyManagerFactory(final CarrierVehicleTypes types, final MatsimServices controler) { return () -> { final GenericStrategyManager<CarrierPlan, Carrier> strategyManager = new GenericStrategyManager<>(); strategyManager.addStrategy(new GenericPlanStrategyImpl<>(new BestPlanSelector<>()), null, 0.95); strategyManager.addStrategy(new SelectBestPlanAndOptimizeItsVehicleRouteFactory(controler.getScenario().getNetwork(), types, controler.getLinkTravelTimes()).createStrategy(), null, 0.05); return strategyManager; }; }
private void generateImage(ChartType chartType) { JFreeChart chart = TimeProfileCharts.chartProfile(calculator.getHeader(), times, timeProfile, chartType); if (chartCustomizer != null) { chartCustomizer.accept(chart, chartType); } String imageFile = matsimServices.getControlerIO().getIterationFilename(matsimServices.getIterationNumber(), outputFile + "_" + chartType.name()); ChartSaveUtils.saveAsPNG(chart, imageFile, 1500, 1000); } }