
This chapter presents the calculation results for a hypothetical rural highway facility, one that contains all the component segment types except for an arterial.
The HCM-CALC file, “TestHighway.xhf ”, for this example is available on the National Academies Press website (nap.nationalacademies.org) by searching for NCHRP Research Report 1102: Reliability and Quality of Service Evaluation Methods for Rural Highways: A Guide.
The facility segmentation and corresponding input data are summarized in Table 13.1.
Table 13.1. Example rural highway segmentation and input data.
| Segment ID | From/To | Hwy Segment Type | Two-Lane Segment Type | # Directional Lanes | Length (ft) | Length (mi) | Grade (%) | Terrain | Vertical Align Class | Posted Speed (mi/h) | Directional Volume (veh/h) | Directional Truck % | Opposing Volume (veh/h) | Opposing Truck % | PHF |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Maple St - Oak St | MultilaneHwy | — | 2 | 5,280 | 1.0000 | 2 | Level | NA | 55 | 1,100 | 0 | NA | NA | 0.95 |
| 2 | MultilaneHwy | — | 2 | 5,280 | 1.0000 | 1 | Level | NA | 55 | 1,100 | 2 | NA | NA | 0.95 | |
| 3 | Main | SigIntersection | — | 2 | 1,750 | 0.3314 | 0 | NA | NA | 35 | 960 | 0 | NA | NA | 1.00 |
| 4 | Third St - Fourth St | TwoLaneHwy | PassingConstrained | 1 | 3,960 | 0.7500 | 3 | NA | 2 | 55 | 700 | 3 | 400 | 2.5 | 0.95 |
| 5 | TwoLaneHwy | PassingLane | 2 | 5,280 | 1.0000 | 3 | NA | 2 | 55 | 700 | 3 | 400 | 2.5 | 0.95 | |
| 6 | TwoLaneHwy | PassingConstrained | 1 | 6,600 | 1.2500 | 0 | NA | 1 | 55 | 700 | 0 | 400 | 0.0 | 0.95 | |
| 7 | TwoLaneHwy | PassingZone | 1 | 7,920 | 1.5000 | 0 | NA | 1 | 55 | 700 | 0 | 400 | 0.0 | 0.95 | |
| 8 | Broadway | SigIntersection | — | 2 | 2,000 | 0.3788 | 0 | NA | NA | 40 | 740 | 2 | NA | NA | 1.00 |
| 9 | MultilaneHwy | — | 2 | 10,560 | 2.0000 | 2 | Level | NA | 55 | 1,040 | 0 | NA | NA | 0.95 | |
| 10 | MultilaneHwy | — | 2 | 15,840 | 3.0000 | 0 | Level | NA | 55 | 1,040 | 5 | NA | NA | 0.95 | |
| 11 | Oak St | SigIntersection | — | 2 | 1,000 | 0.1894 | 0 | NA | NA | 35 | 865 | 5 | NA | NA | 1.00 |
| 12 | TwoLaneHwy | PassingConstrained | 1 | 5,280 | 1.0000 | 2 | NA | 1 | 55 | 720 | 5 | 400 | 0.0 | 0.95 | |
| 13 | First Ave | Roundabout | — | 1 | 1,000 | 0.1894 | 0 | NA | NA | 35 | 720 | 5 | 475 | 5.0 | 0.95 |
| 14 | TwoLaneHwy | PassingZone | 1 | 10,560 | 2.0000 | 2 | NA | 1 | 55 | 600 | 5 | 450 | 0.0 | 0.95 | |
| 15 | SecondAve | AWSCIntersection | — | 1 | 1,000 | 0.1894 | 0 | NA | NA | 35 | 600 | 3 | 385 | 3.0 | 0.95 |
| 16 | TwoLaneHwy | PassingConstrained | 1 | 7,920 | 1.5000 | 2 | NA | 1 | 55 | 650 | 5 | 550 | 0.0 | 0.95 |
NumSegments <- 16
SegResultsDataList <- list()
SegInputDataList <- list()
InfluenceAreaUpStream <- vector()
InfluenceAreaDownStream <- vector()
InfluenceAreaList <- list()
InfluenceAreaTotalList <- list()
AdjustedLength <- vector()
FeetInMiles <- 5280
SecondsPerHour <- 3600
#Segment 1: Multilane Highway
SegInputDataList[[1]] <- list("SegmentType" = "MultilaneHwy", "SegmentLengthM i" = 1.0, "SegmentLengthFt" = 5280, "DirVolume" = 1100, "OppVolume" = 0, "Lef tTurnVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "Pea kHourFactor" = 0.95, "PercentHeavyVehicles" = 0, "HVPropMultiplierFL" = 0, "T errain" = "Level", "NumberofLanes" = 2, "PostedSpeedLimit" = 55, "LaneWidth" = 12, "ShoulderWidth" = 6, "RightSideLateralClearance" = 6, "LeftSideLateralC learance" = 6, "MedianType" = "Divided", "AccessPointDensity" = 4, "VertAlign mentClass" = 0, "BaseSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenT ime" = 0, "ArrivalType" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Conver gence" = 0, "ConvergenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTim e14" = 0)
#Segment 2: Multilane Highway
SegInputDataList[[2]] <- list("SegmentType" = "MultilaneHwy", "SegmentLengthM i" = 1.0, "SegmentLengthFt" = 5280, "DirVolume" = 1100, "OppVolume" = 0, "Lef tTurnVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "Pea kHourFactor" = 0.95, "PercentHeavyVehicles" = 5.0, "HVPropMultiplierFL" = 0, "Terrain" = "Level", "NumberofLanes" = 2, "PostedSpeedLimit" = 55, "LaneWidth " = 12, "ShoulderWidth" = 0, "RightSideLateralClearance" = 6, "LeftSideLatera lClearance" = 6, "MedianType" = "Divided", "AccessPointDensity" = 4, "VertAli gnmentClass" = 0, "BaseSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGree nTime" = 0, "ArrivalType" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Conv ergence" = 0, "ConvergenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpT ime14" = 0)
#For intersections, "DirVolume" is the through movement volume
#Segment 3: Signalized Intersection
SegInputDataList[[3]] <- list("SegmentType" = "SignalizedInt", "SegmentLength Mi" = 0.3314, "SegmentLengthFt" = 1750, "DirVolume" = 960, "OppVolume" = 0, " LeftTurnVolume" = 100, "RightTurnVolume" = 80, "NBVolume" = 0, "SBVolume" = 0 , "PeakHourFactor" = 1.0, "PercentHeavyVehicles" = 0, "HVPropMultiplierFL" = 0, "Terrain" = 0, "NumberofLanes" = 2, "PostedSpeedLimit" = 35, "LaneWidth" = 12, "ShoulderWidth" = 0, "RightSideLateralClearance" = 0, "LeftSideLateralCle arance" = 0, "MedianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 0, "BaseSatFlowRate" = 1900, "CycleLengthSec" = 120, "EffectiveGreenTime" = 48, "ArrivalType" = 4, "VehicleType" = 0, "BaseSatHeadway" = 0, "Convergence" = 0, "ConvergenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0, "GeometricUpstreamDistFt" = 750, "GeometricDownstreamDistFt" = 1000)
#Segment 4: Two-Lane Highway, Passing Constrained
SegInputDataList[[4]] <- list("SegmentType" = "NPZ", "SegmentLengthMi" = 0.65 38787, "SegmentLengthFt" = 3960, "DirVolume" = 700, "OppVolume" = 1500, "Left TurnVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "Peak HourFactor" = 0.95, "PercentHeavyVehicles" = 3, "HVPropMultiplierFL" = 0, "Te rrain" = 0, "NumberofLanes" = 1, "PostedSpeedLimit" = 55, "LaneWidth" = 12, " ShoulderWidth" = 6, "RightSideLateralClearance" = 6, "LeftSideLateralClearanc e" = 6, "MedianType" = "Divided", "AccessPointDensity" = 0, "VertAlignmentCla ss" = 2, "BaseSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenTime" = 0, "ArrivalType" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Convergence" = 0, "ConvergenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0)
#Segment 5: Two-Lane Highway, Passing Lane
SegInputDataList[[5]] <- list("SegmentType" = "PL", "SegmentLengthMi" = 1, "S egmentLengthFt" = 5280, "DirVolume" = 700, "OppVolume" = 0, "LeftTurnVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "PeakHourFactor" = 0.95, "PercentHeavyVehicles" = 3, "HVPropMultiplierFL" = 0.4, "Terrain" = 0 , "NumberofLanes" = 2, "PostedSpeedLimit" = 55, "LaneWidth" = 12, "ShoulderWi dth" = 6, "RightSideLateralClearance" = 0, "LeftSideLateralClearance" = 0, "M edianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 2, "BaseSatF lowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenTime" = 0, "ArrivalType" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Convergence" = 0, "ConvergenceCr iteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0)
#Segment 6: Two-Lane Highway, Passing Constrained
SegInputDataList[[6]] <- list("SegmentType" = "NPZ", "SegmentLengthMi" = 1.25 , "SegmentLengthFt" = 6600, "DirVolume" = 700, "OppVolume" = 1500, "LeftTurnV olume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "PeakHourF actor" = 0.95, "PercentHeavyVehicles" = 0, "HVPropMultiplierFL" = 0, "Terrain " = 0, "NumberofLanes" = 1, "PostedSpeedLimit" = 55, "LaneWidth" = 12, "Shoul derWidth" = 6, "RightSideLateralClearance" = 0, "LeftSideLateralClearance" = 0, "MedianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 1, "Bas eSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenTime" = 0, "ArrivalTy pe" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Convergence" = 0, "Converg enceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0)
#Segment 7: Two-Lane Highway, Passing Zone
SegInputDataList[[7]] <- list("SegmentType" = "PZ", "SegmentLengthMi" = 1.490 6, "SegmentLengthFt" = 7920, "DirVolume" = 700, "OppVolume" = 400, "LeftTurnV olume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "PeakHourF actor" = 0.95, "PercentHeavyVehicles" = 0, "HVPropMultiplierFL" = 0, "Terrain " = 0, "NumberofLanes" = 1, "PostedSpeedLimit" = 55, "LaneWidth" = 12, "Shoul derWidth" = 6, "RightSideLateralClearance" = 0, "LeftSideLateralClearance" = 0, "MedianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 1, "Bas eSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenTime" = 0, "ArrivalTy pe" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Convergence" = 0, "Converg enceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0)
#Segment 8: Signalized Intersection
SegInputDataList[[8]] <- list("SegmentType" = "SignalizedInt", "SegmentLength Mi" = 0.3788, "SegmentLengthFt" = 2000, "DirVolume" = 740, "OppVolume" = 0, " LeftTurnVolume" = 40, "RightTurnVolume" = 40, "NBVolume" = 0, "SBVolume" = 0, "PeakHourFactor" = 1.0, "PercentHeavyVehicles" = 2, "HVPropMultiplierFL" = 0, "Terrain" = 0, "NumberofLanes" = 2, "PostedSpeedLimit" = 40, "LaneWidth" = 12 , "ShoulderWidth" = 0, "RightSideLateralClearance" = 0, "LeftSideLateralClear ance" = 0, "MedianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 0, "BaseSatFlowRate" = 1900, "CycleLengthSec" = 120, "EffectiveGreenTime" = 4 8, "ArrivalType" = 4, "VehicleType" = 0, "BaseSatHeadway" = 0, "Convergence" = 0, "ConvergenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0, "GeometricUpstreamDistFt" = 800, "GeometricDownstreamDistFt" = 1200)
#Segment 9: Multilane Highway
SegInputDataList[[9]] <- list("SegmentType" = "MultilaneHwy", "SegmentLengthM i" = 2, "SegmentLengthFt" = 10560, "DirVolume" = 1040, "OppVolume" = 0, "Left TurnVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "Peak HourFactor" = 0.95, "PercentHeavyVehicles" = 0, "HVPropMultiplierFL" = 0, "Te rrain" = "Level", "NumberofLanes" = 2, "PostedSpeedLimit" = 55, "LaneWidth" = 12, "ShoulderWidth" = 6, "RightSideLateralClearance" = 6, "LeftSideLateralCle arance" = 6, "MedianType" = "Divided", "AccessPointDensity" = 2, "VertAlignme ntClass" = 0, "BaseSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenTim e" = 0, "ArrivalType" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Converge nce" = 0, "ConvergenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime1 4" = 0)
#Segment 10: Multilane Highway
SegInputDataList[[10]] <- list("SegmentType" = "MultilaneHwy", "SegmentLength Mi" = 3, "SegmentLengthFt" = 15840, "DirVolume" = 1040, "OppVolume" = 0, "Lef tTurnVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "Pea kHourFactor" = 0.95, "PercentHeavyVehicles" = 5.0, "HVPropMultiplierFL" = 0, "Terrain" = "Level", "NumberofLanes" = 2, "PostedSpeedLimit" = 55, "LaneWidth " = 12, "ShoulderWidth" = 6, "RightSideLateralClearance" = 6, "LeftSideLatera lClearance" = 6, "MedianType" = "Divided", "AccessPointDensity" = 3, "VertAli
gnmentClass" = 0, "BaseSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGree nTime" = 0, "ArrivalType" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Conv ergence" = 0, "ConvergenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpT ime14" = 0)
#Segment 11: Signalized Intersection
SegInputDataList[[11]] <- list("SegmentType" = "SignalizedInt", "SegmentLengt hMi" = 0.1894, "SegmentLengthFt" = 1000, "DirVolume" = 865, "OppVolume" = 0, "LeftTurnVolume" = 175, "RightTurnVolume" = 145, "NBVolume" = 0, "SBVolume" = 0, "PeakHourFactor" = 1.0, "PercentHeavyVehicles" = 5, "HVPropMultiplierFL" = 0, "Terrain" = 0, "NumberofLanes" = 2, "PostedSpeedLimit" = 35, "LaneWidth" = 12, "ShoulderWidth" = 0, "RightSideLateralClearance" = 0, "LeftSideLateralCle arance" = 0, "MedianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 0, "BaseSatFlowRate" = 1900, "CycleLengthSec" = 120, "EffectiveGreenTime" = 48, "ArrivalType" = 4, "VehicleType" = 0, "BaseSatHeadway" = 0, "Convergence" = 0, "ConvergenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0, "GeometricUpstreamDistFt" = 450, "GeometricDownstreamDistFt" = 550)
#Segment 12: Two-Lane Highway, Passing Constrained
SegInputDataList[[12]] <- list("SegmentType" = "NPZ", "SegmentLengthMi" = 0.7 631, "SegmentLengthFt" = 5280, "DirVolume" = 720, "OppVolume" = 1500, "LeftTu rnVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "PeakHo urFactor" = 0.95, "PercentHeavyVehicles" = 5, "HVPropMultiplierFL" = 0, "Terr ain" = 0, "NumberofLanes" = 1, "PostedSpeedLimit" = 55, "LaneWidth" = 12, "Sh oulderWidth" = 6, "RightSideLateralClearance" = 0, "LeftSideLateralClearance" = 0, "MedianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 1, "B aseSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenTime" = 0, "Arrival Type" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Convergence" = 0, "Conve rgenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0)
#Segment 13: Roundabout Intersection
SegInputDataList[[13]] <- list("SegmentType" = "Roundabout", "SegmentLengthMi " = 0.1894, "SegmentLengthFt" = 1000, "DirVolume" = c(70, 600, 50), "OppVolum e" = c(50, 350, 75), "LeftTurnVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = c(50, 350, 75), "SBVolume" = c(50, 275, 175), "PeakHourFactor" = 0.95, "Per centHeavyVehicles" = 0.05, "HVPropMultiplierFL" = 0.4, "Terrain" = 0, "Number ofLanes" = 1, "PostedSpeedLimit" = 35, "LaneWidth" = 12, "ShoulderWidth" = 0, "RightSideLateralClearance" = 0, "LeftSideLateralClearance" = 0, "MedianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 0, "BaseSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenTime" = 0, "ArrivalType" = 0, "Vehicl eType" = "Heavy Vehicle", "BaseSatHeadway" = 0, "Convergence" = 0, "Convergen ceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0, "GeometricUp streamDistFt" = 500, "GeometricDownstreamDistFt" = 500)
#Segment 14: Two-Lane Highway, Passing Zone
SegInputDataList[[14]] <- list("SegmentType" = "PZ", "SegmentLengthMi" = 1.71 37, "SegmentLengthFt" = 10560, "DirVolume" = 600, "OppVolume" = 450, "LeftTur nVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "PeakHou rFactor" = 0.95, "PercentHeavyVehicles" = 5, "HVPropMultiplierFL" = 0, "Terra in" = 0, "NumberofLanes" = 2, "PostedSpeedLimit" = 55, "LaneWidth" = 12, "Sho ulderWidth" = 6, "RightSideLateralClearance" = 0, "LeftSideLateralClearance" = 0, "MedianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 1, "B aseSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenTime" = 0, "Arrival Type" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Convergence" = 0, "Conve rgenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0)
#Segment 15: All-Way-Stop-Controlled Intersection
SegInputDataList[[15]] <- list("SegmentType" = "AWSC", "SegmentLengthMi" = 0. 1894, "SegmentLengthFt" = 1000, "DirVolume" = c(60, 500, 40), "OppVolume" = c (40, 300, 45), "LeftTurnVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = c(35 , 75, 25), "SBVolume" = c(30, 60, 20), "PeakHourFactor" = 0.95, "PercentHeavy Vehicles" = c(0.03, 0.02, 0.03, 0.02), "HVPropMultiplierFL" = 0.4, "Terrain" = 0, "NumberofLanes" = 1, "PostedSpeedLimit" = 35, "LaneWidth" = 12, "Shoulde rWidth" = 0, "RightSideLateralClearance" = 0, "LeftSideLateralClearance" = 0, "MedianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 0, "BaseSa tFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenTime" = 0, "ArrivalType" = 0, "VehicleType" = "Heavy Vehicle", "BaseSatHeadway" = c(3.9, 4.7, 5.8, 7.0 , 9.6), "Convergence" = FALSE, "ConvergenceCriteria" = 0.01, "DepartureHeadwa yLast" = c(3.2, 3.2, 3.2, 3.2), "MoveUpTime14" = 2, "GeometricUpstreamDistFt" = 400, "GeometricDownstreamDistFt" = 600)
#Segment 16: Two-Lane Highway, Passing Constrained
SegInputDataList[[16]] <- list("SegmentType" = "NPZ", "SegmentLengthMi" = 1.2 970, "SegmentLengthFt" = 7920, "DirVolume" = 650, "OppVolume" = 1500, "LeftTu rnVolume" = 0, "RightTurnVolume" = 0, "NBVolume" = 0, "SBVolume" = 0, "PeakHo urFactor" = 0.95, "PercentHeavyVehicles" = 5, "HVPropMultiplierFL" = 0, "Terr ain" = 0, "NumberofLanes" = 1, "PostedSpeedLimit" = 55, "LaneWidth" = 12, "Sh oulderWidth" = 6, "RightSideLateralClearance" = 0, "LeftSideLateralClearance" = 0, "MedianType" = 0, "AccessPointDensity" = 0, "VertAlignmentClass" = 1, "B aseSatFlowRate" = 0, "CycleLengthSec" = 0, "EffectiveGreenTime" = 0, "Arrival Type" = 0, "VehicleType" = 0, "BaseSatHeadway" = 0, "Convergence" = 0, "Conve rgenceCriteria" = 0, "DepartureHeadwayLast" = 0, "MoveUpTime14" = 0)
ReturnedResults <- vector(length = 3)
ReturnedResults <- MLMainFcn(SegInputDataList[[1]]$PostedSpeedLimit, SegInput DataList[[1]]$LaneWidth, SegInputDataList[[1]]$RightSideLateralClearance , Se gInputDataList[[1]]$LeftSideLateralClearance, SegInputDataList[[1]]$NumberofL anes, SegInputDataList[[1]]$MedianType, SegInputDataList[[1]]$AccessPointDens ity, SegInputDataList[[1]]$Terrain, SegInputDataList[[1]]$PercentHeavyVehicle s, SegInputDataList[[1]]$DirVolume, SegInputDataList[[1]]$PeakHourFactor)
## BFFS = 60.0
## Lane Width Adjustment Factor Value = 0.0
## Total Lateral Clearance = 12.0 ft
## Total Lateral Clearance Adjustment Factor Value = 0.0
## Median Type Adjustment Factor Value = 0.0
## Access Point Density Adjustment Factor Value = 1.0
## FFS = 59.0 mi/h
## Capacity = 1700.00 pc/h/ln
## E_T = 2.0
## P_T = 0.00
## Heavy vehicle factor = 1.000
## Analysis flow rate = 578.9 pc/h/ln
## Breakpoint = 1640.0 pc/h/ln
## Average Speed = 59.0 mi/h
## Density = 9.8 pc/mi/ln
## LOS is A
## LOS numeric value = 0.8920607
SegResultsDataList[[1]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[1]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[1]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[1]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[1]]$NumberofLanes, "LOSNumber" = ReturnedResults[3])
ReturnedResults <- vector(length = 3)
ReturnedResults <- MLMainFcn(SegInputDataList[[2]]$PostedSpeedLimit, SegInput DataList[[2]]$LaneWidth, SegInputDataList[[2]]$RightSideLateralClearance , Se gInputDataList[[2]]$LeftSideLateralClearance, SegInputDataList[[2]]$NumberofL anes, SegInputDataList[[2]]$MedianType, SegInputDataList[[2]]$AccessPointDens ity, SegInputDataList[[2]]$Terrain, SegInputDataList[[2]]$PercentHeavyVehicle s, SegInputDataList[[2]]$DirVolume, SegInputDataList[[2]]$PeakHourFactor)
## BFFS = 60.0
## Lane Width Adjustment Factor Value = 0.0
## Total Lateral Clearance = 12.0 ft
## Total Lateral Clearance Adjustment Factor Value = 0.0
## Median Type Adjustment Factor Value = 0.0
## Access Point Density Adjustment Factor Value = 1.0
## FFS = 59.0 mi/h
## Capacity = 1700.00 pc/h/ln
## E_T = 2.0
## P_T = 5.00
## Heavy vehicle factor = 0.952
## Analysis flow rate = 607.9 pc/h/ln
## Breakpoint = 1640.0 pc/h/ln
## Average Speed = 59.0 mi/h
## Density = 10.3 pc/mi/ln
## LOS is B
## LOS numeric value = 0.9366637
SegResultsDataList[[2]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[2]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[2]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[2]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[2]]$NumberofLanes,"LOSNumber" = ReturnedResults[3])
ReturnedResults <- vector(length=2)
ReturnedResults <- SignalMainFcn(SegInputDataList[[3]]$LeftTurnVolume, SegInp utDataList[[3]]$DirVolume, SegInputDataList[[3]]$RightTurnVolume, SegInputDat aList[[3]]$PeakHourFactor, SegInputDataList[[3]]$PercentHeavyVehicles, SegInp utDataList[[3]]$BaseSatFlowRate, SegInputDataList[[3]]$NumberofLanes, SegInpu tDataList[[3]]$EffectiveGreenTime, SegInputDataList[[3]]$CycleLengthSec, SegI nputDataList[[3]]$ArrivalType)
## Analysis Flow Rate = 1040.0 veh/h
## Adjusted Saturation Flow Rate = 1880.0 veh/h
## Capacity = 1504.0 veh/h
## v/c Ratio = 0.691
## Thru Delay = 25.2 s
## LOS is C
## LOS numeric value = 2.348607
SegResultsDataList[[3]] <- list("Segment Free Flow Speed (mi/h)" = SegInputDa taList[[3]]$PostedSpeedLimit*1.1, "Segment Average Travel Speed (mi/h)" = Seg InputDataList[[3]]$SegmentLengthFt/(ReturnedResults[1]+(SegInputDataList[[3]] $SegmentLengthFt/SegInputDataList[[3]]$PostedSpeedLimit*1.1)), "Segment Poste d Speed Limit (mi/h)" = SegInputDataList[[3]]$PostedSpeedLimit, "Segment Leng th (mi)" = SegInputDataList[[3]]$SegmentLengthFt/FeetInMiles, "Segment Percen t HV" = SegInputDataList[[3]]$PercentHeavyVehicles, "Number of Lanes" = SegIn putDataList[[3]]$NumberofLanes, "LOSNumber" = ReturnedResults[2])
IsPassingLaneUpStream <- FALSE
UpstreamSegResults <- as.numeric(ReturnedResults)
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[4]]$SegmentType, SegInput DataList[[4]]$DirVolume, SegInputDataList[[4]]$OppVolume, SegInputDataList[[4 ]]$PeakHourFactor, SegInputDataList[[4]]$PercentHeavyVehicles, SegInputDataLi st[[4]]$PostedSpeedLimit, SegInputDataList[[4]]$SegmentLengthMi, SegInputData List[[4]]$AccessPointDensity, SegInputDataList[[4]]$LaneWidth, SegInputDataLi st[[4]]$ShoulderWidth, SegInputDataList[[4]]$VertAlignmentClass, UpstreamSegR esults, IsPassingLaneUpStream, 0, 0, 0)
## The peak 15-min flow rate = 736.8 veh/h
## BFFS = 62.7 mi/h
## a = 0.090
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 3 mi
## Free-Flow Speed = 62.4 mi/h
## m = 3.932
## p = 0.457
## Average Speed = 59.2 mi/h
## Percent Followers at Capacity = 86.77 %
## Percent Followers at 25% Capacity = 51.32 %
## PF_m = -1.360
## PF_p = 0.745
## Percent Followers = 66.1 %
## Follower Density = 8.228 followers/mi/ln
## LOS is D
## LOS numeric value = 3.057103
SegResultsDataList[[4]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[4]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[4]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[4]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[4]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
UpstreamSegResults <- as.numeric(ReturnedResults)
EffectiveLengthPL <- PassingLaneEffectiveLengthFcn(UpstreamSegResults[6], Ups treamSegResults[2], UpstreamSegResults[3], UpstreamSegResults[4], SegInputDat aList[[5]]$SegmentLengthMi)
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[5]]$SegmentType, SegInput DataList[[5]]$DirVolume, SegInputDataList[[5]]$OppVolume, SegInputDataList[[5 ]]$PeakHourFactor, SegInputDataList[[5]]$PercentHeavyVehicles, SegInputDataLi st[[5]]$PostedSpeedLimit, SegInputDataList[[5]]$SegmentLengthMi, SegInputData List[[5]]$AccessPointDensity, SegInputDataList[[5]]$LaneWidth, SegInputDataLi st[[5]]$ShoulderWidth, SegInputDataList[[5]]$VertAlignmentClass, UpstreamSegR esults, FALSE, 0, 0, 0)
## The peak 15-min flow rate = 736.8 veh/h
## BFFS = 62.7 mi/h
## a = 0.075
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.5 mi, Maximum Segment Length = 3 mi
## Free-Flow Speed = 62.5 mi/h
## NumHV = 22 veh
## PropFlowRate_FL = 0.584
## FlowRate_FL = 430 veh/h
## FlowRate_SL = 307 veh/h
## HV%_FL = 1.2 %
## NumHV_SL = 17 veh
## HV%_SL = 5.5 %
## AvgSpeedDiffAdj = 3.28 mi/h
## S_init_FL = 60.74 mi/h
## S_PLmid_FL = 62.38 mi/h
## S_init_SL = 61.34 mi/h
## S_PLmid_SL = 59.71 mi/h
## S_PLMid = 61.27 mi/h
## PF_PLmid_FL = 44.41 %
## PF_PLmid_SL = 33.60 %
## PF_PLMid = 39.91 %
## FD_PLmid = 2.394 followers/mi/ln
## Follower Density = 2.394 followers/mi/ln
## LOS is B
## LOS numeric value = 1.197096
## Effective Length = 8.0 mi
SegResultsDataList[[5]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[5]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[5]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[5]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[5]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[6]]$SegmentType, SegInput DataList[[6]]$DirVolume, SegInputDataList[[6]]$OppVolume, SegInputDataList[[6 ]]$PeakHourFactor, SegInputDataList[[6]]$PercentHeavyVehicles, SegInputDataLi st[[6]]$PostedSpeedLimit, SegInputDataList[[6]]$SegmentLengthMi, SegInputData List[[5]]$AccessPointDensity, SegInputDataList[[6]]$LaneWidth, SegInputDataLi st[[6]]$ShoulderWidth, SegInputDataList[[6]]$VertAlignmentClass, UpstreamSegR esults, TRUE, SegInputDataList[[5]]$SegmentLengthMi, SegInputDataList[[5]]$Se gmentLengthMi+SegInputDataList[[6]]$SegmentLengthMi, EffectiveLengthPL)
## The peak 15-min flow rate = 736.8 veh/h
## BFFS = 62.7 mi/h
## a = 0.033
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 3 mi
## Free-Flow Speed = 62.7 mi/h
## m = 3.971
## p = 0.417
## Average Speed = 59.4 mi/h
## Percent Followers at Capacity = 85.11 %
## Percent Followers at 25% Capacity = 48.36 %
## PF_m = -1.268
## PF_p = 0.764
## Percent Followers = 63.4 %
## Follower Density = 6.469 followers/mi/ln
## LOS is C
## LOS numeric value = 2.617298
SegResultsDataList[[6]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[6]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[6]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[6]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[6]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[7]]$SegmentType, SegInput DataList[[7]]$DirVolume, SegInputDataList[[7]]$OppVolume, SegInputDataList[[7 ]]$PeakHourFactor, SegInputDataList[[7]]$PercentHeavyVehicles, SegInputDataLi st[[7]]$PostedSpeedLimit, SegInputDataList[[7]]$SegmentLengthMi, SegInputData List[[5]]$AccessPointDensity, SegInputDataList[[7]]$LaneWidth, SegInputDataLi st[[7]]$ShoulderWidth, SegInputDataList[[7]]$VertAlignmentClass, UpstreamSegR esults, TRUE, SegInputDataList[[5]]$SegmentLengthMi, SegInputDataList[[5]]$Se gmentLengthMi+SegInputDataList[[6]]$SegmentLengthMi+SegInputDataList[[7]]$Seg mentLengthMi, EffectiveLengthPL)
## The peak 15-min flow rate = 736.8 veh/h
## BFFS = 62.7 mi/h
## a = 0.033
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 2 mi
## Free-Flow Speed = 62.7 mi/h
## m = 3.787
## p = 0.497
## Average Speed = 59.7 mi/h
## Percent Followers at Capacity = 84.60 %
## Percent Followers at 25% Capacity = 46.29 %
## PF_m = -1.227
## PF_p = 0.796
## Percent Followers = 61.8 %
## Follower Density = 6.691 followers/mi/ln
## LOS is C
## LOS numeric value = 2.672675
SegResultsDataList[[7]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[7]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[7]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[7]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[7]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
ReturnedResults <- vector(length=2)
ReturnedResults <- SignalMainFcn(SegInputDataList[[8]]$LeftTurnVolume, SegInp utDataList[[8]]$DirVolume, SegInputDataList[[8]]$RightTurnVolume, SegInputDat aList[[8]]$PeakHourFactor, SegInputDataList[[8]]$PercentHeavyVehicles, SegInp utDataList[[8]]$BaseSatFlowRate, SegInputDataList[[8]]$NumberofLanes, SegInpu tDataList[[8]]$EffectiveGreenTime, SegInputDataList[[8]]$CycleLengthSec, SegI nputDataList[[8]]$ArrivalType)
## Analysis Flow Rate = 780.0 veh/h
## Adjusted Saturation Flow Rate = 1838.3 veh/h
## Capacity = 1470.6 veh/h
## v/c Ratio = 0.530
## Thru Delay = 22.1 s
## LOS is C
## LOS numeric value = 2.140303
SegResultsDataList[[8]] <- list("Segment Free Flow Speed (mi/h)" = SegInputDa taList[[8]]$PostedSpeedLimit*1.1, "Segment Average Travel Speed (mi/h)" = Seg InputDataList[[8]]$SegmentLengthFt/(ReturnedResults[1]+(SegInputDataList[[8]] $SegmentLengthFt/SegInputDataList[[8]]$PostedSpeedLimit*1.1)), "Segment Poste d Speed Limit (mi/h)" = SegInputDataList[[8]]$PostedSpeedLimit, "Segment Leng th (mi)" = SegInputDataList[[8]]$SegmentLengthFt/FeetInMiles, "Segment Percen t HV" = SegInputDataList[[8]]$PercentHeavyVehicles, "Number of Lanes" = SegIn putDataList[[8]]$NumberofLanes, "LOSNumber" = ReturnedResults[2], "AvgSpeedCa lc" = (ReturnedResults[1]+(SegInputDataList[[8]]$SegmentLengthFt/SegInputData List[[8]]$PostedSpeedLimit*1.1)))
ReturnedResults <- vector(length = 3)
ReturnedResults <- MLMainFcn(SegInputDataList[[9]]$PostedSpeedLimit, SegInput DataList[[9]]$LaneWidth, SegInputDataList[[9]]$RightSideLateralClearance, Seg InputDataList[[9]]$LeftSideLateralClearance, SegInputDataList[[9]]$NumberofLa nes, SegInputDataList[[9]]$MedianType, SegInputDataList[[9]]$AccessPointDensi ty, SegInputDataList[[9]]$Terrain, SegInputDataList[[9]]$PercentHeavyVehicles , SegInputDataList[[9]]$DirVolume, SegInputDataList[[9]]$PeakHourFactor)
## BFFS = 60.0
## Lane Width Adjustment Factor Value = 0.0
## Total Lateral Clearance = 12.0 ft
## Total Lateral Clearance Adjustment Factor Value = 0.0
## Median Type Adjustment Factor Value = 0.0
## Access Point Density Adjustment Factor Value = 0.5
## FFS = 59.5 mi/h
## Capacity = 1700.00 pc/h/ln
## E_T = 2.0
## P_T = 0.00
## Heavy vehicle factor = 1.000
## Analysis flow rate = 547.4 pc/h/ln
## Breakpoint = 1620.0 pc/h/ln
## Average Speed = 59.5 mi/h
## Density = 9.2 pc/mi/ln
## LOS is A
## LOS numeric value = 0.8363154
SegResultsDataList[[9]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[9]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[9]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[9]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[9]]$NumberofLanes, "LOSNumber" = ReturnedResults[3])
ReturnedResults <- vector(length = 3)
ReturnedResults <- MLMainFcn(SegInputDataList[[10]]$PostedSpeedLimit, SegInpu tDataList[[10]]$LaneWidth, SegInputDataList[[10]]$RightSideLateralClearance , SegInputDataList[[10]]$LeftSideLateralClearance, SegInputDataList[[10]]$Numbe rofLanes, SegInputDataList[[10]]$MedianType, SegInputDataList[[10]]$AccessPoi ntDensity, SegInputDataList[[10]]$Terrain, SegInputDataList[[10]]$PercentHeav yVehicles, SegInputDataList[[10]]$DirVolume, SegInputDataList[[10]]$PeakHourF actor)
## BFFS = 60.0
## Lane Width Adjustment Factor Value = 0.0
## Total Lateral Clearance = 12.0 ft
## Total Lateral Clearance Adjustment Factor Value = 0.0
## Median Type Adjustment Factor Value = 0.0
## Access Point Density Adjustment Factor Value = 0.8
## FFS = 59.2 mi/h
## Capacity = 1700.00 pc/h/ln
## E_T = 2.0
## P_T = 5.00
## Heavy vehicle factor = 0.952
## Analysis flow rate = 574.7 pc/h/ln
## Breakpoint = 1630.0 pc/h/ln
## Average Speed = 59.2 mi/h
## Density = 9.7 pc/mi/ln
## LOS is A
## LOS numeric value = 0.8818364
SegResultsDataList[[10]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedR esults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segme nt Posted Speed Limit (mi/h)" = SegInputDataList[[10]]$PostedSpeedLimit, "Seg ment Length (mi)" = SegInputDataList[[10]]$SegmentLengthFt/FeetInMiles, "Segm ent Percent HV" = SegInputDataList[[10]]$PercentHeavyVehicles, "Number of Lan es" = SegInputDataList[[10]]$NumberofLanes, "LOSNumber" = ReturnedResults[3])
ReturnedResults <- vector(length=2)
ReturnedResults <- SignalMainFcn(SegInputDataList[[11]]$LeftTurnVolume, SegIn putDataList[[11]]$DirVolume, SegInputDataList[[11]]$RightTurnVolume, SegInput DataList[[11]]$PeakHourFactor, SegInputDataList[[11]]$PercentHeavyVehicles, S egInputDataList[[11]]$BaseSatFlowRate, SegInputDataList[[11]]$NumberofLanes, SegInputDataList[[11]]$EffectiveGreenTime, SegInputDataList[[11]]$CycleLength Sec, SegInputDataList[[11]]$ArrivalType)
## Analysis Flow Rate = 1010.0 veh/h
## Adjusted Saturation Flow Rate = 1751.3 veh/h
## Capacity = 1401.0 veh/h
## v/c Ratio = 0.721
## Thru Delay = 26.2 s
## LOS is C
## LOS numeric value = 2.415539
SegResultsDataList[[11]] <- list("Segment Free Flow Speed (mi/h)" = SegInputD ataList[[11]]$PostedSpeedLimit*1.1, "Segment Average Travel Speed (mi/h)" = S egInputDataList[[11]]$SegmentLengthFt/(ReturnedResults[1]+(SegInputDataList[[ 11]]$SegmentLengthFt/SegInputDataList[[11]]$PostedSpeedLimit*1.1)), "Segment Posted Speed Limit (mi/h)" = SegInputDataList[[11]]$PostedSpeedLimit, "Segmen t Length (mi)" = SegInputDataList[[11]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[11]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[11]]$NumberofLanes, "LOSNumber" = ReturnedResults[2], "Av gSpeedCalc" = (ReturnedResults[1]+(SegInputDataList[[11]]$SegmentLengthFt/Seg InputDataList[[11]]$PostedSpeedLimit*1.1)))
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[12]]$SegmentType, SegInpu tDataList[[12]]$DirVolume, SegInputDataList[[12]]$OppVolume, SegInputDataList [[12]]$PeakHourFactor, SegInputDataList[[12]]$PercentHeavyVehicles, SegInputD ataList[[12]]$PostedSpeedLimit, SegInputDataList[[12]]$SegmentLengthMi, SegIn putDataList[[12]]$AccessPointDensity, SegInputDataList[[12]]$LaneWidth, SegIn putDataList[[12]]$ShoulderWidth, SegInputDataList[[12]]$VertAlignmentClass, U pstreamSegResults, IsPassingLaneUpStream, 0, 0, 0)
## The peak 15-min flow rate = 757.9 veh/h
## BFFS = 62.7 mi/h
## a = 0.033
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 3 mi
## Free-Flow Speed = 62.5 mi/h
## m = 3.936
## p = 0.417
## Average Speed = 59.2 mi/h
## Percent Followers at Capacity = 85.58 %
## Percent Followers at 25% Capacity = 48.79 %
## PF_m = -1.288
## PF_p = 0.767
## Percent Followers = 64.7 %
## Follower Density = 8.279 followers/mi/ln
## LOS is D
## LOS numeric value = 3.069697
SegResultsDataList[[12]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedR esults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segme nt Posted Speed Limit (mi/h)" = SegInputDataList[[12]]$PostedSpeedLimit, "Seg ment Length (mi)" = SegInputDataList[[12]]$SegmentLengthFt/FeetInMiles, "Segm ent Percent HV" = SegInputDataList[[12]]$PercentHeavyVehicles, "Number of Lan es" = SegInputDataList[[12]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
ReturnedResults <- vector(length = 2)
ReturnedResults <- RoundaboutMainFcn(SegInputDataList[[13]]$VehicleType, SegI nputDataList[[13]]$PercentHeavyVehicles, SegInputDataList[[13]]$PeakHourFacto r, SegInputDataList[[13]]$DirVolume[2], SegInputDataList[[13]]$DirVolume[1], SegInputDataList[[13]]$DirVolume[3], SegInputDataList[[13]]$NBVolume[2], SegI nputDataList[[13]]$NBVolume[1], SegInputDataList[[13]]$NBVolume[3], SegInputD ataList[[13]]$OppVolume[2], SegInputDataList[[13]]$OppVolume[1], SegInputData List[[13]]$OppVolume[3], SegInputDataList[[13]]$SBVolume[2], SegInputDataList [[13]]$SBVolume[1], SegInputDataList[[13]]$SBVolume[3])
## Demand Flow Rate = 720.0 veh/h
## Heavy Vehicle Adjustment Factor = 0.952 veh/h
## Demand Flow Rate = 663.2 pce/h
## Eastbound Circulating Flow Rate = 414.5 pce/h
## Eastbound Entry Lane Capacity = 904.2 pce/h
## Eastbound v/c Ratio = 0.880
## Eastbound Control Delay = 30.4 s/veh
## LOS = D
## LOS numeric value = 3.54212
SegResultsDataList[[13]] <- list("Segment Free Flow Speed (mi/h)" = SegInputD ataList[[13]]$PostedSpeedLimit*1.1, "Segment Average Travel Speed (mi/h)" = S egInputDataList[[13]]$SegmentLengthFt/(ReturnedResults[1]+(SegInputDataList[[ 13]]$SegmentLengthFt/SegInputDataList[[13]]$PostedSpeedLimit*1.1)), "Segment Posted Speed Limit (mi/h)" = SegInputDataList[[13]]$PostedSpeedLimit, "Segmen t Length (mi)" = SegInputDataList[[13]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[13]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[13]]$NumberofLanes, "LOSNumber" = ReturnedResults[2], "Av gSpeedCalc" = (ReturnedResults[1]+(SegInputDataList[[13]]$SegmentLengthFt/Seg InputDataList[[13]]$PostedSpeedLimit*1.1)))
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[14]]$SegmentType, SegInpu tDataList[[14]]$DirVolume, SegInputDataList[[14]]$OppVolume, SegInputDataList [[14]]$PeakHourFactor, SegInputDataList[[14]]$PercentHeavyVehicles, SegInputD ataList[[14]]$PostedSpeedLimit, SegInputDataList[[14]]$SegmentLengthMi, SegIn putDataList[[14]]$AccessPointDensity, SegInputDataList[[14]]$LaneWidth, SegIn putDataList[[14]]$ShoulderWidth, SegInputDataList[[14]]$VertAlignmentClass, U pstreamSegResults, IsPassingLaneUpStream, 0, 0, 0)
## The peak 15-min flow rate = 631.6 veh/h
## BFFS = 62.7 mi/h
## a = 0.033
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 2 mi
## Free-Flow Speed = 62.5 mi/h
## m = 3.800
## p = 0.489
## Average Speed = 59.7 mi/h
## Percent Followers at Capacity = 84.70 %
## Percent Followers at 25% Capacity = 46.86 %
## PF_m = -1.237
## PF_p = 0.786
## Percent Followers = 57.8 %
## Follower Density = 6.106 followers/mi/ln
## LOS is C
## LOS numeric value = 2.526593
SegResultsDataList[[14]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedR esults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segme nt Posted Speed Limit (mi/h)" = SegInputDataList[[14]]$PostedSpeedLimit, "Seg ment Length (mi)" = SegInputDataList[[14]]$SegmentLengthFt/FeetInMiles, "Segm ent Percent HV" = SegInputDataList[[14]]$PercentHeavyVehicles, "Number of Lan es" = SegInputDataList[[14]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
ReturnedResults <- vector(length = 2)
ReturnedResults <- AWSCMainFunction(SegInputDataList[[15]]$PeakHourFactor, Se gInputDataList[[15]]$DirVolume[2], SegInputDataList[[15]]$DirVolume[1], SegIn putDataList[[15]]$DirVolume[3], SegInputDataList[[15]]$NBVolume[2], SegInputD ataList[[15]]$NBVolume[1], SegInputDataList[[15]]$NBVolume[3], SegInputDataLi st[[15]]$OppVolume[2], SegInputDataList[[15]]$OppVolume[1], SegInputDataList[ [15]]$OppVolume[3], SegInputDataList[[15]]$SBVolume[2], SegInputDataList[[15] ]$SBVolume[1], SegInputDataList[[15]]$SBVolume[3], SegInputDataList[[15]]$Bas eSatHeadway, SegInputDataList[[15]]$Convergence, SegInputDataList[[15]]$Conve rgenceCriteria, SegInputDataList[[15]]$DepartureHeadwayLast, SegInputDataList [[15]]$PercentHeavyVehicles[1], SegInputDataList[[15]]$PercentHeavyVehicles[2 ], SegInputDataList[[15]]$PercentHeavyVehicles[3], SegInputDataList[[15]]$Per centHeavyVehicles[4], SegInputDataList[[15]]$MoveUpTime14)
## Eastbound Total Volume = 600.0 veh/h
## Eastbound Adjusted Headway = 0.0310 s
## Degree of Utilization = 0.972
## Eastbound Departure Headway = 5.5 s
## Eastbound Control Delay = 51.9 s
## LOS = F
## LOS numeric value = 5
SegResultsDataList[[15]] <- list("Segment Free Flow Speed (mi/h)" = SegInputD ataList[[15]]$PostedSpeedLimit*1.1, "Segment Average Travel Speed (mi/h)" = S egInputDataList[[15]]$SegmentLengthFt/(ReturnedResults[1]+(SegInputDataList[[ 15]]$SegmentLengthFt/SegInputDataList[[15]]$PostedSpeedLimit*1.1)), "Segment Posted Speed Limit (mi/h)" = SegInputDataList[[15]]$PostedSpeedLimit, "Segmen t Length (mi)" = SegInputDataList[[15]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[15]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[15]]$NumberofLanes, "LOSNumber" = ReturnedResults[2], "Av gSpeedCalc" = SegInputDataList[[15]]$SegmentLengthFt/(ReturnedResults[1]+(Seg InputDataList[[15]]$SegmentLengthFt/(SegInputDataList[[15]]$PostedSpeedLimit* 1.1))))
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[16]]$SegmentType, SegInpu tDataList[[16]]$DirVolume, SegInputDataList[[16]]$OppVolume, SegInputDataList [[16]]$PeakHourFactor, SegInputDataList[[16]]$PercentHeavyVehicles, SegInputD ataList[[16]]$PostedSpeedLimit, SegInputDataList[[16]]$SegmentLengthMi, SegIn putDataList[[16]]$AccessPointDensity, SegInputDataList[[16]]$LaneWidth, SegIn putDataList[[16]]$ShoulderWidth, SegInputDataList[[16]]$VertAlignmentClass, U pstreamSegResults, IsPassingLaneUpStream, 0, 0, 0)
## The peak 15-min flow rate = 684.2 veh/h
## BFFS = 62.7 mi/h
## a = 0.033
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 3 mi
## Free-Flow Speed = 62.5 mi/h
## m = 3.964
## p = 0.417
## Average Speed = 59.4 mi/h
## Percent Followers at Capacity = 85.11 %
## Percent Followers at 25% Capacity = 48.39 %
## PF_m = -1.269
## PF_p = 0.763
## Percent Followers = 61.3 %
## Follower Density = 7.067 followers/mi/ln
## LOS is C
## LOS numeric value = 2.766835
SegResultsDataList[[16]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedR esults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segme nt Posted Speed Limit (mi/h)" = SegInputDataList[[16]]$PostedSpeedLimit, "Seg ment Length (mi)" = SegInputDataList[[16]]$SegmentLengthFt/FeetInMiles, "Segm ent Percent HV" = SegInputDataList[[16]]$PercentHeavyVehicles, "Number of Lan es" = SegInputDataList[[16]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
InfluenceAreaUpStream[3] <- InfAreaSignalUSFcn(SegResultsDataList[[2]]$`Segme nt Average Travel Speed (mi/h)`, SegResultsDataList[[3]]$`Segment Percent HV` , SegResultsDataList[[2]]$`Number of Lanes`)
InfluenceAreaDownStream[3] <- InfAreaSignalDSFcn(SegResultsDataList[[4]]$`Seg ment Average Travel Speed (mi/h)`, SegResultsDataList[[3]]$`Segment Percent H V`, SegResultsDataList[[4]]$`Number of Lanes`)
InfluenceAreaUpStream[8] <- InfAreaSignalUSFcn(SegResultsDataList[[7]]$`Segme nt Average Travel Speed (mi/h)`, SegResultsDataList[[8]]$`Segment Percent HV` , SegResultsDataList[[7]]$`Number of Lanes`)
InfluenceAreaDownStream[8] <- InfAreaSignalDSFcn(SegResultsDataList[[9]]$`Seg ment Average Travel Speed (mi/h)`, SegResultsDataList[[8]]$`Segment Percent H V`, SegResultsDataList[[9]]$`Number of Lanes`)
InfluenceAreaUpStream[11] <- InfAreaSignalUSFcn(SegResultsDataList[[10]]$`Seg ment Average Travel Speed (mi/h)`, SegResultsDataList[[11]]$`Segment Percent HV`, SegResultsDataList[[10]]$`Number of Lanes`)
InfluenceAreaDownStream[11] <- InfAreaSignalDSFcn(SegResultsDataList[[12]]$`S egment Average Travel Speed (mi/h)`, SegResultsDataList[[11]]$`Segment Percen t HV`, SegResultsDataList[[12]]$`Number of Lanes`)
InfluenceAreaUpStream[13] <- InfAreaRoundaboutUSFcn(SegResultsDataList[[12]]$ `Segment Average Travel Speed (mi/h)`)
InfluenceAreaDownStream[13] <- InfAreaRoundaboutDSFcn(SegResultsDataList[[14] ]$`Segment Average Travel Speed (mi/h)`)
InfluenceAreaUpStream[15] <- InfAreaAWSCUSFcn(SegResultsDataList[[14]]$`Segme nt Average Travel Speed (mi/h)`)
InfluenceAreaDownStream[15] <- InfAreaAWSCDSFcn(SegResultsDataList[[16]]$`Seg ment Average Travel Speed (mi/h)`)
InfluenceAreaList[[1]] <- list("Segment3UpStreamInfluenceArea" = InfluenceAre aUpStream[3]/FeetInMiles, "Segment3DownStreamInfluenceArea" = InfluenceAreaDo wnStream[3]/FeetInMiles)
InfluenceAreaTotalList[[1]] <- list("Segment3 Influence Area (mi)" = Differen ceInAreaFcn(InfluenceAreaList[[1]]$Segment3UpStreamInfluenceArea,InfluenceAre aList[[1]]$Segment3DownStreamInfluenceArea))
InfluenceAreaList[[2]] <- list("Segment8UpstreamInfluenceArea" = InfluenceAre aUpStream[8]/FeetInMiles, "Segment8DownStreamInfluenceArea" = InfluenceAreaDo wnStream[8]/FeetInMiles)
InfluenceAreaTotalList[[2]] <- list("Segment 8 Influence Area (mi)" = Differe nceInAreaFcn(InfluenceAreaList[[2]]$Segment8UpstreamInfluenceArea,InfluenceAr eaList[[2]]$Segment8DownStreamInfluenceArea))
InfluenceAreaList[[3]] <- list("Segment11UpstreamInfluenceArea" = InfluenceAr eaUpStream[11]/FeetInMiles, "Segment11DownStreamInfluenceArea" = InfluenceAre aDownStream[11]/FeetInMiles)
InfluenceAreaTotalList[[3]] <- list("Segment 11 Influence Area (mi)" = Differ enceInAreaFcn(InfluenceAreaList[[3]]$Segment11UpstreamInfluenceArea,Influence AreaList[[3]]$Segment11DownStreamInfluenceArea))
InfluenceAreaList[[4]] <- list("Segment13UpstreamInfluenceArea" = InfluenceAr eaUpStream[13]/FeetInMiles, "Segment13DownStreamInfluenceArea" = InfluenceAre aDownStream[13]/FeetInMiles)
InfluenceAreaTotalList[[4]] <- list("Segment 13 Influence Area (mi)" = Differ enceInAreaFcn(InfluenceAreaList[[4]]$Segment13UpstreamInfluenceArea,Influence AreaList[[4]]$Segment13DownStreamInfluenceArea))
InfluenceAreaList[[5]] <- list("Segment15UpstreamInfluenceArea" = InfluenceAr eaUpStream[15]/FeetInMiles, "Segment15DownStreamInfluenceArea" = InfluenceAre aDownStream[15]/FeetInMiles)
InfluenceAreaTotalList[[5]] <- list("Segment 15 Influence Area (mi)" = Differ enceInAreaFcn(InfluenceAreaList[[5]]$Segment15UpstreamInfluenceArea,Influence AreaList[[5]]$Segment15DownStreamInfluenceArea))
AdjustedLength[1] <- SegInputDataList[[1]]$SegmentLengthMi
AdjustedLength[2] <- ((SegInputDataList[[2]]$SegmentLengthFt)-(InfluenceAreaU pStream[3]-SegInputDataList[[3]]$GeometricUpstreamDistFt))/FeetInMiles
AdjustedLength[3] <- IntAdjustedLengthFcn(InfluenceAreaUpStream[3], Influence AreaDownStream[3])
AdjustedLength[4] <- ((SegInputDataList[[4]]$SegmentLengthFt)-(InfluenceAreaD ownStream[3]-SegInputDataList[[3]]$GeometricDownstreamDistFt))/FeetInMiles
AdjustedLength[5] <- SegInputDataList[[5]]$SegmentLengthMi
AdjustedLength[6] <- SegInputDataList[[6]]$SegmentLengthMi
AdjustedLength[7] <- ((SegInputDataList[[7]]$SegmentLengthFt)-(InfluenceAreaU pStream[8]-SegInputDataList[[8]]$GeometricUpstreamDistFt))/FeetInMiles
AdjustedLength[8] <- IntAdjustedLengthFcn(InfluenceAreaUpStream[8], Influence AreaDownStream[8])
AdjustedLength[9] <- ((SegInputDataList[[9]]$SegmentLengthFt)-(InfluenceAreaD ownStream[8]-SegInputDataList[[8]]$GeometricDownstreamDistFt))/FeetInMiles
AdjustedLength[10] <- ((SegInputDataList[[10]]$SegmentLengthFt)- (InfluenceAr eaUpStream[11]-SegInputDataList[[11]]$GeometricUpstreamDistFt))/FeetInMiles
AdjustedLength[11] <- IntAdjustedLengthFcn(InfluenceAreaUpStream[11], Influen ceAreaDownStream[11])
AdjustedLength[12] <- ((SegInputDataList[[12]]$SegmentLengthFt) - (InfluenceA reaDownStream[11]-SegInputDataList[[11]]$GeometricDownstreamDistFt) - (Influe
nceAreaUpStream[13] - SegInputDataList[[13]]$GeometricUpstreamDistFt))/FeetIn Miles
AdjustedLength[13] <- IntAdjustedLengthFcn(InfluenceAreaUpStream[13], Influen ceAreaDownStream[13])
AdjustedLength[14] <- ((SegInputDataList[[14]]$SegmentLengthFt) - (InfluenceA reaDownStream[13] - SegInputDataList[[13]]$GeometricDownstreamDistFt) - (Infl uenceAreaUpStream[15] - SegInputDataList[[15]]$GeometricUpstreamDistFt))/Feet InMiles
AdjustedLength[15] <- IntAdjustedLengthFcn(InfluenceAreaUpStream[15], Influen ceAreaDownStream[15])
AdjustedLength[16] <- ((SegInputDataList[[16]]$SegmentLengthFt)-(InfluenceAre aDownStream[15] - SegInputDataList[[15]]$GeometricDownstreamDistFt))/FeetInMi les
ReturnedResults <- vector(length = 3)
ReturnedResults <- MLMainFcn(SegInputDataList[[1]]$PostedSpeedLimit, SegInput DataList[[1]]$LaneWidth, SegInputDataList[[1]]$RightSideLateralClearance , Se gInputDataList[[1]]$LeftSideLateralClearance, SegInputDataList[[1]]$NumberofL anes, SegInputDataList[[1]]$MedianType, SegInputDataList[[1]]$AccessPointDens ity, SegInputDataList[[1]]$Terrain, SegInputDataList[[1]]$PercentHeavyVehicle s, SegInputDataList[[1]]$DirVolume, SegInputDataList[[1]]$PeakHourFactor)
## BFFS = 60.0
## Lane Width Adjustment Factor Value = 0.0
## Total Lateral Clearance = 12.0 ft
## Total Lateral Clearance Adjustment Factor Value = 0.0
## Median Type Adjustment Factor Value = 0.0
## Access Point Density Adjustment Factor Value = 1.0
## FFS = 59.0 mi/h
## Capacity = 1700.00 pc/h/ln
## E_T = 2.0
## P_T = 0.00
## Heavy vehicle factor = 1.000
## Analysis flow rate = 578.9 pc/h/ln
## Breakpoint = 1640.0 pc/h/ln
## Average Speed = 59.0 mi/h
## Density = 9.8 pc/mi/ln
## LOS is A
## LOS numeric value = 0.8920607
SegResultsDataList[[1]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[1]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[1]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[1]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[1]]$NumberofLanes, "LOSNumber" = ReturnedResults[3])
ReturnedResults <- vector(length = 3)
ReturnedResults <- MLMainFcn(SegInputDataList[[2]]$PostedSpeedLimit, SegInput DataList[[2]]$LaneWidth, SegInputDataList[[2]]$RightSideLateralClearance , Se gInputDataList[[2]]$LeftSideLateralClearance, SegInputDataList[[2]]$NumberofL anes, SegInputDataList[[2]]$MedianType, SegInputDataList[[2]]$AccessPointDens ity, SegInputDataList[[2]]$Terrain, SegInputDataList[[2]]$PercentHeavyVehicle s, SegInputDataList[[2]]$DirVolume, SegInputDataList[[2]]$PeakHourFactor)
## BFFS = 60.0
## Lane Width Adjustment Factor Value = 0.0
## Total Lateral Clearance = 12.0 ft
## Total Lateral Clearance Adjustment Factor Value = 0.0
## Median Type Adjustment Factor Value = 0.0
## Access Point Density Adjustment Factor Value = 1.0
## FFS = 59.0 mi/h
## Capacity = 1700.00 pc/h/ln
## E_T = 2.0
## P_T = 5.00
## Heavy vehicle factor = 0.952
## Analysis flow rate = 607.9 pc/h/ln
## Breakpoint = 1640.0 pc/h/ln
## Average Speed = 59.0 mi/h
## Density = 10.3 pc/mi/ln
## LOS is B
## LOS numeric value = 0.9366637
SegResultsDataList[[2]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[2]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[2]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[2]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[2]]$NumberofLanes,"LOSNumber" = ReturnedResults[3])
ReturnedResults <- vector(length=2)
ReturnedResults <- SignalMainFcn(SegInputDataList[[3]]$LeftTurnVolume, SegInp utDataList[[3]]$DirVolume, SegInputDataList[[3]]$RightTurnVolume, SegInputDat aList[[3]]$PeakHourFactor, SegInputDataList[[3]]$PercentHeavyVehicles, SegInp utDataList[[3]]$BaseSatFlowRate, SegInputDataList[[3]]$NumberofLanes, SegInpu tDataList[[3]]$EffectiveGreenTime, SegInputDataList[[3]]$CycleLengthSec, SegI nputDataList[[3]]$ArrivalType)
## Analysis Flow Rate = 1040.0 veh/h
## Adjusted Saturation Flow Rate = 1880.0 veh/h
## Capacity = 1504.0 veh/h
## v/c Ratio = 0.691
## Thru Delay = 25.2 s
## LOS is C
## LOS numeric value = 2.348607
SegResultsDataList[[3]] <- list("Segment Free Flow Speed (mi/h)" = SegInputDa taList[[3]]$PostedSpeedLimit*1.1, "Segment Average Travel Speed (mi/h)" = Adj ustedLength[3]/((ReturnedResults[1]/SecondsPerHour)+(AdjustedLength[3]/(SegIn putDataList[[3]]$PostedSpeedLimit*1.1))), "Segment Posted Speed Limit (mi/h)" = SegInputDataList[[3]]$PostedSpeedLimit, "Segment Length (mi)" = SegInputDat aList[[3]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataLi st[[3]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[3]]$Numbe rofLanes, "LOSNumber" = ReturnedResults[2])
IsPassingLaneUpStream <- FALSE
UpstreamSegResults <- as.numeric(ReturnedResults)
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[4]]$SegmentType, SegInput DataList[[4]]$DirVolume, SegInputDataList[[4]]$OppVolume, SegInputDataList[[4 ]]$PeakHourFactor, SegInputDataList[[4]]$PercentHeavyVehicles, SegInputDataLi st[[4]]$PostedSpeedLimit, SegInputDataList[[4]]$SegmentLengthMi, SegInputData List[[4]]$AccessPointDensity, SegInputDataList[[4]]$LaneWidth, SegInputDataLi st[[4]]$ShoulderWidth, SegInputDataList[[4]]$VertAlignmentClass, UpstreamSegR esults, IsPassingLaneUpStream, 0, 0, 0)
## The peak 15-min flow rate = 736.8 veh/h
## BFFS = 62.7 mi/h
## a = 0.090
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 3 mi
## Free-Flow Speed = 62.4 mi/h
## m = 3.932
## p = 0.457
## Average Speed = 59.2 mi/h
## Percent Followers at Capacity = 86.77 %
## Percent Followers at 25% Capacity = 51.32 %
## PF_m = -1.360
## PF_p = 0.745
## Percent Followers = 66.1 %
## Follower Density = 8.228 followers/mi/ln
## LOS is D
## LOS numeric value = 3.057103
SegResultsDataList[[4]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[4]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[4]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[4]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[4]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
UpstreamSegResults <- as.numeric(ReturnedResults)
EffectiveLengthPL <- PassingLaneEffectiveLengthFcn(UpstreamSegResults[6], Ups treamSegResults[2], UpstreamSegResults[3], UpstreamSegResults[4], SegInputDat aList[[5]]$SegmentLengthMi)
#cat("Effective Length =", format(round(EffectiveLengthPL, 1), nsmall=1), "\n ")
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[5]]$SegmentType, SegInput DataList[[5]]$DirVolume, SegInputDataList[[5]]$OppVolume, SegInputDataList[[5 ]]$PeakHourFactor, SegInputDataList[[5]]$PercentHeavyVehicles, SegInputDataLi st[[5]]$PostedSpeedLimit, SegInputDataList[[5]]$SegmentLengthMi, SegInputData List[[5]]$AccessPointDensity, SegInputDataList[[5]]$LaneWidth, SegInputDataLi st[[5]]$ShoulderWidth, SegInputDataList[[5]]$VertAlignmentClass, UpstreamSegR esults, FALSE, 0, 0, 0)
## The peak 15-min flow rate = 736.8 veh/h
## BFFS = 62.7 mi/h
## a = 0.075
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.5 mi, Maximum Segment Length = 3 mi
## Free-Flow Speed = 62.5 mi/h
## NumHV = 22 veh
## PropFlowRate_FL = 0.584
## FlowRate_FL = 430 veh/h
## FlowRate_SL = 307 veh/h
## HV%_FL = 1.2 %
## NumHV_SL = 17 veh
## HV%_SL = 5.5 %
## AvgSpeedDiffAdj = 3.28 mi/h
## S_init_FL = 60.74 mi/h
## S_PLmid_FL = 62.38 mi/h
## S_init_SL = 61.34 mi/h
## S_PLmid_SL = 59.71 mi/h
## S_PLMid = 61.27 mi/h
## PF_PLmid_FL = 44.41 %
## PF_PLmid_SL = 33.60 %
## PF_PLMid = 39.91 %
## FD_PLmid = 2.394 followers/mi/ln
## Follower Density = 2.394 followers/mi/ln
## LOS is B
## LOS numeric value = 1.197096
## Effective Length = 8.0 mi
SegResultsDataList[[5]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[5]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[5]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[5]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[5]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[6]]$SegmentType, SegInput DataList[[6]]$DirVolume, SegInputDataList[[6]]$OppVolume, SegInputDataList[[6 ]]$PeakHourFactor, SegInputDataList[[6]]$PercentHeavyVehicles, SegInputDataLi st[[6]]$PostedSpeedLimit, SegInputDataList[[6]]$SegmentLengthMi, SegInputData List[[5]]$AccessPointDensity, SegInputDataList[[6]]$LaneWidth, SegInputDataLi st[[6]]$ShoulderWidth, SegInputDataList[[6]]$VertAlignmentClass, UpstreamSegR esults, TRUE, SegInputDataList[[5]]$SegmentLengthMi, SegInputDataList[[5]]$Se gmentLengthMi+SegInputDataList[[6]]$SegmentLengthMi, EffectiveLengthPL)
## The peak 15-min flow rate = 736.8 veh/h
## BFFS = 62.7 mi/h
## a = 0.033
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 3 mi
## Free-Flow Speed = 62.7 mi/h
## m = 3.971
## p = 0.417
## Average Speed = 59.4 mi/h
## Percent Followers at Capacity = 85.11 %
## Percent Followers at 25% Capacity = 48.36 %
## PF_m = -1.268
## PF_p = 0.764
## Percent Followers = 63.4 %
## Follower Density = 6.469 followers/mi/ln
## LOS is C
## LOS numeric value = 2.617298
SegResultsDataList[[6]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[6]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[6]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[6]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[6]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[7]]$SegmentType, SegInput DataList[[7]]$DirVolume, SegInputDataList[[7]]$OppVolume, SegInputDataList[[7 ]]$PeakHourFactor, SegInputDataList[[7]]$PercentHeavyVehicles, SegInputDataLi st[[7]]$PostedSpeedLimit, SegInputDataList[[7]]$SegmentLengthMi, SegInputData List[[5]]$AccessPointDensity, SegInputDataList[[7]]$LaneWidth, SegInputDataLi st[[7]]$ShoulderWidth, SegInputDataList[[7]]$VertAlignmentClass, UpstreamSegR esults, TRUE, SegInputDataList[[5]]$SegmentLengthMi, SegInputDataList[[5]]$Se gmentLengthMi+SegInputDataList[[6]]$SegmentLengthMi+SegInputDataList[[7]]$Seg mentLengthMi, EffectiveLengthPL)
## The peak 15-min flow rate = 736.8 veh/h
## BFFS = 62.7 mi/h
## a = 0.033
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 2 mi
## Free-Flow Speed = 62.7 mi/h
## m = 3.787
## p = 0.497
## Average Speed = 59.7 mi/h
## Percent Followers at Capacity = 84.60 %
## Percent Followers at 25% Capacity = 46.29 %
## PF_m = -1.227
## PF_p = 0.796
## Percent Followers = 61.8 %
## Follower Density = 6.691 followers/mi/ln
## LOS is C
## LOS numeric value = 2.672675
SegResultsDataList[[7]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[7]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[7]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[7]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[7]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
ReturnedResults <- vector(length=2)
ReturnedResults <- SignalMainFcn(SegInputDataList[[8]]$LeftTurnVolume, SegInp utDataList[[8]]$DirVolume, SegInputDataList[[8]]$RightTurnVolume, SegInputDat aList[[8]]$PeakHourFactor, SegInputDataList[[8]]$PercentHeavyVehicles, SegInp utDataList[[8]]$BaseSatFlowRate, SegInputDataList[[8]]$NumberofLanes, SegInpu tDataList[[8]]$EffectiveGreenTime, SegInputDataList[[8]]$CycleLengthSec, SegI nputDataList[[8]]$ArrivalType)
## Analysis Flow Rate = 780.0 veh/h
## Adjusted Saturation Flow Rate = 1838.3 veh/h
## Capacity = 1470.6 veh/h
## v/c Ratio = 0.530
## Thru Delay = 22.1 s
## LOS is C
## LOS numeric value = 2.140303
SegResultsDataList[[8]] <- list("Segment Free Flow Speed (mi/h)" = SegInputDa taList[[8]]$PostedSpeedLimit*1.1, "Segment Average Travel Speed (mi/h)" = Adj ustedLength[8]/((ReturnedResults[1]/SecondsPerHour)+(AdjustedLength[8]/(SegIn putDataList[[8]]$PostedSpeedLimit*1.1))), "Segment Posted Speed Limit (mi/h)" = SegInputDataList[[8]]$PostedSpeedLimit, "Segment Length (mi)" = SegInputDat aList[[8]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataLi st[[8]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[8]]$Numbe rofLanes, "LOSNumber" = ReturnedResults[2])
ReturnedResults <- vector(length = 3)
ReturnedResults <- MLMainFcn(SegInputDataList[[9]]$PostedSpeedLimit, SegInput DataList[[9]]$LaneWidth, SegInputDataList[[9]]$RightSideLateralClearance , Se gInputDataList[[9]]$LeftSideLateralClearance, SegInputDataList[[9]]$NumberofL anes, SegInputDataList[[9]]$MedianType, SegInputDataList[[9]]$AccessPointDens ity, SegInputDataList[[9]]$Terrain, SegInputDataList[[9]]$PercentHeavyVehicle s, SegInputDataList[[9]]$DirVolume, SegInputDataList[[9]]$PeakHourFactor)
## BFFS = 60.0
## Lane Width Adjustment Factor Value = 0.0
## Total Lateral Clearance = 12.0 ft
## Total Lateral Clearance Adjustment Factor Value = 0.0
## Median Type Adjustment Factor Value = 0.0
## Access Point Density Adjustment Factor Value = 0.5
## FFS = 59.5 mi/h
## Capacity = 1700.00 pc/h/ln
## E_T = 2.0
## P_T = 0.00
## Heavy vehicle factor = 1.000
## Analysis flow rate = 547.4 pc/h/ln
## Breakpoint = 1620.0 pc/h/ln
## Average Speed = 59.5 mi/h
## Density = 9.2 pc/mi/ln
## LOS is A
## LOS numeric value = 0.8363154
SegResultsDataList[[9]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedRe sults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segmen t Posted Speed Limit (mi/h)" = SegInputDataList[[9]]$PostedSpeedLimit, "Segme nt Length (mi)" = SegInputDataList[[9]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInputDataList[[9]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[9]]$NumberofLanes, "LOSNumber" = ReturnedResults[3])
ReturnedResults <- vector(length = 3)
ReturnedResults <- MLMainFcn(SegInputDataList[[10]]$PostedSpeedLimit, SegInpu tDataList[[10]]$LaneWidth, SegInputDataList[[10]]$RightSideLateralClearance , SegInputDataList[[10]]$LeftSideLateralClearance, SegInputDataList[[10]]$Numbe rofLanes, SegInputDataList[[10]]$MedianType, SegInputDataList[[10]]$AccessPoi ntDensity, SegInputDataList[[10]]$Terrain, SegInputDataList[[10]]$PercentHeav yVehicles, SegInputDataList[[10]]$DirVolume, SegInputDataList[[10]]$PeakHourF actor)
## BFFS = 60.0
## Lane Width Adjustment Factor Value = 0.0
## Total Lateral Clearance = 12.0 ft
## Total Lateral Clearance Adjustment Factor Value = 0.0
## Median Type Adjustment Factor Value = 0.0
## Access Point Density Adjustment Factor Value = 0.8
## FFS = 59.2 mi/h
## Capacity = 1700.00 pc/h/ln
## E_T = 2.0
## P_T = 5.00
## Heavy vehicle factor = 0.952
## Analysis flow rate = 574.7 pc/h/ln
## Breakpoint = 1630.0 pc/h/ln
## Average Speed = 59.2 mi/h
## Density = 9.7 pc/mi/ln
## LOS is A
## LOS numeric value = 0.8818364
SegResultsDataList[[10]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedR esults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segme nt Posted Speed Limit (mi/h)" = SegInputDataList[[10]]$PostedSpeedLimit, "Seg ment Length (mi)" = SegInputDataList[[10]]$SegmentLengthFt/FeetInMiles, "Segm ent Percent HV" = SegInputDataList[[10]]$PercentHeavyVehicles, "Number of Lan es" = SegInputDataList[[10]]$NumberofLanes, "LOSNumber" = ReturnedResults[3])
ReturnedResults <- vector(length=2)
ReturnedResults <- SignalMainFcn(SegInputDataList[[11]]$LeftTurnVolume, SegIn putDataList[[11]]$DirVolume, SegInputDataList[[11]]$RightTurnVolume, SegInput DataList[[11]]$PeakHourFactor, SegInputDataList[[11]]$PercentHeavyVehicles, S egInputDataList[[11]]$BaseSatFlowRate, SegInputDataList[[11]]$NumberofLanes, SegInputDataList[[11]]$EffectiveGreenTime, SegInputDataList[[11]]$CycleLength Sec, SegInputDataList[[11]]$ArrivalType)
## Analysis Flow Rate = 1010.0 veh/h
## Adjusted Saturation Flow Rate = 1751.3 veh/h
## Capacity = 1401.0 veh/h
## v/c Ratio = 0.721
## Thru Delay = 26.2 s
## LOS is C
## LOS numeric value = 2.415539
SegResultsDataList[[11]] <- list("Segment Free Flow Speed (mi/h)" = SegInputD ataList[[11]]$PostedSpeedLimit*1.1, "Segment Average Travel Speed (mi/h)" = A djustedLength[11]/((ReturnedResults[1]/SecondsPerHour)+(AdjustedLength[11]/(S egInputDataList[[11]]$PostedSpeedLimit*1.1))), "Segment Posted Speed Limit (m i/h)" = SegInputDataList[[11]]$PostedSpeedLimit, "Segment Length (mi)" = SegI nputDataList[[11]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInp utDataList[[11]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[ 11]]$NumberofLanes, "LOSNumber" = ReturnedResults[2])
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[12]]$SegmentType, SegInpu tDataList[[12]]$DirVolume, SegInputDataList[[12]]$OppVolume, SegInputDataList [[12]]$PeakHourFactor, SegInputDataList[[12]]$PercentHeavyVehicles, SegInputD ataList[[12]]$PostedSpeedLimit, SegInputDataList[[12]]$SegmentLengthMi, SegIn putDataList[[12]]$AccessPointDensity, SegInputDataList[[12]]$LaneWidth, SegIn putDataList[[12]]$ShoulderWidth, SegInputDataList[[12]]$VertAlignmentClass, U pstreamSegResults, IsPassingLaneUpStream, 0, 0, 0)
## The peak 15-min flow rate = 757.9 veh/h
## BFFS = 62.7 mi/h
## a = 0.033
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 3 mi
## Free-Flow Speed = 62.5 mi/h
## m = 3.936
## p = 0.417
## Average Speed = 59.2 mi/h
## Percent Followers at Capacity = 85.58 %
## Percent Followers at 25% Capacity = 48.79 %
## PF_m = -1.288
## PF_p = 0.767
## Percent Followers = 64.7 %
## Follower Density = 8.279 followers/mi/ln
## LOS is D
## LOS numeric value = 3.069697
SegResultsDataList[[12]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedR esults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segme nt Posted Speed Limit (mi/h)" = SegInputDataList[[12]]$PostedSpeedLimit, "Seg ment Length (mi)" = SegInputDataList[[12]]$SegmentLengthFt/FeetInMiles, "Segm ent Percent HV" = SegInputDataList[[12]]$PercentHeavyVehicles, "Number of Lan es" = SegInputDataList[[12]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
ReturnedResults <- vector(length = 2)
ReturnedResults <- RoundaboutMainFcn(SegInputDataList[[13]]$VehicleType, SegI nputDataList[[13]]$PercentHeavyVehicles, SegInputDataList[[13]]$PeakHourFacto r, SegInputDataList[[13]]$DirVolume[2], SegInputDataList[[13]]$DirVolume[1], SegInputDataList[[13]]$DirVolume[3], SegInputDataList[[13]]$NBVolume[2], SegI nputDataList[[13]]$NBVolume[1], SegInputDataList[[13]]$NBVolume[3], SegInputD ataList[[13]]$OppVolume[2], SegInputDataList[[13]]$OppVolume[1], SegInputData List[[13]]$OppVolume[3], SegInputDataList[[13]]$SBVolume[2], SegInputDataList [[13]]$SBVolume[1], SegInputDataList[[13]]$SBVolume[3])
## Demand Flow Rate = 720.0 veh/h
## Heavy Vehicle Adjustment Factor = 0.952 veh/h
## Demand Flow Rate = 663.2 pce/h
## Eastbound Circulating Flow Rate = 414.5 pce/h
## Eastbound Entry Lane Capacity = 904.2 pce/h
## Eastbound v/c Ratio = 0.880
## Eastbound Control Delay = 30.4 s/veh
## LOS = D
## LOS numeric value = 3.54212
SegResultsDataList[[13]] <- list("Segment Free Flow Speed (mi/h)" = SegInputD ataList[[13]]$PostedSpeedLimit*1.1, "Segment Average Travel Speed (mi/h)" = A djustedLength[13]/((ReturnedResults[1]/SecondsPerHour)+(AdjustedLength[13]/(S egInputDataList[[13]]$PostedSpeedLimit*1.1))), "Segment Posted Speed Limit (m i/h)" = SegInputDataList[[13]]$PostedSpeedLimit, "Segment Length (mi)" = SegI nputDataList[[13]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInp utDataList[[13]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[ 13]]$NumberofLanes, "LOSNumber" = ReturnedResults[2])
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[14]]$SegmentType, SegInpu tDataList[[14]]$DirVolume, SegInputDataList[[14]]$OppVolume, SegInputDataList [[14]]$PeakHourFactor, SegInputDataList[[14]]$PercentHeavyVehicles, SegInputD ataList[[14]]$PostedSpeedLimit, SegInputDataList[[14]]$SegmentLengthMi, SegIn putDataList[[14]]$AccessPointDensity, SegInputDataList[[14]]$LaneWidth, SegIn putDataList[[14]]$ShoulderWidth, SegInputDataList[[14]]$VertAlignmentClass, U pstreamSegResults, IsPassingLaneUpStream, 0, 0, 0)
## The peak 15-min flow rate = 631.6 veh/h
## BFFS = 62.7 mi/h
## a = 0.033
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 2 mi
## Free-Flow Speed = 62.5 mi/h
## m = 3.800
## p = 0.489
## Average Speed = 59.7 mi/h
## Percent Followers at Capacity = 84.70 %
## Percent Followers at 25% Capacity = 46.86 %
## PF_m = -1.237
## PF_p = 0.786
## Percent Followers = 57.8 %
## Follower Density = 6.106 followers/mi/ln
## LOS is C
## LOS numeric value = 2.526593
SegResultsDataList[[14]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedR esults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segme nt Posted Speed Limit (mi/h)" = SegInputDataList[[14]]$PostedSpeedLimit, "Seg ment Length (mi)" = SegInputDataList[[14]]$SegmentLengthFt/FeetInMiles, "Segm ent Percent HV" = SegInputDataList[[14]]$PercentHeavyVehicles, "Number of Lan es" = SegInputDataList[[14]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
ReturnedResults <- vector(length = 2)
ReturnedResults <- AWSCMainFunction(SegInputDataList[[15]]$PeakHourFactor, Se gInputDataList[[15]]$DirVolume[2], SegInputDataList[[15]]$DirVolume[1], SegIn putDataList[[15]]$DirVolume[3], SegInputDataList[[15]]$NBVolume[2], SegInputD ataList[[15]]$NBVolume[1], SegInputDataList[[15]]$NBVolume[3], SegInputDataLi st[[15]]$OppVolume[2], SegInputDataList[[15]]$OppVolume[1], SegInputDataList[ [15]]$OppVolume[3], SegInputDataList[[15]]$SBVolume[2], SegInputDataList[[15] ]$SBVolume[1], SegInputDataList[[15]]$SBVolume[3], SegInputDataList[[15]]$Bas eSatHeadway, SegInputDataList[[15]]$Convergence, SegInputDataList[[15]]$Conve rgenceCriteria, SegInputDataList[[15]]$DepartureHeadwayLast, SegInputDataList [[15]]$PercentHeavyVehicles[1], SegInputDataList[[15]]$PercentHeavyVehicles[2 ], SegInputDataList[[15]]$PercentHeavyVehicles[3], SegInputDataList[[15]]$Per centHeavyVehicles[4], SegInputDataList[[15]]$MoveUpTime14)
## Eastbound Total Volume = 600.0 veh/h
## Eastbound Adjusted Headway = 0.0310 s
## Degree of Utilization = 0.972
## Eastbound Departure Headway = 5.5 s
## Eastbound Control Delay = 51.9 s
## LOS = F
## LOS numeric value = 5
SegResultsDataList[[15]] <- list("Segment Free Flow Speed (mi/h)" = SegInputD ataList[[15]]$PostedSpeedLimit*1.1, "Segment Average Travel Speed (mi/h)" = A djustedLength[15]/((ReturnedResults[1]/SecondsPerHour)+(AdjustedLength[15]/(S egInputDataList[[15]]$PostedSpeedLimit*1.1))), "Segment Posted Speed Limit (m i/h)" = SegInputDataList[[15]]$PostedSpeedLimit, "Segment Length (mi)" = SegI nputDataList[[15]]$SegmentLengthFt/FeetInMiles, "Segment Percent HV" = SegInp utDataList[[15]]$PercentHeavyVehicles, "Number of Lanes" = SegInputDataList[[ 15]]$NumberofLanes, "LOSNumber" = ReturnedResults[2])
ReturnedResults <- vector(length = 7)
ReturnedResults <- TwoLaneMainFcn(SegInputDataList[[16]]$SegmentType, SegInpu tDataList[[16]]$DirVolume, SegInputDataList[[16]]$OppVolume, SegInputDataList [[16]]$PeakHourFactor, SegInputDataList[[16]]$PercentHeavyVehicles, SegInputD ataList[[16]]$PostedSpeedLimit, SegInputDataList[[16]]$SegmentLengthMi, SegIn putDataList[[16]]$AccessPointDensity, SegInputDataList[[16]]$LaneWidth, SegIn putDataList[[16]]$ShoulderWidth, SegInputDataList[[16]]$VertAlignmentClass, U pstreamSegResults, IsPassingLaneUpStream, 0, 0, 0)
## The peak 15-min flow rate = 684.2 veh/h
## BFFS = 62.7 mi/h
## a = 0.033
## Lane and Shoulder Adjustment = 0.0 mi/h
## Access Point Adjustment = 0.0 mi/h
## Minimum Segment Length = 0.25 mi, Maximum Segment Length = 3 mi
## Free-Flow Speed = 62.5 mi/h
## m = 3.964
## p = 0.417
## Average Speed = 59.4 mi/h
## Percent Followers at Capacity = 85.11 %
## Percent Followers at 25% Capacity = 48.39 %
## PF_m = -1.269
## PF_p = 0.763
## Percent Followers = 61.3 %
## Follower Density = 7.067 followers/mi/ln
## LOS is C
## LOS numeric value = 2.766835
SegResultsDataList[[16]] <- list("Segment Free Flow Speed (mi/h)" = ReturnedR esults[1], "Segment Average Travel Speed (mi/h)" = ReturnedResults[2], "Segme nt Posted Speed Limit (mi/h)" = SegInputDataList[[16]]$PostedSpeedLimit, "Seg ment Length (mi)" = SegInputDataList[[16]]$SegmentLengthFt/FeetInMiles, "Segm ent Percent HV" = SegInputDataList[[16]]$PercentHeavyVehicles, "Number of Lan es" = SegInputDataList[[16]]$NumberofLanes, "LOSNumber" = ReturnedResults[6])
PostedTravelTimeSec <- vector()
PostedTotalTravTime <- 0
for(i in 1:NumSegments){
PostedTravelTimeSec[i] <- AdjustedLength[i]/SegResultsDataList[[i]]$`Segmen t Posted Speed Limit (mi/h)` * SecondsPerHour
PostedTotalTravTime <- PostedTotalTravTime+PostedTravelTimeSec[i]
}
cat("Posted speed travel time (s) =", format(round(PostedTotalTravTime, 1), n small=1))
## Posted speed travel time (s) = 1212.6
FFTravelTimeSec <- vector()
TotalFFTravTime <- 0
for(i in 1:NumSegments){
FFTravelTimeSec[i] <- AdjustedLength[i]/SegResultsDataList[[i]]$`Segment Fr ee Flow Speed (mi/h)` * SecondsPerHour
TotalFFTravTime <- TotalFFTravTime+FFTravelTimeSec[i]
}
cat("Free-flow travel time (s) =", format(round(TotalFFTravTime, 1), nsmall=1
))
## Free-flow travel time (s) = 1095.1
AvgTravelTimeSec <- vector()
TotalAvgTravTime <- 0
for(i in 1:NumSegments){
AvgTravelTimeSec[i] <- (AdjustedLength[i])/SegResultsDataList[[i]]$`Segment
Average Travel Speed (mi/h)` * SecondsPerHour
TotalAvgTravTime <- TotalAvgTravTime+AvgTravelTimeSec[i]
}
cat("Average travel time (s) =", format(round(TotalAvgTravTime, 1), nsmall=1)
)
## Average travel time (s) = 1273.2
TravelTimeWeight <- vector()
WeightingSum <- 0
for(i in 1:NumSegments){
TravelTimeWeight[i] <- AvgTravelTimeSec[i]/TotalAvgTravTime
WeightingSum <- WeightingSum+TravelTimeWeight[i]
}
print(TravelTimeWeight)
## [1] 0.04792414 0.04727662 0.05403695 0.03002672 0.04615003 0.05949174
## [7] 0.06728744 0.05068009 0.09220284 0.13967276 0.05553678 0.03505678
## [13] 0.05191117 0.08113675 0.07888820 0.06272100
cat("WeightingSum =", format(round(WeightingSum, 2), nsmall=2))
## WeightingSum = 1.00
DirDemandVol <- 0
DirDemandVolAdj <- vector()
for(i in 1:NumSegments){
if(i==13 || i==15){ #Roundabout and AWSC intersections include L/T/R volume s in array
DirDemandVol <- SegInputDataList[[i]]$DirVolume[1] + SegInputDataList[[i] ]$DirVolume[2] + SegInputDataList[[i]]$DirVolume[3]
DirDemandVolAdj[i] <- DirDemandVol/SegInputDataList[[i]]$PeakHourFactor } else{
DirDemandVol <- SegInputDataList[[i]]$DirVolume+SegInputDataList[[i]]$Lef tTurnVolume+SegInputDataList[[i]]$RightTurnVolume
DirDemandVolAdj[i] <- DirDemandVol/SegInputDataList[[i]]$PeakHourFactor
}
}
VehilceHoursTraveled <- vector()
TotalVHT <- 0
for(i in 1:NumSegments){
VehilceHoursTraveled[i] <- (AvgTravelTimeSec[i]/SecondsPerHour)*DirDemandVo lAdj[i]
TotalVHT <- TotalVHT+VehilceHoursTraveled[i]
#print(VehilceHoursTraveled[i])
}
cat("Vehicle hours traveled (veh-h) =", format(round(TotalVHT, 1), nsmall=1))
## Vehicle hours traveled (veh-h) = 315.6
VehilceHoursDelayed <- vector()
TotalVHD <- 0
for(i in 1:NumSegments){
VehilceHoursDelayed[i] <- (AvgTravelTimeSec[i]-FFTravelTimeSec[i])*DirDeman dVolAdj[i]/SecondsPerHour
TotalVHD <- TotalVHD+VehilceHoursDelayed[i]
}
cat("Vehicle hours delayed (veh-h) =", format(round(TotalVHD, 1), nsmall=1))
## Vehicle hours delayed (veh-h) = 41.5
VehicleMilesTraveled <- vector()
TotalVMT <- 0
for(i in 1:NumSegments){
VehicleMilesTraveled[i] <- DirDemandVolAdj[i]*AdjustedLength[i]
TotalVMT <- TotalVMT+VehicleMilesTraveled[i]
}
cat("Vehicle miles traveled (veh-mi) =", format(round(TotalVMT, 1), nsmall=1)
)
## Vehicle miles traveled (veh-mi) = 15473.0
SpaceMeanSpeed <- TotalVMT/TotalVHT
cat("Average speed (mi/h) =", format(round(SpaceMeanSpeed, 1), nsmall=1))
## Average speed (mi/h) = 49.0
DelayFFS = TTAvg − TTFFS
AvgFFSDelay <- vector()
TotalFFSDelay <- 0
for (i in 1:NumSegments){
AvgFFSDelay[i] <- AvgTravelTimeSec[i]-FFTravelTimeSec[i]
TotalFFSDelay <- TotalFFSDelay+AvgFFSDelay[i]
}
cat("Average FFS delay (s/veh) =", format(round(TotalFFSDelay, 1), nsmall=1))
## Average FFS delay (s/veh) = 178.1
DelayThreshold = TTAvg − TTPSL
AvgThreshDelay <- vector()
TotalThreshDelay <- 0
for (i in 1:NumSegments){
AvgThreshDelay[i] <- max(AvgTravelTimeSec[i]-PostedTravelTimeSec[i],0)
TotalThreshDelay <- TotalThreshDelay+AvgThreshDelay[i]
}
cat("Average threshold delay (s/veh) =", format(round(TotalThreshDelay, 1), n small=1))
## Average threshold delay (s/veh) = 134.5
SegLOSWeighted <- vector()
FacilityLOSScore <- 0
for(i in 1:16){
SegLOSWeighted[i] <- SegResultsDataList[[i]]$LOSNumber*TravelTimeWeight[i]
FacilityLOSScore <- FacilityLOSScore+SegLOSWeighted[i]
}
cat("LOS Score, weighted by travel time =", format(round(FacilityLOSScore, 3) , nsmall=3))
## LOS Score, weighted by travel time = 2.204
LOSconst <- 0
CumulativeLOSscoreDiff <- 0
PrevLOSscore <- SegResultsDataList[[1]]$LOSNumber
for (i in 2:NumSegments){
CumulativeLOSscoreDiff <- CumulativeLOSscoreDiff + abs(SegResultsDataList[[ i]]$LOSNumber-PrevLOSscore)
PrevLOSscore <- SegResultsDataList[[i]]$LOSNumber
}
LOSconst <- CumulativeLOSscoreDiff/(NumSegments-1)
cat("LOS Constancy =", format(round(LOSconst, 3), nsmall=3))
## LOS Constancy = 1.051
LOSadjFact <- 0
if(LOSconst<=0.2){
LOSadjFact <- 1.0
}else if(LOSconst>=1.2){
LOSadjFact <- 1.2
}else{
LOSadjFact <- 0.96+0.2*LOSconst
}
cat("LOS Adjustment Factor =", format(round(LOSadjFact, 3), nsmall=3))
## LOS Adjustment Factor = 1.170
cat("LOS Score Adjusted =", format(round(FacilityLOSScore*LOSadjFact, 3), nsm all=3))
## LOS Score Adjusted = 2.579
| Length = | segment length (mi). |
| SPSL = | posted speed limit (mi/h). |
| SFFS = | free-flow speed (mi/h). |
| SAvg = | average speed (mi/h). |
| TTPSL = | posted speed limit travel time (s). |
| TTFFS = | free-flow travel time (s). |
| TTAvg = | average travel time (s). |
| V = | traffic demand volume (veh/h). |
| VHT = | vehicle hours traveled (veh-h). |
| VHD = | vehicle hours delayed (veh-h). |
| VMT = | vehicle miles traveled (veh-mi). |
| DelayFFS = | free-flow speed delay (s/veh). |
| DelayThreshold = | threshold delay (s/veh). |