activitysim icon indicating copy to clipboard operation
activitysim copied to clipboard

ActivitySim Input Checking & Error Handling

Open joecastiglione opened this issue 2 years ago • 2 comments

Make it easier and less error prone to setup a new regional model implementation or scenario. When reading in inputs, the software will perform a series of validation checks such as:

  • Each person belongs to a household, each household belongs to a microzone or zone, and each microzone belongs to a zone if applicable
  • Each expression file is well formed and there are no formatting or syntax errors
  • Each yaml file is well formed and there are no formatting or syntax errors
  • All attributes referenced in expressions are in the input table or skims

ODOT has an input checker for its CT-RAMP model that is quite handy. The input checker library of checks continues to grow, similar to how a test system continues to expand its test coverage.

joecastiglione avatar Sep 15 '23 14:09 joecastiglione

ODOT: The checks to be completed is an input (configuration file), so all partners could share the checker code, but each partner could still configure their own specific checks (and easily share inbetween given the same approach / format).

PSRC- When developing Soudcast/Daysim, most of our issues early on were the result of data input errors. I think this would be useful for the estimation data/inputs as well.

SANDAG: good idea. We are adding an input checker (following ODOT's example?). This is like an input QAQC, which could be part of the data modeling/reporting/visulization/QAQC platform?

MTC: Yes, please. Seems like it should run at the start of the model but also be easy to run stand-alone.

joecastiglione avatar Sep 15 '23 14:09 joecastiglione

Additional Description

  • Purpose: Make it easier to stand up a new activitysim model, which will benefit all agencies
  • Add checking of input data, such as each HH belongs to a zone, each zone can get the network, etc
  • Add checking of expression formatting
  • Add checking of settings formatting
  • Add more error handling and smarter messages, logging, etc.
  • Add functionality for when no alternative is found to try and figure out why, such as which terms in the utility turn off all alternatives?
  • Brainstorm list of improvements with PMC
  • Implement improvements in priority order as budget allows
  • Add tests and documentation

joecastiglione avatar Sep 15 '23 14:09 joecastiglione