@@ -378,6 +378,30 @@ def run_iteration(self,
378378 self .resultdata .print_line (
379379 "{}\t {:1.2%}" .format (m , hs15_modes_shares [m ]),
380380 "result_summary" )
381+
382+ #Modes for HS15 region (including secondary destination)
383+ hs15_modes_total = {mode : 0 for mode in self .dm .purpose_dict ["hw" ].modes }
384+ tour_generation = gen_param .tour_generation
385+ for pur in self .dm .purpose_dict :
386+ purpose = self .dm .purpose_dict [pur ]
387+ if purpose .name in ["hw" ,"hc" ,"hu" ,"hs" ,"ho" ,"hh" ,"wo" ,"oo" ]:
388+ for mode in purpose .modes :
389+ demsum = purpose .generated_tours [mode ].sum ()
390+ if purpose .name == "hh" :
391+ hs15_modes_total [mode ] += demsum #one trip only
392+ elif mode == "park_and_ride" :
393+ #2 trips split by mode
394+ hs15_modes_total ["transit" ] += 0.5 * demsum * 2
395+ hs15_modes_total ["car" ] += 0.5 * demsum * 2
396+ else :
397+ hs15_modes_total [mode ] += demsum * (2 + tour_generation ["hoo" ][purpose .name ][mode ]) #sec_dest included
398+ hs15_modes_shares = {m : hs15_modes_total [m ]/ sum (hs15_modes_total .values ()) for m in hs15_modes_total }
399+ hs15_modes = [m for m in hs15_modes_total ]
400+ self .resultdata .print_line ("\n HS15 mode shares (trip-based with secondary destinations)" , "result_summary" )
401+ for m in hs15_modes :
402+ self .resultdata .print_line (
403+ "{}\t {:1.2%}" .format (m , hs15_modes_shares [m ]),
404+ "result_summary" )
381405
382406 # Calculate and return traffic impedance
383407 for ap in self .ass_model .assignment_periods :
0 commit comments