public void setLine(TransitLine line) { this.line = line; this.vehicleIds = new TreeSet<>(); for (TransitRoute route : this.line.getRoutes().values()) { for (Departure departure : route.getDepartures().values()) { this.vehicleIds.add(departure.getVehicleId()); } } this.nVehicles = this.vehicleIds.size(); }
/** * Lazy initialization, as the vehicle info may not be available from the beginning. */ private void collectVehiclesInfo() { Set<Id> set = new HashSet<Id>(this.transitRoute.getDepartures().size()*2); for (Departure departure : this.transitRoute.getDepartures().values()) { if (departure.getVehicleId() != null) { set.add(departure.getVehicleId()); } } /* try to make it thread-safe by assigning class-member at the end. * if two threads enter this method, nothing bad should happen, * as both threads should generated the same initialization. */ this.routeVehicles = set; }
/** * Lazy initialization, as the vehicle info may not be available from the beginning. */ private void collectHeadingsInfo() { Map<Id, Departure> map = new HashMap<Id, Departure>(this.transitRoute.getDepartures().size()*2); for (Departure departure : this.transitRoute.getDepartures().values()) { if (departure.getVehicleId() != null) { map.put(departure.getVehicleId(), departure); } } /* try to make it thread-safe by assigning class-member at the end. * if two threads enter this method, nothing bad should happen, * as both threads should generated the same initialization. */ this.headings = map; }
private void createUmlaeufe(){ int cnt = 0; for (UmlaufStueck umlaufStueck : umlaufStuecke) { Id<Umlauf> umlaufId = this.getUmlaufIdForVehicleId(umlaufStueck.getDeparture().getVehicleId()); if (umlaufId == null) { throw new RuntimeException("UmlaufId could not be found. veh=" + umlaufStueck.getDeparture().getVehicleId()); } Umlauf umlauf = umlaeufe.get(umlaufId); if (umlauf == null) { throw new RuntimeException("Umlauf could not be found: " + umlaufId); } umlaufInterpolator.addUmlaufStueckToUmlauf(umlaufStueck, umlauf); cnt++; printStatus(cnt); } }
private void writeDepartures(final Map<Id<Departure>, Departure> departures) throws UncheckedIOException { this.writeStartTag(Constants.DEPARTURES, null); // optimization: only create one List for multiple departures List<Tuple<String, String>> attributes = new ArrayList<Tuple<String, String>>(3); for (Departure dep : departures.values()) { attributes.clear(); attributes.add(this.createTuple(Constants.ID, dep.getId().toString())); attributes.add(this.createTimeTuple(Constants.DEPARTURE_TIME, dep.getDepartureTime())); if (dep.getVehicleId() != null) { attributes.add(this.createTuple(Constants.VEHICLE_REF_ID, dep.getVehicleId().toString())); } this.writeStartTag(Constants.DEPARTURE, attributes, true); } this.writeEndTag(Constants.DEPARTURES); } }
public StopStopTimeCalculatorTuple(final TransitSchedule transitSchedule, final int timeSlot, final int totalTime) { this.timeSlot = timeSlot; Map<Tuple<Id<TransitStopFacility>, Id<TransitStopFacility>>, Integer> numObservations = new HashMap<Tuple<Id<TransitStopFacility>, Id<TransitStopFacility>>, Integer>(); for(TransitLine line:transitSchedule.getTransitLines().values()) for(TransitRoute route:line.getRoutes().values()) { for(int s=0; s<route.getStops().size()-1; s++) { Tuple<Id<TransitStopFacility>, Id<TransitStopFacility>> key = new Tuple<Id<TransitStopFacility>, Id<TransitStopFacility>>(route.getStops().get(s).getStopFacility().getId(), route.getStops().get(s+1).getStopFacility().getId()); StopStopTimeData data = stopStopTimes.get(key); if(data==null) stopStopTimes.put(key, new StopStopTimeDataArray((int) (totalTime/timeSlot)+1)); Double sTime = scheduledStopStopTimes.get(key); Integer num = numObservations.get(key); if(sTime==null) { sTime = 0.0; scheduledStopStopTimes.put(key, sTime); num = 0; numObservations.put(key, num); } scheduledStopStopTimes.put(key, (num*sTime+route.getStops().get(s+1).getArrivalOffset()-route.getStops().get(s).getDepartureOffset())/++num); numObservations.put(key, num); } for(Departure departure:route.getDepartures().values()) vehicleIds.add(departure.getVehicleId()); } System.out.println(stopStopTimes.size()); } public static void main(String[] args) {
private void writeDepartures(final Map<Id<Departure>, Departure> departures) throws IOException, UncheckedIOException { this.writeStartTag(Constants.DEPARTURES, null); // optimization: only create one List for multiple departures List<Tuple<String, String>> attributes = new ArrayList<>(3); for (Departure dep : departures.values()) { attributes.clear(); attributes.add(createTuple(Constants.ID, dep.getId().toString())); attributes.add(createTimeTuple(Constants.DEPARTURE_TIME, dep.getDepartureTime())); if (dep.getVehicleId() != null) { attributes.add(createTuple(Constants.VEHICLE_REF_ID, dep.getVehicleId().toString())); } if (AttributesUtils.isEmpty(dep.getAttributes())) { this.writeStartTag(Constants.DEPARTURE, attributes, true); } else { this.writeStartTag(Constants.DEPARTURE, attributes, false); this.writer.write(NL); this.attributesWriter.writeAttributes("\t\t\t\t\t", this.writer, dep.getAttributes()); this.writeEndTag(Constants.DEPARTURE); } } this.writeEndTag(Constants.DEPARTURES); } }
vehicleIds.add(departure.getVehicleId().toString());
newDeparture.setVehicleId(oldDeparture.getVehicleId()); mergeDestination.addDeparture(newDeparture);
vehicleIds.add(departure.getVehicleId());
vehicles.add(dep.getVehicleId());
vehicleIds.add(departure.getVehicleId());
public void testVehicleId() { Departure dep = createDeparture(Id.create(6791, Departure.class), 7.0*3600); assertNull(dep.getVehicleId()); Id<Vehicle> vehId = Id.create(2491, Vehicle.class); dep.setVehicleId(vehId); assertEquals(vehId, dep.getVehicleId()); } }
for (TransitRoute route : line.getRoutes().values()) { for (Departure departure : route.getDepartures().values()) { if (!vehicles.getVehicles().keySet().contains(departure.getVehicleId())) { Vehicle vehicle = vehFactory.createVehicle(departure.getVehicleId(), vehType); vehicles.addVehicle( vehicle);
assertEquals(depId1, dep1.getId()); assertEquals(Time.parseTime(depTime1), dep1.getDepartureTime(), MatsimTestCase.EPSILON); assertEquals(Id.create("v 975", Vehicle.class), dep1.getVehicleId()); Departure dep2 = route.getDepartures().get(depId2); assertNotNull(dep2); assertEquals(depId2, dep2.getId()); assertEquals(Time.parseTime(depTime2), dep2.getDepartureTime(), MatsimTestCase.EPSILON); assertNull(dep2.getVehicleId());
assertNotNull("departure not found: " + departureE.getId().toString(), departureA); assertEquals("different departure times.", departureE.getDepartureTime(), departureA.getDepartureTime(), EPSILON); assertEquals("different vehicle ids.", departureE.getVehicleId(), departureA.getVehicleId());