private Leg createTransitLeg(RouteSegment routeSegment) { Leg leg = PopulationUtils.createLeg(TransportMode.pt); TransitStopFacility accessStop = routeSegment.getFromStop(); TransitStopFacility egressStop = routeSegment.getToStop(); ExperimentalTransitRoute ptRoute = new ExperimentalTransitRoute(accessStop, egressStop, routeSegment.getLineTaken(), routeSegment.getRouteTaken()); ptRoute.setTravelTime(routeSegment.travelTime); leg.setRoute(ptRoute); leg.setTravelTime(routeSegment.getTravelTime()); return leg; }
private double scoreRoute(List<RouteSegment> route, Map<TransitStopFacility, InitialNode> fromStops, Map<TransitStopFacility, InitialNode> toStops) { double cost = 0.0; for (RouteSegment routeSegment : route) { if (routeSegment.getRouteTaken() == null) { // handle transfer cost += this.raptorDisutility.getTransferCost(routeSegment.getFromStop().getCoord(), routeSegment.getToStop().getCoord()); } else { // pt trip cost += this.raptorDisutility.getInVehicleTravelDisutility(routeSegment); } } // add cost for getting to the first and last stop cost += fromStops.get(route.get(0).getFromStop()).initialCost; cost += toStops.get(route.get(route.size() - 1).getToStop()).initialCost; return cost; }
/** * Note that there is no off vehicle wait time. */ protected double getInVehicleTravelDisutility(final RouteSegment routeSegment) { double cost = 0.0; // this assumes dwell time as in-vehicle time double inVehicleTravelTime = routeSegment.getTravelTime(); double inVehicleBeelineDistance = CoordUtils.calcEuclideanDistance(routeSegment.getFromStop().getCoord(), routeSegment.getToStop().getCoord()); cost += - inVehicleTravelTime * this.config.getMarginalUtilityOfTravelTimePt_utl_s(); cost += - inVehicleBeelineDistance * this.config.getMarginalUtilityOfTravelDistancePt_utl_m(); // fare cost += this.costPerBoarding; cost += inVehicleBeelineDistance * this.costPerMeterTraveled; return cost; }
RouteSegment routeSegment = new RouteSegment(fromTransitStop, toTransitStop, this.raptorSearchData.transfers[getIndexForTransitStop(fromTransitStop)].transferTime, if (currentSourcePointer.transfer) { if (lastRouteSegment != null) { if (lastRouteSegment.getRouteTaken() == null) { toTransitStop = lastRouteSegment.getToStop(); travelTime += lastRouteSegment.getTravelTime(); route.remove(0); routeSegment = new RouteSegment(fromTransitStop, toTransitStop, travelTime, null, null); } else { RouteStopEntry routeStopEntry = this.raptorSearchData.routeStops[currentSourcePointer.indexOfTargetRouteStop]; RouteEntry routeEntry = this.raptorSearchData.routes[routeStopEntry.indexOfRoute]; routeSegment = new RouteSegment(fromTransitStop, toTransitStop, travelTime, routeEntry.lineId, routeEntry.routeId);
private Leg createTransferTransitWalkLeg(RouteSegment routeSegement) { Leg leg = this.createTransitWalkLeg(routeSegement.getFromStop().getCoord(), routeSegement.getToStop().getCoord()); Route walkRoute = RouteUtils.createGenericRouteImpl(routeSegement.getFromStop().getLinkId(), routeSegement.getToStop().getLinkId()); // walkRoute.setTravelTime(leg.getTravelTime() ); // transit walk leg should include additional transfer time; Amit, Aug'17 leg.setTravelTime( getTransferTime(null, routeSegement.getFromStop().getCoord(), routeSegement.getToStop().getCoord()) ); walkRoute.setTravelTime(getTransferTime(null, routeSegement.getFromStop().getCoord(), routeSegement.getToStop().getCoord()) ); walkRoute.setDistance(trConfig.getBeelineDistanceFactor() * NetworkUtils.getEuclideanDistance(routeSegement.fromStop.getCoord(), routeSegement.toStop.getCoord())); leg.setRoute(walkRoute); return leg; }
if (p.getRoute().get(0).getRouteTaken() == null) { if (p.getRoute().get(p.getRoute().size() - 1).getRouteTaken() == null) { if (routeSegement.getRouteTaken() == null) {// transfer if (!routeSegement.fromStop.equals(routeSegement.toStop)) { // same to/from stop => no transfer. Amit Feb'18 legs.add(createTransferTransitWalkLeg(routeSegement));
new RouteSegment(fromNode.stop.getStopFacility(), toStop, tempTravelTime+travelTime, routeSegments.add(0, new RouteSegment( fromNode.stop.getStopFacility(), toNode.stop.getStopFacility(), travelTime, routeSegments.add(0, new RouteSegment(fromNode.stop.getStopFacility(), routeSegment.toStop, routeSegment.travelTime+travelTime,