Skip to content

Commit

Permalink
Reduce then maximum delay and replace volau with extra attribute values
Browse files Browse the repository at this point in the history
  • Loading branch information
s-hiitola committed Oct 1, 2024
1 parent 3d4ba83 commit ffe1003
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 11 deletions.
18 changes: 13 additions & 5 deletions Scripts/assignment/assignment_period.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,15 +117,17 @@ def assign(self, matrices: dict, iteration: Union[int,str]) -> Dict:
self._set_emmebank_matrices(matrices, iteration=="last")
if iteration=="init":
self._assign_pedestrians()
self._set_bike_vdfs()
self._assign_bikes(self.emme_matrices["bike"]["dist"], "all")
self._set_car_and_transit_vdfs()
if not self._separate_emme_scenarios:
self._calc_background_traffic()
self._assign_cars(param.stopping_criteria_coarse)
self._set_bike_vdfs()
self._assign_bikes(self.emme_matrices["bike"]["dist"], "all")
self._calc_extra_wait_time()
self._assign_transit()
elif iteration==0:
self._set_bike_vdfs()
self._assign_bikes(self.emme_matrices["bike"]["dist"], "all")
self._set_car_and_transit_vdfs()
if not self._separate_emme_scenarios:
self._calc_background_traffic()
Expand All @@ -149,12 +151,11 @@ def assign(self, matrices: dict, iteration: Union[int,str]) -> Dict:
self._calc_extra_wait_time()
self._assign_transit()
elif iteration=="last":
self._assign_pedestrians()
self._set_bike_vdfs()
self._assign_bikes(self.emme_matrices["bike"]["dist"], "all")
self._set_car_and_transit_vdfs()
self._calc_background_traffic()
self._assign_cars(param.stopping_criteria_fine)
self._set_bike_vdfs()
self._assign_bikes(self.emme_matrices["bike"]["dist"], "all")
self._calc_boarding_penalties(is_last_iteration=True)
self._calc_extra_wait_time()
self._assign_congested_transit()
Expand Down Expand Up @@ -373,6 +374,13 @@ def _set_car_and_transit_vdfs(self):
def _set_bike_vdfs(self):
log.info("Sets bike functions for scenario {}".format(
self.emme_scenario.id))
# Create time period specific extra function parameters for bike assignment
# TODO: create a combined extra atrribute and use a single extra function parameter
self.emme_project.create_extra_function_parameters(el2=self.extra('car_work'),
el3=self.extra('car_leisure'),
el4=self.extra('van'),
el5=self.extra('truck'),
el6=self.extra('trailer_truck'))
network = self.emme_scenario.get_network()
main_mode = network.mode(param.main_mode)
bike_mode = network.mode(param.bike_mode)
Expand Down
12 changes: 6 additions & 6 deletions Scripts/parameters/assignment.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,14 +98,14 @@
+ "(ul1-get(2))))*(get(2).le.put(ul1*{}))*length+(get(2).gt."
+ "get(3))*({}*get(1)*length+{}*(get(2)-get(3))*length)")
buslane = "((lanes-1).max.0.8)"
vdf_bikes = ("length * (60/((3.max.({} + (el1.lt.0) * (1.56 * el1) +"
+" (el1.gt.0) * (1.3 * el1))).min.({}*1.5)))")
vdf_bikes_baana = ("length*(60/((3.max.({} + (el1.lt.0) * (1.56 * el1) +"
vdf_bikes = ("length * (60/((5.max.({} + (el1.lt.0) * (1.56 * el1) +"
+" (el1.gt.0) * (1.3 * el1))).min.({}*1.3)))")
vdf_bikes_baana = ("length*(60/((5.max.({} + (el1.lt.0) * (1.56 * el1) +"
+" (el1.gt.0) * (1.3 * el1))).min.35))")
vdf_bikes_mixed_lane = "(length * (60/((3.max.({flat} + (el1.lt.0) * (1.56 * el1) + (el1.gt.0) * (1.3 * el1)) + (-5).max.{vol}.min.5).min.({flat}*1.5))))"
vdf_bikes_mixed_lane = "(length * (60/((5.max.({flat} + (el1.lt.0) * (1.56 * el1) + (el1.gt.0) * (1.3 * el1)) + (-5).max.{vol}.min.5).min.({flat}*1.5))))"

b_volume_mixed = "(-1.962 * ln(4*(volau+volad+10)/1000) * 0.689)"
b_volume_lane = "(-1.962 * ln(4*(volau+volad+10)/1000) * 0.807)"
b_volume_mixed = "(-1.962 * ln(4*(el2+el3+el4+el5+el6+10)/1000) * 0.689)"
b_volume_lane = "(-1.962 * ln(4*(el2+el3+el4+el5+el6+10)/1000) * 0.807)"
volume_delay_funcs = {
# Car functions
"fd1": vdf_temp.format(0.02, "lanes", 0.975, 1.78, 0.0075),
Expand Down

0 comments on commit ffe1003

Please sign in to comment.