public ConstantSpeedAccessibilityExpContributionCalculator(final String mode, Config config, Network network) { this.network = network; final PlanCalcScoreConfigGroup planCalcScoreConfigGroup = config.planCalcScore() ; if (planCalcScoreConfigGroup.getOrCreateModeParams(mode).getMonetaryDistanceRate() != 0.) { LOG.error("Monetary distance cost rate for " + mode + " different from zero, but not used in accessibility computations"); } logitScaleParameter = planCalcScoreConfigGroup.getBrainExpBeta(); if (config.plansCalcRoute().getTeleportedModeSpeeds().get(mode) == null) { LOG.error("No teleported mode speed for mode " + mode + " set."); } this.modeSpeed_m_h = config.plansCalcRoute().getTeleportedModeSpeeds().get(mode) * 3600.; final PlanCalcScoreConfigGroup.ModeParams modeParams = planCalcScoreConfigGroup.getOrCreateModeParams(mode); betaModeTT = modeParams.getMarginalUtilityOfTraveling() - planCalcScoreConfigGroup.getPerforming_utils_hr(); betaModeTD = modeParams.getMarginalUtilityOfDistance(); constMode = modeParams.getConstant(); betaWalkTT = planCalcScoreConfigGroup.getModes().get(TransportMode.walk).getMarginalUtilityOfTraveling() - planCalcScoreConfigGroup.getPerforming_utils_hr(); betaWalkTD = planCalcScoreConfigGroup.getModes().get(TransportMode.walk).getMarginalUtilityOfDistance(); this.walkSpeed_m_h = config.plansCalcRoute().getTeleportedModeSpeeds().get(TransportMode.walk) * 3600; }
public LeastCostPathCalculator asPathCalculator(PlanCalcScoreConfigGroup planCalcScoreConfigGroup) { final double betaWalkTT = planCalcScoreConfigGroup.getModes().get(TransportMode.walk).getMarginalUtilityOfTraveling() - planCalcScoreConfigGroup.getPerforming_utils_hr(); final double betaWalkTD = planCalcScoreConfigGroup.getModes().get(TransportMode.walk).getMarginalUtilityOfDistance(); final double betaPtTT = planCalcScoreConfigGroup.getModes().get(TransportMode.pt).getMarginalUtilityOfTraveling() - planCalcScoreConfigGroup.getPerforming_utils_hr(); final double betaPtTD = planCalcScoreConfigGroup.getMarginalUtilityOfMoney() * planCalcScoreConfigGroup.getModes().get(TransportMode.pt).getMonetaryDistanceRate(); final double constPt = planCalcScoreConfigGroup.getModes().get(TransportMode.pt).getConstant(); return new LeastCostPathCalculator() { @Override public Path calcLeastCostPath(Node fromNode, Node toNode, double starttime, Person person, Vehicle vehicle) { // travel time with pt: double ptTravelTime_h = getPtTravelTime_seconds(fromNode.getCoord(), toNode.getCoord()) / 3600.; // total walking time including (i) to get to pt stop and (ii) to get from destination pt stop to destination location: double ptTotalWalkTime_h = getTotalWalkTravelTime_seconds(fromNode.getCoord(), toNode.getCoord()) / 3600.; // total travel distance including walking and pt distance from/to origin/destination location: double ptTravelDistance_meter = getTotalWalkTravelDistance_meter(fromNode.getCoord(), toNode.getCoord()); // total walk distance including (i) to get to pt stop and (ii) to get from destination pt stop to destination location: double ptTotalWalkDistance_meter = getPtTravelDistance_meter(fromNode.getCoord(), toNode.getCoord()); return new Path( Arrays.asList(fromNode, toNode), Collections.<Link>emptyList(), getTotalTravelTime_seconds(fromNode.getCoord(), toNode.getCoord()), constPt + (ptTotalWalkTime_h * betaWalkTT) + (ptTravelTime_h * betaPtTT) + (ptTotalWalkDistance_meter * betaWalkTD) + (ptTravelDistance_meter * betaPtTD) ); } }; }
public NetworkModeAccessibilityExpContributionCalculator(final TravelTime travelTime, final TravelDisutilityFactory travelDisutilityFactory, final Scenario scenario, final Network network) { this.network = network; final PlanCalcScoreConfigGroup planCalcScoreConfigGroup = scenario.getConfig().planCalcScore(); this.scheme = (RoadPricingScheme) scenario.getScenarioElement( RoadPricingScheme.ELEMENT_NAME ); this.travelTime = travelTime; Gbl.assertNotNull(travelDisutilityFactory); TravelDisutility travelDisutility = travelDisutilityFactory.createTravelDisutility(travelTime); this.lcpt = new LeastCostPathTreeExtended(travelTime, travelDisutility, this.scheme); if ( planCalcScoreConfigGroup.getOrCreateModeParams(TransportMode.car).getMarginalUtilityOfDistance() != 0. ) { log.error( "marginal utility of distance for car different from zero but not used in accessibility computations"); } logitScaleParameter = planCalcScoreConfigGroup.getBrainExpBeta() ; betaCarTT = planCalcScoreConfigGroup.getModes().get(TransportMode.car).getMarginalUtilityOfTraveling() - planCalcScoreConfigGroup.getPerforming_utils_hr(); betaCarTD = planCalcScoreConfigGroup.getMarginalUtilityOfMoney() * planCalcScoreConfigGroup.getModes().get(TransportMode.car).getMonetaryDistanceRate(); betaCarTMC = - planCalcScoreConfigGroup.getMarginalUtilityOfMoney() ; constCar = planCalcScoreConfigGroup.getModes().get(TransportMode.car).getConstant(); betaWalkTT = planCalcScoreConfigGroup.getModes().get(TransportMode.walk).getMarginalUtilityOfTraveling() - planCalcScoreConfigGroup.getPerforming_utils_hr(); betaWalkTD = planCalcScoreConfigGroup.getModes().get(TransportMode.walk).getMarginalUtilityOfDistance(); this.walkSpeed_m_s = scenario.getConfig().plansCalcRoute().getTeleportedModeSpeeds().get(TransportMode.walk); }
Assert.assertEquals( "wrong constantBike "+msg, initialGroup.getModes().get(TransportMode.bike).getConstant(), inputConfigGroup.getModes().get(TransportMode.bike).getConstant(), 1e-7); Assert.assertEquals( "wrong constantCar "+msg, initialGroup.getModes().get(TransportMode.car).getConstant(), inputConfigGroup.getModes().get(TransportMode.car).getConstant(), 1e-7); Assert.assertEquals( "wrong constantOther "+msg, initialGroup.getModes().get(TransportMode.other).getConstant(), inputConfigGroup.getModes().get(TransportMode.other).getConstant(), 1e-7); Assert.assertEquals( "wrong constantPt "+msg, initialGroup.getModes().get(TransportMode.pt).getConstant(), inputConfigGroup.getModes().get(TransportMode.pt).getConstant(), 1e-7); Assert.assertEquals( "wrong constantWalk "+msg, initialGroup.getModes().get(TransportMode.walk).getConstant(), inputConfigGroup.getModes().get(TransportMode.walk).getConstant(), 1e-7); Assert.assertEquals( Assert.assertEquals( "wrong constant "+msg,
score += pcs.getModes().get(TransportMode.pt).getConstant(); System.out.println("score after addition of pt constant: " + score ) ; score += pcs.getModes().get(TransportMode.pt).getConstant(); System.out.println("score after addition of pt constant: " + score ) ;
module.addParam( "constant_"+mode , ""+settings.getConstant() ); module.addParam( "marginalUtlOfDistance_"+mode , ""+settings.getMarginalUtilityOfDistance() ); module.addParam( "traveling_"+mode , ""+settings.getMarginalUtilityOfTraveling() );
public Builder( PlanCalcScoreConfigGroup.ModeParams params ) { this.marginalUtilityOfTraveling_s = params.getMarginalUtilityOfTraveling() / 3600.0; this.marginalUtilityOfDistance_m = params.getMarginalUtilityOfDistance(); this.monetaryDistanceRate = params.getMonetaryDistanceRate(); this.constant = params.getConstant(); this.dailyMoneyConstant = params.getDailyMonetaryConstant(); this.dailyUtilityConstant = params.getDailyUtilityConstant(); }