/** * Use the fixed cost and variable cost in the model to calculate the delta between the cost of * current mode and cheapest mode. * * @param timePlan * @param hhPersonTrip : a combined string of HholdID, PersonID and TripID with TimePlan file * format * @author vlcao */ public void setupDeltaFixedCostVariableCost(TimePlan timePlan, String hhPersonTrip) { double carTime = 0; double transitTime = 0; double walkTime = 0; double bikeTime = 0; double travelTime = 0; switch (timePlan.getMode()) { case Walk: travelTime = timePlan.getWalkTime(); walkTime = travelTime; carTime = (travelTime * main.getWalkToCarRatio()); transitTime = (travelTime * main.getWalkToBusRatio()); bikeTime = (travelTime * main.getWalkToBikeRatio()); break; case CarDriver: travelTime = timePlan.getDriveTime(); walkTime = (travelTime / main.getWalkToCarRatio()); transitTime = (travelTime / main.getBusToCarRatio()); carTime = travelTime; bikeTime = (travelTime / main.getBikeToCarRatio()); break; case Bus: travelTime = timePlan.getTransitTime(); walkTime = (travelTime / main.getWalkToBusRatio()); transitTime = travelTime; carTime = (travelTime * main.getBusToCarRatio()); bikeTime = (travelTime / main.getBikeToBusRatio()); break; case LightRail: travelTime = timePlan.getTransitTime(); walkTime = (travelTime / main.getWalkToBusRatio()); transitTime = travelTime; carTime = (travelTime * main.getBusToCarRatio()); bikeTime = (travelTime / main.getBikeToBusRatio()); break; case Bike: travelTime = timePlan.getOtherTime(); walkTime = (travelTime / main.getWalkToBikeRatio()); transitTime = (travelTime * main.getBikeToBusRatio()); carTime = (travelTime * main.getBikeToCarRatio()); bikeTime = travelTime; break; case CarPassenger: travelTime = timePlan.getDriveTime(); walkTime = (travelTime / main.getWalkToCarRatio()); transitTime = (travelTime / main.getBusToCarRatio()); carTime = travelTime; bikeTime = (travelTime / main.getBikeToCarRatio()); break; case Taxi: travelTime = timePlan.getDriveTime(); // checkme walkTime = (travelTime / main.getWalkToCarRatio()); transitTime = (travelTime / main.getBusToCarRatio()); carTime = travelTime; bikeTime = (travelTime / main.getBikeToCarRatio()); break; default: break; } // set delta fixed cost and delta variable cost if (main.getHmHhPersonTripTravelMode().get(hhPersonTrip) != null) { timePlan.setDeltaFixedCost( travelModeSelection.calculateDeltaFixedCost( TravelModes.classify(main.getHmHhPersonTripTravelMode().get(hhPersonTrip)), bikeTime, walkTime, transitTime)); timePlan.setDeltaVariableCost( travelModeSelection.calculateDeltaVariableCost( TravelModes.classify(main.getHmHhPersonTripTravelMode().get(hhPersonTrip)), bikeTime, walkTime, transitTime, carTime)); } // add the delta fixed cost and variable cost into a hash map hhPersonTrip = main.getHhPersonTripConvertedMap().get(hhPersonTrip); main.getTripTimePlanMap() .put( hhPersonTrip, new double[] {timePlan.getDeltaFixedCost(), timePlan.getDeltaVariableCost()}); // add the values for hash map of Car driver with details of trip time // driverTimeMap: // <"HhPersonTrip_TravelDiary",[WalkTime,DriveTime,TransitTime,WaitTime,OtherTime]> if (main.getDriverTimeMap().get(hhPersonTrip) != null) { double[] detailsTripTime = { timePlan.getWalkTime(), timePlan.getDriveTime(), timePlan.getTransitTime(), timePlan.getWaitTime(), timePlan.getOtherTime() }; main.getDriverTimeMap().put(hhPersonTrip, detailsTripTime); } }