@Override public void handleEvent(VehicleDepartsAtFacilityEvent event) { Integer num = ptVehicles.get(event.getVehicleId()); if(num!=null) { VehicleOccupancyData vehicleOccupancyData = vehicleOccupancy.get(linesRoutesOfVehicle.get(event.getVehicleId())).get(event.getFacilityId()); if(vehicleOccupancyData!=null) vehicleOccupancyData.addVehicleOccupancy((int) (event.getTime()/timeSlot), num/(double)capacities.get(event.getVehicleId())); } } @Override
@Override public void handleEvent(final VehicleDepartsAtFacilityEvent event) { Id<TransitStopFacility> stopId = this.vehicleFacilityMap.remove(event.getVehicleId()); VehicleData vData = this.vehicleData.get(event.getVehicleId()); if (vData != null) { List<StopInformation> siList = getStopInformation(vData.lineId, vData.routeId, stopId, vData.departureId, true); // Vehicle is already at facility -> add information to last StopInformation StopInformation si = siList.get(siList.size() - 1); si.departureTime = event.getTime(); } }
public void testWriteReadXml() { VehicleDepartsAtFacilityEvent event = new VehicleDepartsAtFacilityEvent(Time.parseTime("10:55:00"), Id.create(5, Vehicle.class), Id.create(11, TransitStopFacility.class), -1.2); VehicleDepartsAtFacilityEvent 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())); } }
public void handleEvent(VehicleDepartsAtFacilityEvent event) { this.vehicleFacilityMap.remove(event.getVehicleId()); }
public void registerDeparture(VehicleDepartsAtFacilityEvent event) { lastDwellEvent.setDepartureTime(event.getTime()); lastDwellEvent.setOccupancyAtDeparture(getOccupancy()); }
} else if (VehicleDepartsAtFacilityEvent.EVENT_TYPE.equals(eventType)) { String delay = atts.getValue(VehicleDepartsAtFacilityEvent.ATTRIBUTE_DELAY); this.events.processEvent(new VehicleDepartsAtFacilityEvent(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 (TransitDriverStartsEvent.EVENT_TYPE.equals(eventType)) { this.events.processEvent(new TransitDriverStartsEvent(time, Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_DRIVER_ID), Person.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_VEHICLE_ID), Vehicle.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_TRANSIT_LINE_ID), TransitLine.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_TRANSIT_ROUTE_ID), TransitRoute.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_DEPARTURE_ID), Departure.class)));
@Override public void handleEvent(VehicleDepartsAtFacilityEvent event) { VehicleTracker tracker = vehicletrackers.get(event.getVehicleId().toString(), event.getTime()); tracker.registerDeparture(event); } }
@Override public void handleEvent(VehicleDepartsAtFacilityEvent event) { String ptMode = this.vehId2ptModeMap.get(event.getVehicleId()); if (ptMode == null) { ptMode = "nonPtMode"; } if (this.ptMode2nOfDepartures.get(ptMode) == null) { this.ptMode2nOfDepartures.put(ptMode, 0); } int oldValue = this.ptMode2nOfDepartures.get(ptMode); this.ptMode2nOfDepartures.put(ptMode, oldValue + 1); } }
private void depart(final double now) { double delay = now - this.getDeparture().getDepartureTime(); if (this.isBadDouble(this.getDeparture().getDepartureTime())){ //this is the case if the next stop is null delay = 0; } if (! this.isBadDouble(this.currentStop.getDepartureOffset())){ delay = delay - this.currentStop.getDepartureOffset(); } else if (! this.isBadDouble(this.currentStop.getArrivalOffset()) ){ delay = delay - this.currentStop.getArrivalOffset(); } else { log.warn("Could not calculate delay!"); } eventsManager.processEvent(new VehicleDepartsAtFacilityEvent(now, this.vehicle.getVehicle().getId(), this.currentStop.getStopFacility().getId(), delay)); this.nextStop = (stopIterator.hasNext() ? stopIterator.next() : null); if(this.nextStop == null) { assertVehicleIsEmpty(); } this.currentStop = null; }
public void handleEvent(final VehicleDepartsAtFacilityEvent 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(VehicleDepartsAtFacilityEvent event) { String ptMode = this.vehId2ptModeMap.get(event.getVehicleId()); if (ptMode == null) { ptMode = "nonPtMode"; } if (this.ptMode2Stats.get(ptMode) == null) { this.ptMode2Stats.put(ptMode, new RecursiveStatsContainer()); } double currentLoad = 0.0; if (this.vehId2PaxMap.get(event.getVehicleId()) != null) { currentLoad = this.vehId2PaxMap.get(event.getVehicleId()).doubleValue(); } double capacity = this.vehId2VehicleCapacity.get(event.getVehicleId()); this.ptMode2Stats.get(ptMode).handleNewEntry(currentLoad / capacity); } }
tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.0*3600+10, vehicleIdDep1, stop1.getId(), 0)); tl.handleEvent(new PersonEntersVehicleEvent(7.1*3600, Id.create(1, Person.class), vehicleIdDep1)); tl.handleEvent(new PersonEntersVehicleEvent(7.1*3600+5, Id.create(2, Person.class), vehicleIdDep1)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.1*3600+25, vehicleIdDep1, stop2.getId(), 0)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.2*3600+20, vehicleIdDep1, stop3.getId(), 0)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.3*3600+5, vehicleIdDep1, stop4.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)); tl.handleEvent(new VehicleDepartsAtFacilityEvent(7.4*3600+5, vehicleIdDep1, stop1.getId(), 0));
@Override public void handleEvent(final VehicleDepartsAtFacilityEvent event) { Id<Vehicle> vehId = event.getVehicleId(); Id<TransitStopFacility> facId = event.getFacilityId(); // -----------------------occupancy-------------------------------- this.vehStops.remove(vehId); int[] occupancyAtStop = this.occupancies.get(facId); if (occupancyAtStop == null) { // no previous departure from this stop, therefore no occupancy // record yet. Create this: occupancyAtStop = new int[this.maxSlotIndex + 1]; this.occupancies.put(facId, occupancyAtStop); } Integer noPassengersInVeh = this.vehPassengers.get(vehId); if (noPassengersInVeh != null) { occupancyAtStop[this.getTimeSlotIndex(event.getTime())] += noPassengersInVeh; this.occupancyRecord.append(event.getTime()); this.occupancyRecord.append("\t"); this.occupancyRecord.append(vehId); this.occupancyRecord.append("\t"); this.occupancyRecord.append(facId); this.occupancyRecord.append("\t"); this.occupancyRecord.append(noPassengersInVeh); this.occupancyRecord.append("\n"); } }
@Override public void handleEvent(VehicleDepartsAtFacilityEvent event) { String ptMode = this.vehId2ptModeMap.get(event.getVehicleId()); if (ptMode == null) { ptMode = "nonPtMode"; } if (this.ptMode2nOfDepartures.get(ptMode) == null) { this.ptMode2nOfDepartures.put(ptMode, 0); } int currentLoad = 0; if (this.vehId2PaxMap.get(event.getVehicleId()) != null) { currentLoad = this.vehId2PaxMap.get(event.getVehicleId()); } int capacity = this.vehId2VehicleCapacity.get(event.getVehicleId()); if (currentLoad == capacity) { // no capacity left int oldValue = this.ptMode2nOfDepartures.get(ptMode); this.ptMode2nOfDepartures.put(ptMode, oldValue + 1); } } }
@Override public void handleEvent(VehicleDepartsAtFacilityEvent event) { Id<TransitStopFacility> stopId = event.getFacilityId(); Id<Vehicle> vehId = event.getVehicleId(); this.vehStops.remove(vehId); // -----------------------occupancy-------------------------------- int[] occupancyAtStop = this.occupancies.get(stopId); if (occupancyAtStop == null) { // no previous departure from this stop, therefore no occupancy record yet. Create this: occupancyAtStop = new int[this.maxSlotIndex + 1]; this.occupancies.put(stopId, occupancyAtStop); } Integer noPassengersInVeh = this.vehPassengers.get(vehId); if (noPassengersInVeh != null) { occupancyAtStop[this.getTimeSlotIndex(event.getTime())] += noPassengersInVeh; this.occupancyRecord.append(event.getTime()); this.occupancyRecord.append("\t"); this.occupancyRecord.append(vehId); this.occupancyRecord.append("\t"); this.occupancyRecord.append(stopId); this.occupancyRecord.append("\t"); this.occupancyRecord.append(noPassengersInVeh); this.occupancyRecord.append("\n"); } }
@Override public void handleEvent(final VehicleDepartsAtFacilityEvent event) { double time = event.getTime(); Id vehId = event.getVehicleId(); Id facId = event.getFacilityId(); if (this.personsFromVehId.get(vehId) == null) { // (means nobody has entered the vehicle yet) return; } TransitStopFacility fac = this.schedule.getFacilities().get(facId); for (Id personId : this.personsFromVehId.get(vehId)) { // get the "Person" behind the id: Person person = this.sc.getPopulation().getPersons().get(personId); // get the selected plan: Plan selectedPlan = person.getSelectedPlan(); // get the planStepFactory for the plan (or create one): PlanBuilder<TransitStopFacility> tmpPlanStepFactory = getPlanStepFactoryForPlan(selectedPlan); if (tmpPlanStepFactory != null) { // add the "turn" to the planStepfactory tmpPlanStepFactory.addTurn(fac, (int) time); } } }