String legMode = atts.getValue(PersonDepartureEvent.ATTRIBUTE_LEGMODE); String mode = legMode == null ? null : legMode.intern(); this.events.processEvent(new PersonDepartureEvent(time, Id.create(atts.getValue(PersonDepartureEvent.ATTRIBUTE_PERSON), Person.class), Id.create(atts.getValue(PersonDepartureEvent.ATTRIBUTE_LINK), Link.class), mode)); } else if (PersonStuckEvent.EVENT_TYPE.equals(eventType)) { String legMode = atts.getValue(PersonStuckEvent.ATTRIBUTE_LEGMODE);
public void testGetTravelTime(){ LinkedList<Event> events=new LinkedList<Event>(); events.add(new PersonDepartureEvent(20, Id.create("2", Person.class), Id.create("0", Link.class), TransportMode.car)); events.add(new PersonArrivalEvent(30, Id.create("2", Person.class), Id.create("0", Link.class), TransportMode.car)); events.add(new PersonDepartureEvent(90, Id.create("1", Person.class), Id.create("0", Link.class), TransportMode.car)); events.add(new PersonArrivalEvent(110, Id.create("1", Person.class), Id.create("0", Link.class), TransportMode.car)); assertEquals(20.0, EventLibrary.getTravelTime(events,1), EPSILON); }
public void testGetAverageTravelTime(){ LinkedList<Event> events=new LinkedList<Event>(); events.add(new PersonDepartureEvent(20, Id.create("2", Person.class), Id.create("0", Link.class), TransportMode.car)); events.add(new PersonArrivalEvent(30, Id.create("2", Person.class), Id.create("0", Link.class), TransportMode.car)); events.add(new PersonDepartureEvent(90, Id.create("1", Person.class), Id.create("0", Link.class), TransportMode.car)); events.add(new PersonArrivalEvent(110, Id.create("1", Person.class), Id.create("0", Link.class), TransportMode.car)); assertEquals(30.0, EventLibrary.getSumTravelTime(events), EPSILON); }
/** * Informs the simulation that the specified agent wants to depart from its * current activity. The simulation can then put the agent onto its vehicle * on a link or teleport it to its destination. * */ private void arrangeAgentDeparture(final MobsimAgent agent) { double now = this.getSimTimer().getTimeOfDay(); Id<Link> linkId = agent.getCurrentLinkId(); Gbl.assertIf( linkId!=null ); events.processEvent(new PersonDepartureEvent(now, agent.getId(), linkId, agent.getMode())); for (DepartureHandler departureHandler : this.departureHandlers) { if (departureHandler.handleDeparture(now, agent, linkId)) { return; } } log.warn("no departure handler wanted to handle the departure of agent " + agent.getId()); // yy my intuition is that this should be followed by setting the agent state to abort. kai, nov'14 }
ActivityEndEvent endEvent = new ActivityEndEvent(actEndTime, personId, act.getLinkId(), act.getFacilityId(), act.getType()); eventQueue.add(endEvent); PersonDepartureEvent departureEvent = new PersonDepartureEvent(actEndTime, personId, act.getLinkId(), nextLeg.getMode());
e = new ActivityEndEvent(time, Id.createPersonId(vehicleId), linkId, null, null); } else if (typeIndex == PersonDeparture.ordinal()) { e = new PersonDepartureEvent(time, Id.createPersonId(vehicleId), linkId, "car"); } else if (typeIndex == VehicleEntersTraffic.ordinal()) { e = new VehicleEntersTrafficEvent(time, Id.createPersonId(vehicleId), linkId, vehicleId, "car", 0);
public void testWriteReadXml() { final PersonDepartureEvent event = XmlEventsTester.testWriteReadXml(getOutputDirectory() + "events.xml", new PersonDepartureEvent(25669.05, Id.create("921", Person.class), Id.create("390", Link.class), TransportMode.bike)); assertEquals(25669.05, event.getTime(), EPSILON); assertEquals("921", event.getPersonId().toString()); assertEquals("390", event.getLinkId().toString()); assertEquals("bike", event.getLegMode()); } }
@Override public void processEvent() { Event event; // schedule ActEndEvent event = new ActivityEndEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), vehicle .getPreviousActivity().getFacilityId(), vehicle.getPreviousActivity().getType()); eventsManager.processEvent(event); // schedule AgentDepartureEvent event = new PersonDepartureEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), vehicle.getCurrentLeg().getMode()); eventsManager.processEvent(event); }
@Override public void run() { Id<Link> linkId = Id.create("100", Link.class); for (int i = 0; i < 100; i++) { Id<Person> agentId = Id.create(i, Person.class); Id<Vehicle> vehId = Id.create(i, Vehicle.class); this.eventsManager.processEvent(new PersonDepartureEvent(60.0, agentId, linkId, TransportMode.car)); this.eventsManager.processEvent(new VehicleEntersTrafficEvent(60.0, agentId, linkId, vehId, TransportMode.car, 1.0)); this.eventsManager.processEvent(new LinkLeaveEvent(60.0, vehId, linkId)); } for (int i = 100; i < 150; i++) { Id<Person> agentId = Id.create(i, Person.class); Id<Vehicle> vehId = Id.create(i, Vehicle.class); this.eventsManager.processEvent(new PersonDepartureEvent(60.0, agentId, linkId, TransportMode.walk)); this.eventsManager.processEvent(new VehicleEntersTrafficEvent(60.0, agentId, linkId, vehId, TransportMode.walk, 1.0)); this.eventsManager.processEvent(new LinkLeaveEvent(60.0, vehId, linkId)); } } }
histo.handleEvent(new PersonDepartureEvent(7*3600, person1Id, linkId, leg.getMode())); histo.handleEvent(new PersonArrivalEvent(7*3600 + 6*60, person1Id, linkId, leg.getMode())); leg.setMode("train"); histo.handleEvent(new PersonDepartureEvent(8*3600, person1Id, linkId, leg.getMode())); histo.handleEvent(new PersonArrivalEvent(8*3600 + 11*60, person1Id, linkId, leg.getMode()));
leg.setTravelTime( Time.UNDEFINED_TIME - leg.getDepartureTime() ); LegHistogram histo = new LegHistogram(5*60); histo.handleEvent(new PersonDepartureEvent(7*3600, person1Id, linkId, leg.getMode())); histo.handleEvent(new PersonDepartureEvent(7*3600 + 6*60, person2Id, linkId, leg.getMode())); leg.setMode(TransportMode.bike); histo.handleEvent(new PersonDepartureEvent(7*3600 + 6*60, person1Id, linkId, leg.getMode())); histo.handleEvent(new PersonDepartureEvent(7*3600 + 10*60, person2Id, linkId, leg.getMode())); leg.setMode("undefined"); histo.handleEvent(new PersonDepartureEvent(7*3600 + 10*60, person1Id, linkId, leg.getMode())); leg.setMode("undefined"); histo.handleEvent(new PersonDepartureEvent(7*3600 + 16*60, person1Id, linkId, leg.getMode()));
@Test public void testCreatesLeg() { Scenario scenario = createTriangularNetwork(); EventsToLegs eventsToLegs = new EventsToLegs(scenario); RememberingLegHandler lh = new RememberingLegHandler(); eventsToLegs.addLegHandler(lh); eventsToLegs.handleEvent(new PersonDepartureEvent(10.0, Id.create("1", Person.class), Id.create("l1", Link.class), "walk")); eventsToLegs.handleEvent(new TeleportationArrivalEvent(30.0, Id.create("1", Person.class), 50.0)); eventsToLegs.handleEvent(new PersonArrivalEvent(30.0, Id.create("1", Person.class), Id.create("l2", Link.class), "walk")); Assert.assertNotNull(lh.handledLeg); Assert.assertEquals(10.0, lh.handledLeg.getLeg().getDepartureTime(), 1e-9); Assert.assertEquals(20.0, lh.handledLeg.getLeg().getTravelTime(), 1e-9); Assert.assertEquals(50.0, lh.handledLeg.getLeg().getRoute().getDistance(), 1e-9); }
histo.handleEvent(new PersonDepartureEvent(2700, person1Id, linkId, leg.getMode())); histo.handleEvent(new PersonArrivalEvent(2999, person1Id, linkId, leg.getMode())); leg.setMode("train"); histo.handleEvent(new PersonDepartureEvent(3000, person1Id, linkId, leg.getMode())); histo.handleEvent(new PersonArrivalEvent(3001, person1Id, linkId, leg.getMode())); leg.setMode("bus"); histo.handleEvent(new PersonDepartureEvent(3600, person1Id, linkId, leg.getMode())); histo.handleEvent(new PersonArrivalEvent(7200, person1Id, linkId, leg.getMode()));
leg.setTravelTime( Time.parseTime("07:30:00") - leg.getDepartureTime() ); testee.handleEvent(new ActivityEndEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, null, "act1")); testee.handleEvent(new PersonDepartureEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, leg.getMode())); testee.handleEvent(new PersonArrivalEvent(leg.getDepartureTime() + leg.getTravelTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, leg.getMode())); testee.handleEvent(new ActivityStartEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, null, "act2")); leg.setTravelTime( Time.parseTime("07:10:00") - leg.getDepartureTime() ); testee.handleEvent(new ActivityEndEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, null, "act2")); testee.handleEvent(new PersonDepartureEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, leg.getMode())); testee.handleEvent(new PersonArrivalEvent(leg.getDepartureTime() + leg.getTravelTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, leg.getMode())); testee.handleEvent(new ActivityStartEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, null, "act3")); leg.setTravelTime( Time.parseTime("31:22:00") - leg.getDepartureTime() ); testee.handleEvent(new ActivityEndEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, null, "act3")); testee.handleEvent(new PersonDepartureEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, leg.getMode())); testee.handleEvent(new PersonArrivalEvent(leg.getDepartureTime() + leg.getTravelTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, leg.getMode())); testee.handleEvent(new ActivityStartEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, null, "act4")); leg.setTravelTime( Time.parseTime("30:12:01") - leg.getDepartureTime() ); testee.handleEvent(new ActivityEndEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, null, "act4")); testee.handleEvent(new PersonDepartureEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, leg.getMode())); testee.handleEvent(new PersonArrivalEvent(leg.getDepartureTime() + leg.getTravelTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, leg.getMode())); testee.handleEvent(new ActivityStartEvent(leg.getDepartureTime(), DEFAULT_PERSON_ID, DEFAULT_LINK_ID, null, "act5"));
@Test public void testCreatesLegWithRoute() { Scenario scenario = createTriangularNetwork(); EventsToLegs eventsToLegs = new EventsToLegs(scenario); RememberingLegHandler lh = new RememberingLegHandler(); eventsToLegs.addLegHandler(lh); Id<Person> agentId = Id.create("1", Person.class); Id<Vehicle> vehId = Id.create("veh1", Vehicle.class); eventsToLegs.handleEvent(new PersonDepartureEvent(10.0, agentId, Id.createLinkId("l1"), "car")); eventsToLegs.handleEvent(new PersonEntersVehicleEvent(10.0, agentId, vehId)); eventsToLegs.handleEvent(new VehicleEntersTrafficEvent(10.0, agentId, Id.createLinkId("l1"), vehId, "car", 1.0)); eventsToLegs.handleEvent(new LinkLeaveEvent(10.0, vehId, Id.createLinkId("l1"))); eventsToLegs.handleEvent(new LinkEnterEvent(11.0, vehId, Id.createLinkId("l2"))); eventsToLegs.handleEvent(new LinkLeaveEvent(15.0, vehId, Id.createLinkId("l2"))); eventsToLegs.handleEvent(new LinkEnterEvent(16.0, vehId, Id.createLinkId("l3"))); eventsToLegs.handleEvent(new VehicleLeavesTrafficEvent(30.0, agentId, Id.createLinkId("l3"), vehId, "car", 1.0)); eventsToLegs.handleEvent(new PersonArrivalEvent(30.0, agentId, Id.createLinkId("l3"), "car")); Assert.assertNotNull(lh.handledLeg); Assert.assertEquals(10.0,lh.handledLeg.getLeg().getDepartureTime(), 1e-9); Assert.assertEquals(20.0,lh.handledLeg.getLeg().getTravelTime(), 1e-9); Assert.assertEquals(20.0,lh.handledLeg.getLeg().getRoute().getTravelTime(), 1e-9); Assert.assertEquals(550.0,lh.handledLeg.getLeg().getRoute().getDistance(), 1e-9); }
scoring2.handleEvent( endFirstAct ); final Event departure = new PersonDepartureEvent(leg.getDepartureTime(), Id.create( 1, Person.class ), Id.create( 1, Link.class ), leg.getMode()); scoring1.handleEvent( departure ); scoring2.handleEvent( departure ); scoring2.handleEvent( endFirstAct ); final Event departure = new PersonDepartureEvent(leg.getDepartureTime(), Id.create( 1, Person.class ), Id.create( 1, Link.class ), leg.getMode()); scoring1.handleEvent( departure ); scoring2.handleEvent( departure ); scoring2.handleEvent( endFirstAct ); final Event departure = new PersonDepartureEvent(leg.getDepartureTime(), Id.create( 1, Person.class ), Id.create( 1, Link.class ), leg.getMode()); scoring1.handleEvent( departure ); scoring2.handleEvent( departure );
scoring2.handleEvent( endFirstAct ); final Event departure = new PersonDepartureEvent(leg.getDepartureTime(), Id.create( 1, Person.class ), Id.create( 1, Link.class ), leg.getMode()); scoring1.handleEvent( departure ); scoring2.handleEvent( departure );
events.processEvent(new ActivityStartEvent(i*200, personId, Id.createLinkId(0), null, "work")); events.processEvent(new ActivityEndEvent(i*200 + 100, personId, Id.createLinkId(0), null, "work")); events.processEvent(new PersonDepartureEvent(i*200+100, personId, Id.createLinkId(0), "car")); events.processEvent(new PersonArrivalEvent(i*200+200, personId, Id.createLinkId(0), "car")); events.afterSimStep(i*200+200);
return new PersonDepartureEvent(pe.getPersonDeparture().getTime(), Id.createPersonId(pe.getPersonDeparture().getPersId().getId()), Id.createLinkId(pe.getPersonDeparture().getLinkId().getId()), pe.getPersonDeparture().getLegMode());
events.processEvent(new ActivityStartEvent(i*200, personId, Id.createLinkId(0), null, "work")); events.processEvent(new ActivityEndEvent(i*200 + 100, personId, Id.createLinkId(0), null, "work")); events.processEvent(new PersonDepartureEvent(i*200+100, personId, Id.createLinkId(0), "car")); events.processEvent(new PersonArrivalEvent(i*200+200, personId, Id.createLinkId(0), "car"));