this.events.processEvent(new VehicleEntersTrafficEvent(time, driverId, Id.createLinkId(atts.getValue(VehicleEntersTrafficEvent.ATTRIBUTE_LINK)), vehicleId, networkMode, 1.0)); break;
this.events.processEvent(new VehicleEntersTrafficEvent(time, Id.create(atts.getValue(VehicleEntersTrafficEvent.ATTRIBUTE_DRIVER), Person.class), Id.create(atts.getValue(VehicleEntersTrafficEvent.ATTRIBUTE_LINK), Link.class), position = 1.0 ; this.events.processEvent(new VehicleEntersTrafficEvent(time, Id.create(atts.getValue(VehicleEntersTrafficEvent.ATTRIBUTE_DRIVER), Person.class), Id.create(atts.getValue(VehicleEntersTrafficEvent.ATTRIBUTE_LINK), Link.class),
try { eventQueue.add(new PersonEntersVehicleEvent(prevEndTime, personId, personId)); eventQueue.add(new VehicleEntersTrafficEvent(prevEndTime,personId, prevLeg.getRoute().getStartLinkId(),personId, TransportMode.car,1.0)); NetworkRoute croute = (NetworkRoute) prevLeg.getRoute();
public void addDepartingAgent(MobsimAgent mobsimAgent, double now) { this.waitingAfterActivityAgents.add(mobsimAgent); this.activateLink(); this.simEngine.getEventsManager().processEvent( new PersonEntersVehicleEvent(now, mobsimAgent.getId(), Id.create(mobsimAgent.getId(), Vehicle.class))); this.simEngine.getEventsManager().processEvent( new VehicleEntersTrafficEvent(now, mobsimAgent.getId(), link.getId(), Id.create(mobsimAgent.getId(), Vehicle.class), mobsimAgent.getMode(), 1.0)); }
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); } else if (typeIndex == LinkLeave.ordinal()) { e = new LinkLeaveEvent(time, vehicleId, linkId);
new VehicleEntersTrafficEvent(now, veh.getDriver().getId(), this.getLink().getId(), veh.getId(), veh.getDriver().getMode(), 1.0));
/** * Move as many waiting cars to the link as it is possible */ private void moveWaitToRoad() { while (!getWaitingList().isEmpty()) { if (!qlane.isAcceptingFromWait(this.getWaitingList().peek())) { return; } QVehicle veh = this.getWaitingList().poll(); double now = context.getSimTimer().getTimeOfDay() ; context.getEventsManager().processEvent( new VehicleEntersTrafficEvent(now, veh.getDriver().getId(), this.getLink().getId(), veh.getId(), veh.getDriver().getMode(), 1.0)); if ( this.getTransitQLink().addTransitToStopQueue(now, veh, this.getLink().getId()) ) { continue ; } if ( veh.getDriver().isWantingToArriveOnCurrentLink() ) { // If the driver wants to stop (again) on this link, give them a special treatment. // addFromWait doesn't work here, because after that, they cannot stop anymore. qlane.addTransitSlightlyUpstreamOfStop(veh) ; continue; } qlane.addFromWait(veh); } }
@Override public void processEvent() { Event event = null; // the first EnterLink in a leg is a Wait2LinkEvent if (vehicle.getLinkIndex() == -1) { event = new VehicleEntersTrafficEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), Id.create(vehicle.getOwnerPerson().getId(), org.matsim.vehicles.Vehicle.class), null, 1.0); } else { event = new LinkEnterEvent(this.getMessageArrivalTime(), Id.create(vehicle.getOwnerPerson().getId(), org.matsim.vehicles.Vehicle.class), vehicle.getCurrentLinkId()); } eventsManager.processEvent(event); }
public void testWriteReadXml() { final VehicleEntersTrafficEvent event1 = new VehicleEntersTrafficEvent(8463.7301, Id.create("483", Person.class), Id.create("783", Link.class), Id.create("veh7", Vehicle.class), TransportMode.car, 1.0); final VehicleEntersTrafficEvent event2 = XmlEventsTester.testWriteReadXml(getOutputDirectory() + "events.xml", event1); assertEquals(event1.getTime(), event2.getTime(), EPSILON); assertEquals(event1.getPersonId().toString(), event2.getPersonId().toString()); assertEquals(event1.getLinkId().toString(), event2.getLinkId().toString()); assertEquals(event1.getVehicleId(), event2.getVehicleId()); assertEquals(event1.getNetworkMode(), event2.getNetworkMode()); } }
@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)); } } }
@Test public void testOneTravelTimeCalculatorPerMode() { Config config = ConfigUtils.createConfig(); config.travelTimeCalculator().setAnalyzedModes("car,bike"); config.travelTimeCalculator().setSeparateModes(true); Scenario scenario = ScenarioUtils.createScenario(config); Node node0 = scenario.getNetwork().getFactory().createNode(Id.createNodeId(0), new Coord(0, 0)); Node node1 = scenario.getNetwork().getFactory().createNode(Id.createNodeId(1), new Coord(1, 0)); scenario.getNetwork().addNode(node0); scenario.getNetwork().addNode(node1); Id<Link> linkId = Id.createLinkId(0); Link link = scenario.getNetwork().getFactory().createLink(linkId, node0, node1); scenario.getNetwork().addLink(link); com.google.inject.Injector injector = Injector.createInjector(config, new TravelTimeCalculatorModule(), new EventsManagerModule(), new ScenarioByInstanceModule(scenario)); TravelTimeCalculator car = injector.getInstance(Key.get(TravelTimeCalculator.class, Names.named("car"))); TravelTimeCalculator bike = injector.getInstance(Key.get(TravelTimeCalculator.class, Names.named("bike"))); EventsManager events = injector.getInstance(EventsManager.class); events.processEvent(new VehicleEntersTrafficEvent(0.0, Id.createPersonId(0), linkId, Id.createVehicleId(0), "car", 0.0)); events.processEvent(new LinkEnterEvent(0.0, Id.createVehicleId(0), linkId)); events.processEvent(new LinkLeaveEvent(2.0, Id.createVehicleId(0), linkId)); events.processEvent(new VehicleLeavesTrafficEvent(2.0, Id.createPersonId(0), linkId, Id.createVehicleId(0), "car", 0.0)); events.processEvent(new VehicleEntersTrafficEvent(0.0, Id.createPersonId(1), linkId, Id.createVehicleId(1), "bike", 0.0)); events.processEvent(new LinkEnterEvent(0.0, Id.createVehicleId(1), linkId)); events.processEvent(new LinkLeaveEvent(8.0, Id.createVehicleId(1), linkId)); events.processEvent(new VehicleLeavesTrafficEvent(8.0, Id.createPersonId(1), linkId, Id.createVehicleId(1), "bike", 0.0)); assertThat(car.getLinkTravelTime(link, 0.0), is(2.0)); assertThat(bike.getLinkTravelTime(link, 0.0), is(8.0)); }
@Test public void testOneTravelTimeCalculatorForAll() { Config config = ConfigUtils.createConfig(); config.travelTimeCalculator().setAnalyzedModes("car,bike"); Scenario scenario = ScenarioUtils.createScenario(config); Node node0 = scenario.getNetwork().getFactory().createNode(Id.createNodeId(0), new Coord(0, 0)); Node node1 = scenario.getNetwork().getFactory().createNode(Id.createNodeId(1), new Coord(1, 0)); scenario.getNetwork().addNode(node0); scenario.getNetwork().addNode(node1); Id<Link> linkId = Id.createLinkId(0); Link link = scenario.getNetwork().getFactory().createLink(linkId, node0, node1); scenario.getNetwork().addLink(link); com.google.inject.Injector injector = Injector.createInjector(config, new TravelTimeCalculatorModule(), new EventsManagerModule(), new ScenarioByInstanceModule(scenario)); TravelTimeCalculator testee = injector.getInstance(TravelTimeCalculator.class); EventsManager events = injector.getInstance(EventsManager.class); events.processEvent(new VehicleEntersTrafficEvent(0.0, Id.createPersonId(0), linkId, Id.createVehicleId(0), "car", 0.0)); events.processEvent(new LinkEnterEvent(0.0, Id.createVehicleId(0), linkId)); events.processEvent(new LinkLeaveEvent(2.0, Id.createVehicleId(0), linkId)); events.processEvent(new VehicleLeavesTrafficEvent(2.0, Id.createPersonId(0), linkId, Id.createVehicleId(0), "car", 0.0)); events.processEvent(new VehicleEntersTrafficEvent(0.0, Id.createPersonId(1), linkId, Id.createVehicleId(1), "bike", 0.0)); events.processEvent(new LinkEnterEvent(0.0, Id.createVehicleId(1), linkId)); events.processEvent(new LinkLeaveEvent(8.0, Id.createVehicleId(1), linkId)); events.processEvent(new VehicleLeavesTrafficEvent(8.0, Id.createPersonId(1), linkId, Id.createVehicleId(1), "bike", 0.0)); assertThat(testee.getLinkTravelTime(link, 0.0), is(5.0)); }
Id<Vehicle> vehId2 = Id.create(1981, Vehicle.class); ttc.handleEvent(new VehicleEntersTrafficEvent(90, agId1, link1.getId(), vehId1, TransportMode.car, 1.0)); ttc.handleEvent(new VehicleEntersTrafficEvent(100, agId2, link1.getId(), vehId2, TransportMode.walk, 1.0)); ttc.handleEvent(new LinkLeaveEvent(100, vehId1, link1.getId())); ttc.handleEvent(new LinkEnterEvent(100, vehId1, link2.getId()));
Id<Vehicle> vehId2 = Id.create(1981, Vehicle.class); ttc.handleEvent(new VehicleEntersTrafficEvent(90, agId1, link1.getId(), vehId1, TransportMode.car, 1.0)); ttc.handleEvent(new VehicleEntersTrafficEvent(100, agId2, link1.getId(), vehId2, TransportMode.walk, 1.0)); ttc.handleEvent(new LinkLeaveEvent(100, vehId1, link1.getId())); ttc.handleEvent(new LinkEnterEvent(100, vehId1, link2.getId()));
Id<Vehicle> vehId2 = Id.create(1981, Vehicle.class); ttc.handleEvent(new VehicleEntersTrafficEvent(90, agId1, link1.getId(), vehId1, TransportMode.car, 1.0)); ttc.handleEvent(new VehicleEntersTrafficEvent(100, agId2, link1.getId(), vehId2, TransportMode.walk, 1.0)); ttc.handleEvent(new LinkLeaveEvent(100, vehId1, link1.getId())); ttc.handleEvent(new LinkEnterEvent(100, vehId1, link2.getId()));
@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); }
Id<Vehicle> vehId = Id.create(1980, Vehicle.class); ttc.handleEvent(new VehicleEntersTrafficEvent(100, agId1, link1.getId(), vehId, TransportMode.car, 1.0)); ttc.handleEvent(new LinkLeaveEvent(200, vehId, link1.getId())); ttc.handleEvent(new LinkEnterEvent(200, vehId, link2.getId()));
return new VehicleEntersTrafficEvent(pe.getVehicleEntersTraffic().getTime(), Id.createPersonId(pe.getVehicleEntersTraffic().getDriverId().getId()), Id.createLinkId(pe.getVehicleEntersTraffic().getLinkId().getId()), Id.createVehicleId(pe.getVehicleEntersTraffic().getVehId().getId()), pe.getVehicleEntersTraffic().getNetworkMode(), pe.getVehicleEntersTraffic().getRelPosOnLink());