public double getTimeLeft(){ return this.personLeavesVehE.getTime(); }
@Override public void handleEvent(final PersonLeavesVehicleEvent 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(); double time = event.getTime(); Integer nPassengers = this.vehPassengers.get(vehId); if (nPassengers == null) { throw new RuntimeException("null passenger-No. in vehicle ?"); } this.vehPassengers.put(vehId, nPassengers - 1); if (this.vehPassengers.get(vehId) == 0) { this.vehPassengers.remove(vehId); } Integer passengers = this.vehPassengers.get(vehId); this.occupancyRecord.append("time :\t").append(time).append(" veh :\t").append(vehId).append(" has Passenger\t").append((passengers != null) ? passengers : 0).append("\n"); }
@Override public void handleEvent(PersonLeavesVehicleEvent 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.agentId2PersonEntersVehicleEventTime.get(event.getPersonId()))); this.ptMode2TripCountMap.put(ptMode, this.ptMode2TripCountMap.get(ptMode) + 1); } } }
@Override public void handleEvent(PersonLeavesVehicleEvent 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(); // --------------------------getDowns--------------------------- int[] getDown = this.alights.get(stopId); if (getDown == null) { getDown = new int[this.maxSlotIndex + 1]; this.alights.put(stopId, getDown); } getDown[getTimeSlotIndex(time)]++; // ------------------------veh_passenger--------------------------- Integer nPassengers = this.vehPassengers.get(vehId); if (nPassengers == null) { log.error( "tests for `null' but exception says 'negative'??? kai, oct'10 ") ; throw new RuntimeException("negative passenger-No. in vehicle?"); } this.vehPassengers.put(vehId, nPassengers - 1); if (this.vehPassengers.get(vehId).intValue() == 0) { this.vehPassengers.remove(vehId); } Integer passengers = this.vehPassengers.get(vehId); this.occupancyRecord.append("time :\t").append(time).append(" veh :\t").append(vehId).append(" has Passenger\t").append((passengers != null) ? passengers : 0).append("\n"); }
@Override public void handleEvent(PersonLeavesVehicleEvent event) { VehicleTracker tracker = vehicletrackers.get(event.getVehicleId().toString(), event.getTime()); // skip car drivers if (tracker == null) return; tracker.ridershipDecrement(event); }
public double getRunningCostTime() { double timeInService = 0; if (this.transitDriverAlightsE != null) { if (this.vehicleAbortE != null) { throw new RuntimeException( "There is both a PersonLeavesVehicleEvent and a VehicleAbortsEvent for TransitDriverStartsEvent " + this.transitDriverStartsE); } timeInService = this.transitDriverAlightsE.getTime() - this.transitDriverStartsE.getTime(); } else if (this.vehicleAbortE != null) { timeInService = this.vehicleAbortE.getTime() - this.transitDriverStartsE.getTime(); } else { throw new RuntimeException( "Neither PersonLeavesVehicleEvent nor VehicleAbortEvent found for TransitDriverStartsEvent " + transitDriverStartsE.getDriverId() + "."); } return this.expensesPerSecond * timeInService; }
private void leaveVehicle(final PersonLeavesVehicleEvent 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.endInterval( new Location( event.getVehicleId() ), event.getTime() ); }
public void testWriteReadXml() { 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); PersonLeavesVehicleEvent event = new PersonLeavesVehicleEvent(5.0 * 3600 + 11.0 * 60, person.getId(), vehicle.getId()); PersonLeavesVehicleEvent 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()); } }