Project Meeting 2020.10.06 - ActivitySim/activitysim GitHub Wiki
Technical call agenda
TVPB
initialize tours functionality for reading tours from disk now working
I switched the one county test version from San Francisco county to Marin since Marin has multiple TAZs to MAZs
Jeff working on cleaning-up and running the Marin example
Doing some analytics on the data (num taps per maz, etc.) to better understand memory needs
Marin 1400 mazs, 200 tazs, 200 taps
Looking into using memory map instead / in addition to shared memory (RAM) so we can get a much bigger data structure
We're trying to faithfully implement what exists today (within the constraints of the python multiprocessing paradigm)
May want to look at alternative approaches such network graph algorithm path building type methods as opposed to just enumerating all the options
This research was done as part of the mtc fast trips project
It's a complex computing problem and we may have some inefficient ideas/methods from before
We've had some memory/threading issues in the SANDAG model so we didn't exactly get it right last time either
MTC taking 1 best tap pair from each skim set, but SANDAG taking 2 from local bus since 2 local bus may be the best options
This flexibility is already supported by our draft TVPB code
We were using writable shared memory in CT-RAMP/Java and now we're trying to pre-compute since writable shared memory in Python multiprocessing is not desired
A promising idea is to solve the path segment utilities and then save total composite utility path segment skims and then re-use them when needed
The results won't be exactly the same, but they should be similar enough
Building a big path tree and pruning is a promising idea as well
This whole TVPB thing could be a well documented API that is modular and extensive so different versions can be built
The version we're building now will be an official part of activitysim based on the zone_system: 3 setting, which if 3 activates TVPB
We're now engaged with the problem and have a real example so we'll work on it and talk again next week
ODOT's hope/plan is to have users have specific vehicles and personal fleets with different operating costs characteristics, including individual VOTs, which would be inconsistent with the idea of a select set of demographic segments with VOTs. There are other developments in the pipeline that we need to think about that might require us to re-open the box and think about better ways than the CT-RAMP approach towards transit virtual path building.
ActivitySim is running at PSRC at the taz level
Using 256gb RAM but only 4 time periods; have 3700 zones
SEMCOG using 50 gb RAM for the skims, mtc around maybe 15gb?
Maybe we should switch from float4s to scaled ints (* 100)
Jeff to add to the list of potential ideas
Documentation
I'm taking notes and we can create a wiki page to better keep of track of these ideas/options
The chooser is what table the results are written to, so in this case it is trips
Implemented filtering tazs as opposed to sampling, which makes sense
Basically copied and pasted the trip destination submodel and made some edits
Was able to use existing core functionality without changes
Added writing of parking zone in write trip matrices
Hasn't yet implemented support for estimation and doesn't have an example
The estimator (that writes the EDB and overrides choices) needs to be implemented
The locutor is not needed and Jeff just removed it from the trip destination submodel. It is only needed for location choice and CDAP for when multiprocesses only need to write one process file.
The code looks good so Clint to create an official PR with example
Estimation mode not setup yet for trip destination so maybe Clint wait to add this until that after
There's lot to learn from a developer point-of-view so a developer guide / clearer API / recipe book / cook book would be really helpful
The strategic plan should include these ideas
a walk trip from the park zone to the dest zone is not added in the current model design
Clint will add a new ARC trip_scheduling_choice model next
This model does logit TOD choice instead of using a probability lookup table - it is more like the tour scheduling submodel
Many folks in attendance, but I forgot to write down who