Coord destinationCoord = destinationStop.getCoord(); double distance = CoordUtils.calcEuclideanDistance(originCoord, destinationCoord) * plansCalcRoute.getModeRoutingParams().get( TransportMode.walk ).getBeelineDistanceFactor() ;
@Override public ConfigGroup createParameterSet( final String type ) { switch ( type ) { case ModeRoutingParams.SET_TYPE: return new ModeRoutingParams(); default: throw new IllegalArgumentException( type ); } }
comparisonPSet = ((ScoringParameterSet) comparisonModule).getOrCreateActivityParams(((ActivityParams) pSet).getActivityType()); } else if ( pSet instanceof ModeRoutingParams ) { comparisonPSet = ((PlansCalcRouteConfigGroup) comparisonModule).getOrCreateModeRoutingParams(((ModeRoutingParams) pSet).getMode()) ; } else { try {
ModeRoutingParams params = new ModeRoutingParams("mode") ; params.setTeleportedModeFreespeedFactor(2.); params.setBeelineDistanceFactor(1.); double tt = new FreespeedFactorRoutingModule( "mode", f.s.getPopulation().getFactory(), ModeRoutingParams params = new ModeRoutingParams("mode") ; params.setTeleportedModeFreespeedFactor(3.); params.setBeelineDistanceFactor(2.); double tt = new FreespeedFactorRoutingModule( "mode", f.s.getPopulation().getFactory(), ModeRoutingParams params = new ModeRoutingParams("mode") ; params.setTeleportedModeFreespeedFactor(2.); params.setBeelineDistanceFactor(1.); params.setTeleportedModeFreespeedLimit(5.); f.s.getConfig().plansCalcRoute().addModeRoutingParams(params);
getModeRoutingParams().containsKey( this.currleg.getMode() ) ) { double estimatedNetworkDistance = dist * this.scenario.getConfig().plansCalcRoute(). getModeRoutingParams().get( this.currleg.getMode() ).getBeelineDistanceFactor() ; this.currRoute.setDistance(estimatedNetworkDistance);
if ( speed > params.getTeleportedModeFreespeedLimit() ) { speed = params.getTeleportedModeFreespeedLimit() ; travTime = (int) (((int) path.travelTime + travelTimeLastLink) * this.params.getTeleportedModeFreespeedFactor()); Route route = this.populationFactory.getRouteFactories().createRoute(Route.class, fromLink.getId(), toLink.getId()); route.setTravelTime(travTime); dist = CoordUtils.calcEuclideanDistance(fromLink.getCoord(), toLink.getCoord()); route.setDistance(dist * this.params.getBeelineDistanceFactor()); leg.setRoute(route); } else {
getModeRoutingParams().containsKey( this.currleg.getMode() ) ) { double estimatedNetworkDistance = dist * this.scenario.getConfig().plansCalcRoute(). getModeRoutingParams().get( this.currleg.getMode() ).getBeelineDistanceFactor() ; this.currRoute.setDistance(estimatedNetworkDistance);
final ModeRoutingParams bike = new ModeRoutingParams( TransportMode.bike ); bike.setTeleportedModeSpeed( 15.0 / 3.6 ); // 15.0 km/h --> m/s addParameterSet( bike ); final ModeRoutingParams walk = new ModeRoutingParams( TransportMode.walk ); walk.setTeleportedModeSpeed( 3.0 / 3.6 ); // 3.0 km/h --> m/s addParameterSet( walk ); final ModeRoutingParams walk = new ModeRoutingParams( TransportMode.access_walk ); walk.setTeleportedModeSpeed( 3.0 / 3.6 ); // 3.0 km/h --> m/s addParameterSet( walk ); final ModeRoutingParams walk = new ModeRoutingParams( TransportMode.egress_walk ); walk.setTeleportedModeSpeed( 3.0 / 3.6 ); // 3.0 km/h --> m/s addParameterSet( walk ); final ModeRoutingParams undefined = new ModeRoutingParams( UNDEFINED ); undefined.setTeleportedModeSpeed( 50. / 3.6 ); // 50.0 km/h --> m/s addParameterSet( undefined ); final ModeRoutingParams ride = new ModeRoutingParams( TransportMode.ride ); ride.setTeleportedModeFreespeedFactor(1.0); addParameterSet( ride ); final ModeRoutingParams pt = new ModeRoutingParams( TransportMode.pt ); pt.setTeleportedModeFreespeedFactor( 2.0 ); addParameterSet( pt );
getModeRoutingParams().containsKey( this.currleg.getMode() ) ) { double estimatedNetworkDistance = dist * this.scenario.getConfig().plansCalcRoute(). getModeRoutingParams().get( this.currleg.getMode() ).getBeelineDistanceFactor() ; this.currRoute.setDistance(estimatedNetworkDistance);
private static Scenario createSimpleScenario() { final Config config = ConfigUtils.createConfig(); ModeRoutingParams params = new ModeRoutingParams( TransportMode.walk ) ; params.setBeelineDistanceFactor(1.3); params.setTeleportedModeSpeed(1.); config.plansCalcRoute().addModeRoutingParams( params );
getModeRoutingParams().containsKey( this.currleg.getMode() ) ) { double estimatedNetworkDistance = dist * this.scenario.getConfig().plansCalcRoute(). getModeRoutingParams().get( this.currleg.getMode() ).getBeelineDistanceFactor() ; this.currRoute.setDistance(estimatedNetworkDistance);
private static boolean sameType(ConfigGroup pSet, ConfigGroup cg) { if ( ! ( pSet.getName().equals( cg.getName() ) ) ) { return false; } if ( pSet instanceof ModeRoutingParams ) { // (these are the "teleportedRouteParameters" in config.xml) if ( ((ModeRoutingParams)pSet).getMode().equals( ((ModeRoutingParams)cg).getMode() ) ) { return true ; } } if ( pSet instanceof ScoringParameterSet ) { return true ; } if ( pSet instanceof ModeParams ) { if ( ((ModeParams)pSet).getMode().equals( ((ModeParams)cg).getMode() ) ) { return true ; } } if ( pSet instanceof ActivityParams ) { if ( ((ActivityParams)pSet).getActivityType().equals( ((ActivityParams)cg).getActivityType() ) ) { return true ; } } if ( pSet instanceof StrategySettings ) { return true ; // yy this will not work since there is no corresponding default entry! kai, may'18 } return false ; }
this.beelineDistanceFactor = pcrConfig.getModeRoutingParams().get( TransportMode.walk ).getBeelineDistanceFactor();
@Override public RoutingModule get() { // FreespeedTravelTimeAndDisutility ptTimeCostCalc = new FreespeedTravelTimeAndDisutility(-1.0, 0.0, 0.0); // I wanted to introduce the freespeed limit. Decided to locally re-implement rather than making the FreespeedTravelTimeAndDisutility // class longer. kai, nov'16 // yyyy the following might be improved by including additional disutility parameters. But the original one I found was also // just doing fastest time (see commented out version above). kai, nov'16 final TravelTime travelTime = new TravelTime(){ @Override public double getLinkTravelTime(Link link, double time, Person person, Vehicle vehicle) { return link.getLength() / Math.min( link.getFreespeed(time) , params.getTeleportedModeFreespeedLimit() ) ; } } ; TravelDisutility travelDisutility = new TravelDisutility(){ @Override public double getLinkTravelDisutility(Link link, double time, Person person, Vehicle vehicle) { return travelTime.getLinkTravelTime(link, time, person, vehicle) ; } @Override public double getLinkMinimumTravelDisutility(Link link) { return link.getLength() / Math.min( link.getFreespeed() , params.getTeleportedModeFreespeedLimit() ) ; } } ; Gbl.assertNotNull(leastCostPathCalculatorFactory); LeastCostPathCalculator routeAlgoPtFreeFlow = leastCostPathCalculatorFactory.createPathCalculator( network, travelDisutility, travelTime); return DefaultRoutingModules.createPseudoTransitRouter(params.getMode(), populationFactory, network, routeAlgoPtFreeFlow, params); } }
private static ConfigGroup toUnderscoredModule(final PlansCalcRouteConfigGroup initialGroup) { final ConfigGroup module = new ConfigGroup( initialGroup.getName() ); for ( Map.Entry<String, String> e : initialGroup.getParams().entrySet() ) { log.info( "add param="+e.getKey() + " with value=" + e.getValue() ); module.addParam( e.getKey() , e.getValue() ); } for ( ModeRoutingParams settings : initialGroup.getModeRoutingParams().values() ) { final String mode = settings.getMode(); module.addParam( "teleportedModeSpeed_"+mode , ""+settings.getTeleportedModeSpeed() ); module.addParam( "teleportedModeFreespeedFactor_"+mode , ""+settings.getTeleportedModeFreespeedFactor() ); } Double val = null ; boolean first = true ; for ( ModeRoutingParams settings : initialGroup.getModeRoutingParams().values() ) { if ( first ) { first = false ; val = settings.getBeelineDistanceFactor() ; } else if ( !settings.getBeelineDistanceFactor().equals( val ) ) { throw new RuntimeException( "beeline distance factor varies by mode; this cannot be covered by this test" ) ; } } module.addParam( "beelineDistanceFactor", ""+val ); return module; }
@Test public void testTransferWalkDistance(){ Fixture f = new Fixture(); f.init(); TransitRouterConfig config = new TransitRouterConfig(f.scenario.getConfig().planCalcScore(), f.scenario.getConfig().plansCalcRoute(), f.scenario.getConfig().transitRouter(), f.scenario.getConfig().vspExperimental()); TransitRouter router = createTransitRouter(f.schedule, config, routerType); Coord fromCoord = new Coord((double) 3800, (double) 5100); Coord toCoord = new Coord((double) 16100, (double) 10050); List<Leg> legs = router.calcRoute(new FakeFacility(fromCoord), new FakeFacility(toCoord), 6.0*3600, null); Leg leg1 = legs.get(1); ExperimentalTransitRoute route1 = (ExperimentalTransitRoute) leg1.getRoute(); Coord coord1 = f.schedule.getFacilities().get(route1.getEgressStopId()).getCoord(); Leg leg3 = legs.get(3); ExperimentalTransitRoute route3 = (ExperimentalTransitRoute) leg3.getRoute(); Coord coord3 = f.schedule.getFacilities().get(route3.getAccessStopId()).getCoord(); double beelineFactor = f.scenario.getConfig().plansCalcRoute().getModeRoutingParams().get(TransportMode.walk).getBeelineDistanceFactor(); assertEquals(CoordUtils.calcEuclideanDistance(coord1, coord3) * beelineFactor, legs.get(2).getRoute().getDistance(), MatsimTestCase.EPSILON); }
@Override public void addParameterSet(final ConfigGroup set) { if ( set.getName().equals( ModeRoutingParams.SET_TYPE ) && !this.acceptModeParamsWithoutClearing ) { clearParameterSetsForType( set.getName() ); this.acceptModeParamsWithoutClearing = true; } ModeRoutingParams pars = (ModeRoutingParams) set ; // for the time being pushing the "global" factor into the local ones if they are not initialized by // themselves. Necessary for some tests; maybe we should eventually disable them. kai, feb'15 if ( pars.getBeelineDistanceFactor()== null ) { pars.setBeelineDistanceFactor( this.beelineDistanceFactor ); } super.addParameterSet( set ); }
public PSim(Scenario sc, EventsManager eventsManager, Collection<Plan> plans, TravelTime carLinkTravelTimes) { Logger.getLogger(getClass()).warn("Constructing PSim"); this.scenario = sc; this.endTime = sc.getConfig().qsim().getEndTime(); this.eventManager = eventsManager; int numThreads = Integer.parseInt(sc.getConfig().getParam("global", "numberOfThreads")); threads = new SimThread[numThreads]; for (int i = 0; i < numThreads; i++) threads[i] = new SimThread(); PlansCalcRouteConfigGroup pcrConfig = sc.getConfig().plansCalcRoute(); this.beelineDistanceFactor = pcrConfig.getModeRoutingParams().get( TransportMode.walk ).getBeelineDistanceFactor(); this.walkSpeed = pcrConfig.getTeleportedModeSpeeds().get(TransportMode.walk) ; this.carLinkTravelTimes = carLinkTravelTimes; this.plans = plans; }
@Test( expected=RuntimeException.class ) public void testConsistencyCheckIfNoTeleportedSpeed() { final Config config = ConfigUtils.createConfig(); final ModeRoutingParams params = new ModeRoutingParams( "skateboard" ); config.plansCalcRoute().addModeRoutingParams( params ); // (one needs to set one of the teleported speed settings) config.checkConsistency(); }
public Map<String,Double> getBeelineDistanceFactors() { final Map<String,Double> map = new LinkedHashMap<>() ; for ( ModeRoutingParams pars : getModeRoutingParams().values() ) { if ( this.isLocked() ) { pars.setLocked(); } final Double val = pars.getBeelineDistanceFactor() ; if ( val != null ) map.put( pars.getMode() , val ) ; } return map ; }