Skip to content

Transit Coding

lukegordon333 edited this page Apr 7, 2026 · 20 revisions

Transit Data Elements Stored in Visum

The version file uses the following VISUM network objects to define Transit Service:

  1. Nodes – network nodes
  2. Links - in the case of Transit, links hold auto travel time information by time of day.
  3. Stop Points – Physical transit stops, with no required attributes.
  4. Stop Areas – There can be multiple stop points per stop area in VISUM. Stop Areas are the main Visum network object to hold stop attribution and detail.
  5. Stops – Groups of stop areas. There can be multiple stop areas per stop in VISUM (stops and stop points allow for improved representation of the transit options available to users, but the model largely focuses on Stop Areas and therefore most coding energy should be put into properly representing stop areas and possibly any stop point detail that exists within a larger stop areas).
  6. Lines – Transit lines, with no required attributes for the ABM (but does need to exist to code line routes, which are the key object that the ABM interfaces with). The available Transport Systems for transit lines are Bus, Bus Rapid Transit (BRT or express bus), Streetcar, Light Rail, and Commuter Rail (WES).
  7. Line Routes – Transit routes within a named line (like the "Red Line" might have both an inbound and outbound route).
  8. Time Profiles – Transit line link run times and stop dwell times.

The following sections describe each of the attributes that need to be defined by the user for each Transit data Element.

Transit Modes

FieldDescription
aBus Rapid Transit
bBus
eStreetcar
lLight-rail
rCommuter Rail (WES)

Transit Access Modes

FieldDescription
wwalk to transit
ikiss-and-ride transit

Mandatory User Defined Attributes

The following attributes must be defined by the user should they desire their functionality. However, transit headways MUST be defined for the model to function properly.

Line Route Attributes

Headways are coded in seconds. Headways MUST be set by the user

FieldDescription
NT5Headway for the EA (early AM) time period code should be switched to EA (from NT) and 5 removed
AM4Headway for the AM (AM peak) time period code should remove 4 to make it universal to model implementation
MD6Headway for the MD (midday off-peak) time period code should remove 6 to make it universal to model implementation
PM4Headway for the PM (PM peak) time period code should remove 4 to make it universal to model implementation
EV5Headway for the EV (evening) time period code should remove 5 to make it universal to model implementation

Stop Area Attributes

Identifying any stop as either a Transit Center or Mall (istc or tm) will establish the stop as higher quality (and ABC = large platform, transit center, enhanced shelter) which is seen as a better option by travelers in the model (different constants - see Stop Area Attributes under the calculated fields below). For Smaller MPOs without these types of major transit hubs, these can be left as zero.

FieldDescription
istcSet as 1 if the Stop Area is a Transit Center. All stops can be left zero in the case of smaller MPOs.
istmSet as 1 if the Stop Area is a Transit Mall. All stops can be left zero in the case of smaller MPOs.

Line Route Item Attributes

Currently all of these can be left as zero if the user doesn't want to establish these.

FieldDescription
EMME_DWTdwell time, per mile for local bus and per stop for other transit types. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. It seems that this type of information could just be stored in Visum's dwell time attribute. In the current configuration, this can be left at zero and default values will be used.
EMME_TTFIndextransit function code from Emme conversion for Metro's implementation. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. In the current configuration, this can be left at zero and default values will be used.
EMME_DATA1Represents travel speed for transit vehicles. In Metro they are just set to 0. Zero results in the default speed of 30mph being used. Note that most legs in the transit network use auto time * a transit factor, so this field is not used at all in those cases. Should ensure that this input is desired in the final configuration, and if so, a better name should be developed. In the current configuration, this can be left at zero and default values will be used.

Automatically Set Attributes

The following are transit inputs that are calculated by a pre-processor from other inputs and not input by the user directly:

Link Attributes

Time in seconds. All of these are saved from a warm start assignment.

FieldDescription
EA_TTCLink Travel time for the EA (early AM) time period
AM_TTCLink Travel time for the AM (AM peak) time period
MD_TTCLink Travel time for the MD (midday offpeak) time period
PM_TTCLink Travel time for the PM (PM peak) time period
EV_TTCLink Travel time for the EV (evening) time period

Node Attributes

FieldDescription
brdcoboarding cost - Boarding penalty for transit based on the highest order transit available at the stop at that node - Used in transit skimming

Stop Area Attributes

FieldDescription
Stop Service Type (4 binary inputs):
  • isbrt
  • isscr
  • islrt
  • iscrr
Each of these variables are defined as:
  • isbrt - Highest-order service = Bus Rapid Transit (BRT) (mode 'a')
  • isscr - Highest-order service = street car (mode 'e')
  • islrt - Highest-order service = light rail (mode 'l')
  • iscrr - Highest-order service = commercial rail (mode 'r')
sttypStop type:
  • ABC = large platform, transit center, enhanced shelter
  • D = Basic shelter. Identified by BRT nodes and any transit stop with an off-peak headway of 15 minutes or better.
  • E = All other stops
stconStop type constant for transit stop:
  • ABC = 0.1582 (peak) 0.1075 (off peak)
  • D = 0.1582 (peak) 0.0756 (off peak).
  • E = 0 (peak and off peak)
wtpfWait time perception factor at stop:
  • ABC = 0.88 (peak) 0.86 (off peak)
  • D = 0.93 (peak) 0.94 (off peak).
  • E = 1.0 (peak and off peak)

Line Route Attributes

FieldDescription
op_bushrHourly buses per stop in off-peak network (60/off-peak headway)

Time Profile Attributes

FieldDescription
HEADWAY(AP)Working headway field - NOT USER DEFINED but this is the field Visum recognizes as headway for transit skimming
Headway_HalvedPeriod headway divided by 2 - Used for "Optimal strategies" headway-based transit skimming, which incorrectly calculates wait time as the headway value, so we divide it in half preemptively
ivpfEstablishing the in-vehicle perception factor, 0.95 for BRT routes, 0.88 or 0.86 for LRT/Commuter rail for peak and off-peak respectively, else 1.0

Time Profile Items Attributes

FieldDescription
DWELL_TIMEThe code processes the DWELL_TIME variable from a mix of transit mode type, pre length, and whether the user has coded values for EMME_DWT
RUN_TIMEThe code processes the RUN_TIME variable from a mix of EMME_TTFINDEX, EMME_DATA1, and the auto travel times along the network provided from a warm start run, which is then combined with DWELL_TIME above (DWELL_TIME is added to RUN_TIME)

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Transit Coding · OrMSC/SimOR Wiki · GitHub
Skip to content

Transit Coding

lukegordon333 edited this page Apr 7, 2026 · 20 revisions

Transit Data Elements Stored in Visum

The version file uses the following VISUM network objects to define Transit Service:

  1. Nodes – network nodes
  2. Links - in the case of Transit, links hold auto travel time information by time of day.
  3. Stop Points – Physical transit stops, with no required attributes.
  4. Stop Areas – There can be multiple stop points per stop area in VISUM. Stop Areas are the main Visum network object to hold stop attribution and detail.
  5. Stops – Groups of stop areas. There can be multiple stop areas per stop in VISUM (stops and stop points allow for improved representation of the transit options available to users, but the model largely focuses on Stop Areas and therefore most coding energy should be put into properly representing stop areas and possibly any stop point detail that exists within a larger stop areas).
  6. Lines – Transit lines, with no required attributes for the ABM (but does need to exist to code line routes, which are the key object that the ABM interfaces with). The available Transport Systems for transit lines are Bus, Bus Rapid Transit (BRT or express bus), Streetcar, Light Rail, and Commuter Rail (WES).
  7. Line Routes – Transit routes within a named line (like the "Red Line" might have both an inbound and outbound route).
  8. Time Profiles – Transit line link run times and stop dwell times.

The following sections describe each of the attributes that need to be defined by the user for each Transit data Element.

Transit Modes

FieldDescription
aBus Rapid Transit
bBus
eStreetcar
lLight-rail
rCommuter Rail (WES)

Transit Access Modes

FieldDescription
wwalk to transit
ikiss-and-ride transit

Mandatory User Defined Attributes

The following attributes must be defined by the user should they desire their functionality. However, transit headways MUST be defined for the model to function properly.

Line Route Attributes

Headways are coded in seconds. Headways MUST be set by the user

FieldDescription
NT5Headway for the EA (early AM) time period code should be switched to EA (from NT) and 5 removed
AM4Headway for the AM (AM peak) time period code should remove 4 to make it universal to model implementation
MD6Headway for the MD (midday off-peak) time period code should remove 6 to make it universal to model implementation
PM4Headway for the PM (PM peak) time period code should remove 4 to make it universal to model implementation
EV5Headway for the EV (evening) time period code should remove 5 to make it universal to model implementation

Stop Area Attributes

Identifying any stop as either a Transit Center or Mall (istc or tm) will establish the stop as higher quality (and ABC = large platform, transit center, enhanced shelter) which is seen as a better option by travelers in the model (different constants - see Stop Area Attributes under the calculated fields below). For Smaller MPOs without these types of major transit hubs, these can be left as zero.

FieldDescription
istcSet as 1 if the Stop Area is a Transit Center. All stops can be left zero in the case of smaller MPOs.
istmSet as 1 if the Stop Area is a Transit Mall. All stops can be left zero in the case of smaller MPOs.

Line Route Item Attributes

Currently all of these can be left as zero if the user doesn't want to establish these.

FieldDescription
EMME_DWTdwell time, per mile for local bus and per stop for other transit types. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. It seems that this type of information could just be stored in Visum's dwell time attribute. In the current configuration, this can be left at zero and default values will be used.
EMME_TTFIndextransit function code from Emme conversion for Metro's implementation. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. In the current configuration, this can be left at zero and default values will be used.
EMME_DATA1Represents travel speed for transit vehicles. In Metro they are just set to 0. Zero results in the default speed of 30mph being used. Note that most legs in the transit network use auto time * a transit factor, so this field is not used at all in those cases. Should ensure that this input is desired in the final configuration, and if so, a better name should be developed. In the current configuration, this can be left at zero and default values will be used.

Automatically Set Attributes

The following are transit inputs that are calculated by a pre-processor from other inputs and not input by the user directly:

Link Attributes

Time in seconds. All of these are saved from a warm start assignment.

FieldDescription
EA_TTCLink Travel time for the EA (early AM) time period
AM_TTCLink Travel time for the AM (AM peak) time period
MD_TTCLink Travel time for the MD (midday offpeak) time period
PM_TTCLink Travel time for the PM (PM peak) time period
EV_TTCLink Travel time for the EV (evening) time period

Node Attributes

FieldDescription
brdcoboarding cost - Boarding penalty for transit based on the highest order transit available at the stop at that node - Used in transit skimming

Stop Area Attributes

FieldDescription
Stop Service Type (4 binary inputs):
  • isbrt
  • isscr
  • islrt
  • iscrr
Each of these variables are defined as:
  • isbrt - Highest-order service = Bus Rapid Transit (BRT) (mode 'a')
  • isscr - Highest-order service = street car (mode 'e')
  • islrt - Highest-order service = light rail (mode 'l')
  • iscrr - Highest-order service = commercial rail (mode 'r')
sttypStop type:
  • ABC = large platform, transit center, enhanced shelter
  • D = Basic shelter. Identified by BRT nodes and any transit stop with an off-peak headway of 15 minutes or better.
  • E = All other stops
stconStop type constant for transit stop:
  • ABC = 0.1582 (peak) 0.1075 (off peak)
  • D = 0.1582 (peak) 0.0756 (off peak).
  • E = 0 (peak and off peak)
wtpfWait time perception factor at stop:
  • ABC = 0.88 (peak) 0.86 (off peak)
  • D = 0.93 (peak) 0.94 (off peak).
  • E = 1.0 (peak and off peak)

Line Route Attributes

FieldDescription
op_bushrHourly buses per stop in off-peak network (60/off-peak headway)

Time Profile Attributes

FieldDescription
HEADWAY(AP)Working headway field - NOT USER DEFINED but this is the field Visum recognizes as headway for transit skimming
Headway_HalvedPeriod headway divided by 2 - Used for "Optimal strategies" headway-based transit skimming, which incorrectly calculates wait time as the headway value, so we divide it in half preemptively
ivpfEstablishing the in-vehicle perception factor, 0.95 for BRT routes, 0.88 or 0.86 for LRT/Commuter rail for peak and off-peak respectively, else 1.0

Time Profile Items Attributes

FieldDescription
DWELL_TIMEThe code processes the DWELL_TIME variable from a mix of transit mode type, pre length, and whether the user has coded values for EMME_DWT
RUN_TIMEThe code processes the RUN_TIME variable from a mix of EMME_TTFINDEX, EMME_DATA1, and the auto travel times along the network provided from a warm start run, which is then combined with DWELL_TIME above (DWELL_TIME is added to RUN_TIME)

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Transit Coding · OrMSC/SimOR Wiki · GitHub
Skip to content

Transit Coding

lukegordon333 edited this page Apr 7, 2026 · 20 revisions

Transit Data Elements Stored in Visum

The version file uses the following VISUM network objects to define Transit Service:

  1. Nodes – network nodes
  2. Links - in the case of Transit, links hold auto travel time information by time of day.
  3. Stop Points – Physical transit stops, with no required attributes.
  4. Stop Areas – There can be multiple stop points per stop area in VISUM. Stop Areas are the main Visum network object to hold stop attribution and detail.
  5. Stops – Groups of stop areas. There can be multiple stop areas per stop in VISUM (stops and stop points allow for improved representation of the transit options available to users, but the model largely focuses on Stop Areas and therefore most coding energy should be put into properly representing stop areas and possibly any stop point detail that exists within a larger stop areas).
  6. Lines – Transit lines, with no required attributes for the ABM (but does need to exist to code line routes, which are the key object that the ABM interfaces with). The available Transport Systems for transit lines are Bus, Bus Rapid Transit (BRT or express bus), Streetcar, Light Rail, and Commuter Rail (WES).
  7. Line Routes – Transit routes within a named line (like the "Red Line" might have both an inbound and outbound route).
  8. Time Profiles – Transit line link run times and stop dwell times.

The following sections describe each of the attributes that need to be defined by the user for each Transit data Element.

Transit Modes

FieldDescription
aBus Rapid Transit
bBus
eStreetcar
lLight-rail
rCommuter Rail (WES)

Transit Access Modes

FieldDescription
wwalk to transit
ikiss-and-ride transit

Mandatory User Defined Attributes

The following attributes must be defined by the user should they desire their functionality. However, transit headways MUST be defined for the model to function properly.

Line Route Attributes

Headways are coded in seconds. Headways MUST be set by the user

FieldDescription
NT5Headway for the EA (early AM) time period code should be switched to EA (from NT) and 5 removed
AM4Headway for the AM (AM peak) time period code should remove 4 to make it universal to model implementation
MD6Headway for the MD (midday off-peak) time period code should remove 6 to make it universal to model implementation
PM4Headway for the PM (PM peak) time period code should remove 4 to make it universal to model implementation
EV5Headway for the EV (evening) time period code should remove 5 to make it universal to model implementation

Stop Area Attributes

Identifying any stop as either a Transit Center or Mall (istc or tm) will establish the stop as higher quality (and ABC = large platform, transit center, enhanced shelter) which is seen as a better option by travelers in the model (different constants - see Stop Area Attributes under the calculated fields below). For Smaller MPOs without these types of major transit hubs, these can be left as zero.

FieldDescription
istcSet as 1 if the Stop Area is a Transit Center. All stops can be left zero in the case of smaller MPOs.
istmSet as 1 if the Stop Area is a Transit Mall. All stops can be left zero in the case of smaller MPOs.

Line Route Item Attributes

Currently all of these can be left as zero if the user doesn't want to establish these.

FieldDescription
EMME_DWTdwell time, per mile for local bus and per stop for other transit types. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. It seems that this type of information could just be stored in Visum's dwell time attribute. In the current configuration, this can be left at zero and default values will be used.
EMME_TTFIndextransit function code from Emme conversion for Metro's implementation. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. In the current configuration, this can be left at zero and default values will be used.
EMME_DATA1Represents travel speed for transit vehicles. In Metro they are just set to 0. Zero results in the default speed of 30mph being used. Note that most legs in the transit network use auto time * a transit factor, so this field is not used at all in those cases. Should ensure that this input is desired in the final configuration, and if so, a better name should be developed. In the current configuration, this can be left at zero and default values will be used.

Automatically Set Attributes

The following are transit inputs that are calculated by a pre-processor from other inputs and not input by the user directly:

Link Attributes

Time in seconds. All of these are saved from a warm start assignment.

FieldDescription
EA_TTCLink Travel time for the EA (early AM) time period
AM_TTCLink Travel time for the AM (AM peak) time period
MD_TTCLink Travel time for the MD (midday offpeak) time period
PM_TTCLink Travel time for the PM (PM peak) time period
EV_TTCLink Travel time for the EV (evening) time period

Node Attributes

FieldDescription
brdcoboarding cost - Boarding penalty for transit based on the highest order transit available at the stop at that node - Used in transit skimming

Stop Area Attributes

FieldDescription
Stop Service Type (4 binary inputs):
  • isbrt
  • isscr
  • islrt
  • iscrr
Each of these variables are defined as:
  • isbrt - Highest-order service = Bus Rapid Transit (BRT) (mode 'a')
  • isscr - Highest-order service = street car (mode 'e')
  • islrt - Highest-order service = light rail (mode 'l')
  • iscrr - Highest-order service = commercial rail (mode 'r')
sttypStop type:
  • ABC = large platform, transit center, enhanced shelter
  • D = Basic shelter. Identified by BRT nodes and any transit stop with an off-peak headway of 15 minutes or better.
  • E = All other stops
stconStop type constant for transit stop:
  • ABC = 0.1582 (peak) 0.1075 (off peak)
  • D = 0.1582 (peak) 0.0756 (off peak).
  • E = 0 (peak and off peak)
wtpfWait time perception factor at stop:
  • ABC = 0.88 (peak) 0.86 (off peak)
  • D = 0.93 (peak) 0.94 (off peak).
  • E = 1.0 (peak and off peak)

Line Route Attributes

FieldDescription
op_bushrHourly buses per stop in off-peak network (60/off-peak headway)

Time Profile Attributes

FieldDescription
HEADWAY(AP)Working headway field - NOT USER DEFINED but this is the field Visum recognizes as headway for transit skimming
Headway_HalvedPeriod headway divided by 2 - Used for "Optimal strategies" headway-based transit skimming, which incorrectly calculates wait time as the headway value, so we divide it in half preemptively
ivpfEstablishing the in-vehicle perception factor, 0.95 for BRT routes, 0.88 or 0.86 for LRT/Commuter rail for peak and off-peak respectively, else 1.0

Time Profile Items Attributes

FieldDescription
DWELL_TIMEThe code processes the DWELL_TIME variable from a mix of transit mode type, pre length, and whether the user has coded values for EMME_DWT
RUN_TIMEThe code processes the RUN_TIME variable from a mix of EMME_TTFINDEX, EMME_DATA1, and the auto travel times along the network provided from a warm start run, which is then combined with DWELL_TIME above (DWELL_TIME is added to RUN_TIME)

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Transit Coding · OrMSC/SimOR Wiki · GitHub
Skip to content

Transit Coding

lukegordon333 edited this page Apr 7, 2026 · 20 revisions

Transit Data Elements Stored in Visum

The version file uses the following VISUM network objects to define Transit Service:

  1. Nodes – network nodes
  2. Links - in the case of Transit, links hold auto travel time information by time of day.
  3. Stop Points – Physical transit stops, with no required attributes.
  4. Stop Areas – There can be multiple stop points per stop area in VISUM. Stop Areas are the main Visum network object to hold stop attribution and detail.
  5. Stops – Groups of stop areas. There can be multiple stop areas per stop in VISUM (stops and stop points allow for improved representation of the transit options available to users, but the model largely focuses on Stop Areas and therefore most coding energy should be put into properly representing stop areas and possibly any stop point detail that exists within a larger stop areas).
  6. Lines – Transit lines, with no required attributes for the ABM (but does need to exist to code line routes, which are the key object that the ABM interfaces with). The available Transport Systems for transit lines are Bus, Bus Rapid Transit (BRT or express bus), Streetcar, Light Rail, and Commuter Rail (WES).
  7. Line Routes – Transit routes within a named line (like the "Red Line" might have both an inbound and outbound route).
  8. Time Profiles – Transit line link run times and stop dwell times.

The following sections describe each of the attributes that need to be defined by the user for each Transit data Element.

Transit Modes

FieldDescription
aBus Rapid Transit
bBus
eStreetcar
lLight-rail
rCommuter Rail (WES)

Transit Access Modes

FieldDescription
wwalk to transit
ikiss-and-ride transit

Mandatory User Defined Attributes

The following attributes must be defined by the user should they desire their functionality. However, transit headways MUST be defined for the model to function properly.

Line Route Attributes

Headways are coded in seconds. Headways MUST be set by the user

FieldDescription
NT5Headway for the EA (early AM) time period code should be switched to EA (from NT) and 5 removed
AM4Headway for the AM (AM peak) time period code should remove 4 to make it universal to model implementation
MD6Headway for the MD (midday off-peak) time period code should remove 6 to make it universal to model implementation
PM4Headway for the PM (PM peak) time period code should remove 4 to make it universal to model implementation
EV5Headway for the EV (evening) time period code should remove 5 to make it universal to model implementation

Stop Area Attributes

Identifying any stop as either a Transit Center or Mall (istc or tm) will establish the stop as higher quality (and ABC = large platform, transit center, enhanced shelter) which is seen as a better option by travelers in the model (different constants - see Stop Area Attributes under the calculated fields below). For Smaller MPOs without these types of major transit hubs, these can be left as zero.

FieldDescription
istcSet as 1 if the Stop Area is a Transit Center. All stops can be left zero in the case of smaller MPOs.
istmSet as 1 if the Stop Area is a Transit Mall. All stops can be left zero in the case of smaller MPOs.

Line Route Item Attributes

Currently all of these can be left as zero if the user doesn't want to establish these.

FieldDescription
EMME_DWTdwell time, per mile for local bus and per stop for other transit types. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. It seems that this type of information could just be stored in Visum's dwell time attribute. In the current configuration, this can be left at zero and default values will be used.
EMME_TTFIndextransit function code from Emme conversion for Metro's implementation. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. In the current configuration, this can be left at zero and default values will be used.
EMME_DATA1Represents travel speed for transit vehicles. In Metro they are just set to 0. Zero results in the default speed of 30mph being used. Note that most legs in the transit network use auto time * a transit factor, so this field is not used at all in those cases. Should ensure that this input is desired in the final configuration, and if so, a better name should be developed. In the current configuration, this can be left at zero and default values will be used.

Automatically Set Attributes

The following are transit inputs that are calculated by a pre-processor from other inputs and not input by the user directly:

Link Attributes

Time in seconds. All of these are saved from a warm start assignment.

FieldDescription
EA_TTCLink Travel time for the EA (early AM) time period
AM_TTCLink Travel time for the AM (AM peak) time period
MD_TTCLink Travel time for the MD (midday offpeak) time period
PM_TTCLink Travel time for the PM (PM peak) time period
EV_TTCLink Travel time for the EV (evening) time period

Node Attributes

FieldDescription
brdcoboarding cost - Boarding penalty for transit based on the highest order transit available at the stop at that node - Used in transit skimming

Stop Area Attributes

FieldDescription
Stop Service Type (4 binary inputs):
  • isbrt
  • isscr
  • islrt
  • iscrr
Each of these variables are defined as:
  • isbrt - Highest-order service = Bus Rapid Transit (BRT) (mode 'a')
  • isscr - Highest-order service = street car (mode 'e')
  • islrt - Highest-order service = light rail (mode 'l')
  • iscrr - Highest-order service = commercial rail (mode 'r')
sttypStop type:
  • ABC = large platform, transit center, enhanced shelter
  • D = Basic shelter. Identified by BRT nodes and any transit stop with an off-peak headway of 15 minutes or better.
  • E = All other stops
stconStop type constant for transit stop:
  • ABC = 0.1582 (peak) 0.1075 (off peak)
  • D = 0.1582 (peak) 0.0756 (off peak).
  • E = 0 (peak and off peak)
wtpfWait time perception factor at stop:
  • ABC = 0.88 (peak) 0.86 (off peak)
  • D = 0.93 (peak) 0.94 (off peak).
  • E = 1.0 (peak and off peak)

Line Route Attributes

FieldDescription
op_bushrHourly buses per stop in off-peak network (60/off-peak headway)

Time Profile Attributes

FieldDescription
HEADWAY(AP)Working headway field - NOT USER DEFINED but this is the field Visum recognizes as headway for transit skimming
Headway_HalvedPeriod headway divided by 2 - Used for "Optimal strategies" headway-based transit skimming, which incorrectly calculates wait time as the headway value, so we divide it in half preemptively
ivpfEstablishing the in-vehicle perception factor, 0.95 for BRT routes, 0.88 or 0.86 for LRT/Commuter rail for peak and off-peak respectively, else 1.0

Time Profile Items Attributes

FieldDescription
DWELL_TIMEThe code processes the DWELL_TIME variable from a mix of transit mode type, pre length, and whether the user has coded values for EMME_DWT
RUN_TIMEThe code processes the RUN_TIME variable from a mix of EMME_TTFINDEX, EMME_DATA1, and the auto travel times along the network provided from a warm start run, which is then combined with DWELL_TIME above (DWELL_TIME is added to RUN_TIME)

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Transit Coding · OrMSC/SimOR Wiki · GitHub
Skip to content

Transit Coding

lukegordon333 edited this page Apr 7, 2026 · 20 revisions

Transit Data Elements Stored in Visum

The version file uses the following VISUM network objects to define Transit Service:

  1. Nodes – network nodes
  2. Links - in the case of Transit, links hold auto travel time information by time of day.
  3. Stop Points – Physical transit stops, with no required attributes.
  4. Stop Areas – There can be multiple stop points per stop area in VISUM. Stop Areas are the main Visum network object to hold stop attribution and detail.
  5. Stops – Groups of stop areas. There can be multiple stop areas per stop in VISUM (stops and stop points allow for improved representation of the transit options available to users, but the model largely focuses on Stop Areas and therefore most coding energy should be put into properly representing stop areas and possibly any stop point detail that exists within a larger stop areas).
  6. Lines – Transit lines, with no required attributes for the ABM (but does need to exist to code line routes, which are the key object that the ABM interfaces with). The available Transport Systems for transit lines are Bus, Bus Rapid Transit (BRT or express bus), Streetcar, Light Rail, and Commuter Rail (WES).
  7. Line Routes – Transit routes within a named line (like the "Red Line" might have both an inbound and outbound route).
  8. Time Profiles – Transit line link run times and stop dwell times.

The following sections describe each of the attributes that need to be defined by the user for each Transit data Element.

Transit Modes

FieldDescription
aBus Rapid Transit
bBus
eStreetcar
lLight-rail
rCommuter Rail (WES)

Transit Access Modes

FieldDescription
wwalk to transit
ikiss-and-ride transit

Mandatory User Defined Attributes

The following attributes must be defined by the user should they desire their functionality. However, transit headways MUST be defined for the model to function properly.

Line Route Attributes

Headways are coded in seconds. Headways MUST be set by the user

FieldDescription
NT5Headway for the EA (early AM) time period code should be switched to EA (from NT) and 5 removed
AM4Headway for the AM (AM peak) time period code should remove 4 to make it universal to model implementation
MD6Headway for the MD (midday off-peak) time period code should remove 6 to make it universal to model implementation
PM4Headway for the PM (PM peak) time period code should remove 4 to make it universal to model implementation
EV5Headway for the EV (evening) time period code should remove 5 to make it universal to model implementation

Stop Area Attributes

Identifying any stop as either a Transit Center or Mall (istc or tm) will establish the stop as higher quality (and ABC = large platform, transit center, enhanced shelter) which is seen as a better option by travelers in the model (different constants - see Stop Area Attributes under the calculated fields below). For Smaller MPOs without these types of major transit hubs, these can be left as zero.

FieldDescription
istcSet as 1 if the Stop Area is a Transit Center. All stops can be left zero in the case of smaller MPOs.
istmSet as 1 if the Stop Area is a Transit Mall. All stops can be left zero in the case of smaller MPOs.

Line Route Item Attributes

Currently all of these can be left as zero if the user doesn't want to establish these.

FieldDescription
EMME_DWTdwell time, per mile for local bus and per stop for other transit types. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. It seems that this type of information could just be stored in Visum's dwell time attribute. In the current configuration, this can be left at zero and default values will be used.
EMME_TTFIndextransit function code from Emme conversion for Metro's implementation. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. In the current configuration, this can be left at zero and default values will be used.
EMME_DATA1Represents travel speed for transit vehicles. In Metro they are just set to 0. Zero results in the default speed of 30mph being used. Note that most legs in the transit network use auto time * a transit factor, so this field is not used at all in those cases. Should ensure that this input is desired in the final configuration, and if so, a better name should be developed. In the current configuration, this can be left at zero and default values will be used.

Automatically Set Attributes

The following are transit inputs that are calculated by a pre-processor from other inputs and not input by the user directly:

Link Attributes

Time in seconds. All of these are saved from a warm start assignment.

FieldDescription
EA_TTCLink Travel time for the EA (early AM) time period
AM_TTCLink Travel time for the AM (AM peak) time period
MD_TTCLink Travel time for the MD (midday offpeak) time period
PM_TTCLink Travel time for the PM (PM peak) time period
EV_TTCLink Travel time for the EV (evening) time period

Node Attributes

FieldDescription
brdcoboarding cost - Boarding penalty for transit based on the highest order transit available at the stop at that node - Used in transit skimming

Stop Area Attributes

FieldDescription
Stop Service Type (4 binary inputs):
  • isbrt
  • isscr
  • islrt
  • iscrr
Each of these variables are defined as:
  • isbrt - Highest-order service = Bus Rapid Transit (BRT) (mode 'a')
  • isscr - Highest-order service = street car (mode 'e')
  • islrt - Highest-order service = light rail (mode 'l')
  • iscrr - Highest-order service = commercial rail (mode 'r')
sttypStop type:
  • ABC = large platform, transit center, enhanced shelter
  • D = Basic shelter. Identified by BRT nodes and any transit stop with an off-peak headway of 15 minutes or better.
  • E = All other stops
stconStop type constant for transit stop:
  • ABC = 0.1582 (peak) 0.1075 (off peak)
  • D = 0.1582 (peak) 0.0756 (off peak).
  • E = 0 (peak and off peak)
wtpfWait time perception factor at stop:
  • ABC = 0.88 (peak) 0.86 (off peak)
  • D = 0.93 (peak) 0.94 (off peak).
  • E = 1.0 (peak and off peak)

Line Route Attributes

FieldDescription
op_bushrHourly buses per stop in off-peak network (60/off-peak headway)

Time Profile Attributes

FieldDescription
HEADWAY(AP)Working headway field - NOT USER DEFINED but this is the field Visum recognizes as headway for transit skimming
Headway_HalvedPeriod headway divided by 2 - Used for "Optimal strategies" headway-based transit skimming, which incorrectly calculates wait time as the headway value, so we divide it in half preemptively
ivpfEstablishing the in-vehicle perception factor, 0.95 for BRT routes, 0.88 or 0.86 for LRT/Commuter rail for peak and off-peak respectively, else 1.0

Time Profile Items Attributes

FieldDescription
DWELL_TIMEThe code processes the DWELL_TIME variable from a mix of transit mode type, pre length, and whether the user has coded values for EMME_DWT
RUN_TIMEThe code processes the RUN_TIME variable from a mix of EMME_TTFINDEX, EMME_DATA1, and the auto travel times along the network provided from a warm start run, which is then combined with DWELL_TIME above (DWELL_TIME is added to RUN_TIME)

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Transit Coding · OrMSC/SimOR Wiki · GitHub
Skip to content

Transit Coding

lukegordon333 edited this page Apr 7, 2026 · 20 revisions

Transit Data Elements Stored in Visum

The version file uses the following VISUM network objects to define Transit Service:

  1. Nodes – network nodes
  2. Links - in the case of Transit, links hold auto travel time information by time of day.
  3. Stop Points – Physical transit stops, with no required attributes.
  4. Stop Areas – There can be multiple stop points per stop area in VISUM. Stop Areas are the main Visum network object to hold stop attribution and detail.
  5. Stops – Groups of stop areas. There can be multiple stop areas per stop in VISUM (stops and stop points allow for improved representation of the transit options available to users, but the model largely focuses on Stop Areas and therefore most coding energy should be put into properly representing stop areas and possibly any stop point detail that exists within a larger stop areas).
  6. Lines – Transit lines, with no required attributes for the ABM (but does need to exist to code line routes, which are the key object that the ABM interfaces with). The available Transport Systems for transit lines are Bus, Bus Rapid Transit (BRT or express bus), Streetcar, Light Rail, and Commuter Rail (WES).
  7. Line Routes – Transit routes within a named line (like the "Red Line" might have both an inbound and outbound route).
  8. Time Profiles – Transit line link run times and stop dwell times.

The following sections describe each of the attributes that need to be defined by the user for each Transit data Element.

Transit Modes

FieldDescription
aBus Rapid Transit
bBus
eStreetcar
lLight-rail
rCommuter Rail (WES)

Transit Access Modes

FieldDescription
wwalk to transit
ikiss-and-ride transit

Mandatory User Defined Attributes

The following attributes must be defined by the user should they desire their functionality. However, transit headways MUST be defined for the model to function properly.

Line Route Attributes

Headways are coded in seconds. Headways MUST be set by the user

FieldDescription
NT5Headway for the EA (early AM) time period code should be switched to EA (from NT) and 5 removed
AM4Headway for the AM (AM peak) time period code should remove 4 to make it universal to model implementation
MD6Headway for the MD (midday off-peak) time period code should remove 6 to make it universal to model implementation
PM4Headway for the PM (PM peak) time period code should remove 4 to make it universal to model implementation
EV5Headway for the EV (evening) time period code should remove 5 to make it universal to model implementation

Stop Area Attributes

Identifying any stop as either a Transit Center or Mall (istc or tm) will establish the stop as higher quality (and ABC = large platform, transit center, enhanced shelter) which is seen as a better option by travelers in the model (different constants - see Stop Area Attributes under the calculated fields below). For Smaller MPOs without these types of major transit hubs, these can be left as zero.

FieldDescription
istcSet as 1 if the Stop Area is a Transit Center. All stops can be left zero in the case of smaller MPOs.
istmSet as 1 if the Stop Area is a Transit Mall. All stops can be left zero in the case of smaller MPOs.

Line Route Item Attributes

Currently all of these can be left as zero if the user doesn't want to establish these.

FieldDescription
EMME_DWTdwell time, per mile for local bus and per stop for other transit types. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. It seems that this type of information could just be stored in Visum's dwell time attribute. In the current configuration, this can be left at zero and default values will be used.
EMME_TTFIndextransit function code from Emme conversion for Metro's implementation. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. In the current configuration, this can be left at zero and default values will be used.
EMME_DATA1Represents travel speed for transit vehicles. In Metro they are just set to 0. Zero results in the default speed of 30mph being used. Note that most legs in the transit network use auto time * a transit factor, so this field is not used at all in those cases. Should ensure that this input is desired in the final configuration, and if so, a better name should be developed. In the current configuration, this can be left at zero and default values will be used.

Automatically Set Attributes

The following are transit inputs that are calculated by a pre-processor from other inputs and not input by the user directly:

Link Attributes

Time in seconds. All of these are saved from a warm start assignment.

FieldDescription
EA_TTCLink Travel time for the EA (early AM) time period
AM_TTCLink Travel time for the AM (AM peak) time period
MD_TTCLink Travel time for the MD (midday offpeak) time period
PM_TTCLink Travel time for the PM (PM peak) time period
EV_TTCLink Travel time for the EV (evening) time period

Node Attributes

FieldDescription
brdcoboarding cost - Boarding penalty for transit based on the highest order transit available at the stop at that node - Used in transit skimming

Stop Area Attributes

FieldDescription
Stop Service Type (4 binary inputs):
  • isbrt
  • isscr
  • islrt
  • iscrr
Each of these variables are defined as:
  • isbrt - Highest-order service = Bus Rapid Transit (BRT) (mode 'a')
  • isscr - Highest-order service = street car (mode 'e')
  • islrt - Highest-order service = light rail (mode 'l')
  • iscrr - Highest-order service = commercial rail (mode 'r')
sttypStop type:
  • ABC = large platform, transit center, enhanced shelter
  • D = Basic shelter. Identified by BRT nodes and any transit stop with an off-peak headway of 15 minutes or better.
  • E = All other stops
stconStop type constant for transit stop:
  • ABC = 0.1582 (peak) 0.1075 (off peak)
  • D = 0.1582 (peak) 0.0756 (off peak).
  • E = 0 (peak and off peak)
wtpfWait time perception factor at stop:
  • ABC = 0.88 (peak) 0.86 (off peak)
  • D = 0.93 (peak) 0.94 (off peak).
  • E = 1.0 (peak and off peak)

Line Route Attributes

FieldDescription
op_bushrHourly buses per stop in off-peak network (60/off-peak headway)

Time Profile Attributes

FieldDescription
HEADWAY(AP)Working headway field - NOT USER DEFINED but this is the field Visum recognizes as headway for transit skimming
Headway_HalvedPeriod headway divided by 2 - Used for "Optimal strategies" headway-based transit skimming, which incorrectly calculates wait time as the headway value, so we divide it in half preemptively
ivpfEstablishing the in-vehicle perception factor, 0.95 for BRT routes, 0.88 or 0.86 for LRT/Commuter rail for peak and off-peak respectively, else 1.0

Time Profile Items Attributes

FieldDescription
DWELL_TIMEThe code processes the DWELL_TIME variable from a mix of transit mode type, pre length, and whether the user has coded values for EMME_DWT
RUN_TIMEThe code processes the RUN_TIME variable from a mix of EMME_TTFINDEX, EMME_DATA1, and the auto travel times along the network provided from a warm start run, which is then combined with DWELL_TIME above (DWELL_TIME is added to RUN_TIME)

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Transit Coding · OrMSC/SimOR Wiki · GitHub
Skip to content

Transit Coding

lukegordon333 edited this page Apr 7, 2026 · 20 revisions

Transit Data Elements Stored in Visum

The version file uses the following VISUM network objects to define Transit Service:

  1. Nodes – network nodes
  2. Links - in the case of Transit, links hold auto travel time information by time of day.
  3. Stop Points – Physical transit stops, with no required attributes.
  4. Stop Areas – There can be multiple stop points per stop area in VISUM. Stop Areas are the main Visum network object to hold stop attribution and detail.
  5. Stops – Groups of stop areas. There can be multiple stop areas per stop in VISUM (stops and stop points allow for improved representation of the transit options available to users, but the model largely focuses on Stop Areas and therefore most coding energy should be put into properly representing stop areas and possibly any stop point detail that exists within a larger stop areas).
  6. Lines – Transit lines, with no required attributes for the ABM (but does need to exist to code line routes, which are the key object that the ABM interfaces with). The available Transport Systems for transit lines are Bus, Bus Rapid Transit (BRT or express bus), Streetcar, Light Rail, and Commuter Rail (WES).
  7. Line Routes – Transit routes within a named line (like the "Red Line" might have both an inbound and outbound route).
  8. Time Profiles – Transit line link run times and stop dwell times.

The following sections describe each of the attributes that need to be defined by the user for each Transit data Element.

Transit Modes

FieldDescription
aBus Rapid Transit
bBus
eStreetcar
lLight-rail
rCommuter Rail (WES)

Transit Access Modes

FieldDescription
wwalk to transit
ikiss-and-ride transit

Mandatory User Defined Attributes

The following attributes must be defined by the user should they desire their functionality. However, transit headways MUST be defined for the model to function properly.

Line Route Attributes

Headways are coded in seconds. Headways MUST be set by the user

FieldDescription
NT5Headway for the EA (early AM) time period code should be switched to EA (from NT) and 5 removed
AM4Headway for the AM (AM peak) time period code should remove 4 to make it universal to model implementation
MD6Headway for the MD (midday off-peak) time period code should remove 6 to make it universal to model implementation
PM4Headway for the PM (PM peak) time period code should remove 4 to make it universal to model implementation
EV5Headway for the EV (evening) time period code should remove 5 to make it universal to model implementation

Stop Area Attributes

Identifying any stop as either a Transit Center or Mall (istc or tm) will establish the stop as higher quality (and ABC = large platform, transit center, enhanced shelter) which is seen as a better option by travelers in the model (different constants - see Stop Area Attributes under the calculated fields below). For Smaller MPOs without these types of major transit hubs, these can be left as zero.

FieldDescription
istcSet as 1 if the Stop Area is a Transit Center. All stops can be left zero in the case of smaller MPOs.
istmSet as 1 if the Stop Area is a Transit Mall. All stops can be left zero in the case of smaller MPOs.

Line Route Item Attributes

Currently all of these can be left as zero if the user doesn't want to establish these.

FieldDescription
EMME_DWTdwell time, per mile for local bus and per stop for other transit types. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. It seems that this type of information could just be stored in Visum's dwell time attribute. In the current configuration, this can be left at zero and default values will be used.
EMME_TTFIndextransit function code from Emme conversion for Metro's implementation. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. In the current configuration, this can be left at zero and default values will be used.
EMME_DATA1Represents travel speed for transit vehicles. In Metro they are just set to 0. Zero results in the default speed of 30mph being used. Note that most legs in the transit network use auto time * a transit factor, so this field is not used at all in those cases. Should ensure that this input is desired in the final configuration, and if so, a better name should be developed. In the current configuration, this can be left at zero and default values will be used.

Automatically Set Attributes

The following are transit inputs that are calculated by a pre-processor from other inputs and not input by the user directly:

Link Attributes

Time in seconds. All of these are saved from a warm start assignment.

FieldDescription
EA_TTCLink Travel time for the EA (early AM) time period
AM_TTCLink Travel time for the AM (AM peak) time period
MD_TTCLink Travel time for the MD (midday offpeak) time period
PM_TTCLink Travel time for the PM (PM peak) time period
EV_TTCLink Travel time for the EV (evening) time period

Node Attributes

FieldDescription
brdcoboarding cost - Boarding penalty for transit based on the highest order transit available at the stop at that node - Used in transit skimming

Stop Area Attributes

FieldDescription
Stop Service Type (4 binary inputs):
  • isbrt
  • isscr
  • islrt
  • iscrr
Each of these variables are defined as:
  • isbrt - Highest-order service = Bus Rapid Transit (BRT) (mode 'a')
  • isscr - Highest-order service = street car (mode 'e')
  • islrt - Highest-order service = light rail (mode 'l')
  • iscrr - Highest-order service = commercial rail (mode 'r')
sttypStop type:
  • ABC = large platform, transit center, enhanced shelter
  • D = Basic shelter. Identified by BRT nodes and any transit stop with an off-peak headway of 15 minutes or better.
  • E = All other stops
stconStop type constant for transit stop:
  • ABC = 0.1582 (peak) 0.1075 (off peak)
  • D = 0.1582 (peak) 0.0756 (off peak).
  • E = 0 (peak and off peak)
wtpfWait time perception factor at stop:
  • ABC = 0.88 (peak) 0.86 (off peak)
  • D = 0.93 (peak) 0.94 (off peak).
  • E = 1.0 (peak and off peak)

Line Route Attributes

FieldDescription
op_bushrHourly buses per stop in off-peak network (60/off-peak headway)

Time Profile Attributes

FieldDescription
HEADWAY(AP)Working headway field - NOT USER DEFINED but this is the field Visum recognizes as headway for transit skimming
Headway_HalvedPeriod headway divided by 2 - Used for "Optimal strategies" headway-based transit skimming, which incorrectly calculates wait time as the headway value, so we divide it in half preemptively
ivpfEstablishing the in-vehicle perception factor, 0.95 for BRT routes, 0.88 or 0.86 for LRT/Commuter rail for peak and off-peak respectively, else 1.0

Time Profile Items Attributes

FieldDescription
DWELL_TIMEThe code processes the DWELL_TIME variable from a mix of transit mode type, pre length, and whether the user has coded values for EMME_DWT
RUN_TIMEThe code processes the RUN_TIME variable from a mix of EMME_TTFINDEX, EMME_DATA1, and the auto travel times along the network provided from a warm start run, which is then combined with DWELL_TIME above (DWELL_TIME is added to RUN_TIME)

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Transit Coding · OrMSC/SimOR Wiki · GitHub
Skip to content

Transit Coding

lukegordon333 edited this page Apr 7, 2026 · 20 revisions

Transit Data Elements Stored in Visum

The version file uses the following VISUM network objects to define Transit Service:

  1. Nodes – network nodes
  2. Links - in the case of Transit, links hold auto travel time information by time of day.
  3. Stop Points – Physical transit stops, with no required attributes.
  4. Stop Areas – There can be multiple stop points per stop area in VISUM. Stop Areas are the main Visum network object to hold stop attribution and detail.
  5. Stops – Groups of stop areas. There can be multiple stop areas per stop in VISUM (stops and stop points allow for improved representation of the transit options available to users, but the model largely focuses on Stop Areas and therefore most coding energy should be put into properly representing stop areas and possibly any stop point detail that exists within a larger stop areas).
  6. Lines – Transit lines, with no required attributes for the ABM (but does need to exist to code line routes, which are the key object that the ABM interfaces with). The available Transport Systems for transit lines are Bus, Bus Rapid Transit (BRT or express bus), Streetcar, Light Rail, and Commuter Rail (WES).
  7. Line Routes – Transit routes within a named line (like the "Red Line" might have both an inbound and outbound route).
  8. Time Profiles – Transit line link run times and stop dwell times.

The following sections describe each of the attributes that need to be defined by the user for each Transit data Element.

Transit Modes

FieldDescription
aBus Rapid Transit
bBus
eStreetcar
lLight-rail
rCommuter Rail (WES)

Transit Access Modes

FieldDescription
wwalk to transit
ikiss-and-ride transit

Mandatory User Defined Attributes

The following attributes must be defined by the user should they desire their functionality. However, transit headways MUST be defined for the model to function properly.

Line Route Attributes

Headways are coded in seconds. Headways MUST be set by the user

FieldDescription
NT5Headway for the EA (early AM) time period code should be switched to EA (from NT) and 5 removed
AM4Headway for the AM (AM peak) time period code should remove 4 to make it universal to model implementation
MD6Headway for the MD (midday off-peak) time period code should remove 6 to make it universal to model implementation
PM4Headway for the PM (PM peak) time period code should remove 4 to make it universal to model implementation
EV5Headway for the EV (evening) time period code should remove 5 to make it universal to model implementation

Stop Area Attributes

Identifying any stop as either a Transit Center or Mall (istc or tm) will establish the stop as higher quality (and ABC = large platform, transit center, enhanced shelter) which is seen as a better option by travelers in the model (different constants - see Stop Area Attributes under the calculated fields below). For Smaller MPOs without these types of major transit hubs, these can be left as zero.

FieldDescription
istcSet as 1 if the Stop Area is a Transit Center. All stops can be left zero in the case of smaller MPOs.
istmSet as 1 if the Stop Area is a Transit Mall. All stops can be left zero in the case of smaller MPOs.

Line Route Item Attributes

Currently all of these can be left as zero if the user doesn't want to establish these.

FieldDescription
EMME_DWTdwell time, per mile for local bus and per stop for other transit types. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. It seems that this type of information could just be stored in Visum's dwell time attribute. In the current configuration, this can be left at zero and default values will be used.
EMME_TTFIndextransit function code from Emme conversion for Metro's implementation. Should ensure that this input is desired in the final configuration, and if so, should remove EMME from the input name. In the current configuration, this can be left at zero and default values will be used.
EMME_DATA1Represents travel speed for transit vehicles. In Metro they are just set to 0. Zero results in the default speed of 30mph being used. Note that most legs in the transit network use auto time * a transit factor, so this field is not used at all in those cases. Should ensure that this input is desired in the final configuration, and if so, a better name should be developed. In the current configuration, this can be left at zero and default values will be used.

Automatically Set Attributes

The following are transit inputs that are calculated by a pre-processor from other inputs and not input by the user directly:

Link Attributes

Time in seconds. All of these are saved from a warm start assignment.

FieldDescription
EA_TTCLink Travel time for the EA (early AM) time period
AM_TTCLink Travel time for the AM (AM peak) time period
MD_TTCLink Travel time for the MD (midday offpeak) time period
PM_TTCLink Travel time for the PM (PM peak) time period
EV_TTCLink Travel time for the EV (evening) time period

Node Attributes

FieldDescription
brdcoboarding cost - Boarding penalty for transit based on the highest order transit available at the stop at that node - Used in transit skimming

Stop Area Attributes

FieldDescription
Stop Service Type (4 binary inputs):
  • isbrt
  • isscr
  • islrt
  • iscrr
Each of these variables are defined as:
  • isbrt - Highest-order service = Bus Rapid Transit (BRT) (mode 'a')
  • isscr - Highest-order service = street car (mode 'e')
  • islrt - Highest-order service = light rail (mode 'l')
  • iscrr - Highest-order service = commercial rail (mode 'r')
sttypStop type:
  • ABC = large platform, transit center, enhanced shelter
  • D = Basic shelter. Identified by BRT nodes and any transit stop with an off-peak headway of 15 minutes or better.
  • E = All other stops
stconStop type constant for transit stop:
  • ABC = 0.1582 (peak) 0.1075 (off peak)
  • D = 0.1582 (peak) 0.0756 (off peak).
  • E = 0 (peak and off peak)
wtpfWait time perception factor at stop:
  • ABC = 0.88 (peak) 0.86 (off peak)
  • D = 0.93 (peak) 0.94 (off peak).
  • E = 1.0 (peak and off peak)

Line Route Attributes

FieldDescription
op_bushrHourly buses per stop in off-peak network (60/off-peak headway)

Time Profile Attributes

FieldDescription
HEADWAY(AP)Working headway field - NOT USER DEFINED but this is the field Visum recognizes as headway for transit skimming
Headway_HalvedPeriod headway divided by 2 - Used for "Optimal strategies" headway-based transit skimming, which incorrectly calculates wait time as the headway value, so we divide it in half preemptively
ivpfEstablishing the in-vehicle perception factor, 0.95 for BRT routes, 0.88 or 0.86 for LRT/Commuter rail for peak and off-peak respectively, else 1.0

Time Profile Items Attributes

FieldDescription
DWELL_TIMEThe code processes the DWELL_TIME variable from a mix of transit mode type, pre length, and whether the user has coded values for EMME_DWT
RUN_TIMEThe code processes the RUN_TIME variable from a mix of EMME_TTFINDEX, EMME_DATA1, and the auto travel times along the network provided from a warm start run, which is then combined with DWELL_TIME above (DWELL_TIME is added to RUN_TIME)

Clone this wiki locally