public void handleEvent(final VehicleArrivesAtFacilityEvent event) { List<Tuple<Id, Double>> list = this.positions.get(event.getVehicleId()); if (list == null) { list = new ArrayList<Tuple<Id, Double>>(); this.positions.put(event.getVehicleId(), list); } list.add(new Tuple<Id, Double>(event.getFacilityId(), Double.valueOf(event.getTime()))); }
@Override public void handleEvent(VehicleArrivesAtFacilityEvent event) { this.vehId2StopIdMap.put(event.getVehicleId(), event.getFacilityId()); }
@Override public void handleEvent(VehicleArrivesAtFacilityEvent event) { if (eventCounter.incrementAndGet() > maxEvents) return; try { ptVehicles.get(event.getVehicleId()).lastStop = event .getFacilityId(); } catch (Exception e) { System.err.println(e.getStackTrace()); System.err.println(event.toString()); } }
public void testWriteReadXml() { VehicleArrivesAtFacilityEvent event = new VehicleArrivesAtFacilityEvent(Time.parseTime("10:55:00"), Id.create(5, Vehicle.class), Id.create(11, TransitStopFacility.class), -1.2); VehicleArrivesAtFacilityEvent event2 = XmlEventsTester.testWriteReadXml(getOutputDirectory() + "events.xml", event); assertEquals(Time.parseTime("10:55:00"), event2.getTime(), EPSILON); assertEquals(Id.create(5, Vehicle.class), event2.getVehicleId()); assertEquals(Id.create(11, TransitStopFacility.class), event2.getFacilityId()); assertEquals(Double.valueOf(-1.2), Double.valueOf(event2.getDelay())); } }
@Override public void handleEvent(VehicleArrivesAtFacilityEvent event) { if(event.getVehicleId().toString().contains(this.pIdentifier)){ if (this.vehId2Offset.get(event.getVehicleId()) == null) { this.vehId2Offset.put(event.getVehicleId(), new ArrayList<Double>()); } this.vehId2Offset.get(event.getVehicleId()).add(event.getTime()); } }
public DwellEvent registerArrival(VehicleArrivesAtFacilityEvent event) { DwellEvent dwellEvent = new DwellEvent(event.getTime(),event.getFacilityId().toString(), this,stopsVisited.size()); stopsVisited.add(dwellEvent); this.lastDwellEvent = dwellEvent; return this.lastDwellEvent; }
@Override public void handleEvent(VehicleArrivesAtFacilityEvent event) { /* remove EnterEvents from list when a bus stops on a link. * otherwise, the stop time would counted as travel time, when the * bus departs again and leaves the link! */ this.linkEnterEvents.remove(event.getVehicleId()); }
public Id<TransitStopFacility> getStopLeft() { return this.vehArrivesAtFacilityELeft.getFacilityId(); }
private void processEventVehicleArrives(final TransitStopFacility stop, final double now) { if (this.currentStop == null) { this.currentStop = this.nextStop; double delay = now - this.getDeparture().getDepartureTime(); if (! ( Double.isNaN(this.currentStop.getArrivalOffset()) && Double.isInfinite(this.currentStop.getArrivalOffset())) ){ delay = delay - this.currentStop.getArrivalOffset(); } else if (! (Double.isNaN(this.currentStop.getDepartureOffset()) && Double.isInfinite(this.currentStop.getDepartureOffset()))) { delay = delay - this.currentStop.getDepartureOffset(); } else { log.warn("Could not calculate delay!"); } eventsManager.processEvent(new VehicleArrivesAtFacilityEvent(now, this.vehicle.getVehicle().getId(), stop.getId(), delay)); } }
@Override public void handleEvent(final VehicleArrivesAtFacilityEvent event) { Id<TransitStopFacility> stopId = event.getFacilityId(); this.vehStops.put(event.getVehicleId(), stopId); // (constructing a table with vehId as key, and stopId as value; constructed when veh arrives at // stop; necessary // since personEnters/LeavesVehicle does not carry stop id) }
@Override public void handleEvent(VehicleArrivesAtFacilityEvent event) { this.vehId2VehArrivesAtFacilityE.put(event.getVehicleId(), event); }
public Id<TransitStopFacility> getStopEntered() { return this.vehArrivesAtFacilityEEntered.getFacilityId(); }
} else if (VehicleArrivesAtFacilityEvent.EVENT_TYPE.equals(eventType)) { String delay = atts.getValue(VehicleArrivesAtFacilityEvent.ATTRIBUTE_DELAY); this.events.processEvent(new VehicleArrivesAtFacilityEvent(time, Id.create(atts.getValue(VehicleArrivesAtFacilityEvent.ATTRIBUTE_VEHICLE), Vehicle.class), Id.create(atts.getValue(VehicleArrivesAtFacilityEvent.ATTRIBUTE_FACILITY), TransitStopFacility.class), delay == null ? 0.0 : Double.parseDouble(delay))); } else if (VehicleDepartsAtFacilityEvent.EVENT_TYPE.equals(eventType)) { String delay = atts.getValue(VehicleDepartsAtFacilityEvent.ATTRIBUTE_DELAY);
@Override public void handleEvent(final VehicleArrivesAtFacilityEvent event) { this.vehicleFacilityMap.put(event.getVehicleId(), event.getFacilityId()); VehicleData vData = this.vehicleData.get(event.getVehicleId()); if (vData != null) { List<StopInformation> siList = getStopInformation(vData.lineId, vData.routeId, this.vehicleFacilityMap.get(event.getVehicleId()), vData.departureId, true); // Vehicle arrives at facility -> begin of serving the stop (once more) -> create new StopInformation StopInformation si = new StopInformation(); si.arrivalTime = event.getTime(); siList.add(si); } }
@Override public void handleEvent(VehicleArrivesAtFacilityEvent event) { LineAndRoute lineAndRoute = transitVehicle2currentRoute.get(event.getVehicleId()); if (lineAndRoute != null) { lineAndRoute.lastFacilityId = event.getFacilityId(); } }
@Override public void handleEvent(VehicleArrivesAtFacilityEvent event) { for (Id<Person> agentId : this.vehId2AgentId2StopCountMap.get(event.getVehicleId()).keySet()) { int oldValue = this.vehId2AgentId2StopCountMap.get(event.getVehicleId()).get(agentId); this.vehId2AgentId2StopCountMap.get(event.getVehicleId()).put(agentId, oldValue + 1); } }
tl.handleEvent(new PersonEntersVehicleEvent(7.0*3600-20, Id.create("ptDriver1", Person.class), vehicleIdDep1)); tl.handleEvent(new VehicleArrivesAtFacilityEvent(7.0*3600-10, vehicleIdDep1, stop1.getId(), 0)); tl.handleEvent(new PersonEntersVehicleEvent(7.0*3600-5, Id.create(0, Person.class), vehicleIdDep1)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.0*3600+10, vehicleIdDep1, stop1.getId(), 0)); tl.handleEvent(new VehicleArrivesAtFacilityEvent(7.1*3600-25, vehicleIdDep1, stop2.getId(), 0)); tl.handleEvent(new PersonLeavesVehicleEvent(7.1*3600-5, Id.create(0, Person.class), vehicleIdDep1)); tl.handleEvent(new PersonEntersVehicleEvent(7.1*3600, Id.create(1, Person.class), vehicleIdDep1)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.1*3600+25, vehicleIdDep1, stop2.getId(), 0)); tl.handleEvent(new VehicleArrivesAtFacilityEvent(7.2*3600-15, vehicleIdDep1, stop3.getId(), 0)); tl.handleEvent(new PersonLeavesVehicleEvent(7.2*3600-5, Id.create(2, Person.class), vehicleIdDep1)); tl.handleEvent(new PersonEntersVehicleEvent(7.2*3600, Id.create(3, Person.class), vehicleIdDep1)); tl.handleEvent(new VehicleArrivesAtFacilityEvent(7.3*3600-20, vehicleIdDep1, stop4.getId(), 0)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.3*3600+5, vehicleIdDep1, stop4.getId(), 0)); tl.handleEvent(new VehicleArrivesAtFacilityEvent(7.4*3600-20, vehicleIdDep1, stop1.getId(), 0)); tl.handleEvent(new PersonLeavesVehicleEvent(7.4*3600-5, Id.create(1, Person.class), vehicleIdDep1)); tl.handleEvent(new PersonLeavesVehicleEvent(7.4*3600, Id.create(3, Person.class), vehicleIdDep1));
@Override public void handleEvent(VehicleArrivesAtFacilityEvent event) { if(!useVehicleIds || vehicleIds.contains(event.getVehicleId())) { Tuple<Id<TransitStopFacility>, Double> route = inTransitVehicles.remove(event.getVehicleId()); if(route!=null) stopStopTimes.get(route.getFirst()).get(event.getFacilityId()).addStopStopTime((int) (route.getSecond()/timeSlot), event.getTime()-route.getSecond()); inTransitVehicles.put(event.getVehicleId(), new Tuple<Id<TransitStopFacility>, Double>(event.getFacilityId(), event.getTime())); } } @Override
@Override public void handleEvent(VehicleArrivesAtFacilityEvent event) { Id<TransitStopFacility> stopId = event.getFacilityId(); this.vehStops.put(event.getVehicleId(), stopId); }
/** * @author mrieser / senozon */ public void testGetLinkTravelTime_ignorePtVehiclesAtStop() { Network network = NetworkUtils.createNetwork(); TravelTimeCalculatorConfigGroup config = new TravelTimeCalculatorConfigGroup(); config.setTraveltimeBinSize(900); TravelTimeCalculator ttc = new TravelTimeCalculator(network, config); Node n1 = network.getFactory().createNode(Id.create(1, Node.class), new Coord(0, 0)); Node n2 = network.getFactory().createNode(Id.create(2, Node.class), new Coord(1000, 0)); network.addNode(n1); network.addNode(n2); Link link1 = network.getFactory().createLink(Id.create(1, Link.class), n1, n2); network.addLink(link1); Id<Vehicle> ptVehId = Id.create("ptVeh", Vehicle.class); Id<Vehicle> ivVehId = Id.create("ivVeh", Vehicle.class); ttc.handleEvent(new LinkEnterEvent(100, ivVehId, link1.getId())); ttc.handleEvent(new LinkEnterEvent(150, ptVehId, link1.getId())); ttc.handleEvent(new LinkLeaveEvent(200, ivVehId, link1.getId())); ttc.handleEvent(new VehicleArrivesAtFacilityEvent(240, ptVehId, Id.create("stop", TransitStopFacility.class), 0)); ttc.handleEvent(new LinkLeaveEvent(350, ptVehId, link1.getId())); Assert.assertEquals("The time of transit vehicles at stop should not be counted", 100.0, ttc.getLinkTravelTimes().getLinkTravelTime(link1, 200, null, null), 1e-8); }