private static double updateTime( final double currTime, final Leg leg) { double tt = leg.getTravelTime(); return tt != Time.UNDEFINED_TIME ? currTime + tt : currTime; } }
@Override public Double getExpectedTravelTime() { return ((Leg) this.currentPlanElement).getTravelTime() ; }
@Override public double getTravelTime() { return this.delegate.getTravelTime() ; }
private double getTravelTime( List<? extends PlanElement> trip ) { double tt = 0; for ( PlanElement pe : trip ) { if ( pe instanceof Leg ) { final double curr = ((Leg) pe).getTravelTime(); if ( curr == Time.UNDEFINED_TIME ) throw new RuntimeException( "undefined travel time in "+pe ); tt += curr; } } return tt; }
@Override public double getStopStopTime(Id<TransitStopFacility> stopOId, Id<TransitStopFacility> stopDId, double time) { // ATTENTION! This could be optimized. Basically, we probably don't need to // route here. However, finding the travel time even on one route is not a // computationally efficient task, because the same transit stop id may occur // multiple times on the same route. TransitStopFacility originFacility = schedule.getFacilities().get(stopOId); TransitStopFacility destinationFacility = schedule.getFacilities().get(stopDId); List<Leg> legs = transitRouter.calcRoute(originFacility, destinationFacility, time, null); return legs.stream().mapToDouble(l -> l.getTravelTime()).sum(); }
@Override public final Double getExpectedTravelTime() { PlanElement currentPlanElement = this.getCurrentPlanElement(); if (!(currentPlanElement instanceof Leg)) { return null; } final double travelTimeFromRoute = ((Leg) currentPlanElement).getRoute().getTravelTime(); if ( travelTimeFromRoute != Time.UNDEFINED_TIME ) { return travelTimeFromRoute ; } else if ( ((Leg) currentPlanElement).getTravelTime() != Time.UNDEFINED_TIME ) { return ((Leg) currentPlanElement).getTravelTime() ; } else { return null ; } }
@Override public void handleLeg(Leg leg) { startTime = leg.getDepartureTime(); score = score - (leg.getDepartureTime() + leg.getTravelTime() - startTime); startTime = Double.NaN; }
private double getTravelTime(final Person person) { double travelTime=0.0; for (PlanElement pe : person.getSelectedPlan().getPlanElements()) { if (pe instanceof Leg) { travelTime+=((Leg) pe).getTravelTime(); } } return travelTime; }
public static double decideOnTravelTimeForLeg( Leg leg ) { if ( leg.getRoute()!=null ) { return leg.getRoute().getTravelTime() ; } else { return leg.getTravelTime() ; } } public static void sampleDown( Population pop, double sample ) {
@Override public void handleLeg(Leg leg) { double legScore = calcLegScore(leg.getDepartureTime(), leg.getDepartureTime() + leg.getTravelTime(), leg); this.score += legScore; }
public void secondaryActivityFound(Activity act, Leg leg) { /* * No plan starts with secondary activity! */ this.subChains.get(subChainIndex).defineMode(leg.getMode()); this.subChains.get(subChainIndex).addAct(act); this.secondaryActFound = true; this.ttBudget += leg.getTravelTime(); this.totalTravelDistance += leg.getRoute().getDistance(); }
private static void fillInLegTravelTimes( final double departureTime, final List<? extends PlanElement> trip ) { double time = departureTime; for ( PlanElement pe : trip ) { if ( !(pe instanceof Leg) ) continue; final Leg leg = (Leg) pe; if ( leg.getDepartureTime() == Time.UNDEFINED_TIME ) { leg.setDepartureTime( time ); } if ( leg.getTravelTime() == Time.UNDEFINED_TIME ) { leg.setTravelTime( leg.getRoute().getTravelTime() ); } time += leg.getTravelTime(); } }
@Override public final void handleLeg(Leg leg) { startLeg(leg.getDepartureTime(), leg); endLeg(leg.getDepartureTime() + leg.getTravelTime()); }
public final void handleLeg(Leg leg) { startLeg(leg.getDepartureTime(), leg); endLeg(leg.getDepartureTime() + leg.getTravelTime()); }
public LegSerializable(Leg leg) { departureTime = leg.getDepartureTime(); mode = leg.getMode(); travelTime = leg.getTravelTime(); if (leg.getRoute() != null) { if (leg.getMode().equals(TransportMode.car)) route = new NetworkRouteSerializable((NetworkRoute) leg.getRoute()); else route = new GenericRouteSerializable(leg.getRoute()); } }
protected double computeTravelTime(Person person, Activity fromAct, Activity toAct) { Leg leg = PopulationUtils.createLeg(TransportMode.car); leg.setDepartureTime(0.0); leg.setTravelTime(0.0); leg.setTravelTime( 0.0 - leg.getDepartureTime() ); PlanRouterAdapter.handleLeg(router, person, leg, fromAct, toAct, fromAct.getEndTime()); return leg.getTravelTime(); }
private Leg createAccessTransitWalkLeg(Coord fromCoord, RouteSegment routeSegement) { Leg leg = this.createTransitWalkLeg(fromCoord, routeSegement.fromStop.getCoord()); Route walkRoute = RouteUtils.createGenericRouteImpl(null, routeSegement.fromStop.getLinkId()); walkRoute.setTravelTime(leg.getTravelTime() ); walkRoute.setDistance(trConfig.getBeelineDistanceFactor() * NetworkUtils.getEuclideanDistance(fromCoord, routeSegement.fromStop.getCoord())); leg.setRoute(walkRoute); return leg; }
private Leg createEgressTransitWalkLeg(RouteSegment routeSegement, Coord toCoord) { Leg leg = this.createTransitWalkLeg(routeSegement.toStop.getCoord(), toCoord); Route walkRoute = RouteUtils.createGenericRouteImpl(routeSegement.toStop.getLinkId(), null); walkRoute.setTravelTime(leg.getTravelTime() ); walkRoute.setDistance(trConfig.getBeelineDistanceFactor() * NetworkUtils.getEuclideanDistance(routeSegement.toStop.getCoord(), toCoord)); leg.setRoute(walkRoute); return leg; }
public static void copyFromTo(Leg in, Leg out) { out.setMode( in.getMode() ); out.setDepartureTime(in.getDepartureTime()); out.setTravelTime(in.getTravelTime()); if (in.getRoute() != null) { out.setRoute(in.getRoute().clone()); } AttributesUtils.copyAttributesFromTo( in , out ); }
@Test public void testCreatesLeg() { Scenario scenario = createTriangularNetwork(); EventsToLegs eventsToLegs = new EventsToLegs(scenario); RememberingLegHandler lh = new RememberingLegHandler(); eventsToLegs.addLegHandler(lh); eventsToLegs.handleEvent(new PersonDepartureEvent(10.0, Id.create("1", Person.class), Id.create("l1", Link.class), "walk")); eventsToLegs.handleEvent(new TeleportationArrivalEvent(30.0, Id.create("1", Person.class), 50.0)); eventsToLegs.handleEvent(new PersonArrivalEvent(30.0, Id.create("1", Person.class), Id.create("l2", Link.class), "walk")); Assert.assertNotNull(lh.handledLeg); Assert.assertEquals(10.0, lh.handledLeg.getLeg().getDepartureTime(), 1e-9); Assert.assertEquals(20.0, lh.handledLeg.getLeg().getTravelTime(), 1e-9); Assert.assertEquals(50.0, lh.handledLeg.getLeg().getRoute().getDistance(), 1e-9); }