20 package org.matsim.pt.analysis;
22 import java.util.ArrayList;
23 import java.util.HashMap;
24 import java.util.List;
54 private final Map<Id<TransitLine>, LineData>
lineData =
new HashMap<>();
73 for (
int i = 0; i < route.
getStops().size(); i++) {
74 if (route.
getStops().get(i).getStopFacility().getId().equals(stopFacility.
getId())) {
82 int nOfPassengers = 0;
89 Map<Id<TransitStopFacility>, Integer> stop2nrVisited =
new HashMap<>();
90 for (
int i = 0; i < route.
getStops().size(); i++) {
93 if (nrVisited == null) {
101 if (siList != null) {
108 if (i == transitRouteStopIndex) {
109 return nOfPassengers;
121 this.vehicleData.put(event.
getVehicleId(),
new VehicleData(event.
getVehicleId(),
event.getTransitLineId(),
event.getTransitRouteId(),
event.getDepartureId(),
event.getDriverId()));
126 this.vehicleFacilityMap.put(event.
getVehicleId(),
event.getFacilityId());
178 public void reset(
final int iteration) {
179 this.vehicleFacilityMap.clear();
180 this.vehicleData.clear();
184 LineData ld = this.lineData.get(lineId);
186 if (createIfMissing) {
188 this.lineData.put(lineId, ld);
194 RouteData rd = ld.routeData.get(routeId);
196 if (createIfMissing) {
197 rd =
new RouteData();
198 ld.routeData.put(routeId, rd);
204 StopData sd = rd.stopData.get(stopFacilityId);
206 if (createIfMissing) {
208 rd.stopData.put(stopFacilityId, sd);
214 List<StopInformation> siList = sd.departureData.get(departureId);
215 if (siList == null) {
216 if (createIfMissing) {
217 siList =
new ArrayList<>();
218 sd.departureData.put(departureId, siList);
242 static class LineData {
243 public final Map<Id<TransitRoute>, RouteData> routeData =
new HashMap<>();
246 static class RouteData {
247 public final Map<Id<TransitStopFacility>, StopData> stopData =
new HashMap<>();
250 static class StopData {
251 public final Map<Id<Departure>, List<StopInformation>> departureData =
new HashMap<>();
255 public short nOfEntering = 0;
256 public short nOfLeaving = 0;
257 public double arrivalTime = Double.NaN;
258 public double departureTime = Double.NaN;
Id< Vehicle > getVehicleId()
int getLoadAtDeparture(final TransitLine line, final TransitRoute route, final TransitStopFacility stopFacility, final Departure departure)
List< StopInformation > getDepartureStopInformation(final TransitLine line, final TransitRoute route, final TransitStopFacility stopFacility, final Departure departure)
int getLoadAtDeparture(final TransitLine line, final TransitRoute route, final int transitRouteStopIndex, final Departure departure)
final Map< Id< Vehicle >, Id< TransitStopFacility > > vehicleFacilityMap
void handleEvent(final VehicleDepartsAtFacilityEvent event)
final Map< Id< Vehicle >, VehicleData > vehicleData
VehicleData(final Id< Vehicle > vehicleId, final Id< TransitLine > lineId, final Id< TransitRoute > routeId, final Id< Departure > departureId, final Id< Person > driverId)
Id< Vehicle > getVehicleId()
Id< Person > getPersonId()
final Id< Person > driverId
final Id< TransitRoute > routeId
List< TransitRouteStop > getStops()
Id< Vehicle > getVehicleId()
void handleEvent(final VehicleArrivesAtFacilityEvent event)
final Map< Id< TransitLine >, LineData > lineData
final Id< Vehicle > vehicleId
abstract TransitStopFacility getStopFacility()
void handleEvent(final PersonEntersVehicleEvent event)
List< StopInformation > getStopInformation(final Id< TransitLine > lineId, final Id< TransitRoute > routeId, final Id< TransitStopFacility > stopFacilityId, final Id< Departure > departureId, final boolean createIfMissing)
final Id< Departure > departureId
Id< Vehicle > getVehicleId()
final Id< TransitLine > lineId
void reset(final int iteration)
void handleEvent(TransitDriverStartsEvent event)
void handleEvent(final PersonLeavesVehicleEvent event)
Id< Person > getPersonId()
Id< Vehicle > getVehicleId()