Progress Report

Fletcher Foti edited this page May 15, 2015 · 62 revisions

This page will keep a (somewhat) up-to-date list of the status of completion for each model we're working on. There will be a separate percentage completion for the code and for the variables, as some of the models have hundreds or even thousands of variables.

If something is a sufficiently complicated variable to calculate, I am considering that to be "code."

IterationModel NameCodePctModelPctNotes
1Work location99%99%
1School location99%99%
1Auto ownership99%90%Missing "Auto Time Savings" variable
1CDAP99%90%Missing no regular work and school location and work at home variables
1Mandatory tour gen99%99%
1Work scheduling99%90%Windowing variables aren't implemented
1School scheduling99%90%Same variables missing as work scheduling
Joint tour generation0%0%
Joint tour party composition0%0%
Joint tour person participation0%0%
Joint tour scheduling0%0%
Joint tour destination0%0%
1Non-mandatory tour gen99%90%"residual window" is unimplemented, no joint tours variables
1Non-mandatory scheduling99%90%Same as for mandatory but start/end times need to be included for all previous trips rather than single previous trip
1Non-mandatory destination99%90%Tours need to be converted to "escort kids" and "escort no kids"
At-work subtour generation0%0%
At-work subtour scheduling0%0%
At-work subtour destination0%0%
Free parking eligibility0%0%
1Tour mode choice80%80%See specific to do list below
Stop frequency0%0%
Stop purpose0%0%
Stop scheduling0%0%
Stop destination0%0%
1Trip mode Choice80%80%See specific to do list below

Mode Choice To Do List

  • Reformat specs from previous somewhat ad-hoc format to straight csv
  • Add separate csv file for coefficients by purpose
  • Implement .format strings for standard variable expressions - e.g. all the drive time ratios look the same so just use a format string and sub in the appropriate skim names
  • Adjust all the expressions in the csv file and add placeholders to the code
  • When multiple alternatives occur in the alternative column, copy rows for each alternative (this is for alternative specific constants at the end of the file which are not used yet for this reason)
  • Walk and Bike alternatives are commented out
  • Need to unit test the small utilities that are used in mode choice expressions right now
  • fill in the placeholder variables in the code - e.g. alternative availability, etc
  • fill in the placeholders for skim names (i.e. read all the right skims in)
  • In the end there were more skims than my computer could load into memory . I see your point that this is perhaps the biggest issue in activitysim. We'll need to put some thought into this.
  • Line up the mode choice models with the right tour purposes, especially for trip mode choice where we don't even have trips isolated yet

###Other unfinished core tasks include:

  • Implement simulated nested logit
  • Once models are considered close to complete, we should add some sort of end-to-end tests for the expected results (compare to CTRAMP results or...)
  • Logsums need to be added to a few models, including workplace location and destination choice, mandatory scheduling, ?

###List of difficulties with vectorization we've uncovered so far (often household coordination, but not always)

  • CDAP (pretty much the whole model)
  • "has presence of" variables
  • scheduling (tours are dependent on the tours that come before them for the same person)

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n 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;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Progress Report

Fletcher Foti edited this page May 15, 2015 · 62 revisions

This page will keep a (somewhat) up-to-date list of the status of completion for each model we're working on. There will be a separate percentage completion for the code and for the variables, as some of the models have hundreds or even thousands of variables.

If something is a sufficiently complicated variable to calculate, I am considering that to be "code."

IterationModel NameCodePctModelPctNotes
1Work location99%99%
1School location99%99%
1Auto ownership99%90%Missing "Auto Time Savings" variable
1CDAP99%90%Missing no regular work and school location and work at home variables
1Mandatory tour gen99%99%
1Work scheduling99%90%Windowing variables aren't implemented
1School scheduling99%90%Same variables missing as work scheduling
Joint tour generation0%0%
Joint tour party composition0%0%
Joint tour person participation0%0%
Joint tour scheduling0%0%
Joint tour destination0%0%
1Non-mandatory tour gen99%90%"residual window" is unimplemented, no joint tours variables
1Non-mandatory scheduling99%90%Same as for mandatory but start/end times need to be included for all previous trips rather than single previous trip
1Non-mandatory destination99%90%Tours need to be converted to "escort kids" and "escort no kids"
At-work subtour generation0%0%
At-work subtour scheduling0%0%
At-work subtour destination0%0%
Free parking eligibility0%0%
1Tour mode choice80%80%See specific to do list below
Stop frequency0%0%
Stop purpose0%0%
Stop scheduling0%0%
Stop destination0%0%
1Trip mode Choice80%80%See specific to do list below

Mode Choice To Do List

  • Reformat specs from previous somewhat ad-hoc format to straight csv
  • Add separate csv file for coefficients by purpose
  • Implement .format strings for standard variable expressions - e.g. all the drive time ratios look the same so just use a format string and sub in the appropriate skim names
  • Adjust all the expressions in the csv file and add placeholders to the code
  • When multiple alternatives occur in the alternative column, copy rows for each alternative (this is for alternative specific constants at the end of the file which are not used yet for this reason)
  • Walk and Bike alternatives are commented out
  • Need to unit test the small utilities that are used in mode choice expressions right now
  • fill in the placeholder variables in the code - e.g. alternative availability, etc
  • fill in the placeholders for skim names (i.e. read all the right skims in)
  • In the end there were more skims than my computer could load into memory . I see your point that this is perhaps the biggest issue in activitysim. We'll need to put some thought into this.
  • Line up the mode choice models with the right tour purposes, especially for trip mode choice where we don't even have trips isolated yet

###Other unfinished core tasks include:

  • Implement simulated nested logit
  • Once models are considered close to complete, we should add some sort of end-to-end tests for the expected results (compare to CTRAMP results or...)
  • Logsums need to be added to a few models, including workplace location and destination choice, mandatory scheduling, ?

###List of difficulties with vectorization we've uncovered so far (often household coordination, but not always)

  • CDAP (pretty much the whole model)
  • "has presence of" variables
  • scheduling (tours are dependent on the tours that come before them for the same person)

Clone this wiki locally

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

Progress Report

Fletcher Foti edited this page May 15, 2015 · 62 revisions

This page will keep a (somewhat) up-to-date list of the status of completion for each model we're working on. There will be a separate percentage completion for the code and for the variables, as some of the models have hundreds or even thousands of variables.

If something is a sufficiently complicated variable to calculate, I am considering that to be "code."

IterationModel NameCodePctModelPctNotes
1Work location99%99%
1School location99%99%
1Auto ownership99%90%Missing "Auto Time Savings" variable
1CDAP99%90%Missing no regular work and school location and work at home variables
1Mandatory tour gen99%99%
1Work scheduling99%90%Windowing variables aren't implemented
1School scheduling99%90%Same variables missing as work scheduling
Joint tour generation0%0%
Joint tour party composition0%0%
Joint tour person participation0%0%
Joint tour scheduling0%0%
Joint tour destination0%0%
1Non-mandatory tour gen99%90%"residual window" is unimplemented, no joint tours variables
1Non-mandatory scheduling99%90%Same as for mandatory but start/end times need to be included for all previous trips rather than single previous trip
1Non-mandatory destination99%90%Tours need to be converted to "escort kids" and "escort no kids"
At-work subtour generation0%0%
At-work subtour scheduling0%0%
At-work subtour destination0%0%
Free parking eligibility0%0%
1Tour mode choice80%80%See specific to do list below
Stop frequency0%0%
Stop purpose0%0%
Stop scheduling0%0%
Stop destination0%0%
1Trip mode Choice80%80%See specific to do list below

Mode Choice To Do List

  • Reformat specs from previous somewhat ad-hoc format to straight csv
  • Add separate csv file for coefficients by purpose
  • Implement .format strings for standard variable expressions - e.g. all the drive time ratios look the same so just use a format string and sub in the appropriate skim names
  • Adjust all the expressions in the csv file and add placeholders to the code
  • When multiple alternatives occur in the alternative column, copy rows for each alternative (this is for alternative specific constants at the end of the file which are not used yet for this reason)
  • Walk and Bike alternatives are commented out
  • Need to unit test the small utilities that are used in mode choice expressions right now
  • fill in the placeholder variables in the code - e.g. alternative availability, etc
  • fill in the placeholders for skim names (i.e. read all the right skims in)
  • In the end there were more skims than my computer could load into memory . I see your point that this is perhaps the biggest issue in activitysim. We'll need to put some thought into this.
  • Line up the mode choice models with the right tour purposes, especially for trip mode choice where we don't even have trips isolated yet

###Other unfinished core tasks include:

  • Implement simulated nested logit
  • Once models are considered close to complete, we should add some sort of end-to-end tests for the expected results (compare to CTRAMP results or...)
  • Logsums need to be added to a few models, including workplace location and destination choice, mandatory scheduling, ?

###List of difficulties with vectorization we've uncovered so far (often household coordination, but not always)

  • CDAP (pretty much the whole model)
  • "has presence of" variables
  • scheduling (tours are dependent on the tours that come before them for the same person)

Clone this wiki locally

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

Progress Report

Fletcher Foti edited this page May 15, 2015 · 62 revisions

This page will keep a (somewhat) up-to-date list of the status of completion for each model we're working on. There will be a separate percentage completion for the code and for the variables, as some of the models have hundreds or even thousands of variables.

If something is a sufficiently complicated variable to calculate, I am considering that to be "code."

IterationModel NameCodePctModelPctNotes
1Work location99%99%
1School location99%99%
1Auto ownership99%90%Missing "Auto Time Savings" variable
1CDAP99%90%Missing no regular work and school location and work at home variables
1Mandatory tour gen99%99%
1Work scheduling99%90%Windowing variables aren't implemented
1School scheduling99%90%Same variables missing as work scheduling
Joint tour generation0%0%
Joint tour party composition0%0%
Joint tour person participation0%0%
Joint tour scheduling0%0%
Joint tour destination0%0%
1Non-mandatory tour gen99%90%"residual window" is unimplemented, no joint tours variables
1Non-mandatory scheduling99%90%Same as for mandatory but start/end times need to be included for all previous trips rather than single previous trip
1Non-mandatory destination99%90%Tours need to be converted to "escort kids" and "escort no kids"
At-work subtour generation0%0%
At-work subtour scheduling0%0%
At-work subtour destination0%0%
Free parking eligibility0%0%
1Tour mode choice80%80%See specific to do list below
Stop frequency0%0%
Stop purpose0%0%
Stop scheduling0%0%
Stop destination0%0%
1Trip mode Choice80%80%See specific to do list below

Mode Choice To Do List

  • Reformat specs from previous somewhat ad-hoc format to straight csv
  • Add separate csv file for coefficients by purpose
  • Implement .format strings for standard variable expressions - e.g. all the drive time ratios look the same so just use a format string and sub in the appropriate skim names
  • Adjust all the expressions in the csv file and add placeholders to the code
  • When multiple alternatives occur in the alternative column, copy rows for each alternative (this is for alternative specific constants at the end of the file which are not used yet for this reason)
  • Walk and Bike alternatives are commented out
  • Need to unit test the small utilities that are used in mode choice expressions right now
  • fill in the placeholder variables in the code - e.g. alternative availability, etc
  • fill in the placeholders for skim names (i.e. read all the right skims in)
  • In the end there were more skims than my computer could load into memory . I see your point that this is perhaps the biggest issue in activitysim. We'll need to put some thought into this.
  • Line up the mode choice models with the right tour purposes, especially for trip mode choice where we don't even have trips isolated yet

###Other unfinished core tasks include:

  • Implement simulated nested logit
  • Once models are considered close to complete, we should add some sort of end-to-end tests for the expected results (compare to CTRAMP results or...)
  • Logsums need to be added to a few models, including workplace location and destination choice, mandatory scheduling, ?

###List of difficulties with vectorization we've uncovered so far (often household coordination, but not always)

  • CDAP (pretty much the whole model)
  • "has presence of" variables
  • scheduling (tours are dependent on the tours that come before them for the same person)

Clone this wiki locally

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

Progress Report

Fletcher Foti edited this page May 15, 2015 · 62 revisions

This page will keep a (somewhat) up-to-date list of the status of completion for each model we're working on. There will be a separate percentage completion for the code and for the variables, as some of the models have hundreds or even thousands of variables.

If something is a sufficiently complicated variable to calculate, I am considering that to be "code."

IterationModel NameCodePctModelPctNotes
1Work location99%99%
1School location99%99%
1Auto ownership99%90%Missing "Auto Time Savings" variable
1CDAP99%90%Missing no regular work and school location and work at home variables
1Mandatory tour gen99%99%
1Work scheduling99%90%Windowing variables aren't implemented
1School scheduling99%90%Same variables missing as work scheduling
Joint tour generation0%0%
Joint tour party composition0%0%
Joint tour person participation0%0%
Joint tour scheduling0%0%
Joint tour destination0%0%
1Non-mandatory tour gen99%90%"residual window" is unimplemented, no joint tours variables
1Non-mandatory scheduling99%90%Same as for mandatory but start/end times need to be included for all previous trips rather than single previous trip
1Non-mandatory destination99%90%Tours need to be converted to "escort kids" and "escort no kids"
At-work subtour generation0%0%
At-work subtour scheduling0%0%
At-work subtour destination0%0%
Free parking eligibility0%0%
1Tour mode choice80%80%See specific to do list below
Stop frequency0%0%
Stop purpose0%0%
Stop scheduling0%0%
Stop destination0%0%
1Trip mode Choice80%80%See specific to do list below

Mode Choice To Do List

  • Reformat specs from previous somewhat ad-hoc format to straight csv
  • Add separate csv file for coefficients by purpose
  • Implement .format strings for standard variable expressions - e.g. all the drive time ratios look the same so just use a format string and sub in the appropriate skim names
  • Adjust all the expressions in the csv file and add placeholders to the code
  • When multiple alternatives occur in the alternative column, copy rows for each alternative (this is for alternative specific constants at the end of the file which are not used yet for this reason)
  • Walk and Bike alternatives are commented out
  • Need to unit test the small utilities that are used in mode choice expressions right now
  • fill in the placeholder variables in the code - e.g. alternative availability, etc
  • fill in the placeholders for skim names (i.e. read all the right skims in)
  • In the end there were more skims than my computer could load into memory . I see your point that this is perhaps the biggest issue in activitysim. We'll need to put some thought into this.
  • Line up the mode choice models with the right tour purposes, especially for trip mode choice where we don't even have trips isolated yet

###Other unfinished core tasks include:

  • Implement simulated nested logit
  • Once models are considered close to complete, we should add some sort of end-to-end tests for the expected results (compare to CTRAMP results or...)
  • Logsums need to be added to a few models, including workplace location and destination choice, mandatory scheduling, ?

###List of difficulties with vectorization we've uncovered so far (often household coordination, but not always)

  • CDAP (pretty much the whole model)
  • "has presence of" variables
  • scheduling (tours are dependent on the tours that come before them for the same person)

Clone this wiki locally

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

Progress Report

Fletcher Foti edited this page May 15, 2015 · 62 revisions

This page will keep a (somewhat) up-to-date list of the status of completion for each model we're working on. There will be a separate percentage completion for the code and for the variables, as some of the models have hundreds or even thousands of variables.

If something is a sufficiently complicated variable to calculate, I am considering that to be "code."

IterationModel NameCodePctModelPctNotes
1Work location99%99%
1School location99%99%
1Auto ownership99%90%Missing "Auto Time Savings" variable
1CDAP99%90%Missing no regular work and school location and work at home variables
1Mandatory tour gen99%99%
1Work scheduling99%90%Windowing variables aren't implemented
1School scheduling99%90%Same variables missing as work scheduling
Joint tour generation0%0%
Joint tour party composition0%0%
Joint tour person participation0%0%
Joint tour scheduling0%0%
Joint tour destination0%0%
1Non-mandatory tour gen99%90%"residual window" is unimplemented, no joint tours variables
1Non-mandatory scheduling99%90%Same as for mandatory but start/end times need to be included for all previous trips rather than single previous trip
1Non-mandatory destination99%90%Tours need to be converted to "escort kids" and "escort no kids"
At-work subtour generation0%0%
At-work subtour scheduling0%0%
At-work subtour destination0%0%
Free parking eligibility0%0%
1Tour mode choice80%80%See specific to do list below
Stop frequency0%0%
Stop purpose0%0%
Stop scheduling0%0%
Stop destination0%0%
1Trip mode Choice80%80%See specific to do list below

Mode Choice To Do List

  • Reformat specs from previous somewhat ad-hoc format to straight csv
  • Add separate csv file for coefficients by purpose
  • Implement .format strings for standard variable expressions - e.g. all the drive time ratios look the same so just use a format string and sub in the appropriate skim names
  • Adjust all the expressions in the csv file and add placeholders to the code
  • When multiple alternatives occur in the alternative column, copy rows for each alternative (this is for alternative specific constants at the end of the file which are not used yet for this reason)
  • Walk and Bike alternatives are commented out
  • Need to unit test the small utilities that are used in mode choice expressions right now
  • fill in the placeholder variables in the code - e.g. alternative availability, etc
  • fill in the placeholders for skim names (i.e. read all the right skims in)
  • In the end there were more skims than my computer could load into memory . I see your point that this is perhaps the biggest issue in activitysim. We'll need to put some thought into this.
  • Line up the mode choice models with the right tour purposes, especially for trip mode choice where we don't even have trips isolated yet

###Other unfinished core tasks include:

  • Implement simulated nested logit
  • Once models are considered close to complete, we should add some sort of end-to-end tests for the expected results (compare to CTRAMP results or...)
  • Logsums need to be added to a few models, including workplace location and destination choice, mandatory scheduling, ?

###List of difficulties with vectorization we've uncovered so far (often household coordination, but not always)

  • CDAP (pretty much the whole model)
  • "has presence of" variables
  • scheduling (tours are dependent on the tours that come before them for the same person)

Clone this wiki locally

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

Progress Report

Fletcher Foti edited this page May 15, 2015 · 62 revisions

This page will keep a (somewhat) up-to-date list of the status of completion for each model we're working on. There will be a separate percentage completion for the code and for the variables, as some of the models have hundreds or even thousands of variables.

If something is a sufficiently complicated variable to calculate, I am considering that to be "code."

IterationModel NameCodePctModelPctNotes
1Work location99%99%
1School location99%99%
1Auto ownership99%90%Missing "Auto Time Savings" variable
1CDAP99%90%Missing no regular work and school location and work at home variables
1Mandatory tour gen99%99%
1Work scheduling99%90%Windowing variables aren't implemented
1School scheduling99%90%Same variables missing as work scheduling
Joint tour generation0%0%
Joint tour party composition0%0%
Joint tour person participation0%0%
Joint tour scheduling0%0%
Joint tour destination0%0%
1Non-mandatory tour gen99%90%"residual window" is unimplemented, no joint tours variables
1Non-mandatory scheduling99%90%Same as for mandatory but start/end times need to be included for all previous trips rather than single previous trip
1Non-mandatory destination99%90%Tours need to be converted to "escort kids" and "escort no kids"
At-work subtour generation0%0%
At-work subtour scheduling0%0%
At-work subtour destination0%0%
Free parking eligibility0%0%
1Tour mode choice80%80%See specific to do list below
Stop frequency0%0%
Stop purpose0%0%
Stop scheduling0%0%
Stop destination0%0%
1Trip mode Choice80%80%See specific to do list below

Mode Choice To Do List

  • Reformat specs from previous somewhat ad-hoc format to straight csv
  • Add separate csv file for coefficients by purpose
  • Implement .format strings for standard variable expressions - e.g. all the drive time ratios look the same so just use a format string and sub in the appropriate skim names
  • Adjust all the expressions in the csv file and add placeholders to the code
  • When multiple alternatives occur in the alternative column, copy rows for each alternative (this is for alternative specific constants at the end of the file which are not used yet for this reason)
  • Walk and Bike alternatives are commented out
  • Need to unit test the small utilities that are used in mode choice expressions right now
  • fill in the placeholder variables in the code - e.g. alternative availability, etc
  • fill in the placeholders for skim names (i.e. read all the right skims in)
  • In the end there were more skims than my computer could load into memory . I see your point that this is perhaps the biggest issue in activitysim. We'll need to put some thought into this.
  • Line up the mode choice models with the right tour purposes, especially for trip mode choice where we don't even have trips isolated yet

###Other unfinished core tasks include:

  • Implement simulated nested logit
  • Once models are considered close to complete, we should add some sort of end-to-end tests for the expected results (compare to CTRAMP results or...)
  • Logsums need to be added to a few models, including workplace location and destination choice, mandatory scheduling, ?

###List of difficulties with vectorization we've uncovered so far (often household coordination, but not always)

  • CDAP (pretty much the whole model)
  • "has presence of" variables
  • scheduling (tours are dependent on the tours that come before them for the same person)

Clone this wiki locally

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

Progress Report

Fletcher Foti edited this page May 15, 2015 · 62 revisions

This page will keep a (somewhat) up-to-date list of the status of completion for each model we're working on. There will be a separate percentage completion for the code and for the variables, as some of the models have hundreds or even thousands of variables.

If something is a sufficiently complicated variable to calculate, I am considering that to be "code."

IterationModel NameCodePctModelPctNotes
1Work location99%99%
1School location99%99%
1Auto ownership99%90%Missing "Auto Time Savings" variable
1CDAP99%90%Missing no regular work and school location and work at home variables
1Mandatory tour gen99%99%
1Work scheduling99%90%Windowing variables aren't implemented
1School scheduling99%90%Same variables missing as work scheduling
Joint tour generation0%0%
Joint tour party composition0%0%
Joint tour person participation0%0%
Joint tour scheduling0%0%
Joint tour destination0%0%
1Non-mandatory tour gen99%90%"residual window" is unimplemented, no joint tours variables
1Non-mandatory scheduling99%90%Same as for mandatory but start/end times need to be included for all previous trips rather than single previous trip
1Non-mandatory destination99%90%Tours need to be converted to "escort kids" and "escort no kids"
At-work subtour generation0%0%
At-work subtour scheduling0%0%
At-work subtour destination0%0%
Free parking eligibility0%0%
1Tour mode choice80%80%See specific to do list below
Stop frequency0%0%
Stop purpose0%0%
Stop scheduling0%0%
Stop destination0%0%
1Trip mode Choice80%80%See specific to do list below

Mode Choice To Do List

  • Reformat specs from previous somewhat ad-hoc format to straight csv
  • Add separate csv file for coefficients by purpose
  • Implement .format strings for standard variable expressions - e.g. all the drive time ratios look the same so just use a format string and sub in the appropriate skim names
  • Adjust all the expressions in the csv file and add placeholders to the code
  • When multiple alternatives occur in the alternative column, copy rows for each alternative (this is for alternative specific constants at the end of the file which are not used yet for this reason)
  • Walk and Bike alternatives are commented out
  • Need to unit test the small utilities that are used in mode choice expressions right now
  • fill in the placeholder variables in the code - e.g. alternative availability, etc
  • fill in the placeholders for skim names (i.e. read all the right skims in)
  • In the end there were more skims than my computer could load into memory . I see your point that this is perhaps the biggest issue in activitysim. We'll need to put some thought into this.
  • Line up the mode choice models with the right tour purposes, especially for trip mode choice where we don't even have trips isolated yet

###Other unfinished core tasks include:

  • Implement simulated nested logit
  • Once models are considered close to complete, we should add some sort of end-to-end tests for the expected results (compare to CTRAMP results or...)
  • Logsums need to be added to a few models, including workplace location and destination choice, mandatory scheduling, ?

###List of difficulties with vectorization we've uncovered so far (often household coordination, but not always)

  • CDAP (pretty much the whole model)
  • "has presence of" variables
  • scheduling (tours are dependent on the tours that come before them for the same person)

Clone this wiki locally