-
-
-
-
+
+
+
+
+
+ |
+
+
+
+
+
+
+ Zone 1 |
+
+
+ {{(capxStateService.state.get(junctions.PartialDisplacedLeftTurnIntersectionNorthSouth).intersectionResult | async).zone1_north_clv}} |
+
+
+
+ |
+
+
-
+ |
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ Zone 5 |
+
+
+ {{(capxStateService.state.get(junctions.PartialDisplacedLeftTurnIntersectionNorthSouth).intersectionResult | async).zone5_center_clv}} |
+
+
+
+ |
+
+
+
+
+ |
+ PEPCH {{(capxStateService.masterParameters$ | async)!.west_bound_right}} |
+ |
+
+
+ |
+ PEPCH {{(capxStateService.masterParameters$ | async)!.west_bound_thru}} |
+ |
+
-
-
+ |
+ |
+ PEPCH {{(capxStateService.masterParameters$ | async)!.west_bound_left}} |
+ |
+
-
-
+
+ |
+ PEPCH {{(capxStateService.masterParameters$ | async)!.west_bound_u}} |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
- Zone 5 |
+ PEPCH {{(capxStateService.masterParameters$ | async)!.south_bound_thru + (capxStateService.masterParameters$ | async)!.west_bound_left}} |
- {{(capxStateService.state.get(junctions.PartialDisplacedLeftTurnIntersectionNorthSouth).intersectionResult | async).zone5_center_clv}} |
+ {{form.get('south_bound_thru').value}} |
-
+ |
+
+
+
+
+
+ Zone 2 |
+
+
+ {{(capxStateService.state.get(junctions.PartialDisplacedLeftTurnIntersectionNorthSouth).intersectionResult | async).zone2_south_clv}} |
+
+
+
+
+ |
+
+
+ |
+
- |
-
-
-
-
- |
-
-
- |
-
-
-
-
-
- |
- |
-
-
+
+
+ |
+
+
+
diff --git a/projects/capx/src/app/capx/components/junctions/junction.component.html b/projects/capx/src/app/capx/components/junctions/junction.component.html
index 045311b..0a0bccb 100644
--- a/projects/capx/src/app/capx/components/junctions/junction.component.html
+++ b/projects/capx/src/app/capx/components/junctions/junction.component.html
@@ -1,26 +1,25 @@
-
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
diff --git a/projects/capx/src/app/capx/components/junctions/junction.component.ts b/projects/capx/src/app/capx/components/junctions/junction.component.ts
index 2e21563..eb7c1ad 100644
--- a/projects/capx/src/app/capx/components/junctions/junction.component.ts
+++ b/projects/capx/src/app/capx/components/junctions/junction.component.ts
@@ -134,10 +134,10 @@ export class JunctionComponent implements OnInit, OnDestroy {
if (junction.type === JunctionTypes.Intersection) {
this.vc$.next(junction.intersectionResult.value.all_vc);
- this.clv$.next(junction.intersectionResult.value.zone5_center_vc);
+ this.clv$.next(junction.intersectionResult.value.all_clv);
junction.intersectionResult.subscribe(result => {
this.vc$.next(result.all_vc);
- this.clv$.next(result.zone5_center_clv);
+ this.clv$.next(result.all_clv);
});
} else if (junction.type === JunctionTypes.Interchange) {
this.vc$.next(junction.interchangeResult.value.all_vc);
diff --git a/projects/capx/src/app/capx/services/capx-state.service.ts b/projects/capx/src/app/capx/services/capx-state.service.ts
index 469d6b4..ebd0f31 100644
--- a/projects/capx/src/app/capx/services/capx-state.service.ts
+++ b/projects/capx/src/app/capx/services/capx-state.service.ts
@@ -35,6 +35,7 @@ export class CapxStateService {
zone4_west_vc: null,
zone5_center_clv: null,
zone5_center_vc: null,
+ all_vlc: null,
all_vc: null
};
@@ -153,17 +154,17 @@ export class CapxStateService {
});
partialDisplacedLeftTurnIntersectionNorthSouthJunctionParameters$ = new BehaviorSubject ({
- east_bound_left: 1,
- east_bound_thru: 1,
+ east_bound_left: 2,
+ east_bound_thru: 3,
east_bound_right: 1,
- west_bound_left: 1,
- west_bound_thru: 1,
+ west_bound_left: 2,
+ west_bound_thru: 3,
west_bound_right: 1,
south_bound_left: 1,
- south_bound_thru: 1,
+ south_bound_thru: 2,
south_bound_right: 1,
north_bound_left: 1,
- north_bound_thru: 1,
+ north_bound_thru: 2,
north_bound_right: 1
});
@@ -698,6 +699,7 @@ export class CapxStateService {
zone4_west_vc: null,
zone5_center_clv: round(zone5_center_clv),
zone5_center_vc,
+ all_clv: round(zone5_center_clv),
all_vc: zone5_center_vc
});
@@ -713,27 +715,30 @@ export class CapxStateService {
const inputParameters = this.inputParameters$.value;
const masterParameters = this.masterParameters$.value;
const junctionParameters = this.partialDisplacedLeftTurnIntersectionNorthSouthJunctionParameters$.value;
- const zone5_center_clv = max(
- (masterParameters.east_bound_left / inputParameters.adjustment_factor_left_turn + masterParameters.east_bound_u / inputParameters.adjustment_factor_u) / junctionParameters.east_bound_left + max(masterParameters.west_bound_thru / junctionParameters.west_bound_thru, round(max(0, masterParameters.west_bound_right / inputParameters.adjustment_factor_right_turn / junctionParameters.west_bound_right - masterParameters.south_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.south_bound_left), 0)),
- (masterParameters.west_bound_left / inputParameters.adjustment_factor_left_turn + masterParameters.west_bound_u / inputParameters.adjustment_factor_u) / junctionParameters.west_bound_left + max(masterParameters.east_bound_thru / junctionParameters.east_bound_thru, round(max(0, masterParameters.east_bound_right / inputParameters.adjustment_factor_right_turn / junctionParameters.east_bound_right - masterParameters.north_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.north_bound_left), 0))
- ) +
- max(
- (masterParameters.north_bound_left / inputParameters.adjustment_factor_left_turn + masterParameters.north_bound_u / inputParameters.adjustment_factor_u) / inputParameters.adjustment_factor_left_turn / junctionParameters.north_bound_left + max(masterParameters.south_bound_thru / junctionParameters.south_bound_thru, round(max(0, masterParameters.south_bound_right / inputParameters.adjustment_factor_right_turn / junctionParameters.south_bound_right - masterParameters.east_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.east_bound_left), 0)),
- (masterParameters.south_bound_left / inputParameters.adjustment_factor_left_turn + masterParameters.south_bound_u / inputParameters.adjustment_factor_u) / inputParameters.adjustment_factor_left_turn / junctionParameters.south_bound_left + max(masterParameters.north_bound_thru / junctionParameters.north_bound_thru, round(max(0, masterParameters.north_bound_right / inputParameters.adjustment_factor_right_turn / junctionParameters.north_bound_right - masterParameters.west_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.west_bound_left), 0))
- );
+
+ const zone1_north_clv = masterParameters.south_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.south_bound_left + (masterParameters.north_bound_thru + masterParameters.east_bound_left) / junctionParameters.north_bound_thru
+
+ const zone5_center_clv = max(masterParameters.north_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.north_bound_left, masterParameters.north_bound_thru / junctionParameters.north_bound_thru, round(max(0, masterParameters.north_bound_right / inputParameters.adjustment_factor_right_turn / junctionParameters.north_bound_right - masterParameters.east_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.east_bound_left), 0), masterParameters.south_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.south_bound_left, masterParameters.south_bound_thru / junctionParameters.south_bound_thru, round(max(0, masterParameters.south_bound_right / inputParameters.adjustment_factor_right_turn / junctionParameters.south_bound_right - masterParameters.east_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.east_bound_left), 0)) + max(masterParameters.east_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.east_bound_left + max(masterParameters.west_bound_thru / junctionParameters.west_bound_thru, round(max(0, masterParameters.west_bound_right / inputParameters.adjustment_factor_right_turn / junctionParameters.west_bound_right - masterParameters.south_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.south_bound_left), 0)), masterParameters.west_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.west_bound_left + max( masterParameters.east_bound_thru / junctionParameters.east_bound_thru, round(max(0, masterParameters.east_bound_right / inputParameters.adjustment_factor_right_turn / junctionParameters.east_bound_right - masterParameters.north_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.north_bound_left), 0)))
+
+ const zone2_south_clv = masterParameters.north_bound_left / inputParameters.adjustment_factor_left_turn / junctionParameters.north_bound_left + (masterParameters.south_bound_thru + masterParameters.west_bound_left) / junctionParameters.south_bound_thru
+
+
+ const zone1_north_vc = round(zone1_north_clv / inputParameters.critical_lane_volume, 2);
const zone5_center_vc = round(zone5_center_clv / inputParameters.critical_lane_volume, 2);
+ const zone2_south_vc = round(zone2_south_clv / inputParameters.critical_lane_volume, 2);
(this.state.get(Junctions.PartialDisplacedLeftTurnIntersectionNorthSouth)?.intersectionResult as BehaviorSubject).next({
- zone1_north_clv: null,
- zone1_north_vc: null,
- zone2_south_clv: null,
- zone2_south_vc: null,
+ zone1_north_clv: round(zone1_north_clv),
+ zone1_north_vc,
+ zone2_south_clv: round(zone2_south_clv),
+ zone2_south_vc,
zone3_east_clv: null,
zone3_east_vc: null,
zone4_west_clv: null,
zone4_west_vc: null,
zone5_center_clv: round(zone5_center_clv),
zone5_center_vc,
- all_vc: zone5_center_vc
+ all_clv: round(max(zone1_north_clv, zone5_center_clv, zone2_south_clv)),
+ all_vc: max(zone1_north_vc, zone5_center_vc, zone2_south_vc)
});
this.updateRank();
diff --git a/projects/capx/src/app/capx/services/models/junction-capacity-analyser.ts b/projects/capx/src/app/capx/services/models/junction-capacity-analyser.ts
index e8853be..cb5ad54 100644
--- a/projects/capx/src/app/capx/services/models/junction-capacity-analyser.ts
+++ b/projects/capx/src/app/capx/services/models/junction-capacity-analyser.ts
@@ -154,6 +154,7 @@ export interface CapxIntersectionAnalysisResultParameters {
zone4_west_vc: number | null;
zone5_center_clv: number | null;
zone5_center_vc: number | null;
+ all_clv: number | null;
all_vc: number | null;
}
|