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
  • Dependency update issue #349 and #350
    • We just need to freeze the dependency version until the new version again works for us
    • Jeff to fix this
  • Jeff fixed the joint tour chunking issue #288
    • Clint to test
  • PopulationSim non-binary incidence PR
    • I'll reply that we'll get to it soon
  • Review Clint's ARC parking location choice work
    • 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