Describe the bug
TDM23 contains negative infinity (-3.40e+38) values for all (or most) intrazonal transit skims. These values cause numeric overflows during mode choice utility calculation, which crashes ActivitySim.
To Reproduce
Steps to reproduce the behavior:
- Go to the
main branch
- Check out an older commit e164cf6
- Run lighthouse
- See error
Expected behavior
Intrazonal transit skims, particularly IVT, can be set to zero when TransCAD does not generate intrazonal transit skims. Since the mode choice model only considers transit available when IVT > 0, setting intrazonal values to zero effectively makes transit modes unavailable for intrazonal trips and avoids the overflow issue.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
As a temporary workaround, we currently set all negative skim values to zero in the script that processes TDM23 skims. A more robust long-term solution would be to address the issue directly in the TransCAD skimming workflow so that invalid skim values are not produced in the first place.
Describe the bug
TDM23 contains negative infinity (
-3.40e+38) values for all (or most) intrazonal transit skims. These values cause numeric overflows during mode choice utility calculation, which crashes ActivitySim.To Reproduce
Steps to reproduce the behavior:
mainbranchExpected behavior
Intrazonal transit skims, particularly IVT, can be set to zero when TransCAD does not generate intrazonal transit skims. Since the mode choice model only considers transit available when IVT > 0, setting intrazonal values to zero effectively makes transit modes unavailable for intrazonal trips and avoids the overflow issue.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
As a temporary workaround, we currently set all negative skim values to zero in the script that processes TDM23 skims. A more robust long-term solution would be to address the issue directly in the TransCAD skimming workflow so that invalid skim values are not produced in the first place.