Skip to content

Potential input checking and error handling improvements

Ben Stabler edited this page Mar 23, 2021 · 22 revisions

Work-in-progress

Purpose

The purpose of the following potential improvements is to make it easier to stand up and use an ActivitySim model. This list of improvements is in response to phase 6a task 7.

Potential Improvements

Idea Level-of-effort Notes Priority
Check input data consistency. Days Plan to check all the key relationships. Check primary key table joins across input tables - HH home zone vs. TAZ/MAZ land use file, MAZtoTAP file TAPs vs. TAP skims, TAZs in the land use file vs. TAZ skims, etc. High
Check for well formed config files. Days Check settings files, expression files, and config files Low
Better describe silly errors. Days depending on LOE For example, when a submodel yaml files cannot be found Low
Print info about no alternative found. Hours When no alternative is found in a choice model, log which terms in the utility turn off all alternatives since this is really helpful info High
Reduce pipeline file size Weeks Instead of checkpointing tables in the pipeline after each submodel, only add the additional fields and/or rows. Requires significant design work as well. Low
Strings to Categorical Data Days Switch string type data to categorical type data to improve runtime and reduce pipeline file size Low
Improve RAM/chunking Days depending on LOE Make it easier for new users to set a reasonable chunking/processors settings. High
Eliminate distance==0 problems Hours Identify distance skims and ensure > 0 where appropriate to avoid funny simulation situations Medium
Clean up command prompt logging Hours depending on LOE Be more intentional about what is logged to the console vs. log file Medium
Avoid long trace file names Hours Reduce filenames (especially in estimation mode) for Windows limits Low

Clone this wiki locally