@Override public void handleEvent(PersonEntersVehicleEvent event) { if (this.lastDepartureTime.containsKey(event.getPersonId())){ this.vehicle2pax.put(event.getPersonId(), event.getVehicleId()); this.distanceTraveled.put(event.getVehicleId(), 0.0); } } }
@Override public void handleEvent(PersonEntersVehicleEvent event) { Double startWaitingTime = agentsWaitingData.get(event.getPersonId()); if(startWaitingTime!=null) { Tuple<Id<TransitLine>, Id<TransitRoute>> lineRoute = linesRoutesOfVehicle.get(event.getVehicleId()); WaitTimeData data = waitTimes.get(lineRoute).get(stopOfVehicle.get(event.getVehicleId())); data.addWaitTime((int) (startWaitingTime/timeSlot), event.getTime()-startWaitingTime); agentsWaitingData.remove(event.getPersonId()); } }
@Override public void handleEvent(PersonEntersVehicleEvent event) { if(!super.ptDriverIds.contains(event.getPersonId())){ this.agentId2PersonEntersVehicleEventTime.put(event.getPersonId(), event.getTime()); } }
if (eventCounter.incrementAndGet() > maxEvents) return; try { if (transitDriverIds.contains(event.getPersonId())) return; if (ptVehicles.keySet().contains(event.getVehicleId())) { TravellerChain chain = chains.get(event.getPersonId()); Journey journey = chain.getJourneys().getLast(); journey.getWaits().getLast().setEndTime(event.getTime()); ptVehicles.get(event.getVehicleId()).addPassenger( event.getPersonId()); Trip trip = journey.addTrip(); PTVehicle vehicle = ptVehicles.get(event.getVehicleId()); trip.setLine(vehicle.transitLineId); trip.setMode(transitSchedule.getTransitLines() trip.setBoardingStop(vehicle.lastStop); trip.setOrig(journey.getWaits().getLast().getCoord()); trip.setRoute(ptVehicles.get(event.getVehicleId()).transitRouteId); trip.setStartTime(event.getTime()); journey.getPossibleTransfer().setEndTime(event.getTime()); journey.addTransfer(journey.getPossibleTransfer()); journey.setPossibleTransfer(null); driverIdFromVehicleId.put(event.getVehicleId(), event.getPersonId());
@Override public void handleEvent(PersonEntersVehicleEvent event) { VehicleTracker tracker = vehicletrackers.get(event.getVehicleId().toString(), event.getTime()); //skip car drivers if (tracker == null) return; tracker.ridershipIncrement(event); }
public void testReadWriteXml() { Person person = PopulationUtils.getFactory().createPerson(Id.create(1, Person.class)); VehicleType vehicleType = new VehicleTypeImpl(Id.create("testVehType", VehicleType.class)); Vehicle vehicle = new VehicleImpl(Id.create(80, Vehicle.class), vehicleType); PersonEntersVehicleEvent event = new PersonEntersVehicleEvent(5.0 * 3600 + 11.0 * 60, person.getId(), vehicle.getId()); PersonEntersVehicleEvent event2 = XmlEventsTester.testWriteReadXml(getOutputDirectory() + "events.xml", event); assertEquals("wrong time of event.", 5.0 * 3600 + 11.0 * 60, event2.getTime(), EPSILON); assertEquals("wrong vehicle id.", "80", event2.getVehicleId().toString()); } }
@Override public final void letVehicleDepart(QVehicle vehicle) { double now = context.getSimTimer().getTimeOfDay(); MobsimDriverAgent driver = vehicle.getDriver(); if (driver == null) throw new RuntimeException("Vehicle cannot depart without a driver!"); EventsManager eventsManager = context.getEventsManager(); eventsManager.processEvent(new PersonEntersVehicleEvent(now, driver.getId(), vehicle.getId())); this.addDepartingVehicle(vehicle); }
@Override public void handleEvent(PersonEntersVehicleEvent event) { Integer num = this.ptVehicles.get(event.getVehicleId()); if(num!=null) this.ptVehicles.put(event.getVehicleId(), num+1); } @Override
@Override public void handleEvent(PersonEntersVehicleEvent event) { if (this.linkIdSensorMap.containsKey(personDepartureLinks.get(event.getPersonId()))){ this.linkIdSensorMap.get(personDepartureLinks.get(event.getPersonId())).handleEvent(event); } }
public double getTimeEntered(){ return this.personEnterVehE.getTime(); }
@Override public void handleEvent(PersonEntersVehicleEvent event) { Double startWaitingTime = agentsWaitingData.get(event.getPersonId()); if(startWaitingTime!=null) { int legs = 0, currentLeg = agentsCurrentLeg.get(event.getPersonId()); PLAN_ELEMENTS: for(PlanElement planElement:population.getPersons().get(event.getPersonId()).getSelectedPlan().getPlanElements()) if(planElement instanceof Leg) { if(currentLeg==legs) { Route route = (((Leg)planElement).getRoute()); ExperimentalTransitRoute eRoute = (ExperimentalTransitRoute) new ExperimentalTransitRouteFactory().createRoute(route.getStartLinkId(), route.getEndLinkId()); eRoute.setStartLinkId(route.getStartLinkId()); eRoute.setEndLinkId(route.getEndLinkId()); eRoute.setRouteDescription(route.getRouteDescription()); WaitTimeData data = waitTimes.get(new Tuple<Id<TransitLine>, Id<TransitRoute>>(eRoute.getLineId(), eRoute.getRouteId())).get(eRoute.getAccessStopId()); data.addWaitTime((int) (startWaitingTime/timeSlot), event.getTime()-startWaitingTime); agentsWaitingData.remove(event.getPersonId()); break PLAN_ELEMENTS; } else legs++; } } }
public void handleEvent(PersonEntersVehicleEvent event) { this.vehiclesOnLink++; if(this.doAverageVehiclesPerSecondMonitoring) { if (lookBackTime != Double.POSITIVE_INFINITY) { updateBucketsUntil(event.getTime()); currentBucket.incrementAndGet(); } totalVehicles ++; if(totalVehicles == 1) { monitoringStartTime = event.getTime(); } } if (this.doDistanceMonitoring){ for (Double distance : this.distanceMeterCarLocatorMap.keySet()) { Map<Id<Vehicle>, CarLocator> carLocatorPerVehicleId = this.distanceMeterCarLocatorMap.get(distance); // as vehicles enter links at their downstream end, assume enter time was freespeed travel time ago double fs_tt = this.link.getLength() / this.link.getFreespeed(); carLocatorPerVehicleId.put(event.getVehicleId(), new CarLocator(this.link, event.getTime() - fs_tt, distance)); } } }
String personString = atts.getValue(PersonEntersVehicleEvent.ATTRIBUTE_PERSON); String vehicleString = atts.getValue(PersonEntersVehicleEvent.ATTRIBUTE_VEHICLE); this.events.processEvent(new PersonEntersVehicleEvent(time, Id.create(personString, Person.class), Id.create(vehicleString, Vehicle.class))); } else if (PersonLeavesVehicleEvent.EVENT_TYPE.equals(eventType)) { Id<Person> pId = Id.create(atts.getValue(PersonLeavesVehicleEvent.ATTRIBUTE_PERSON), Person.class);
public void handleEvent(final PersonEntersVehicleEvent event) { if (this.routeVehicles == null) { collectVehiclesInfo(); } if (this.routeVehicles.contains(event.getVehicleId())) { Id facilityId = this.tracker.getFacilityIdForVehicle(event.getVehicleId()); Integer count = this.enteringPassengers.get(facilityId); if (count == null) { this.enteringPassengers.put(facilityId, Int1); } else { this.enteringPassengers.put(facilityId, Integer.valueOf(1 + count.intValue())); } } }
public void ridershipIncrement(PersonEntersVehicleEvent event) { if (!event.getPersonId().equals(driverId)) ridership++; }
@Override public void handleEvent(PersonEntersVehicleEvent event) { if (this.vehId2NumberOfPassengers.get(event.getVehicleId()) == null) { this.vehId2NumberOfPassengers.put(event.getVehicleId(), 0); } if(!super.ptDriverIds.contains(event.getPersonId())){ this.vehId2NumberOfPassengers.put(event.getVehicleId(), this.vehId2NumberOfPassengers.get(event.getVehicleId()) + 1); } }
@Override public void handleEvent(PersonEntersVehicleEvent event) { Double startWaitingTime = agentsWaitingData.get(event.getPersonId().toString()); if (startWaitingTime != null) { Tuple<String, String> lineRoute = linesRoutesOfVehicle.get(event.getVehicleId().toString()); WaitTimeData data = waitTimes.get(lineRoute).get(stopOfVehicle.get(event.getVehicleId().toString())); data.addWaitTime((int) (startWaitingTime / timeSlot), event.getTime() - startWaitingTime); agentsWaitingData.remove(event.getPersonId().toString()); } }
@Override public final boolean insertPassengerIntoVehicle(MobsimAgent passenger, Id<Vehicle> vehicleId) { double now = context.getSimTimer().getTimeOfDay(); QVehicle vehicle = this.getParkedVehicle(vehicleId); // if the vehicle is not parked at the link, mark the agent as passenger waiting for vehicle if (vehicle == null) { registerPassengerAgentWaitingForCar(passenger, vehicleId); return false; } else { boolean added = vehicle.addPassenger((PassengerAgent) passenger); if (!added) { log.warn("Passenger " + passenger.getId().toString() + " could not be inserted into vehicle " + vehicleId.toString() + " since there is no free seat available!"); return false; } ((PassengerAgent) passenger).setVehicle(vehicle); EventsManager eventsManager = context.getEventsManager(); eventsManager.processEvent(new PersonEntersVehicleEvent(now, passenger.getId(), vehicle.getId())); // TODO: allow setting passenger's currentLinkId to null return true; } }
public void handleEvent(final PersonEntersVehicleEvent event) { if (this.headings == null) { collectHeadingsInfo(); } Departure dep = this.headings.get(event.getVehicleId()); if (dep != null) { Id fId = this.vehTracker.getFacilityIdForVehicle(event.getVehicleId()); Map<Id, Integer> counter = getAccessCounter(dep); Integer count = counter.get(fId); if (count == null) { counter.put(fId, Integer.valueOf(1)); } else { counter.put(fId, Integer.valueOf(1 + count.intValue())); } } }
@Override public void handleEvent(PersonEntersVehicleEvent event) { if(!super.ptDriverIds.contains(event.getPersonId())){ if (this.vehId2PaxMap.get(event.getVehicleId()) == null) { this.vehId2PaxMap.put(event.getVehicleId(), 0); } this.vehId2PaxMap.put(event.getVehicleId(), this.vehId2PaxMap.get(event.getVehicleId()) + 1); } }