private int getNumberOfTrips(final Person person) { int numberOfLegs=0; for (PlanElement pe : person.getSelectedPlan().getPlanElements()) { if (pe instanceof Leg) { numberOfLegs++; } } return numberOfLegs; }
private static void setScore( final Person p, final Double score) { if ( score == null ) throw new NullPointerException( "got null score for person "+p ); if ( score.isNaN() ) throw new RuntimeException( "got NaN score for person "+p ); p.getSelectedPlan().setScore( score ); }
private static double getScore(final Person p) { final Double score = p.getSelectedPlan().getScore(); if ( score == null ) throw new NullPointerException( "got null score for person "+p ); if ( score.isNaN() ) throw new RuntimeException( "got NaN score for person "+p ); return score.doubleValue(); }
@Override public MobsimDriverAgent createMobsimAgentFromPerson(final Person p) { PersonDriverAgentImpl agent = new PersonDriverAgentImpl(p.getSelectedPlan(), this.simulation); // ( BasicPlanAgentImpl (inside PersonDriverAgentImpl) makes the plan unmodifiable. ) return agent; }
private void drawOutputSample() { this.outputSamplePlans = new ArrayList<Plan>(); for (Person pers : PopulationUtils.getSortedPersons(this.population).values()) { if (MatsimRandom.getRandom().nextDouble() <= this.outputSample) { this.outputSamplePlans.add(pers.getSelectedPlan()); } } }
public static void removePersonsNotUsingMode(String mode, Scenario scenario) { Map<Id<Person>, ? extends Person> persons = scenario.getPopulation().getPersons(); Iterator<? extends Person> personIter = persons.values().iterator(); while (personIter.hasNext()) { Plan selectedPlan = personIter.next().getSelectedPlan(); if (!hasLegOfMode(selectedPlan, mode)) { personIter.remove(); } } }
public PersonSerializable(Person p) { this.id = p.getId().toString(); Person person = p; for (Plan plan : person.getPlans()) { PlanSerializable planSerializable = new PlanSerializable(plan); plans.add(planSerializable); if (plan.equals(person.getSelectedPlan())) this.selectedPlan = planSerializable; } }
@Override public void notifyIterationEnds(IterationEndsEvent event) { Iterator<Map.Entry<Id<Person>, Double>> iterator = selectedPlanScoreMemory.entrySet().iterator(); StopStopTimeCalculatorSerializable.printCallStatisticsAndReset(); WaitTimeCalculatorSerializable.printCallStatisticsAndReset(); while (iterator.hasNext()) { Map.Entry<Id<Person>, Double> entry = iterator.next(); scenario.getPopulation().getPersons().get(entry.getKey()).getSelectedPlan().setScore(entry.getValue()); } }
@Override public void run(final Person person) { count(); this.nextAlgo.run(person.getSelectedPlan()); }
private double getTravelTime(final Person person) { double travelTime=0.0; for (PlanElement pe : person.getSelectedPlan().getPlanElements()) { if (pe instanceof Leg) { travelTime+=((Leg) pe).getTravelTime(); } } return travelTime; }
@Override public void notifyIterationStarts(IterationStartsEvent event) { if (determineIfQSimIter(event.getIteration())) { Logger.getLogger(this.getClass()).warn("Running full queue simulation"); } else { Logger.getLogger(this.getClass()).info("Running PSim"); plancatcher.init(); for (Person person : scenario.getPopulation().getPersons().values()) { plancatcher.addPlansForPsim(person.getSelectedPlan()); } } }
@Override public void notifyBeforeMobsim(BeforeMobsimEvent event) { // Register demand for this iteration with Cadyts. // Note that planToPlanStep will return null for plans which have never been executed. // This is fine, since the number of these plans will go to zero in normal simulations, // and Cadyts can handle this "noise". Checked this with Gunnar. // mz 2015 for (Person person : scenario.getPopulation().getPersons().values()) { this.calibrator.addToDemand(plansTranslator.getCadytsPlan(person.getSelectedPlan())); } }
private double getTravelDist(final Person person) { double travelDist=0.0; for (PlanElement pe : person.getSelectedPlan().getPlanElements()) { if (pe instanceof Leg) { travelDist+=((Leg) pe).getRoute().getDistance(); } } return travelDist; }
public static void convertLegModes(List<String> passengerIds, String mode, Scenario scenario) { Map<Id<Person>, ? extends Person> persons = scenario.getPopulation().getPersons(); for (String id : passengerIds) { Person person = persons.get(Id.create(id, Person.class)); for (PlanElement pe : person.getSelectedPlan().getPlanElements()) { if (pe instanceof Leg) { ((Leg)pe).setMode(mode); } } } }
public void moveToFirstLinkInNextLeg() { Plan plan = getOwnerPerson().getSelectedPlan(); List<? extends PlanElement> actsLegs = plan.getPlanElements(); setCurrentLinkId(((Activity) actsLegs.get(getLegIndex() + 1)).getLinkId()); }
@Override public void notifyBeforeMobsim(final BeforeMobsimEvent event) { this.cadytsPtOccupAnalyzer.reset(event.getIteration()); for (Person person : scenario.getPopulation().getPersons().values()) { this.calibrator.addToDemand(ptStep.getCadytsPlan(person.getSelectedPlan())); } }
private PersonDriverAgentImpl createAndInsertPersonDriverAgentImpl(Person person) { PersonDriverAgentImpl agent = new PersonDriverAgentImpl(person.getSelectedPlan(), qsim); qsim.insertAgentIntoMobsim(agent); return agent; }
public void modifyPopulation(Population population) { // modify population: a plan was needed, which contained some properties to be compared with C++ Person p = population.getPersons().get(Id.create("1", Person.class)); Plan plan = p.getSelectedPlan(); List<? extends PlanElement> actsLegs = plan.getPlanElements(); ((Activity)actsLegs.get(0)).setEndTime(360); ((Activity)actsLegs.get(2)).setEndTime(900); // this requires immediate departure after arrival ((Activity)actsLegs.get(4)).setEndTime(2000); }
private void replanPopulation(Population population, PlanStrategyModule testee) { testee.prepareReplanning(new ReplanningContext() { @Override public int getIteration() { return 0; } }); for (Person person : population.getPersons().values()) { testee.handlePlan(person.getSelectedPlan()); } testee.finishReplanning(); }
@Test public void testReadingPlansV4parallel() { Config config = ConfigUtils.createConfig(); config.plans().setNetworkRouteType("CompressedNetworkRoute"); Scenario s = ScenarioUtils.createScenario(config); new MatsimNetworkReader(s.getNetwork()).readFile("test/scenarios/equil/network.xml"); new ParallelPopulationReaderMatsimV4(s).readFile("test/scenarios/equil/plans1.xml"); Assert.assertEquals(1, s.getPopulation().getPersons().size()); Leg firstPersonsLeg = (Leg) s.getPopulation().getPersons().get(Id.create("1", Person.class)).getSelectedPlan().getPlanElements().get(1); // Assert.assertTrue(firstPersonsLeg.getRoute() instanceof CompressedNetworkRouteImpl); }