public static TransitSchedule removeEmptyLines(TransitSchedule transitSchedule) { log.info("Removing empty lines"); TransitSchedule tS = TransitScheduleCleaner.makeTransitScheduleModifiable(transitSchedule); printStatistic(tS); List<Id> linesToRemove = new LinkedList<Id>(); for (Id lineId : tS.getTransitLines().keySet()) { if (tS.getTransitLines().get(lineId).getRoutes().size() == 0) { linesToRemove.add(lineId); } } StringBuffer sB = new StringBuffer(); for (Id lineId : linesToRemove) { tS.getTransitLines().remove(lineId); sB.append(lineId + ", "); } printStatistic(tS); log.info("Removed " + linesToRemove.size() + " lines from transitSchedule: " + sB.toString()); return tS; }
/** * @param schedule * @return */ public static TransitSchedule removeRoutesWithOnlyOneRouteStop(TransitSchedule schedule) { log.info("Removing transitRoutes with only one stop..."); TransitSchedule tS = TransitScheduleCleaner.makeTransitScheduleModifiable(schedule); Set<Id> routeIds; for (TransitLine line : tS.getTransitLines().values()) { routeIds = new HashSet<Id>(); for (TransitRoute route : line.getRoutes().values()) { // a transitRoute with only one stop makes no sense if (route.getStops().size() < 2) { routeIds.add(route.getId()); } } // remove identified routes for (Id id : routeIds) { line.removeRoute(line.getRoutes().get(id)); } // log only if something has been done if (routeIds.size() > 0) { log.info( "Following TransitRoutes are removed from TransitLine: " + line.getId() + ". " + routeIds.toString()); } } return tS; }
public static TransitSchedule removeRoutesWithoutDepartures(TransitSchedule transitSchedule) { log.info("Removing all routes without any departure"); TransitSchedule tS = TransitScheduleCleaner.makeTransitScheduleModifiable(transitSchedule); printStatistic(tS); StringBuffer sB = new StringBuffer(); int nOfRouteRemoved = 0; for (TransitLine line : tS.getTransitLines().values()) { List<TransitRoute> routesToRemove = new LinkedList<TransitRoute>(); for (TransitRoute route : line.getRoutes().values()) { if (route.getDepartures().size() == 0) { routesToRemove.add(route); } } for (TransitRoute transitRoute : routesToRemove) { line.removeRoute(transitRoute); sB.append(line.getId() + "-" + transitRoute.getId()); sB.append(", "); nOfRouteRemoved++; } } printStatistic(tS); log.info("Removed " + nOfRouteRemoved + " routes from transitSchedule: " + sB.toString()); return tS; }
public static TransitSchedule removeAllRoutesWithMissingLinksFromSchedule( TransitSchedule transitSchedule, Network network) { log.info("Removing stops and routes with missing links from the schedule"); TransitSchedule tS = TransitScheduleCleaner.makeTransitScheduleModifiable(transitSchedule); printStatistic(tS); int removedRoutes = 0; // Remove routes with missing links for (TransitLine transitLine : tS.getTransitLines().values()) { Set<TransitRoute> transitRouteToBeRemoved = new HashSet<TransitRoute>(); for (TransitRoute transitRoute : transitLine.getRoutes().values()) { // Remove Route, when links are missing in the network if (network.getLinks().get(transitRoute.getRoute().getStartLinkId()) == null) { transitRouteToBeRemoved.add(transitRoute); continue; } for (Id linkId : transitRoute.getRoute().getLinkIds()) { if (network.getLinks().get(linkId) == null) { transitRouteToBeRemoved.add(transitRoute); break; } } if (network.getLinks().get(transitRoute.getRoute().getEndLinkId()) == null) { transitRouteToBeRemoved.add(transitRoute); continue; } // Remove route, if one of its stops, has a missing link for (TransitRouteStop transitRouteStop : transitRoute.getStops()) { if (network.getLinks().get(transitRouteStop.getStopFacility().getLinkId()) == null) { transitRouteToBeRemoved.add(transitRoute); break; } } } for (TransitRoute transitRoute : transitRouteToBeRemoved) { if (transitLine.removeRoute(transitRoute) == true) { removedRoutes++; } } } log.info("Removed " + removedRoutes + " routes due to missing links or stops"); printStatistic(tS); return tS; }
public static TransitSchedule removeAllLines(TransitSchedule transitSchedule) { log.info("Removing all transit lines"); TransitSchedule tS = TransitScheduleCleaner.makeTransitScheduleModifiable(transitSchedule); printStatistic(tS); Set<Id> lineIds = new TreeSet<Id>(tS.getTransitLines().keySet()); for (Id id : lineIds) { tS.getTransitLines().remove(id); } printStatistic(tS); log.info("Removed " + lineIds.size() + " lines from transitSchedule."); return tS; }
public static TransitSchedule removeStopsNotUsed(TransitSchedule transitSchedule) { log.info("Removing stops not used"); TransitSchedule tS = TransitScheduleCleaner.makeTransitScheduleModifiable(transitSchedule); printStatistic(tS); Set<Id> stopsInUse = new TreeSet<Id>(); Set<Id> stopsToBeRemoved = new TreeSet<Id>(); for (TransitLine transitLine : tS.getTransitLines().values()) { for (TransitRoute transitRoute : transitLine.getRoutes().values()) { for (TransitRouteStop stop : transitRoute.getStops()) { stopsInUse.add(stop.getStopFacility().getId()); } } } for (TransitStopFacility transitStopFacility : tS.getFacilities().values()) { if (!stopsInUse.contains(transitStopFacility.getId())) { stopsToBeRemoved.add(transitStopFacility.getId()); } } StringBuffer sB = new StringBuffer(); for (Id transitStopFacilityId : stopsToBeRemoved) { tS.getFacilities().remove(transitStopFacilityId); sB.append(transitStopFacilityId.toString() + ", "); } printStatistic(tS); log.info( "Removed " + stopsToBeRemoved.size() + " stops from transitSchedule: " + sB.toString()); return tS; }