public double getTimeEntered(){ return this.personEnterVehE.getTime(); }
@Override public void handleEvent(final PersonEntersVehicleEvent event) { if (this.analyzedTransitDrivers.contains(event.getPersonId()) || !this.analyzedTransitVehicles.contains(event.getVehicleId())) { return; // ignore transit drivers or persons entering non-(analyzed-)transit vehicles } // ------------------veh_passenger- (for occupancy)----------------- Id<Vehicle> vehId = event.getVehicleId(); Id<TransitStopFacility> stopId = this.vehStops.get(vehId); double time = event.getTime(); Integer nPassengers = this.vehPassengers.get(vehId); this.vehPassengers.put(vehId, (nPassengers != null) ? (nPassengers + 1) : 1); this.occupancyRecord.append("time :\t").append(time).append(" veh :\t").append(vehId).append(" has Passenger\t").append(this.vehPassengers.get(vehId)).append(" \tat stop :\t").append(stopId).append(" ENTERING PERSON :\t").append(event.getPersonId()).append("\n"); }
@Override public void handleEvent(PersonEntersVehicleEvent event) { if(!super.ptDriverIds.contains(event.getPersonId())){ this.agentId2PersonEntersVehicleEventTime.put(event.getPersonId(), event.getTime()); } }
@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 void handleEvent(PersonEntersVehicleEvent event) { if(!super.ptDriverIds.contains(event.getPersonId())){ String ptMode = this.vehId2ptModeMap.get(event.getVehicleId()); if (ptMode == null) { ptMode = "nonPtMode"; } if (ptMode2SecondsTravelledMap.get(ptMode) == null) { ptMode2SecondsTravelledMap.put(ptMode, 0.0); } if (ptMode2TripCountMap.get(ptMode) == null) { ptMode2TripCountMap.put(ptMode, 0); } this.ptMode2SecondsTravelledMap.put(ptMode, this.ptMode2SecondsTravelledMap.get(ptMode) + (event.getTime() - this.agentId2AgentDepartureEventTime.get(event.getPersonId()))); this.ptMode2TripCountMap.put(ptMode, this.ptMode2TripCountMap.get(ptMode) + 1); } } }
@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 (this.transitDrivers.contains(event.getPersonId()) || !this.transitVehicles.contains(event.getVehicleId())) { return; // ignore transit drivers or persons entering non-transit vehicles } Id<Vehicle> vehId = event.getVehicleId(); Id<TransitStopFacility> stopId = this.vehStops.get(vehId); double time = event.getTime(); // --------------------------getOns--------------------------- int[] getOn = this.boards.get(stopId); if (getOn == null) { getOn = new int[this.maxSlotIndex + 1]; this.boards.put(stopId, getOn); } getOn[getTimeSlotIndex(time)]++; // ------------------------veh_passenger--------------------------- Integer nPassengers = this.vehPassengers.get(vehId); this.vehPassengers.put(vehId, (nPassengers != null) ? (nPassengers + 1) : 1); this.occupancyRecord.append("time :\t").append(time).append(" veh :\t").append(vehId).append(" has Passenger\t").append(this.vehPassengers.get(vehId)).append(" \tat stop :\t").append(stopId).append(" ENTERING PERSON :\t").append(event.getPersonId()).append("\n"); }
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)); } } }
@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); }
Journey journey = chain.getJourneys().getLast(); journey.getWaits().getLast().setEndTime(event.getTime()); 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);
private void enterVehicle(final PersonEntersVehicleEvent event) { if ( !isRelevant( event.getPersonId() ) ) return; if ( !modeFilter.consider( currentModeOfRelevantAgents.get( event.getPersonId() ) ) ) return; final IntervalsAtLocation intervals = event.getPersonId().equals( ego ) ? intervalsForEgo : MapUtils.getArbitraryObject( event.getPersonId(), intervalsPerAlter, locatedIntervalsFactory); intervals.startInterval( new Location( event.getVehicleId() ), event.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 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()); } }