290 likes | 436 Views
Implementing the Sydney Strategic Transport Model (STM) in Emme 4 Dr Peter Hidas Bureau of Transport Statistics, Transport for NSW. October 2014. Acknowledgements. Team Effort Model Development & Estimation RAND Europe Frank Milthorpe, BTS Implementation in Emme4 and Python
E N D
Implementing the Sydney Strategic Transport Model (STM) in Emme 4 Dr Peter Hidas Bureau of Transport Statistics, Transport for NSW October 2014
Acknowledgements Team Effort Model Development & Estimation RAND Europe Frank Milthorpe, BTS Implementation in Emme4 and Python Peter Hidas and Ting Yu Validation, testing The BTS Modelling Team
History of STM First developed in 1970s Major Updates 1986 & 1994/95 Redesigned in late 1990s Known as STM2 Still in use Extended and re-estimated in 2012-14 Known as STM3 Implemented – validation in progress
Study Area – Sydney GMA 2006 zoning (24,443 km2): 2715 Travel Zones 25,000 Nodes 90,000 Links 1,350 Transit Lines 445 Stations Rail, LR, Ferry 2011 zoning (31,407 km2) + 400 zones Newcastle Sydney 400 km 250 mi Wollongong
Key Features of STM2 Tour based model system Home to Primary destination and return Disaggregate model Person and household segmentation Forecasting of licence holdings Forecasting of car ownership Segmentation: Population Synthesiser Joint mode-destination choice models Nested/Multinomial Logit choice Demand is not constant Tour frequency depends on accessibility
STM3 Enhancements Use most recent travel survey data (HTS) Model base year: 2011 Explicit modelling of toll roads Toll-users, non-toll-users separate modes (STM2: only one car driver option) Explicit modelling of access mode to rail Park-&-Ride, Kiss-&-Ride, Bus, Walk (STM2: only bus and walk)
STM3 Travel Purposes Home based purposes (to primary destination) Work Business Education Primary, Secondary, Tertiary Shopping Other Non-Home based purposes Work based business Business detours as part of work tour
STM3 Travel Modes Modes Car Driver Toll users, Non-toll users Car Passenger Train (includes Light Rail & Ferry) Park-&-Ride, Kiss-&-Ride, Walk, Bus Bus Walk Bicycle Taxi (Crowding on PT not modelled)
Segmentation Extensive segmentation Different by purpose Additional segments for frequency model Home Based work Mode Destination Models Car availability/Licence holding (8 segments) Work status (full time, part time) Income (5 segments) Frequency Models Age (3 segments) Adult status (1/5 segments)
STM3 Values of Time Values of Time Vary Personal Income Journey Purpose Mode of Travel Use log and linear cost terms Better fit for demand estimation More difficult for economic benefit calculation
STM3 - Implementation Model Development & Estimation ALOGIT software (RAND Europe) No direct linkage to Emme STM2 Implemented using Emme macros STM3 – Emme 4 available How best to utilise?
STM3 - Software Platform Combination of Multiple Tools Emme-4 API + Python Python 2.7 64-bit Needed for memory requirements (min 20 Gb) Numpy Efficient matrix operations library Cpython Python library written in C (faster) For some special methods (sorting) Run from DOS Batch file
STM3 Model Processes in Python Tour Frequency & Mode-Destination Choice 7 HB + 2 NHB trip purposes – separate models 6 purposes include car access to rail Models are similar but many differences OOP structure Shared code in base classes Differences in derived classes
CarSkims Hierarchy cHWcarTollSkims_ZZ cCarTollSkims_ZZ cCarSkims_ZZ cCarNoTollSkims_ZZ cHWcarNoTollSkims_ZZ Basic properties abstract class not for use common methodsfor all sub-classes cCarAccSkims_ZS cHWcarAccSkims_ZS Input Matrices abstract class not for use Different by Purpose Specific properties daily averages
Matrices in Emme vs Python TZ to TZ TZ to Stn External Zones External Zones Stn to TZ Stn to Stn • Emme: Full matrix • Travel Zones • Station Zones • External Zones • Python: • ZZ: TZ to TZ • ZS: TZ to SZ • SZ: SZ to TZ • Freq/Mode-Dest. Models: ZZ • Station choice: ZS + SZ
Station Choice For each OD-pair Calculate utility (car + rail) through each station Select N (2-5) “best” stations By OD-pair (7.3 million) Select from 450 stations Run time If done by single OD-pair: ~ 9 hours 3D matrix calc: from 1 O to all D: ~ 3 hours 3D + Cpythonpartsort method: ~ 20 min ( ALOGIT: ~ 3 days )
Calculate Car Access to Rail utility z o n e s Selected Station z o n e s z o n e s stations Gen. time Car time z o n e s Rail time z o n e s z o n e s = + stations • Gen.time from O to D = Car time from O to S + Rail time from S to D • Must be ZZ-matrix
Calculate Utility – the easy way D z o n e s Selected Station O O O O S z o n e s D S z o n e s stations D Car time Gen. time z o n e s O Ct Gt Rail time O S z o n e s Rt stations z o n e s + = • For each OD-pair: • get S from stations matrix • Gt(OD) = Ct(OS) + Rt(SZ) • 7.3 million OD-pairs!
Calculate Utility – a faster way z o n e s Selected Stations S S S z o n e s S stations S Car time Ct S z o n e s Rail time S Rt stations + z o n e s Ct Rt Ct Ct Ct Ct Ct Gen. Time Gt Gt Rt Gt Rt = Rt z o n e s Gt Rt Gt Gt Rt Rt • Process • Select all OD-pairs that use S (mask) • Get car times from All-O to S • re-shape vector to 2D (ZZ) • Get rail times from S to All-D • re-shape vector to 2D (ZZ) • Add the two matrices = Gt • Repeat for each station S • Max 450 iterations! • Masking, re-shape are standard methods in Numpy • This process is applied at several places
Current Status STM3 model coded and tested Validation: ALOGIT vs Emme/Python – finished Comparison with Observed (HTS) data Key issues for further improvement Run time Use for PT Project Model (PTPM)
Model Run Time STM2: ~ 19 hours (macros, without car access to rail!) STM3: Full Model (4-cycles): ~ 17 hours One-cycle: ~ 7 hours New zoning system TZ11: +400 zones Further increase in run time How to reduce? Multi-threading?
STM-3 Current Model Structure Input Data Hb-Work NHb-Work Hb-Business Create CAR LOS Skims NH-Business Hb-PrimEd Hb-SecEd Hb-TerEd Hb-Shop Collate new CAR Demand Final Car/PT assignments Hb-Other
STM-3 Parallel Model Structure Create CAR LOS Skims Input Data Hb-Work Hb-Business Hb-PrimEd Hb-Shop Hb-SecEd NHb-Work NH-Business Hb-TerEd Hb-Other Collate new CAR Demand Final Car/PT assignments
Summary • STM3 Implemented • Emme 4 API: major benefits • Easy, user-friendly, powerful methods • Easy to combine with external code • New methods faster than macros • Python, NumPy: major benefits • User-friendly, powerful, fast methods • Run time less than for STM2 but still very long • Next challenges • Improve run time • Implement Peak Spreading