Changes to support sharrow on 2-zone model - #867

Merged
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all
Jul 3, 2024
Merged

Changes to support sharrow on 2-zone model#867
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all

Conversation

@jpn--

@jpn--jpn-- commented May 6, 2024

Copy link
Copy Markdown
Member

This PR has a number of changes made in support of sharrow on the new "canonical" 2-zone example, although as it turns out none of these changes really alter how ActivitySim runs...

  • Add land_use_columns_orig setting to aggregate accessibility, to allow joins against both destination (previously available) and origin (new) land use attributes without convoluted hacks in the spec.
  • Add omx_ignore_patterns to State.settings, which allows us to ignore loading certain skim tables, either because they are problematic or just to save memory.
  • Update the minimum version for sharrow to 2.9.1 (for omx_ignore_patterns) and numba to 0.57 (to access np.nan_to_num as a numba function).
  • Improve runtime logging of sharrow and non-sharrow code to disambiguate interaction-simulate steps from simulate steps.
  • Improve debugging script that is activated in interaction-simulate steps only in sharrow test mode, when sharrow and non-sharrow utility functions differ.
  • Cleanly close opened OMX files instead of leaving open file handles lingering to be closed when Python shuts down.
  • Documentation updates
  • Change to test configs for joint_tour_frequency_composition to correct math errors in the model spec.

Comment threadconda-environments/docbuild.yml
This is useful if you have tables in your OMX file that you don't want to
read in. For example, if you have both time-of-day values and time-independent
values (e.g., "BIKE_TIME" and "BIKE_TIME__AM"), you can ignore the time-of-day
values by setting this to ["BIKE_TIME__.+"].

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this required for sharrow? If so, I think we need to put an assert statement in the skim read for sharrow somewhere that will prevent this from happening and provide some info to the user about the error.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, not for sharrow per se, but the SkimDataset converts all the by-time-of-day skim variables into three dimensional arrays (o,d,time). So without this, in the example the OMX files essentially have two different sets of data for the same named variable, one two-dimension BIKE_TIME, and one three-dimension BIKE_TIME, which coincidentally happens to have no variance across the temporal dimension. We can't have two variables in the same namespace with the same name, so one is overwritten.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened an issue #873 to address this.

This was referenced May 22, 2024
@jpn--
jpn-- merged commit 28a0ad0 into ActivitySim:mainJul 3, 2024
@jpn--jpn-- mentioned this pull request May 12, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jpn--@i-am-sijia@dhensle
, '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

Changes to support sharrow on 2-zone model - #867

Merged
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all
Jul 3, 2024
Merged

Changes to support sharrow on 2-zone model#867
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all

Conversation

@jpn--

@jpn--jpn-- commented May 6, 2024

Copy link
Copy Markdown
Member

This PR has a number of changes made in support of sharrow on the new "canonical" 2-zone example, although as it turns out none of these changes really alter how ActivitySim runs...

  • Add land_use_columns_orig setting to aggregate accessibility, to allow joins against both destination (previously available) and origin (new) land use attributes without convoluted hacks in the spec.
  • Add omx_ignore_patterns to State.settings, which allows us to ignore loading certain skim tables, either because they are problematic or just to save memory.
  • Update the minimum version for sharrow to 2.9.1 (for omx_ignore_patterns) and numba to 0.57 (to access np.nan_to_num as a numba function).
  • Improve runtime logging of sharrow and non-sharrow code to disambiguate interaction-simulate steps from simulate steps.
  • Improve debugging script that is activated in interaction-simulate steps only in sharrow test mode, when sharrow and non-sharrow utility functions differ.
  • Cleanly close opened OMX files instead of leaving open file handles lingering to be closed when Python shuts down.
  • Documentation updates
  • Change to test configs for joint_tour_frequency_composition to correct math errors in the model spec.

Comment threadconda-environments/docbuild.yml
This is useful if you have tables in your OMX file that you don't want to
read in. For example, if you have both time-of-day values and time-independent
values (e.g., "BIKE_TIME" and "BIKE_TIME__AM"), you can ignore the time-of-day
values by setting this to ["BIKE_TIME__.+"].

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this required for sharrow? If so, I think we need to put an assert statement in the skim read for sharrow somewhere that will prevent this from happening and provide some info to the user about the error.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, not for sharrow per se, but the SkimDataset converts all the by-time-of-day skim variables into three dimensional arrays (o,d,time). So without this, in the example the OMX files essentially have two different sets of data for the same named variable, one two-dimension BIKE_TIME, and one three-dimension BIKE_TIME, which coincidentally happens to have no variance across the temporal dimension. We can't have two variables in the same namespace with the same name, so one is overwritten.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened an issue #873 to address this.

This was referenced May 22, 2024
@jpn--
jpn-- merged commit 28a0ad0 into ActivitySim:mainJul 3, 2024
@jpn--jpn-- mentioned this pull request May 12, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jpn--@i-am-sijia@dhensle
, '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

Changes to support sharrow on 2-zone model - #867

Merged
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all
Jul 3, 2024
Merged

Changes to support sharrow on 2-zone model#867
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all

Conversation

@jpn--

@jpn--jpn-- commented May 6, 2024

Copy link
Copy Markdown
Member

This PR has a number of changes made in support of sharrow on the new "canonical" 2-zone example, although as it turns out none of these changes really alter how ActivitySim runs...

  • Add land_use_columns_orig setting to aggregate accessibility, to allow joins against both destination (previously available) and origin (new) land use attributes without convoluted hacks in the spec.
  • Add omx_ignore_patterns to State.settings, which allows us to ignore loading certain skim tables, either because they are problematic or just to save memory.
  • Update the minimum version for sharrow to 2.9.1 (for omx_ignore_patterns) and numba to 0.57 (to access np.nan_to_num as a numba function).
  • Improve runtime logging of sharrow and non-sharrow code to disambiguate interaction-simulate steps from simulate steps.
  • Improve debugging script that is activated in interaction-simulate steps only in sharrow test mode, when sharrow and non-sharrow utility functions differ.
  • Cleanly close opened OMX files instead of leaving open file handles lingering to be closed when Python shuts down.
  • Documentation updates
  • Change to test configs for joint_tour_frequency_composition to correct math errors in the model spec.

Comment threadconda-environments/docbuild.yml
This is useful if you have tables in your OMX file that you don't want to
read in. For example, if you have both time-of-day values and time-independent
values (e.g., "BIKE_TIME" and "BIKE_TIME__AM"), you can ignore the time-of-day
values by setting this to ["BIKE_TIME__.+"].

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this required for sharrow? If so, I think we need to put an assert statement in the skim read for sharrow somewhere that will prevent this from happening and provide some info to the user about the error.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, not for sharrow per se, but the SkimDataset converts all the by-time-of-day skim variables into three dimensional arrays (o,d,time). So without this, in the example the OMX files essentially have two different sets of data for the same named variable, one two-dimension BIKE_TIME, and one three-dimension BIKE_TIME, which coincidentally happens to have no variance across the temporal dimension. We can't have two variables in the same namespace with the same name, so one is overwritten.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened an issue #873 to address this.

This was referenced May 22, 2024
@jpn--
jpn-- merged commit 28a0ad0 into ActivitySim:mainJul 3, 2024
@jpn--jpn-- mentioned this pull request May 12, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jpn--@i-am-sijia@dhensle
, '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

Changes to support sharrow on 2-zone model - #867

Merged
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all
Jul 3, 2024
Merged

Changes to support sharrow on 2-zone model#867
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all

Conversation

@jpn--

@jpn--jpn-- commented May 6, 2024

Copy link
Copy Markdown
Member

This PR has a number of changes made in support of sharrow on the new "canonical" 2-zone example, although as it turns out none of these changes really alter how ActivitySim runs...

  • Add land_use_columns_orig setting to aggregate accessibility, to allow joins against both destination (previously available) and origin (new) land use attributes without convoluted hacks in the spec.
  • Add omx_ignore_patterns to State.settings, which allows us to ignore loading certain skim tables, either because they are problematic or just to save memory.
  • Update the minimum version for sharrow to 2.9.1 (for omx_ignore_patterns) and numba to 0.57 (to access np.nan_to_num as a numba function).
  • Improve runtime logging of sharrow and non-sharrow code to disambiguate interaction-simulate steps from simulate steps.
  • Improve debugging script that is activated in interaction-simulate steps only in sharrow test mode, when sharrow and non-sharrow utility functions differ.
  • Cleanly close opened OMX files instead of leaving open file handles lingering to be closed when Python shuts down.
  • Documentation updates
  • Change to test configs for joint_tour_frequency_composition to correct math errors in the model spec.

Comment threadconda-environments/docbuild.yml
This is useful if you have tables in your OMX file that you don't want to
read in. For example, if you have both time-of-day values and time-independent
values (e.g., "BIKE_TIME" and "BIKE_TIME__AM"), you can ignore the time-of-day
values by setting this to ["BIKE_TIME__.+"].

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this required for sharrow? If so, I think we need to put an assert statement in the skim read for sharrow somewhere that will prevent this from happening and provide some info to the user about the error.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, not for sharrow per se, but the SkimDataset converts all the by-time-of-day skim variables into three dimensional arrays (o,d,time). So without this, in the example the OMX files essentially have two different sets of data for the same named variable, one two-dimension BIKE_TIME, and one three-dimension BIKE_TIME, which coincidentally happens to have no variance across the temporal dimension. We can't have two variables in the same namespace with the same name, so one is overwritten.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened an issue #873 to address this.

This was referenced May 22, 2024
@jpn--
jpn-- merged commit 28a0ad0 into ActivitySim:mainJul 3, 2024
@jpn--jpn-- mentioned this pull request May 12, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jpn--@i-am-sijia@dhensle
, '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

Changes to support sharrow on 2-zone model - #867

Merged
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all
Jul 3, 2024
Merged

Changes to support sharrow on 2-zone model#867
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all

Conversation

@jpn--

@jpn--jpn-- commented May 6, 2024

Copy link
Copy Markdown
Member

This PR has a number of changes made in support of sharrow on the new "canonical" 2-zone example, although as it turns out none of these changes really alter how ActivitySim runs...

  • Add land_use_columns_orig setting to aggregate accessibility, to allow joins against both destination (previously available) and origin (new) land use attributes without convoluted hacks in the spec.
  • Add omx_ignore_patterns to State.settings, which allows us to ignore loading certain skim tables, either because they are problematic or just to save memory.
  • Update the minimum version for sharrow to 2.9.1 (for omx_ignore_patterns) and numba to 0.57 (to access np.nan_to_num as a numba function).
  • Improve runtime logging of sharrow and non-sharrow code to disambiguate interaction-simulate steps from simulate steps.
  • Improve debugging script that is activated in interaction-simulate steps only in sharrow test mode, when sharrow and non-sharrow utility functions differ.
  • Cleanly close opened OMX files instead of leaving open file handles lingering to be closed when Python shuts down.
  • Documentation updates
  • Change to test configs for joint_tour_frequency_composition to correct math errors in the model spec.

Comment threadconda-environments/docbuild.yml
This is useful if you have tables in your OMX file that you don't want to
read in. For example, if you have both time-of-day values and time-independent
values (e.g., "BIKE_TIME" and "BIKE_TIME__AM"), you can ignore the time-of-day
values by setting this to ["BIKE_TIME__.+"].

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this required for sharrow? If so, I think we need to put an assert statement in the skim read for sharrow somewhere that will prevent this from happening and provide some info to the user about the error.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, not for sharrow per se, but the SkimDataset converts all the by-time-of-day skim variables into three dimensional arrays (o,d,time). So without this, in the example the OMX files essentially have two different sets of data for the same named variable, one two-dimension BIKE_TIME, and one three-dimension BIKE_TIME, which coincidentally happens to have no variance across the temporal dimension. We can't have two variables in the same namespace with the same name, so one is overwritten.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened an issue #873 to address this.

This was referenced May 22, 2024
@jpn--
jpn-- merged commit 28a0ad0 into ActivitySim:mainJul 3, 2024
@jpn--jpn-- mentioned this pull request May 12, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jpn--@i-am-sijia@dhensle
, '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

Changes to support sharrow on 2-zone model - #867

Merged
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all
Jul 3, 2024
Merged

Changes to support sharrow on 2-zone model#867
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all

Conversation

@jpn--

@jpn--jpn-- commented May 6, 2024

Copy link
Copy Markdown
Member

This PR has a number of changes made in support of sharrow on the new "canonical" 2-zone example, although as it turns out none of these changes really alter how ActivitySim runs...

  • Add land_use_columns_orig setting to aggregate accessibility, to allow joins against both destination (previously available) and origin (new) land use attributes without convoluted hacks in the spec.
  • Add omx_ignore_patterns to State.settings, which allows us to ignore loading certain skim tables, either because they are problematic or just to save memory.
  • Update the minimum version for sharrow to 2.9.1 (for omx_ignore_patterns) and numba to 0.57 (to access np.nan_to_num as a numba function).
  • Improve runtime logging of sharrow and non-sharrow code to disambiguate interaction-simulate steps from simulate steps.
  • Improve debugging script that is activated in interaction-simulate steps only in sharrow test mode, when sharrow and non-sharrow utility functions differ.
  • Cleanly close opened OMX files instead of leaving open file handles lingering to be closed when Python shuts down.
  • Documentation updates
  • Change to test configs for joint_tour_frequency_composition to correct math errors in the model spec.

Comment threadconda-environments/docbuild.yml
This is useful if you have tables in your OMX file that you don't want to
read in. For example, if you have both time-of-day values and time-independent
values (e.g., "BIKE_TIME" and "BIKE_TIME__AM"), you can ignore the time-of-day
values by setting this to ["BIKE_TIME__.+"].

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this required for sharrow? If so, I think we need to put an assert statement in the skim read for sharrow somewhere that will prevent this from happening and provide some info to the user about the error.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, not for sharrow per se, but the SkimDataset converts all the by-time-of-day skim variables into three dimensional arrays (o,d,time). So without this, in the example the OMX files essentially have two different sets of data for the same named variable, one two-dimension BIKE_TIME, and one three-dimension BIKE_TIME, which coincidentally happens to have no variance across the temporal dimension. We can't have two variables in the same namespace with the same name, so one is overwritten.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened an issue #873 to address this.

This was referenced May 22, 2024
@jpn--
jpn-- merged commit 28a0ad0 into ActivitySim:mainJul 3, 2024
@jpn--jpn-- mentioned this pull request May 12, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jpn--@i-am-sijia@dhensle
, '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

Changes to support sharrow on 2-zone model - #867

Merged
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all
Jul 3, 2024
Merged

Changes to support sharrow on 2-zone model#867
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all

Conversation

@jpn--

@jpn--jpn-- commented May 6, 2024

Copy link
Copy Markdown
Member

This PR has a number of changes made in support of sharrow on the new "canonical" 2-zone example, although as it turns out none of these changes really alter how ActivitySim runs...

  • Add land_use_columns_orig setting to aggregate accessibility, to allow joins against both destination (previously available) and origin (new) land use attributes without convoluted hacks in the spec.
  • Add omx_ignore_patterns to State.settings, which allows us to ignore loading certain skim tables, either because they are problematic or just to save memory.
  • Update the minimum version for sharrow to 2.9.1 (for omx_ignore_patterns) and numba to 0.57 (to access np.nan_to_num as a numba function).
  • Improve runtime logging of sharrow and non-sharrow code to disambiguate interaction-simulate steps from simulate steps.
  • Improve debugging script that is activated in interaction-simulate steps only in sharrow test mode, when sharrow and non-sharrow utility functions differ.
  • Cleanly close opened OMX files instead of leaving open file handles lingering to be closed when Python shuts down.
  • Documentation updates
  • Change to test configs for joint_tour_frequency_composition to correct math errors in the model spec.

Comment threadconda-environments/docbuild.yml
This is useful if you have tables in your OMX file that you don't want to
read in. For example, if you have both time-of-day values and time-independent
values (e.g., "BIKE_TIME" and "BIKE_TIME__AM"), you can ignore the time-of-day
values by setting this to ["BIKE_TIME__.+"].

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this required for sharrow? If so, I think we need to put an assert statement in the skim read for sharrow somewhere that will prevent this from happening and provide some info to the user about the error.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, not for sharrow per se, but the SkimDataset converts all the by-time-of-day skim variables into three dimensional arrays (o,d,time). So without this, in the example the OMX files essentially have two different sets of data for the same named variable, one two-dimension BIKE_TIME, and one three-dimension BIKE_TIME, which coincidentally happens to have no variance across the temporal dimension. We can't have two variables in the same namespace with the same name, so one is overwritten.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened an issue #873 to address this.

This was referenced May 22, 2024
@jpn--
jpn-- merged commit 28a0ad0 into ActivitySim:mainJul 3, 2024
@jpn--jpn-- mentioned this pull request May 12, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jpn--@i-am-sijia@dhensle
, '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

Changes to support sharrow on 2-zone model - #867

Merged
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all
Jul 3, 2024
Merged

Changes to support sharrow on 2-zone model#867
jpn-- merged 48 commits into
ActivitySim:mainfrom
camsys:sharrow-fix-all

Conversation

@jpn--

@jpn--jpn-- commented May 6, 2024

Copy link
Copy Markdown
Member

This PR has a number of changes made in support of sharrow on the new "canonical" 2-zone example, although as it turns out none of these changes really alter how ActivitySim runs...

  • Add land_use_columns_orig setting to aggregate accessibility, to allow joins against both destination (previously available) and origin (new) land use attributes without convoluted hacks in the spec.
  • Add omx_ignore_patterns to State.settings, which allows us to ignore loading certain skim tables, either because they are problematic or just to save memory.
  • Update the minimum version for sharrow to 2.9.1 (for omx_ignore_patterns) and numba to 0.57 (to access np.nan_to_num as a numba function).
  • Improve runtime logging of sharrow and non-sharrow code to disambiguate interaction-simulate steps from simulate steps.
  • Improve debugging script that is activated in interaction-simulate steps only in sharrow test mode, when sharrow and non-sharrow utility functions differ.
  • Cleanly close opened OMX files instead of leaving open file handles lingering to be closed when Python shuts down.
  • Documentation updates
  • Change to test configs for joint_tour_frequency_composition to correct math errors in the model spec.

Comment threadconda-environments/docbuild.yml
This is useful if you have tables in your OMX file that you don't want to
read in. For example, if you have both time-of-day values and time-independent
values (e.g., "BIKE_TIME" and "BIKE_TIME__AM"), you can ignore the time-of-day
values by setting this to ["BIKE_TIME__.+"].

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this required for sharrow? If so, I think we need to put an assert statement in the skim read for sharrow somewhere that will prevent this from happening and provide some info to the user about the error.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, not for sharrow per se, but the SkimDataset converts all the by-time-of-day skim variables into three dimensional arrays (o,d,time). So without this, in the example the OMX files essentially have two different sets of data for the same named variable, one two-dimension BIKE_TIME, and one three-dimension BIKE_TIME, which coincidentally happens to have no variance across the temporal dimension. We can't have two variables in the same namespace with the same name, so one is overwritten.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened an issue #873 to address this.

This was referenced May 22, 2024
@jpn--
jpn-- merged commit 28a0ad0 into ActivitySim:mainJul 3, 2024
@jpn--jpn-- mentioned this pull request May 12, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jpn--@i-am-sijia@dhensle