Repository files navigation

openspace_rvdata

BinderZenodoPyPI version

Ship track plots for OpenSpace pulling data from https://www.rvdata.us.

image

Minimum Working Example

Here's a snippet to pull data for RR2402.

import openspace_rvdata.r2r2df as r2r
import openspace_rvdata.tracks as trk
cruise_id = "RR2402"
url = r2r.get_r2r_url(cruise_id)
mdf = r2r.get_cruise_metadata(url)
gdf = r2r.get_cruise_nav(cruise_id)
trk.get_cruise_asset(mdf)
trk.get_cruise_keyframes("tmp/"+cruise_id+"_1min.geoCSV")

This will generate two dataframes: mdf, containing metadata, and gdf, containing time-referenced coordinates. It will save the data in geoCSV format to a local folder /tmp, along with the two OpenSpace assets required to view the cruise data in OpenSpace: RR2402.asset (metadata) and RR2402_keyframes.asset (coordinates).

Once you have generated the assets, you can import them into OpenSpace by dragging and dropping the assets. You can also move them into your local OpenSpace asset directory and add them to your profile. Refer to the OpenSpace documentation for more information about creation and import of assets.

Software Architecture

The highlighted blocks are OpenSpace assets.

flowchart TD
n1["cruise_id, DOI or vessel name"] --> n2["get_r2r_url"]
n2 -- url --> n3["get_cruise_metadata"]
n3 -- mdf --> n4["get_cruise_asset"]
n4 --> n5["cruise_id.asset"]
n6["cruise_id, sampling rate"] --> n7["get_cruise_nav"]
n7 --> n8["geoCSV"]
n8 --> n9["geocsv2geojson"] & n10["cruise_id.geojson"] & n11("plotly.express") & n13["get_cruise_keyframes"]
n9 --> n10
n11 --> n12[".html"]
n13 --> n14["cruise_id_keyframes.asset"]
n1@{ shape: manual-input}
n2@{ shape: process}
n5@{ shape: document}
n6@{ shape: manual-input}
n8@{ shape: document}
n9@{ shape:document}
n10@{ shape: document}
n12@{ shape: docs}
n14@{ shape: document}
click n1 "https://www.rvdata.us/search/cruise/RR2402"
style n5 fill:#669,stroke:#333,stroke-width:4px
style n14 fill:#669,stroke:#333,stroke-width:4px
Loading

Acknowledgments

Many thanks to the members of the OpenSpace Slack, particularly Alex Bock (Linköping University), Micah Acinapura (American Museum of Natural History) and James Hedberg (CCNY Planetarium), who provided guidance and example code.

Disclaimers

Google Gemini was used to prototype the code in this repository. The authors are not affiliated with OpenSpace or R2R.

Citations

  • A. Bock et al., "OpenSpace: A System for Astrographics," in IEEE Transactions on Visualization and Computer Graphics, vol. 26, no. 1, pp. 633-642, Jan. 2020, doi: 10.1109/TVCG.2019.2934259.
  • Rolling Deck to Repository: Supporting the marine science community with data management services from academic research expeditions, Carbotte, S.M., O’Hara, S., Stocks, K., Clark, P., Stolp, L., Smith, S.R., Briggs, K., Hudak, R., Miller, E., Olson, C.J., Shane, N., Uribe, R., Arko, R., Chandler, C.L., Ferrini, V., Miller, S.P., Doyle, A., Holik, J. Frontiers in Marine Science, 9, p.1012756. 2022
  • Plotly Technologies Inc. Collaborative data science. Montréal, QC, 2015. https://plot.ly.

About

Python library to generate assets for OpenSpace from rvdata.us.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, '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

Repository files navigation

openspace_rvdata

BinderZenodoPyPI version

Ship track plots for OpenSpace pulling data from https://www.rvdata.us.

image

Minimum Working Example

Here's a snippet to pull data for RR2402.

import openspace_rvdata.r2r2df as r2r
import openspace_rvdata.tracks as trk
cruise_id = "RR2402"
url = r2r.get_r2r_url(cruise_id)
mdf = r2r.get_cruise_metadata(url)
gdf = r2r.get_cruise_nav(cruise_id)
trk.get_cruise_asset(mdf)
trk.get_cruise_keyframes("tmp/"+cruise_id+"_1min.geoCSV")

This will generate two dataframes: mdf, containing metadata, and gdf, containing time-referenced coordinates. It will save the data in geoCSV format to a local folder /tmp, along with the two OpenSpace assets required to view the cruise data in OpenSpace: RR2402.asset (metadata) and RR2402_keyframes.asset (coordinates).

Once you have generated the assets, you can import them into OpenSpace by dragging and dropping the assets. You can also move them into your local OpenSpace asset directory and add them to your profile. Refer to the OpenSpace documentation for more information about creation and import of assets.

Software Architecture

The highlighted blocks are OpenSpace assets.

flowchart TD
n1["cruise_id, DOI or vessel name"] --> n2["get_r2r_url"]
n2 -- url --> n3["get_cruise_metadata"]
n3 -- mdf --> n4["get_cruise_asset"]
n4 --> n5["cruise_id.asset"]
n6["cruise_id, sampling rate"] --> n7["get_cruise_nav"]
n7 --> n8["geoCSV"]
n8 --> n9["geocsv2geojson"] & n10["cruise_id.geojson"] & n11("plotly.express") & n13["get_cruise_keyframes"]
n9 --> n10
n11 --> n12[".html"]
n13 --> n14["cruise_id_keyframes.asset"]
n1@{ shape: manual-input}
n2@{ shape: process}
n5@{ shape: document}
n6@{ shape: manual-input}
n8@{ shape: document}
n9@{ shape:document}
n10@{ shape: document}
n12@{ shape: docs}
n14@{ shape: document}
click n1 "https://www.rvdata.us/search/cruise/RR2402"
style n5 fill:#669,stroke:#333,stroke-width:4px
style n14 fill:#669,stroke:#333,stroke-width:4px
Loading

Acknowledgments

Many thanks to the members of the OpenSpace Slack, particularly Alex Bock (Linköping University), Micah Acinapura (American Museum of Natural History) and James Hedberg (CCNY Planetarium), who provided guidance and example code.

Disclaimers

Google Gemini was used to prototype the code in this repository. The authors are not affiliated with OpenSpace or R2R.

Citations

  • A. Bock et al., "OpenSpace: A System for Astrographics," in IEEE Transactions on Visualization and Computer Graphics, vol. 26, no. 1, pp. 633-642, Jan. 2020, doi: 10.1109/TVCG.2019.2934259.
  • Rolling Deck to Repository: Supporting the marine science community with data management services from academic research expeditions, Carbotte, S.M., O’Hara, S., Stocks, K., Clark, P., Stolp, L., Smith, S.R., Briggs, K., Hudak, R., Miller, E., Olson, C.J., Shane, N., Uribe, R., Arko, R., Chandler, C.L., Ferrini, V., Miller, S.P., Doyle, A., Holik, J. Frontiers in Marine Science, 9, p.1012756. 2022
  • Plotly Technologies Inc. Collaborative data science. Montréal, QC, 2015. https://plot.ly.

About

Python library to generate assets for OpenSpace from rvdata.us.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, '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

Repository files navigation

openspace_rvdata

BinderZenodoPyPI version

Ship track plots for OpenSpace pulling data from https://www.rvdata.us.

image

Minimum Working Example

Here's a snippet to pull data for RR2402.

import openspace_rvdata.r2r2df as r2r
import openspace_rvdata.tracks as trk
cruise_id = "RR2402"
url = r2r.get_r2r_url(cruise_id)
mdf = r2r.get_cruise_metadata(url)
gdf = r2r.get_cruise_nav(cruise_id)
trk.get_cruise_asset(mdf)
trk.get_cruise_keyframes("tmp/"+cruise_id+"_1min.geoCSV")

This will generate two dataframes: mdf, containing metadata, and gdf, containing time-referenced coordinates. It will save the data in geoCSV format to a local folder /tmp, along with the two OpenSpace assets required to view the cruise data in OpenSpace: RR2402.asset (metadata) and RR2402_keyframes.asset (coordinates).

Once you have generated the assets, you can import them into OpenSpace by dragging and dropping the assets. You can also move them into your local OpenSpace asset directory and add them to your profile. Refer to the OpenSpace documentation for more information about creation and import of assets.

Software Architecture

The highlighted blocks are OpenSpace assets.

flowchart TD
n1["cruise_id, DOI or vessel name"] --> n2["get_r2r_url"]
n2 -- url --> n3["get_cruise_metadata"]
n3 -- mdf --> n4["get_cruise_asset"]
n4 --> n5["cruise_id.asset"]
n6["cruise_id, sampling rate"] --> n7["get_cruise_nav"]
n7 --> n8["geoCSV"]
n8 --> n9["geocsv2geojson"] & n10["cruise_id.geojson"] & n11("plotly.express") & n13["get_cruise_keyframes"]
n9 --> n10
n11 --> n12[".html"]
n13 --> n14["cruise_id_keyframes.asset"]
n1@{ shape: manual-input}
n2@{ shape: process}
n5@{ shape: document}
n6@{ shape: manual-input}
n8@{ shape: document}
n9@{ shape:document}
n10@{ shape: document}
n12@{ shape: docs}
n14@{ shape: document}
click n1 "https://www.rvdata.us/search/cruise/RR2402"
style n5 fill:#669,stroke:#333,stroke-width:4px
style n14 fill:#669,stroke:#333,stroke-width:4px
Loading

Acknowledgments

Many thanks to the members of the OpenSpace Slack, particularly Alex Bock (Linköping University), Micah Acinapura (American Museum of Natural History) and James Hedberg (CCNY Planetarium), who provided guidance and example code.

Disclaimers

Google Gemini was used to prototype the code in this repository. The authors are not affiliated with OpenSpace or R2R.

Citations

  • A. Bock et al., "OpenSpace: A System for Astrographics," in IEEE Transactions on Visualization and Computer Graphics, vol. 26, no. 1, pp. 633-642, Jan. 2020, doi: 10.1109/TVCG.2019.2934259.
  • Rolling Deck to Repository: Supporting the marine science community with data management services from academic research expeditions, Carbotte, S.M., O’Hara, S., Stocks, K., Clark, P., Stolp, L., Smith, S.R., Briggs, K., Hudak, R., Miller, E., Olson, C.J., Shane, N., Uribe, R., Arko, R., Chandler, C.L., Ferrini, V., Miller, S.P., Doyle, A., Holik, J. Frontiers in Marine Science, 9, p.1012756. 2022
  • Plotly Technologies Inc. Collaborative data science. Montréal, QC, 2015. https://plot.ly.

About

Python library to generate assets for OpenSpace from rvdata.us.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, '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

Repository files navigation

openspace_rvdata

BinderZenodoPyPI version

Ship track plots for OpenSpace pulling data from https://www.rvdata.us.

image

Minimum Working Example

Here's a snippet to pull data for RR2402.

import openspace_rvdata.r2r2df as r2r
import openspace_rvdata.tracks as trk
cruise_id = "RR2402"
url = r2r.get_r2r_url(cruise_id)
mdf = r2r.get_cruise_metadata(url)
gdf = r2r.get_cruise_nav(cruise_id)
trk.get_cruise_asset(mdf)
trk.get_cruise_keyframes("tmp/"+cruise_id+"_1min.geoCSV")

This will generate two dataframes: mdf, containing metadata, and gdf, containing time-referenced coordinates. It will save the data in geoCSV format to a local folder /tmp, along with the two OpenSpace assets required to view the cruise data in OpenSpace: RR2402.asset (metadata) and RR2402_keyframes.asset (coordinates).

Once you have generated the assets, you can import them into OpenSpace by dragging and dropping the assets. You can also move them into your local OpenSpace asset directory and add them to your profile. Refer to the OpenSpace documentation for more information about creation and import of assets.

Software Architecture

The highlighted blocks are OpenSpace assets.

flowchart TD
n1["cruise_id, DOI or vessel name"] --> n2["get_r2r_url"]
n2 -- url --> n3["get_cruise_metadata"]
n3 -- mdf --> n4["get_cruise_asset"]
n4 --> n5["cruise_id.asset"]
n6["cruise_id, sampling rate"] --> n7["get_cruise_nav"]
n7 --> n8["geoCSV"]
n8 --> n9["geocsv2geojson"] & n10["cruise_id.geojson"] & n11("plotly.express") & n13["get_cruise_keyframes"]
n9 --> n10
n11 --> n12[".html"]
n13 --> n14["cruise_id_keyframes.asset"]
n1@{ shape: manual-input}
n2@{ shape: process}
n5@{ shape: document}
n6@{ shape: manual-input}
n8@{ shape: document}
n9@{ shape:document}
n10@{ shape: document}
n12@{ shape: docs}
n14@{ shape: document}
click n1 "https://www.rvdata.us/search/cruise/RR2402"
style n5 fill:#669,stroke:#333,stroke-width:4px
style n14 fill:#669,stroke:#333,stroke-width:4px
Loading

Acknowledgments

Many thanks to the members of the OpenSpace Slack, particularly Alex Bock (Linköping University), Micah Acinapura (American Museum of Natural History) and James Hedberg (CCNY Planetarium), who provided guidance and example code.

Disclaimers

Google Gemini was used to prototype the code in this repository. The authors are not affiliated with OpenSpace or R2R.

Citations

  • A. Bock et al., "OpenSpace: A System for Astrographics," in IEEE Transactions on Visualization and Computer Graphics, vol. 26, no. 1, pp. 633-642, Jan. 2020, doi: 10.1109/TVCG.2019.2934259.
  • Rolling Deck to Repository: Supporting the marine science community with data management services from academic research expeditions, Carbotte, S.M., O’Hara, S., Stocks, K., Clark, P., Stolp, L., Smith, S.R., Briggs, K., Hudak, R., Miller, E., Olson, C.J., Shane, N., Uribe, R., Arko, R., Chandler, C.L., Ferrini, V., Miller, S.P., Doyle, A., Holik, J. Frontiers in Marine Science, 9, p.1012756. 2022
  • Plotly Technologies Inc. Collaborative data science. Montréal, QC, 2015. https://plot.ly.

About

Python library to generate assets for OpenSpace from rvdata.us.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, '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

Repository files navigation

openspace_rvdata

BinderZenodoPyPI version

Ship track plots for OpenSpace pulling data from https://www.rvdata.us.

image

Minimum Working Example

Here's a snippet to pull data for RR2402.

import openspace_rvdata.r2r2df as r2r
import openspace_rvdata.tracks as trk
cruise_id = "RR2402"
url = r2r.get_r2r_url(cruise_id)
mdf = r2r.get_cruise_metadata(url)
gdf = r2r.get_cruise_nav(cruise_id)
trk.get_cruise_asset(mdf)
trk.get_cruise_keyframes("tmp/"+cruise_id+"_1min.geoCSV")

This will generate two dataframes: mdf, containing metadata, and gdf, containing time-referenced coordinates. It will save the data in geoCSV format to a local folder /tmp, along with the two OpenSpace assets required to view the cruise data in OpenSpace: RR2402.asset (metadata) and RR2402_keyframes.asset (coordinates).

Once you have generated the assets, you can import them into OpenSpace by dragging and dropping the assets. You can also move them into your local OpenSpace asset directory and add them to your profile. Refer to the OpenSpace documentation for more information about creation and import of assets.

Software Architecture

The highlighted blocks are OpenSpace assets.

flowchart TD
n1["cruise_id, DOI or vessel name"] --> n2["get_r2r_url"]
n2 -- url --> n3["get_cruise_metadata"]
n3 -- mdf --> n4["get_cruise_asset"]
n4 --> n5["cruise_id.asset"]
n6["cruise_id, sampling rate"] --> n7["get_cruise_nav"]
n7 --> n8["geoCSV"]
n8 --> n9["geocsv2geojson"] & n10["cruise_id.geojson"] & n11("plotly.express") & n13["get_cruise_keyframes"]
n9 --> n10
n11 --> n12[".html"]
n13 --> n14["cruise_id_keyframes.asset"]
n1@{ shape: manual-input}
n2@{ shape: process}
n5@{ shape: document}
n6@{ shape: manual-input}
n8@{ shape: document}
n9@{ shape:document}
n10@{ shape: document}
n12@{ shape: docs}
n14@{ shape: document}
click n1 "https://www.rvdata.us/search/cruise/RR2402"
style n5 fill:#669,stroke:#333,stroke-width:4px
style n14 fill:#669,stroke:#333,stroke-width:4px
Loading

Acknowledgments

Many thanks to the members of the OpenSpace Slack, particularly Alex Bock (Linköping University), Micah Acinapura (American Museum of Natural History) and James Hedberg (CCNY Planetarium), who provided guidance and example code.

Disclaimers

Google Gemini was used to prototype the code in this repository. The authors are not affiliated with OpenSpace or R2R.

Citations

  • A. Bock et al., "OpenSpace: A System for Astrographics," in IEEE Transactions on Visualization and Computer Graphics, vol. 26, no. 1, pp. 633-642, Jan. 2020, doi: 10.1109/TVCG.2019.2934259.
  • Rolling Deck to Repository: Supporting the marine science community with data management services from academic research expeditions, Carbotte, S.M., O’Hara, S., Stocks, K., Clark, P., Stolp, L., Smith, S.R., Briggs, K., Hudak, R., Miller, E., Olson, C.J., Shane, N., Uribe, R., Arko, R., Chandler, C.L., Ferrini, V., Miller, S.P., Doyle, A., Holik, J. Frontiers in Marine Science, 9, p.1012756. 2022
  • Plotly Technologies Inc. Collaborative data science. Montréal, QC, 2015. https://plot.ly.

About

Python library to generate assets for OpenSpace from rvdata.us.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, '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

Repository files navigation

openspace_rvdata

BinderZenodoPyPI version

Ship track plots for OpenSpace pulling data from https://www.rvdata.us.

image

Minimum Working Example

Here's a snippet to pull data for RR2402.

import openspace_rvdata.r2r2df as r2r
import openspace_rvdata.tracks as trk
cruise_id = "RR2402"
url = r2r.get_r2r_url(cruise_id)
mdf = r2r.get_cruise_metadata(url)
gdf = r2r.get_cruise_nav(cruise_id)
trk.get_cruise_asset(mdf)
trk.get_cruise_keyframes("tmp/"+cruise_id+"_1min.geoCSV")

This will generate two dataframes: mdf, containing metadata, and gdf, containing time-referenced coordinates. It will save the data in geoCSV format to a local folder /tmp, along with the two OpenSpace assets required to view the cruise data in OpenSpace: RR2402.asset (metadata) and RR2402_keyframes.asset (coordinates).

Once you have generated the assets, you can import them into OpenSpace by dragging and dropping the assets. You can also move them into your local OpenSpace asset directory and add them to your profile. Refer to the OpenSpace documentation for more information about creation and import of assets.

Software Architecture

The highlighted blocks are OpenSpace assets.

flowchart TD
n1["cruise_id, DOI or vessel name"] --> n2["get_r2r_url"]
n2 -- url --> n3["get_cruise_metadata"]
n3 -- mdf --> n4["get_cruise_asset"]
n4 --> n5["cruise_id.asset"]
n6["cruise_id, sampling rate"] --> n7["get_cruise_nav"]
n7 --> n8["geoCSV"]
n8 --> n9["geocsv2geojson"] & n10["cruise_id.geojson"] & n11("plotly.express") & n13["get_cruise_keyframes"]
n9 --> n10
n11 --> n12[".html"]
n13 --> n14["cruise_id_keyframes.asset"]
n1@{ shape: manual-input}
n2@{ shape: process}
n5@{ shape: document}
n6@{ shape: manual-input}
n8@{ shape: document}
n9@{ shape:document}
n10@{ shape: document}
n12@{ shape: docs}
n14@{ shape: document}
click n1 "https://www.rvdata.us/search/cruise/RR2402"
style n5 fill:#669,stroke:#333,stroke-width:4px
style n14 fill:#669,stroke:#333,stroke-width:4px
Loading

Acknowledgments

Many thanks to the members of the OpenSpace Slack, particularly Alex Bock (Linköping University), Micah Acinapura (American Museum of Natural History) and James Hedberg (CCNY Planetarium), who provided guidance and example code.

Disclaimers

Google Gemini was used to prototype the code in this repository. The authors are not affiliated with OpenSpace or R2R.

Citations

  • A. Bock et al., "OpenSpace: A System for Astrographics," in IEEE Transactions on Visualization and Computer Graphics, vol. 26, no. 1, pp. 633-642, Jan. 2020, doi: 10.1109/TVCG.2019.2934259.
  • Rolling Deck to Repository: Supporting the marine science community with data management services from academic research expeditions, Carbotte, S.M., O’Hara, S., Stocks, K., Clark, P., Stolp, L., Smith, S.R., Briggs, K., Hudak, R., Miller, E., Olson, C.J., Shane, N., Uribe, R., Arko, R., Chandler, C.L., Ferrini, V., Miller, S.P., Doyle, A., Holik, J. Frontiers in Marine Science, 9, p.1012756. 2022
  • Plotly Technologies Inc. Collaborative data science. Montréal, QC, 2015. https://plot.ly.

About

Python library to generate assets for OpenSpace from rvdata.us.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, '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

Repository files navigation

openspace_rvdata

BinderZenodoPyPI version

Ship track plots for OpenSpace pulling data from https://www.rvdata.us.

image

Minimum Working Example

Here's a snippet to pull data for RR2402.

import openspace_rvdata.r2r2df as r2r
import openspace_rvdata.tracks as trk
cruise_id = "RR2402"
url = r2r.get_r2r_url(cruise_id)
mdf = r2r.get_cruise_metadata(url)
gdf = r2r.get_cruise_nav(cruise_id)
trk.get_cruise_asset(mdf)
trk.get_cruise_keyframes("tmp/"+cruise_id+"_1min.geoCSV")

This will generate two dataframes: mdf, containing metadata, and gdf, containing time-referenced coordinates. It will save the data in geoCSV format to a local folder /tmp, along with the two OpenSpace assets required to view the cruise data in OpenSpace: RR2402.asset (metadata) and RR2402_keyframes.asset (coordinates).

Once you have generated the assets, you can import them into OpenSpace by dragging and dropping the assets. You can also move them into your local OpenSpace asset directory and add them to your profile. Refer to the OpenSpace documentation for more information about creation and import of assets.

Software Architecture

The highlighted blocks are OpenSpace assets.

flowchart TD
n1["cruise_id, DOI or vessel name"] --> n2["get_r2r_url"]
n2 -- url --> n3["get_cruise_metadata"]
n3 -- mdf --> n4["get_cruise_asset"]
n4 --> n5["cruise_id.asset"]
n6["cruise_id, sampling rate"] --> n7["get_cruise_nav"]
n7 --> n8["geoCSV"]
n8 --> n9["geocsv2geojson"] & n10["cruise_id.geojson"] & n11("plotly.express") & n13["get_cruise_keyframes"]
n9 --> n10
n11 --> n12[".html"]
n13 --> n14["cruise_id_keyframes.asset"]
n1@{ shape: manual-input}
n2@{ shape: process}
n5@{ shape: document}
n6@{ shape: manual-input}
n8@{ shape: document}
n9@{ shape:document}
n10@{ shape: document}
n12@{ shape: docs}
n14@{ shape: document}
click n1 "https://www.rvdata.us/search/cruise/RR2402"
style n5 fill:#669,stroke:#333,stroke-width:4px
style n14 fill:#669,stroke:#333,stroke-width:4px
Loading

Acknowledgments

Many thanks to the members of the OpenSpace Slack, particularly Alex Bock (Linköping University), Micah Acinapura (American Museum of Natural History) and James Hedberg (CCNY Planetarium), who provided guidance and example code.

Disclaimers

Google Gemini was used to prototype the code in this repository. The authors are not affiliated with OpenSpace or R2R.

Citations

  • A. Bock et al., "OpenSpace: A System for Astrographics," in IEEE Transactions on Visualization and Computer Graphics, vol. 26, no. 1, pp. 633-642, Jan. 2020, doi: 10.1109/TVCG.2019.2934259.
  • Rolling Deck to Repository: Supporting the marine science community with data management services from academic research expeditions, Carbotte, S.M., O’Hara, S., Stocks, K., Clark, P., Stolp, L., Smith, S.R., Briggs, K., Hudak, R., Miller, E., Olson, C.J., Shane, N., Uribe, R., Arko, R., Chandler, C.L., Ferrini, V., Miller, S.P., Doyle, A., Holik, J. Frontiers in Marine Science, 9, p.1012756. 2022
  • Plotly Technologies Inc. Collaborative data science. Montréal, QC, 2015. https://plot.ly.

About

Python library to generate assets for OpenSpace from rvdata.us.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

, '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

Repository files navigation

openspace_rvdata

BinderZenodoPyPI version

Ship track plots for OpenSpace pulling data from https://www.rvdata.us.

image

Minimum Working Example

Here's a snippet to pull data for RR2402.

import openspace_rvdata.r2r2df as r2r
import openspace_rvdata.tracks as trk
cruise_id = "RR2402"
url = r2r.get_r2r_url(cruise_id)
mdf = r2r.get_cruise_metadata(url)
gdf = r2r.get_cruise_nav(cruise_id)
trk.get_cruise_asset(mdf)
trk.get_cruise_keyframes("tmp/"+cruise_id+"_1min.geoCSV")

This will generate two dataframes: mdf, containing metadata, and gdf, containing time-referenced coordinates. It will save the data in geoCSV format to a local folder /tmp, along with the two OpenSpace assets required to view the cruise data in OpenSpace: RR2402.asset (metadata) and RR2402_keyframes.asset (coordinates).

Once you have generated the assets, you can import them into OpenSpace by dragging and dropping the assets. You can also move them into your local OpenSpace asset directory and add them to your profile. Refer to the OpenSpace documentation for more information about creation and import of assets.

Software Architecture

The highlighted blocks are OpenSpace assets.

flowchart TD
n1["cruise_id, DOI or vessel name"] --> n2["get_r2r_url"]
n2 -- url --> n3["get_cruise_metadata"]
n3 -- mdf --> n4["get_cruise_asset"]
n4 --> n5["cruise_id.asset"]
n6["cruise_id, sampling rate"] --> n7["get_cruise_nav"]
n7 --> n8["geoCSV"]
n8 --> n9["geocsv2geojson"] & n10["cruise_id.geojson"] & n11("plotly.express") & n13["get_cruise_keyframes"]
n9 --> n10
n11 --> n12[".html"]
n13 --> n14["cruise_id_keyframes.asset"]
n1@{ shape: manual-input}
n2@{ shape: process}
n5@{ shape: document}
n6@{ shape: manual-input}
n8@{ shape: document}
n9@{ shape:document}
n10@{ shape: document}
n12@{ shape: docs}
n14@{ shape: document}
click n1 "https://www.rvdata.us/search/cruise/RR2402"
style n5 fill:#669,stroke:#333,stroke-width:4px
style n14 fill:#669,stroke:#333,stroke-width:4px
Loading

Acknowledgments

Many thanks to the members of the OpenSpace Slack, particularly Alex Bock (Linköping University), Micah Acinapura (American Museum of Natural History) and James Hedberg (CCNY Planetarium), who provided guidance and example code.

Disclaimers

Google Gemini was used to prototype the code in this repository. The authors are not affiliated with OpenSpace or R2R.

Citations

  • A. Bock et al., "OpenSpace: A System for Astrographics," in IEEE Transactions on Visualization and Computer Graphics, vol. 26, no. 1, pp. 633-642, Jan. 2020, doi: 10.1109/TVCG.2019.2934259.
  • Rolling Deck to Repository: Supporting the marine science community with data management services from academic research expeditions, Carbotte, S.M., O’Hara, S., Stocks, K., Clark, P., Stolp, L., Smith, S.R., Briggs, K., Hudak, R., Miller, E., Olson, C.J., Shane, N., Uribe, R., Arko, R., Chandler, C.L., Ferrini, V., Miller, S.P., Doyle, A., Holik, J. Frontiers in Marine Science, 9, p.1012756. 2022
  • Plotly Technologies Inc. Collaborative data science. Montréal, QC, 2015. https://plot.ly.

About

Python library to generate assets for OpenSpace from rvdata.us.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages