diff --git a/book/tutorials/IS2_cloud_Landsat_integration.ipynb b/book/tutorials/IS2_cloud_Landsat_integration.ipynb index a15b9bd..ffdabe2 100644 --- a/book/tutorials/IS2_cloud_Landsat_integration.ipynb +++ b/book/tutorials/IS2_cloud_Landsat_integration.ipynb @@ -87,13 +87,13 @@ " }\n", "\n", " var force = true;\n", + " var py_version = '3.2.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n", + " var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n", + " var reloading = false;\n", + " var Bokeh = root.Bokeh;\n", + " var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", "\n", - " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", - " root._bokeh_onload_callbacks = [];\n", - " root._bokeh_is_loading = undefined;\n", - " }\n", - "\n", - " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", + " if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", @@ -105,26 +105,30 @@ " callback();\n", " });\n", " } finally {\n", - " delete root._bokeh_onload_callbacks\n", + " delete root._bokeh_onload_callbacks;\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", - " function load_libs(css_urls, js_urls, js_modules, callback) {\n", + " function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", " if (js_modules == null) js_modules = [];\n", + " if (js_exports == null) js_exports = {};\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", + "\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", - " if (js_urls.length === 0 && js_modules.length === 0) {\n", + " if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", - " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " if (!reloading) {\n", + " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " }\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", @@ -133,26 +137,37 @@ " run_callbacks()\n", " }\n", " }\n", + " window._bokeh_on_load = on_load\n", "\n", " function on_error() {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", - " for (var i = 0; i < css_urls.length; i++) {\n", - " var url = css_urls[i];\n", - " const element = document.createElement(\"link\");\n", - " element.onload = on_load;\n", - " element.onerror = on_error;\n", - " element.rel = \"stylesheet\";\n", - " element.type = \"text/css\";\n", - " element.href = url;\n", - " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", - " document.body.appendChild(element);\n", - " }\n", - "\n", " var skip = [];\n", " if (window.requirejs) {\n", - " window.requirejs.config({'packages': {}, 'paths': {'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@4.2.5/dist/gridstack-h5', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'gridstack': {'exports': 'GridStack'}}});\n", + " window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n", + " require([\"jspanel\"], function(jsPanel) {\n", + "\twindow.jsPanel = jsPanel\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-modal\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-tooltip\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-hint\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-layout\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-contextmenu\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-dock\"], function() {\n", + "\ton_load()\n", + " })\n", " require([\"gridstack\"], function(GridStack) {\n", "\twindow.GridStack = GridStack\n", "\ton_load()\n", @@ -160,22 +175,59 @@ " require([\"notyf\"], function() {\n", "\ton_load()\n", " })\n", - " root._bokeh_is_loading = css_urls.length + 2;\n", + " root._bokeh_is_loading = css_urls.length + 9;\n", " } else {\n", - " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n", + " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n", + " }\n", + "\n", + " var existing_stylesheets = []\n", + " var links = document.getElementsByTagName('link')\n", + " for (var i = 0; i < links.length; i++) {\n", + " var link = links[i]\n", + " if (link.href != null) {\n", + "\texisting_stylesheets.push(link.href)\n", + " }\n", + " }\n", + " for (var i = 0; i < css_urls.length; i++) {\n", + " var url = css_urls[i];\n", + " if (existing_stylesheets.indexOf(url) !== -1) {\n", + "\ton_load()\n", + "\tcontinue;\n", + " }\n", + " const element = document.createElement(\"link\");\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.rel = \"stylesheet\";\n", + " element.type = \"text/css\";\n", + " element.href = url;\n", + " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", + " document.body.appendChild(element);\n", + " } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n", + " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n", + " for (var i = 0; i < urls.length; i++) {\n", + " skip.push(urls[i])\n", + " }\n", " } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n", - " var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/gridstack/gridstack@4.2.5/dist/gridstack-h5.js'];\n", + " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", " } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n", - " var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n", + " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", - " } for (var i = 0; i < js_urls.length; i++) {\n", + " } var existing_scripts = []\n", + " var scripts = document.getElementsByTagName('script')\n", + " for (var i = 0; i < scripts.length; i++) {\n", + " var script = scripts[i]\n", + " if (script.src != null) {\n", + "\texisting_scripts.push(script.src)\n", + " }\n", + " }\n", + " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", - " if (skip.indexOf(url) >= 0) {\n", + " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", "\tif (!window.requirejs) {\n", "\t on_load();\n", "\t}\n", @@ -191,7 +243,7 @@ " }\n", " for (var i = 0; i < js_modules.length; i++) {\n", " var url = js_modules[i];\n", - " if (skip.indexOf(url) >= 0) {\n", + " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", "\tif (!window.requirejs) {\n", "\t on_load();\n", "\t}\n", @@ -206,6 +258,26 @@ " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", + " for (const name in js_exports) {\n", + " var url = js_exports[name];\n", + " if (skip.indexOf(url) >= 0 || root[name] != null) {\n", + "\tif (!window.requirejs) {\n", + "\t on_load();\n", + "\t}\n", + "\tcontinue;\n", + " }\n", + " var element = document.createElement('script');\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.type = \"module\";\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " element.textContent = `\n", + " import ${name} from \"${url}\"\n", + " window.${name} = ${name}\n", + " window._bokeh_on_load()\n", + " `\n", + " document.head.appendChild(element);\n", + " }\n", " if (!js_urls.length && !js_modules.length) {\n", " on_load()\n", " }\n", @@ -217,12 +289,11 @@ " document.body.appendChild(element);\n", " }\n", "\n", - " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\", \"https://unpkg.com/@holoviz/panel@0.14.4/dist/panel.min.js\"];\n", + " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.2.2.min.js\", \"https://cdn.holoviz.org/panel/1.2.3/dist/panel.min.js\", \"https://cdn.jsdelivr.net/npm/@holoviz/geoviews@1.10.1/dist/geoviews.min.js\"];\n", " var js_modules = [];\n", - " var css_urls = [\"https://cdn.holoviz.org/panel/0.14.4/dist/css/alerts.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/card.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/dataframe.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/debugger.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/json.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/loading.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/markdown.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/widgets.css\"];\n", + " var js_exports = {};\n", + " var css_urls = [];\n", " var inline_js = [ function(Bokeh) {\n", - " inject_raw_css(\"\\n .bk.pn-loading.arc:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\\\");\\n background-size: auto calc(min(50%, 400px));\\n }\\n \");\n", - " }, function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {} // ensure no trailing comma for IE\n", @@ -232,26 +303,61 @@ " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", + " }\n", + " // Cache old bokeh versions\n", + " if (Bokeh != undefined && !reloading) {\n", + "\tvar NewBokeh = root.Bokeh;\n", + "\tif (Bokeh.versions === undefined) {\n", + "\t Bokeh.versions = new Map();\n", + "\t}\n", + "\tif (NewBokeh.version !== Bokeh.version) {\n", + "\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n", + "\t}\n", + "\troot.Bokeh = Bokeh;\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " }\n", + " root._bokeh_is_initializing = false\n", " }\n", "\n", - " if (root._bokeh_is_loading === 0) {\n", - " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", - " run_inline_js();\n", - " } else {\n", - " load_libs(css_urls, js_urls, js_modules, function() {\n", - " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", - " run_inline_js();\n", - " });\n", + " function load_or_wait() {\n", + " // Implement a backoff loop that tries to ensure we do not load multiple\n", + " // versions of Bokeh and its dependencies at the same time.\n", + " // In recent versions we use the root._bokeh_is_initializing flag\n", + " // to determine whether there is an ongoing attempt to initialize\n", + " // bokeh, however for backward compatibility we also try to ensure\n", + " // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n", + " // before older versions are fully initialized.\n", + " if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n", + " root._bokeh_is_initializing = false;\n", + " root._bokeh_onload_callbacks = undefined;\n", + " console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n", + " load_or_wait();\n", + " } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n", + " setTimeout(load_or_wait, 100);\n", + " } else {\n", + " Bokeh = root.Bokeh;\n", + " bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", + " root._bokeh_is_initializing = true\n", + " root._bokeh_onload_callbacks = []\n", + " if (!reloading && (!bokeh_loaded || is_dev)) {\n", + "\troot.Bokeh = undefined;\n", + " }\n", + " load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n", + "\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", + "\trun_inline_js();\n", + " });\n", + " }\n", " }\n", + " // Give older versions of the autoload script a head-start to ensure\n", + " // they initialize before we start loading newer version.\n", + " setTimeout(load_or_wait, 100)\n", "}(window));" ], - "application/vnd.holoviews_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@4.2.5/dist/gridstack-h5', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'gridstack': {'exports': 'GridStack'}}});\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 2;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/gridstack/gridstack@4.2.5/dist/gridstack-h5.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) >= 0) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) >= 0) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\", \"https://unpkg.com/@holoviz/panel@0.14.4/dist/panel.min.js\"];\n var js_modules = [];\n var css_urls = [\"https://cdn.holoviz.org/panel/0.14.4/dist/css/alerts.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/card.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/dataframe.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/debugger.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/json.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/loading.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/markdown.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/widgets.css\"];\n var inline_js = [ function(Bokeh) {\n inject_raw_css(\"\\n .bk.pn-loading.arc:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\\\");\\n background-size: auto calc(min(50%, 400px));\\n }\\n \");\n }, function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, js_modules, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" + "application/vnd.holoviews_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.2.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n var reloading = false;\n var Bokeh = root.Bokeh;\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.2.2.min.js\", \"https://cdn.holoviz.org/panel/1.2.3/dist/panel.min.js\", \"https://cdn.jsdelivr.net/npm/@holoviz/geoviews@1.10.1/dist/geoviews.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n Bokeh = root.Bokeh;\n bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n if (!reloading && (!bokeh_loaded || is_dev)) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));" }, "metadata": {}, "output_type": "display_data" @@ -507,10 +613,20 @@ { "data": { "text/html": [ - "" ] @@ -591,13 +707,13 @@ " }\n", "\n", " var force = true;\n", + " var py_version = '3.2.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n", + " var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n", + " var reloading = false;\n", + " var Bokeh = root.Bokeh;\n", + " var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", "\n", - " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", - " root._bokeh_onload_callbacks = [];\n", - " root._bokeh_is_loading = undefined;\n", - " }\n", - "\n", - " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", + " if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", @@ -609,26 +725,30 @@ " callback();\n", " });\n", " } finally {\n", - " delete root._bokeh_onload_callbacks\n", + " delete root._bokeh_onload_callbacks;\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", - " function load_libs(css_urls, js_urls, js_modules, callback) {\n", + " function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", " if (js_modules == null) js_modules = [];\n", + " if (js_exports == null) js_exports = {};\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", + "\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", - " if (js_urls.length === 0 && js_modules.length === 0) {\n", + " if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", - " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " if (!reloading) {\n", + " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " }\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", @@ -637,26 +757,37 @@ " run_callbacks()\n", " }\n", " }\n", + " window._bokeh_on_load = on_load\n", "\n", " function on_error() {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", - " for (var i = 0; i < css_urls.length; i++) {\n", - " var url = css_urls[i];\n", - " const element = document.createElement(\"link\");\n", - " element.onload = on_load;\n", - " element.onerror = on_error;\n", - " element.rel = \"stylesheet\";\n", - " element.type = \"text/css\";\n", - " element.href = url;\n", - " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", - " document.body.appendChild(element);\n", - " }\n", - "\n", " var skip = [];\n", " if (window.requirejs) {\n", - " window.requirejs.config({'packages': {}, 'paths': {'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@4.2.5/dist/gridstack-h5', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'gridstack': {'exports': 'GridStack'}}});\n", + " window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n", + " require([\"jspanel\"], function(jsPanel) {\n", + "\twindow.jsPanel = jsPanel\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-modal\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-tooltip\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-hint\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-layout\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-contextmenu\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-dock\"], function() {\n", + "\ton_load()\n", + " })\n", " require([\"gridstack\"], function(GridStack) {\n", "\twindow.GridStack = GridStack\n", "\ton_load()\n", @@ -664,22 +795,59 @@ " require([\"notyf\"], function() {\n", "\ton_load()\n", " })\n", - " root._bokeh_is_loading = css_urls.length + 2;\n", + " root._bokeh_is_loading = css_urls.length + 9;\n", " } else {\n", - " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n", + " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n", + " }\n", + "\n", + " var existing_stylesheets = []\n", + " var links = document.getElementsByTagName('link')\n", + " for (var i = 0; i < links.length; i++) {\n", + " var link = links[i]\n", + " if (link.href != null) {\n", + "\texisting_stylesheets.push(link.href)\n", + " }\n", + " }\n", + " for (var i = 0; i < css_urls.length; i++) {\n", + " var url = css_urls[i];\n", + " if (existing_stylesheets.indexOf(url) !== -1) {\n", + "\ton_load()\n", + "\tcontinue;\n", + " }\n", + " const element = document.createElement(\"link\");\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.rel = \"stylesheet\";\n", + " element.type = \"text/css\";\n", + " element.href = url;\n", + " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", + " document.body.appendChild(element);\n", + " } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n", + " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n", + " for (var i = 0; i < urls.length; i++) {\n", + " skip.push(urls[i])\n", + " }\n", " } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n", - " var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/gridstack/gridstack@4.2.5/dist/gridstack-h5.js'];\n", + " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", " } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n", - " var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n", + " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", - " } for (var i = 0; i < js_urls.length; i++) {\n", + " } var existing_scripts = []\n", + " var scripts = document.getElementsByTagName('script')\n", + " for (var i = 0; i < scripts.length; i++) {\n", + " var script = scripts[i]\n", + " if (script.src != null) {\n", + "\texisting_scripts.push(script.src)\n", + " }\n", + " }\n", + " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", - " if (skip.indexOf(url) >= 0) {\n", + " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", "\tif (!window.requirejs) {\n", "\t on_load();\n", "\t}\n", @@ -695,7 +863,7 @@ " }\n", " for (var i = 0; i < js_modules.length; i++) {\n", " var url = js_modules[i];\n", - " if (skip.indexOf(url) >= 0) {\n", + " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", "\tif (!window.requirejs) {\n", "\t on_load();\n", "\t}\n", @@ -710,6 +878,26 @@ " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", + " for (const name in js_exports) {\n", + " var url = js_exports[name];\n", + " if (skip.indexOf(url) >= 0 || root[name] != null) {\n", + "\tif (!window.requirejs) {\n", + "\t on_load();\n", + "\t}\n", + "\tcontinue;\n", + " }\n", + " var element = document.createElement('script');\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.type = \"module\";\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " element.textContent = `\n", + " import ${name} from \"${url}\"\n", + " window.${name} = ${name}\n", + " window._bokeh_on_load()\n", + " `\n", + " document.head.appendChild(element);\n", + " }\n", " if (!js_urls.length && !js_modules.length) {\n", " on_load()\n", " }\n", @@ -721,12 +909,11 @@ " document.body.appendChild(element);\n", " }\n", "\n", - " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\", \"https://unpkg.com/@holoviz/panel@0.14.4/dist/panel.min.js\"];\n", + " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.2.2.min.js\", \"https://cdn.holoviz.org/panel/1.2.3/dist/panel.min.js\", \"https://cdn.jsdelivr.net/npm/@holoviz/geoviews@1.10.1/dist/geoviews.min.js\"];\n", " var js_modules = [];\n", - " var css_urls = [\"https://cdn.holoviz.org/panel/0.14.4/dist/css/alerts.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/card.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/dataframe.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/debugger.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/json.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/loading.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/markdown.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/widgets.css\"];\n", + " var js_exports = {};\n", + " var css_urls = [];\n", " var inline_js = [ function(Bokeh) {\n", - " inject_raw_css(\"\\n .bk.pn-loading.arc:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\\\");\\n background-size: auto calc(min(50%, 400px));\\n }\\n \");\n", - " }, function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {} // ensure no trailing comma for IE\n", @@ -736,26 +923,61 @@ " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", + " }\n", + " // Cache old bokeh versions\n", + " if (Bokeh != undefined && !reloading) {\n", + "\tvar NewBokeh = root.Bokeh;\n", + "\tif (Bokeh.versions === undefined) {\n", + "\t Bokeh.versions = new Map();\n", + "\t}\n", + "\tif (NewBokeh.version !== Bokeh.version) {\n", + "\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n", + "\t}\n", + "\troot.Bokeh = Bokeh;\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " }\n", + " root._bokeh_is_initializing = false\n", " }\n", "\n", - " if (root._bokeh_is_loading === 0) {\n", - " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", - " run_inline_js();\n", - " } else {\n", - " load_libs(css_urls, js_urls, js_modules, function() {\n", - " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", - " run_inline_js();\n", - " });\n", + " function load_or_wait() {\n", + " // Implement a backoff loop that tries to ensure we do not load multiple\n", + " // versions of Bokeh and its dependencies at the same time.\n", + " // In recent versions we use the root._bokeh_is_initializing flag\n", + " // to determine whether there is an ongoing attempt to initialize\n", + " // bokeh, however for backward compatibility we also try to ensure\n", + " // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n", + " // before older versions are fully initialized.\n", + " if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n", + " root._bokeh_is_initializing = false;\n", + " root._bokeh_onload_callbacks = undefined;\n", + " console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n", + " load_or_wait();\n", + " } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n", + " setTimeout(load_or_wait, 100);\n", + " } else {\n", + " Bokeh = root.Bokeh;\n", + " bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", + " root._bokeh_is_initializing = true\n", + " root._bokeh_onload_callbacks = []\n", + " if (!reloading && (!bokeh_loaded || is_dev)) {\n", + "\troot.Bokeh = undefined;\n", + " }\n", + " load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n", + "\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", + "\trun_inline_js();\n", + " });\n", + " }\n", " }\n", + " // Give older versions of the autoload script a head-start to ensure\n", + " // they initialize before we start loading newer version.\n", + " setTimeout(load_or_wait, 100)\n", "}(window));" ], - "application/vnd.holoviews_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@4.2.5/dist/gridstack-h5', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'gridstack': {'exports': 'GridStack'}}});\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 2;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/gridstack/gridstack@4.2.5/dist/gridstack-h5.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) >= 0) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) >= 0) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\", \"https://unpkg.com/@holoviz/panel@0.14.4/dist/panel.min.js\"];\n var js_modules = [];\n var css_urls = [\"https://cdn.holoviz.org/panel/0.14.4/dist/css/alerts.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/card.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/dataframe.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/debugger.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/json.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/loading.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/markdown.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/widgets.css\"];\n var inline_js = [ function(Bokeh) {\n inject_raw_css(\"\\n .bk.pn-loading.arc:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\\\");\\n background-size: auto calc(min(50%, 400px));\\n }\\n \");\n }, function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, js_modules, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" + "application/vnd.holoviews_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.2.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n var reloading = false;\n var Bokeh = root.Bokeh;\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.2.2.min.js\", \"https://cdn.holoviz.org/panel/1.2.3/dist/panel.min.js\", \"https://cdn.jsdelivr.net/npm/@holoviz/geoviews@1.10.1/dist/geoviews.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n Bokeh = root.Bokeh;\n bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n if (!reloading && (!bokeh_loaded || is_dev)) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));" }, "metadata": {}, "output_type": "display_data" @@ -1011,10 +1233,20 @@ { "data": { "text/html": [ - "" ] @@ -1182,13 +1414,13 @@ " }\n", "\n", " var force = true;\n", + " var py_version = '3.2.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n", + " var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n", + " var reloading = false;\n", + " var Bokeh = root.Bokeh;\n", + " var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", "\n", - " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", - " root._bokeh_onload_callbacks = [];\n", - " root._bokeh_is_loading = undefined;\n", - " }\n", - "\n", - " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", + " if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", @@ -1200,26 +1432,30 @@ " callback();\n", " });\n", " } finally {\n", - " delete root._bokeh_onload_callbacks\n", + " delete root._bokeh_onload_callbacks;\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", - " function load_libs(css_urls, js_urls, js_modules, callback) {\n", + " function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", " if (js_modules == null) js_modules = [];\n", + " if (js_exports == null) js_exports = {};\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", + "\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", - " if (js_urls.length === 0 && js_modules.length === 0) {\n", + " if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", - " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " if (!reloading) {\n", + " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " }\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", @@ -1228,26 +1464,37 @@ " run_callbacks()\n", " }\n", " }\n", + " window._bokeh_on_load = on_load\n", "\n", " function on_error() {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", - " for (var i = 0; i < css_urls.length; i++) {\n", - " var url = css_urls[i];\n", - " const element = document.createElement(\"link\");\n", - " element.onload = on_load;\n", - " element.onerror = on_error;\n", - " element.rel = \"stylesheet\";\n", - " element.type = \"text/css\";\n", - " element.href = url;\n", - " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", - " document.body.appendChild(element);\n", - " }\n", - "\n", " var skip = [];\n", " if (window.requirejs) {\n", - " window.requirejs.config({'packages': {}, 'paths': {'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@4.2.5/dist/gridstack-h5', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'gridstack': {'exports': 'GridStack'}}});\n", + " window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n", + " require([\"jspanel\"], function(jsPanel) {\n", + "\twindow.jsPanel = jsPanel\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-modal\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-tooltip\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-hint\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-layout\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-contextmenu\"], function() {\n", + "\ton_load()\n", + " })\n", + " require([\"jspanel-dock\"], function() {\n", + "\ton_load()\n", + " })\n", " require([\"gridstack\"], function(GridStack) {\n", "\twindow.GridStack = GridStack\n", "\ton_load()\n", @@ -1255,22 +1502,59 @@ " require([\"notyf\"], function() {\n", "\ton_load()\n", " })\n", - " root._bokeh_is_loading = css_urls.length + 2;\n", + " root._bokeh_is_loading = css_urls.length + 9;\n", " } else {\n", - " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n", + " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n", + " }\n", + "\n", + " var existing_stylesheets = []\n", + " var links = document.getElementsByTagName('link')\n", + " for (var i = 0; i < links.length; i++) {\n", + " var link = links[i]\n", + " if (link.href != null) {\n", + "\texisting_stylesheets.push(link.href)\n", + " }\n", + " }\n", + " for (var i = 0; i < css_urls.length; i++) {\n", + " var url = css_urls[i];\n", + " if (existing_stylesheets.indexOf(url) !== -1) {\n", + "\ton_load()\n", + "\tcontinue;\n", + " }\n", + " const element = document.createElement(\"link\");\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.rel = \"stylesheet\";\n", + " element.type = \"text/css\";\n", + " element.href = url;\n", + " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", + " document.body.appendChild(element);\n", + " } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n", + " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n", + " for (var i = 0; i < urls.length; i++) {\n", + " skip.push(urls[i])\n", + " }\n", " } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n", - " var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/gridstack/gridstack@4.2.5/dist/gridstack-h5.js'];\n", + " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", " } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n", - " var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n", + " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", - " } for (var i = 0; i < js_urls.length; i++) {\n", + " } var existing_scripts = []\n", + " var scripts = document.getElementsByTagName('script')\n", + " for (var i = 0; i < scripts.length; i++) {\n", + " var script = scripts[i]\n", + " if (script.src != null) {\n", + "\texisting_scripts.push(script.src)\n", + " }\n", + " }\n", + " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", - " if (skip.indexOf(url) >= 0) {\n", + " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", "\tif (!window.requirejs) {\n", "\t on_load();\n", "\t}\n", @@ -1286,7 +1570,7 @@ " }\n", " for (var i = 0; i < js_modules.length; i++) {\n", " var url = js_modules[i];\n", - " if (skip.indexOf(url) >= 0) {\n", + " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", "\tif (!window.requirejs) {\n", "\t on_load();\n", "\t}\n", @@ -1301,6 +1585,26 @@ " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", + " for (const name in js_exports) {\n", + " var url = js_exports[name];\n", + " if (skip.indexOf(url) >= 0 || root[name] != null) {\n", + "\tif (!window.requirejs) {\n", + "\t on_load();\n", + "\t}\n", + "\tcontinue;\n", + " }\n", + " var element = document.createElement('script');\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.type = \"module\";\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " element.textContent = `\n", + " import ${name} from \"${url}\"\n", + " window.${name} = ${name}\n", + " window._bokeh_on_load()\n", + " `\n", + " document.head.appendChild(element);\n", + " }\n", " if (!js_urls.length && !js_modules.length) {\n", " on_load()\n", " }\n", @@ -1312,12 +1616,11 @@ " document.body.appendChild(element);\n", " }\n", "\n", - " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\", \"https://unpkg.com/@holoviz/panel@0.14.4/dist/panel.min.js\"];\n", + " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.2.2.min.js\", \"https://cdn.holoviz.org/panel/1.2.3/dist/panel.min.js\", \"https://cdn.jsdelivr.net/npm/@holoviz/geoviews@1.10.1/dist/geoviews.min.js\"];\n", " var js_modules = [];\n", - " var css_urls = [\"https://cdn.holoviz.org/panel/0.14.4/dist/css/alerts.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/card.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/dataframe.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/debugger.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/json.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/loading.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/markdown.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/widgets.css\"];\n", + " var js_exports = {};\n", + " var css_urls = [];\n", " var inline_js = [ function(Bokeh) {\n", - " inject_raw_css(\"\\n .bk.pn-loading.arc:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\\\");\\n background-size: auto calc(min(50%, 400px));\\n }\\n \");\n", - " }, function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {} // ensure no trailing comma for IE\n", @@ -1327,26 +1630,61 @@ " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", + " }\n", + " // Cache old bokeh versions\n", + " if (Bokeh != undefined && !reloading) {\n", + "\tvar NewBokeh = root.Bokeh;\n", + "\tif (Bokeh.versions === undefined) {\n", + "\t Bokeh.versions = new Map();\n", + "\t}\n", + "\tif (NewBokeh.version !== Bokeh.version) {\n", + "\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n", + "\t}\n", + "\troot.Bokeh = Bokeh;\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " }\n", + " root._bokeh_is_initializing = false\n", " }\n", "\n", - " if (root._bokeh_is_loading === 0) {\n", - " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", - " run_inline_js();\n", - " } else {\n", - " load_libs(css_urls, js_urls, js_modules, function() {\n", - " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", - " run_inline_js();\n", - " });\n", + " function load_or_wait() {\n", + " // Implement a backoff loop that tries to ensure we do not load multiple\n", + " // versions of Bokeh and its dependencies at the same time.\n", + " // In recent versions we use the root._bokeh_is_initializing flag\n", + " // to determine whether there is an ongoing attempt to initialize\n", + " // bokeh, however for backward compatibility we also try to ensure\n", + " // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n", + " // before older versions are fully initialized.\n", + " if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n", + " root._bokeh_is_initializing = false;\n", + " root._bokeh_onload_callbacks = undefined;\n", + " console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n", + " load_or_wait();\n", + " } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n", + " setTimeout(load_or_wait, 100);\n", + " } else {\n", + " Bokeh = root.Bokeh;\n", + " bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", + " root._bokeh_is_initializing = true\n", + " root._bokeh_onload_callbacks = []\n", + " if (!reloading && (!bokeh_loaded || is_dev)) {\n", + "\troot.Bokeh = undefined;\n", + " }\n", + " load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n", + "\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", + "\trun_inline_js();\n", + " });\n", + " }\n", " }\n", + " // Give older versions of the autoload script a head-start to ensure\n", + " // they initialize before we start loading newer version.\n", + " setTimeout(load_or_wait, 100)\n", "}(window));" ], - "application/vnd.holoviews_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@4.2.5/dist/gridstack-h5', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'gridstack': {'exports': 'GridStack'}}});\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 2;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/gridstack/gridstack@4.2.5/dist/gridstack-h5.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) >= 0) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) >= 0) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\", \"https://unpkg.com/@holoviz/panel@0.14.4/dist/panel.min.js\"];\n var js_modules = [];\n var css_urls = [\"https://cdn.holoviz.org/panel/0.14.4/dist/css/alerts.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/card.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/dataframe.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/debugger.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/json.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/loading.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/markdown.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/widgets.css\"];\n var inline_js = [ function(Bokeh) {\n inject_raw_css(\"\\n .bk.pn-loading.arc:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\\\");\\n background-size: auto calc(min(50%, 400px));\\n }\\n \");\n }, function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, js_modules, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" + "application/vnd.holoviews_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.2.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n var reloading = false;\n var Bokeh = root.Bokeh;\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.2.2.min.js\", \"https://cdn.holoviz.org/panel/1.2.3/dist/panel.min.js\", \"https://cdn.jsdelivr.net/npm/@holoviz/geoviews@1.10.1/dist/geoviews.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n Bokeh = root.Bokeh;\n bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n if (!reloading && (!bokeh_loaded || is_dev)) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));" }, "metadata": {}, "output_type": "display_data" @@ -1602,10 +1940,20 @@ { "data": { "text/html": [ - "" ] @@ -1712,14 +2060,21 @@ "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ - "
\n", - "
\n", + "
\n", + "
\n", "
\n", "" - ], - "text/plain": [ - ":Layout\n", - " .DynamicMap.I :DynamicMap [rgt]\n", - " :Overlay\n", - " .Tiles.I :Tiles [x,y]\n", - " .Image.I :Image [x,y] (x_y elevation)\n", - " .DynamicMap.II :DynamicMap [rgt]\n", - " :Image [lat,elevation] (lat_elevation elevation)" - ] - }, - "execution_count": 10, - "metadata": { - "application/vnd.holoviews_exec.v0+json": { - "id": "1117" - } - }, - "output_type": "execute_result" - } - ], - "source": [ - "# Request information from OpenAltimetry\n", - "cyclemap, rgtmap = plotreg.visualize_elevation()\n", - "\n", - "rgtmap" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "user_expressions": [] - }, - "source": [ - "Looks good! Now it's time to acquire the data." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "user_expressions": [] - }, - "source": [ - "## Get the granule s3 urls\n", - "You must specify `cloud=True` to get the needed s3 urls.\n", - "This function returns a list containing the list of the granule IDs and a list of the corresponding urls." - ] - }, - { - "cell_type": "code", - "execution_count": 11, + "execution_count": 11, "metadata": { "tags": [] }, @@ -1951,40 +2205,15 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 15, "metadata": { "scrolled": true, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "EARTHDATA_USERNAME and EARTHDATA_PASSWORD are not set in the current environment, try setting them or use a different strategy (netrc, interactive)\n", - "You're now authenticated with NASA Earthdata Login\n", - "Using token with expiration date: 09/16/2023\n", - "Using .netrc file for EDL\n" - ] - } - ], - "source": [ - "# Configure these two according to your credentials\n", - "EARTHDATA_USERNAME = \"tsnow03\"\n", - "EARTHDATA_EMAIL = \"tsnow@mines.edu\"\n", - "\n", - "region.earthdata_login(EARTHDATA_USERNAME, EARTHDATA_EMAIL, s3token=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "tags": [] - }, "outputs": [], "source": [ - "credentials = region._s3login_credentials" + "# Add your EarthData credentials\n", + "region.earthdata_login(s3token=True)" ] }, { @@ -1998,7 +2227,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": { "tags": [] }, @@ -2009,12 +2238,14 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "metadata": { "tags": [] }, "outputs": [], "source": [ + "# Authenicate using your NASA Earth Data login credentials; enter your user id and password when prompted\n", + "credentials = region.s3login_credentials\n", "s3 = s3fs.S3FileSystem(key=credentials['accessKeyId'],\n", " secret=credentials['secretAccessKey'],\n", " token=credentials['sessionToken'])" @@ -2034,7 +2265,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 18, "metadata": { "tags": [] }, @@ -2048,7 +2279,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "metadata": { "tags": [] }, @@ -2057,8 +2288,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 84.6 ms, sys: 16 ms, total: 101 ms\n", - "Wall time: 347 ms\n" + "CPU times: user 90 ms, sys: 28.1 ms, total: 118 ms\n", + "Wall time: 274 ms\n" ] } ], @@ -2069,7 +2300,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "metadata": { "tags": [] }, @@ -2089,7 +2320,7 @@ " 'quality_assessment']" ] }, - "execution_count": 18, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -2110,7 +2341,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "metadata": { "tags": [] }, @@ -2185,7 +2416,7 @@ "4 59.790085 -47.174286 3.402823e+38" ] }, - "execution_count": 19, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -2255,7 +2486,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 22, "metadata": { "tags": [] }, @@ -2406,7 +2637,7 @@ "4 78 1 " ] }, - "execution_count": 20, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -2430,7 +2661,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 23, "metadata": { "tags": [] }, @@ -2463,7 +2694,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 58, "metadata": { "tags": [] }, @@ -2471,7 +2702,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "10b753ffc9f54e1bb102484ff777da4b", + "model_id": "57562ff8b24d44e2883a9321c5c465c6", "version_major": 2, "version_minor": 0 }, @@ -2479,8 +2710,9 @@ "Map(center=[69.25, -49.64999999999998], controls=(ZoomControl(options=['position', 'zoom_in_text', 'zoom_in_ti…" ] }, + "execution_count": 58, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ @@ -2597,7 +2829,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 27, "metadata": { "tags": [] }, @@ -2621,7 +2853,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 28, "metadata": { "tags": [] }, @@ -2651,7 +2883,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 29, "metadata": { "tags": [] }, @@ -2691,21 +2923,25 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "user_expressions": [] + }, "source": [ "We can include property searches, such as path, row, cloud-cover, as well with the `properties` flag in the api.search." ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "user_expressions": [] + }, "source": [ "We are given a pystac collection of items (images)" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 30, "metadata": { "tags": [] }, @@ -2715,2973 +2951,18157 @@ "text/html": [ "\n", "\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "

\n", - " ItemCollection\n", - "

\n", - "
\n", - " \n", - " \n", - "
\n", - "\n", + "\n", + "
\n", + "
\n", + "
    \n", " \n", - "
    \n", - " \n", - " \n", - "

    Items

    \n", - "
    \n", - " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Item: LC08_L1TP_008012_20190507_20200829_02_T1

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " type\n", + " \"FeatureCollection\"\n", + "
  • \n", + " \n", " \n", - "
    id: LC08_L1TP_008012_20190507_20200829_02_T1
    bbox: [-52.450348972917006, 67.13075970832166, -46.38012875444901, 69.41548599740054]
    datetime: 2019-05-07T14:54:18.865855Z
    eo:cloud_cover: 0.18
    view:sun_azimuth: 173.85264541
    view:sun_elevation: 38.46360597
    platform: LANDSAT_8
    instruments: ['OLI', 'TIRS']
    view:off_nadir: 0
    landsat:cloud_cover_land: 0
    landsat:wrs_type: 2
    landsat:wrs_path: 008
    landsat:wrs_row: 012
    landsat:scene_id: LC80080122019127LGN00
    landsat:collection_category: T1
    landsat:collection_number: 02
    landsat:correction: L1TP
    accuracy:geometric_x_bias: 0
    accuracy:geometric_y_bias: 0
    accuracy:geometric_x_stddev: 3.431
    accuracy:geometric_y_stddev: 3.144
    accuracy:geometric_rmse: 4.654
    proj:epsg: 32622
    proj:shape: [8491, 8431]
    proj:transform: [30, 0, 437085, 0, -30, 7701615]
    created: 2022-06-28T20:15:52.467Z
    updated: 2022-06-28T20:15:52.467Z
    \n", " \n", - "
    \n", - " \n", - "

    STAC Extensions

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", - " \n", + "
  • \n", + " \n", + " features\n", + " [] 2 items\n", + " \n", + " \n", + "
      \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " 0\n", + "
      \n", + " \n", + " \n", " \n", - "
  • https://landsat.usgs.gov/stac/landsat-extension/v1.1.1/schema.json
    https://stac-extensions.github.io/view/v1.0.0/schema.json
    https://stac-extensions.github.io/projection/v1.0.0/schema.json
    https://stac-extensions.github.io/eo/v1.0.0/schema.json
    https://stac-extensions.github.io/alternate-assets/v1.1.0/schema.json
    https://stac-extensions.github.io/storage/v1.0.0/schema.json
    https://stac-extensions.github.io/file/v1.0.0/schema.json
    https://stac-extensions.github.io/accuracy/v1.0.0/schema.json
    https://stac-extensions.github.io/classification/v1.0.0/schema.json
    \n", - "
    \n", + "
  • \n", + " type\n", + " \"Feature\"\n", + "
  • \n", " \n", " \n", - "
    \n", - " \n", - "

    Assets

    \n", - "
    \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Thumbnail image

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " stac_version\n", + " \"1.0.0\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " id\n", + " \"LC08_L1TP_008012_20190507_20200829_02_T1\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " properties\n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " datetime\n", + " \"2019-05-07T14:54:18.865855Z\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " eo:cloud_cover\n", + " 0.18\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_thumb_small.jpeg
    type: image/jpeg
    title: Thumbnail image
    roles: ['thumbnail']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_thumb_small.jpeg'}}
    file:checksum: 1340053e4b3a8bd8bbbdd08292c634cd17225767acf798e3226e243f8ff771decd243ae49441b4e81fada81de7cc0dd4120fec0a9ca7d77844a41f0c3c619be4867e
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Reduced resolution browse image

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " view:sun_azimuth\n", + " 173.85264541\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " view:sun_elevation\n", + " 38.46360597\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " platform\n", + " \"LANDSAT_8\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " \n", + " instruments\n", + " [] 2 items\n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " 0\n", + " \"OLI\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + "
      \n", + " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 1\n", + " \"TIRS\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", + " \n", + "
  • \n", + " view:off_nadir\n", + " 0\n", + "
  • \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_thumb_large.jpeg
    type: image/jpeg
    title: Reduced resolution browse image
    roles: ['overview']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_thumb_large.jpeg'}}
    file:checksum: 13404aa048e1e448e97b25303b45daa71514d982c6d88395fbfda905364e6eeed2e925346e5cdd895c520659d699ca0e4f7d7edf37ef355b95158f197e08a8aac0fa
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: HTML index page

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/stac-browser/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1
    type: text/html
    title: HTML index page
    roles: ['metadata']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    \n", - "
    \n", - "
    \n", - "
    \n", + "
  • \n", + " landsat:cloud_cover_land\n", + " 0\n", + "
  • \n", + " \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Product Metadata File (json)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " landsat:wrs_type\n", + " \"2\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " landsat:wrs_path\n", + " \"008\"\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.json
    type: application/json
    title: Product Metadata File (json)
    description: Collection 2 Level-1 Product Metadata File (json)
    roles: ['metadata']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.json'}}
    file:checksum: 1340cdeb22284cc5c6d705c1ae7b17cc4138d4bbf77ab9dc7e0a51276fa19c63ac908e71251ce7e60408ec9dc278255a4e5fb5543d0f3194cfebc5ad7b0c1c063d27
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Coastal/Aerosol Band (B1)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " landsat:wrs_row\n", + " \"012\"\n", + "
  • \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " landsat:scene_id\n", + " \"LC80080122019127LGN00\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " landsat:collection_category\n", + " \"T1\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " landsat:collection_number\n", + " \"02\"\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B1.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Coastal/Aerosol Band (B1)
    description: Collection 2 Level-1 Coastal/Aerosol Band (B1) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B1', 'common_name': 'coastal', 'gsd': 30, 'center_wavelength': 0.44}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B1.TIF'}}
    file:checksum: 1340c03174043d3c94303da08abc2fd78f6e45526c5831056cd1502bdecf514daf079fc05ab02bdd383b7c3e4da6964e1394a5ca4a584eada3cd6909d7c53724ebe7
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Blue Band (B2)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " landsat:correction\n", + " \"L1TP\"\n", + "
  • \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " accuracy:geometric_x_bias\n", + " 0\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " accuracy:geometric_y_bias\n", + " 0\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " accuracy:geometric_x_stddev\n", + " 3.431\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B2.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Blue Band (B2)
    description: Collection 2 Level-1 Blue Band (B2) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B2', 'common_name': 'blue', 'gsd': 30, 'center_wavelength': 0.48}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B2.TIF'}}
    file:checksum: 1340eda74ede96fa71b87679644ee9addd5ea19d4df78a20c8f000c3031c449f3c6f172c9e78b0e3ee291d3af574360ee260d628b07932ba23cbb7fa674b55ef568b
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Green Band (B3)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " accuracy:geometric_y_stddev\n", + " 3.144\n", + "
  • \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " accuracy:geometric_rmse\n", + " 4.654\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " proj:epsg\n", + " 32622\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + "
  • \n", + " \n", + " proj:shape\n", + " [] 2 items\n", + " \n", + " \n", + "
      \n", " \n", - " \n", - "
  • href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B3.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Green Band (B3)
    description: Collection 2 Level-1 Green Band (B3) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B3', 'common_name': 'green', 'gsd': 30, 'center_wavelength': 0.56}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B3.TIF'}}
    file:checksum: 13405bc02e5190d2f6d162f803bd59938c24166c428c23f5a2991cb1eb13de91398c5fa3638ee72bb3dd9fb591edc1388bad44e892f5d5c9ff310f5a8a76d26c14a3
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Red Band (B4)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " 0\n", + " 8491\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 1\n", + " 8431\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", " \n", + "
  • \n", + " \n", + " proj:transform\n", + " [] 6 items\n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " 0\n", + " 30\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B4.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Red Band (B4)
    description: Collection 2 Level-1 Red Band (B4) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B4', 'common_name': 'red', 'gsd': 30, 'center_wavelength': 0.66}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B4.TIF'}}
    file:checksum: 134012c84e81bf929d73b1d4aacb6108ca7c1fff428726320b1ce5fe4fcf7daf6ba43c418670ee4825de1927427c42bade0386dae18b07d14e1a500d2ec25dbcfdff
    \n", - "
    \n", - "
    \n", - "
    \n", + "
\n", + " \n", + "
    \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Near Infrared Band 0.8 (B5)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " 1\n", + " 0\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 2\n", + " 437085\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + "
      \n", + " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 3\n", + " 0\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + "
      \n", + " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 4\n", + " -30\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B5.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Near Infrared Band 0.8 (B5)
    description: Collection 2 Level-1 Near Infrared Band 0.8 (B5) Top of Atmosphere Radiance
    roles: ['data', 'reflectance']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B5', 'common_name': 'nir08', 'gsd': 30, 'center_wavelength': 0.87}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B5.TIF'}}
    file:checksum: 134076277bf855f3f21cd4c25c17dc2db210caa43547b3108df0bac8dfcb65b645083d3bfef96f8335af2144b3a38b001cceec2a3bd6c17127c518b2bf87a4a054f8
    \n", - "
    \n", - "
    \n", - "
    \n", + "
\n", + " \n", + "
    \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Short-wave Infrared Band 1.6 (B6)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " 5\n", + " 7701615\n", + "
  • \n", + " \n", " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " created\n", + " \"2022-06-28T20:15:52.467Z\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " updated\n", + " \"2022-06-28T20:15:52.467Z\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B6.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Short-wave Infrared Band 1.6 (B6)
    description: Collection 2 Level-1 Short-wave Infrared Band 1.6 (B6) Top of Atmosphere Radiance
    roles: ['data', 'reflectance']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B6', 'common_name': 'swir16', 'gsd': 30, 'center_wavelength': 1.61}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B6.TIF'}}
    file:checksum: 1340688d7d2eeba5767eb1a13a9a0681878bf9d465c68481162d00f2eb3859ca82d05f5d2a71d89dc9c605d5c5e3bfe75d7e762c063718e0c8cd71c51914cb87176a
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Short-wave Infrared Band 2.2 (B7)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " geometry\n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " type\n", + " \"Polygon\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + "
  • \n", + " \n", + " coordinates\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
  • \n", + "
  • \n", + " \n", + " 0\n", + " [] 5 items\n", + " \n", + " \n", + "
      \n", + " \n", " \n", + "
    • \n", + " \n", + " 0\n", + " [] 2 items\n", + " \n", + " \n", + "
        \n", " \n", - " \n", - "
  • href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B7.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Short-wave Infrared Band 2.2 (B7)
    description: Collection 2 Level-1 Short-wave Infrared Band 2.2 (B7) Top of Atmosphere Radiance
    roles: ['data', 'reflectance']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B7', 'common_name': 'swir22', 'gsd': 30, 'center_wavelength': 2.2}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B7.TIF'}}
    file:checksum: 134026c0bc77778fb217e70418740499f3037d9d2011d4eed3a9a4a015b32916d0dd719cc4a40a79fcd5356bac2b59b8037efed3161a9eb196757e3df37db666d981
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Panchromatic Band (B8)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " 0\n", + " -50.654927278460335\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 1\n", + " 69.41548599740054\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", " \n", + "
    • \n", + " \n", + " 1\n", + " [] 2 items\n", + " \n", + " \n", + "
        \n", " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 0\n", + " -52.450348972917006\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + "
      \n", + " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 1\n", + " 67.79611546126523\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B8.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Panchromatic Band (B8)
    description: Collection 2 Level-1 Panchromatic Band (B8) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B8', 'common_name': 'pan', 'gsd': 15, 'center_wavelength': 0.59}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B8.TIF'}}
    file:checksum: 1340f77a5622dd725a486b05d543f4f3501857fda6abdf11f43102dbdffd7b1476bfeef336aa2ba0e80c52d197e8e22634a58cbf9e33fa110c2a7996f8dbd46f3c7b
    proj:shape: [16981, 16861]
    proj:transform: [15, 0, 437092.5, 0, -15, 7701607.5]
    \n", - "
    \n", - "
    \n", - "
    \n", + "
\n", + " \n", + "
    \n", + " \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Cirrus Band (B9)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " \n", + " 2\n", + " [] 2 items\n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " 0\n", + " -48.41892432239665\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + "
      \n", + " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 1\n", + " 67.13075970832166\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B9.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Cirrus Band (B9)
    description: Collection 2 Level-1 Cirrus Band (B9) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B9', 'common_name': 'cirrus', 'gsd': 30, 'center_wavelength': 1.37}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B9.TIF'}}
    file:checksum: 1340db743557b1c240b880587754b1276e53a97d53a98228d0ec21fcda4ad24a6f0476f22cfcb9f7625aff9a7b69c290a78e8785f8e5f2729b6982b9a86f805b4d1b
    \n", - "
    \n", - "
    \n", - "
    \n", + "
\n", + " \n", + "
    \n", + " \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Thermal Infrared Band 10.9 (B10)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " \n", + " 3\n", + " [] 2 items\n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " 0\n", + " -46.38012875444901\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + "
      \n", + " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 1\n", + " 68.7124481452754\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", " \n", + "
    • \n", + " \n", + " 4\n", + " [] 2 items\n", + " \n", + " \n", + "
        \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B10.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Thermal Infrared Band 10.9 (B10)
    description: Collection 2 Level-1 Thermal Infrared Band 10.9 (B10) Top of Atmosphere Radiance
    roles: ['data', 'temperature']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B10', 'common_name': 'lwir11', 'gsd': 100, 'center_wavelength': 10.9}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B10.TIF'}}
    file:checksum: 1340817216a8ca7622fc5e30e638b61a132eb653aefb603077d7a405bf618eb87d8540346a647cae65a263f878d868cc478b59a283bca0808315732c5377bb621c04
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Thermal Infrared Band 12.0 (B11)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " 0\n", + " -50.654927278460335\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
    \n", + " \n", + "
  • \n", + " 1\n", + " 69.41548599740054\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B11.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Thermal Infrared Band 12.0 (B11)
    description: Collection 2 Level-1 Thermal Infrared Band 12.0 (B11) Top of Atmosphere Radiance
    roles: ['data', 'temperature']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    eo:bands: [{'name': 'B11', 'common_name': 'lwir12', 'gsd': 100, 'center_wavelength': 12.01}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B11.TIF'}}
    file:checksum: 1340822c9200e180feb779a16c57c620cedf316ab2a5f6fed95a86426dd00586b344fb8866e103eda68c201e17e6837ae3f6aaa6c8b0319d1298a79a590c14bd8893
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Pixel Quality Assessment Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", - " \n", + "
  • \n", + " \n", + " links\n", + " [] 4 items\n", + " \n", + " \n", + "
      \n", + " \n", " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " rel\n", + " \"self\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l1/items/LC08_L1TP_008012_20190507_20200829_02_T1\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_QA_PIXEL.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Pixel Quality Assessment Band
    description: Collection 2 Level-1 Pixel Quality Assessment Band Top of Atmosphere Radiance
    roles: ['cloud', 'cloud-shadow', 'snow-ice', 'water-mask']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    classification:bitfields: [{'name': 'fill', 'description': 'Corresponding pixels in L1 image bands are fill', 'offset': 0, 'length': 1, 'classes': [{'name': 'not_fill', 'description': 'L1 image band pixels are not fill', 'value': 0}, {'name': 'fill', 'description': 'L1 image band pixels are fill', 'value': 1}]}, {'name': 'dilated', 'description': 'Dilated cloud', 'offset': 1, 'length': 1, 'classes': [{'name': 'not_dilated', 'description': 'Cloud is not dilated or no cloud', 'value': 0}, {'name': 'dilated', 'description': 'Cloud dilation', 'value': 1}]}, {'name': 'cirrus', 'description': 'Cirrus mask', 'offset': 2, 'length': 1, 'classes': [{'name': 'not_cirrus', 'description': 'No confidence level set or low confidence cirrus', 'value': 0}, {'name': 'cirrus', 'description': 'High confidence cirrus', 'value': 1}]}, {'name': 'cloud', 'description': 'Cloud mask', 'offset': 3, 'length': 1, 'classes': [{'name': 'not_cloud', 'description': 'Cloud confidence is not high', 'value': 0}, {'name': 'cloud', 'description': 'High confidence cloud', 'value': 1}]}, {'name': 'shadow', 'description': 'Cloud shadow mask', 'offset': 4, 'length': 1, 'classes': [{'name': 'not_shadow', 'description': 'Cloud shadow confidence is not high', 'value': 0}, {'name': 'shadow', 'description': 'High confidence cloud shadow', 'value': 1}]}, {'name': 'snow', 'description': 'Snow/Ice mask', 'offset': 5, 'length': 1, 'classes': [{'name': 'not_snow', 'description': 'Snow/Ice confidence is not high', 'value': 0}, {'name': 'snow', 'description': 'High confidence snow cover', 'value': 1}]}, {'name': 'clear', 'description': 'Cloud or dilated cloud bits set', 'offset': 6, 'length': 1, 'classes': [{'name': 'not_clear', 'description': 'Cloud or dilated cloud bits are set', 'value': 0}, {'name': 'clear', 'description': 'Cloud and dilated cloud bits are not set', 'value': 1}]}, {'name': 'water', 'description': 'Water mask', 'offset': 7, 'length': 1, 'classes': [{'name': 'not_water', 'description': 'Land or cloud', 'value': 0}, {'name': 'water', 'description': 'Water', 'value': 1}]}, {'name': 'cloud_confidence', 'description': 'Cloud confidence levels', 'offset': 8, 'length': 2, 'classes': [{'name': 'not_set', 'description': 'No confidence level set', 'value': 0}, {'name': 'low', 'description': 'Low confidence cloud', 'value': 1}, {'name': 'medium', 'description': 'Medium confidence cloud', 'value': 2}, {'name': 'high', 'description': 'High confidence cloud', 'value': 3}]}, {'name': 'shadow_confidence', 'description': 'Cloud shadow confidence levels', 'offset': 10, 'length': 2, 'classes': [{'name': 'not_set', 'description': 'No confidence level set', 'value': 0}, {'name': 'low', 'description': 'Low confidence cloud shadow', 'value': 1}, {'name': 'reserved', 'description': 'Reserved - value not used', 'value': 2}, {'name': 'high', 'description': 'High confidence cloud shadow', 'value': 3}]}, {'name': 'snow_confidence', 'description': 'Snow/Ice confidence levels', 'offset': 12, 'length': 2, 'classes': [{'name': 'not_set', 'description': 'No confidence level set', 'value': 0}, {'name': 'low', 'description': 'Low confidence snow/ice', 'value': 1}, {'name': 'reserved', 'description': 'Reserved - value not used', 'value': 2}, {'name': 'high', 'description': 'High confidence snow/ice', 'value': 3}]}, {'name': 'cirrus_confidence', 'description': 'Cirrus confidence levels', 'offset': 14, 'length': 2, 'classes': [{'name': 'not_set', 'description': 'No confidence level set', 'value': 0}, {'name': 'low', 'description': 'Low confidence cirrus', 'value': 1}, {'name': 'reserved', 'description': 'Reserved - value not used', 'value': 2}, {'name': 'high', 'description': 'High confidence cirrus', 'value': 3}]}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_QA_PIXEL.TIF'}}
    file:checksum: 1340041f2f8b0d68ed7a13c1c9f7f600ac1ecb21622e194863afbfcee9e951e9345e84cb4b2a9c018009ac395f0b159ea13464e78621961c3201b45e1bc26ffa807b
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Radiometric Saturation Quality Assessment Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
    \n", - " \n", + " \n", + "
  • \n", + " 1\n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " rel\n", + " \"parent\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l1\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_QA_RADSAT.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Radiometric Saturation Quality Assessment Band
    description: Collection 2 Level-1 Radiometric Saturation Quality Assessment Band Top of Atmosphere Radiance
    roles: ['saturation']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    classification:bitfields: [{'name': 'band1', 'description': 'Band 1 radiometric saturation', 'offset': 0, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 1 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 1 is saturated', 'value': 1}]}, {'name': 'band2', 'description': 'Band 2 radiometric saturation', 'offset': 1, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 2 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 2 is saturated', 'value': 1}]}, {'name': 'band3', 'description': 'Band 3 radiometric saturation', 'offset': 2, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 3 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 3 is saturated', 'value': 1}]}, {'name': 'band4', 'description': 'Band 4 radiometric saturation', 'offset': 3, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 4 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 4 is saturated', 'value': 1}]}, {'name': 'band5', 'description': 'Band 5 radiometric saturation', 'offset': 4, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 5 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 5 is saturated', 'value': 1}]}, {'name': 'band6', 'description': 'Band 6 radiometric saturation', 'offset': 5, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 6 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 6 is saturated', 'value': 1}]}, {'name': 'band7', 'description': 'Band 7 radiometric saturation', 'offset': 6, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 7 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 7 is saturated', 'value': 1}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 7, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'band9', 'description': 'Band 9 radiometric saturation', 'offset': 8, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 9 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 9 is saturated', 'value': 1}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 9, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 10, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'occlusion', 'description': 'Terrain not visible from sensor due to intervening terrain', 'offset': 11, 'length': 1, 'classes': [{'name': 'not_occluded', 'description': 'Terrain is not occluded', 'value': 0}, {'name': 'occluded', 'description': 'Terrain is occluded', 'value': 1}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 12, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 13, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 14, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 15, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_QA_RADSAT.TIF'}}
    file:checksum: 134098013147e3c4295eb92a41e5a265c0dc32054a52247cad869ae20b9efd8fdaaf07f653392042d47f90d13d4441d9af34b52f0ec749f3df4e7c5b690afc95449b
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", + "
\n", + " \n", + "
    \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Angle Coefficients File

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " 2\n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " rel\n", + " \"collection\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l1\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_ANG.txt
    type: text/plain
    title: Angle Coefficients File
    description: Collection 2 Level-1 Angle Coefficients File (ANG)
    roles: ['metadata']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_ANG.txt'}}
    file:checksum: 1340ebbc3d9c8a18169934e8bf8475522b908d27fc5a46c7f7b8110edb871fd1fafc489c39e39475a52fddf77417e7dd765850b90329829f5b5b2726a2aacce23ffa
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", + "
\n", + " \n", + "
    \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Sensor Azimuth Angle Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " 3\n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " rel\n", + " \"root\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"https://landsatlook.usgs.gov/stac-server\"\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_VAA.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Sensor Azimuth Angle Band
    description: Collection 2 Level-1 Sensor Azimuth Angle Band
    roles: ['azimuth']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_VAA.TIF'}}
    file:checksum: 1340a2a690a1525b335469f4c705cbceeaaf3e3b9727af3245f00e82042f668502d5221d0e175148603f1f2fce8ea48f11ee41f546c94fcb854679a3ac167d7009dc
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Sensor Zenith Angle Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " type\n", + " \"application/json\"\n", + "
  • \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " title\n", + " \"STAC API\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_VZA.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Sensor Zenith Angle Band
    description: Collection 2 Level-1 Sensor Zenith Angle Band
    roles: ['data']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_VZA.TIF'}}
    file:checksum: 134098f9201879522069038cf57430d310f50d7e34cac1c547d3b36c36e85f8b2bccacf7dcee0c6061ea5900c891acc9f901ca8f33f13d3fb826669bb8ed496bcf98
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Solar Azimuth Angle Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " assets\n", + "
      \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " thumbnail\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_thumb_small.jpeg\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " type\n", + " \"image/jpeg\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " title\n", + " \"Thumbnail image\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + "
  • \n", + " alternate\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " s3\n", + "
        \n", + " \n", + " \n", " \n", + "
      • \n", + " storage:platform\n", + " \"AWS\"\n", + "
      • \n", + " \n", + " \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " storage:requester_pays\n", + " True\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_thumb_small.jpeg\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_SAA.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Solar Azimuth Angle Band
    description: Collection 2 Level-1 Solar Azimuth Angle Band
    roles: ['sun-azimuth']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_SAA.TIF'}}
    file:checksum: 134010e6cf0f7110cd8abeaba4567630fbd7a571a638779a89374819526e33ec5b458da01da9cadb904cfab4218fbb0cdbdffa9676b6e263f3329106bd997dbd8c9a
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Solar Zenith Angle Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " file:checksum\n", + " \"1340053e4b3a8bd8bbbdd08292c634cd17225767acf798e3226e243f8ff771decd243ae49441b4e81fada81de7cc0dd4120fec0a9ca7d77844a41f0c3c619be4867e\"\n", + "
  • \n", + " \n", " \n", - " \n", + " \n", " \n", + "
  • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"thumbnail\"\n", + "
    • \n", + " \n", " \n", - "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_SZA.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Solar Zenith Angle Band
    description: Collection 2 Level-1 Solar Zenith Angle Band
    roles: ['data']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_SZA.TIF'}}
    file:checksum: 134065525f02b562f8d9d193e89d21d1b028af0ae1503a12ad26848c8c2edaaa9b2fe046c2ddab87735c14af334826b19b989c71bb6521b9dd9351f7433be432c7e7
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Product Metadata File

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " reduced_resolution_browse\n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_thumb_large.jpeg\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " type\n", + " \"image/jpeg\"\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.txt
    type: text/plain
    title: Product Metadata File
    description: Collection 2 Level-1 Product Metadata File (MTL)
    roles: ['metadata']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.txt'}}
    file:checksum: 1340577c688e4c66398fca961abb4450d0a5427f4da8992a5f1afe2ea2163513579d626687c263a3344b11cbe6f67857802aed78268394a5ca839f127953d05a7974
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Product Metadata File (xml)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " title\n", + " \"Reduced resolution browse image\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + "
  • \n", + " alternate\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " s3\n", + "
        \n", + " \n", + " \n", " \n", + "
      • \n", + " storage:platform\n", + " \"AWS\"\n", + "
      • \n", + " \n", + " \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " storage:requester_pays\n", + " True\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_thumb_large.jpeg\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.xml
    type: application/xml
    title: Product Metadata File (xml)
    description: Collection 2 Level-1 Product Metadata File (xml)
    roles: ['metadata']
    owner: LC08_L1TP_008012_20190507_20200829_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.xml'}}
    file:checksum: 134049a8e4edcdab491a9cbf015dce99db646983326b7224662b2b8001654c97cff201d146150a5af42086ecbec6adf2412cb1c6d2f82919f0c2d6d5a435c1c5deee
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", - "
\n", + " \n", + " \n", + " \n", " \n", " \n", - "
\n", - " \n", - "

Links

\n", - "
\n", + " \n", " \n", " \n", - "\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Link:

\n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " file:checksum\n", + " \"13404aa048e1e448e97b25303b45daa71514d982c6d88395fbfda905364e6eeed2e925346e5cdd895c520659d699ca0e4f7d7edf37ef355b95158f197e08a8aac0fa\"\n", + "
  • \n", + " \n", " \n", + " \n", " \n", - "
    rel: self
    href: https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l1/items/LC08_L1TP_008012_20190507_20200829_02_T1
    \n", + "
  • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", " \n", - "
  • \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "

    Link:

    \n", - " \n", - " \n", - " \n", + "
  • \n", + " 0\n", + " \"overview\"\n", + "
  • \n", + " \n", " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", + " \n", + " \n", + " \n", " \n", - "
    rel: parent
    href: https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l1
    \n", " \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "

    Link:

    \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " index\n", + "
      \n", + " \n", " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/stac-browser/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1\"\n", + "
    • \n", + " \n", " \n", - "
  • rel: collection
    href: https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l1
    \n", " \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "

    Link: STAC API

    \n", - " \n", - " \n", - " \n", + "
  • \n", + " type\n", + " \"text/html\"\n", + "
  • \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + "
  • \n", + " title\n", + " \"HTML index page\"\n", + "
  • \n", + " \n", " \n", + " \n", " \n", - " \n", + "
  • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", + " \n", " \n", + " \n", + "
    • \n", + " 0\n", + " \"metadata\"\n", + "
    • \n", + " \n", " \n", - "
  • rel: root
    href: https://landsatlook.usgs.gov/stac-server
    type: application/json
    title: STAC API
    \n", " \n", - "
    \n", - "
    \n", + " \n", + " \n", + "
    \n", " \n", - " \n", + " \n", + " \n", + " \n", " \n", - " \n", - "
    \n", - "
    \n", - " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Item: LC08_L1TP_008011_20190507_20200828_02_T1

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    id: LC08_L1TP_008011_20190507_20200828_02_T1
    bbox: [-50.97097968875044, 68.44897504333066, -44.463480823181705, 70.75209635973746]
    datetime: 2019-05-07T14:53:54.970580Z
    eo:cloud_cover: 10.18
    view:sun_azimuth: 175.87744165
    view:sun_elevation: 37.19312658
    platform: LANDSAT_8
    instruments: ['OLI', 'TIRS']
    view:off_nadir: 0
    landsat:cloud_cover_land: 10.3
    landsat:wrs_type: 2
    landsat:wrs_path: 008
    landsat:wrs_row: 011
    landsat:scene_id: LC80080112019127LGN00
    landsat:collection_category: T1
    landsat:collection_number: 02
    landsat:correction: L1TP
    accuracy:geometric_x_bias: 0
    accuracy:geometric_y_bias: 0
    accuracy:geometric_x_stddev: 3.409
    accuracy:geometric_y_stddev: 4.025
    accuracy:geometric_rmse: 5.275
    proj:epsg: 32623
    proj:shape: [8771, 8741]
    proj:transform: [30, 0, 261285, 0, -30, 7855515]
    created: 2022-06-28T23:23:03.741Z
    updated: 2022-06-28T23:23:03.741Z
    \n", " \n", - "
    \n", - " \n", - "

    STAC Extensions

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", + "
  • \n", + " MTL.json\n", + "
      \n", + " \n", + " \n", " \n", - "
  • https://landsat.usgs.gov/stac/landsat-extension/v1.1.1/schema.json
    https://stac-extensions.github.io/view/v1.0.0/schema.json
    https://stac-extensions.github.io/projection/v1.0.0/schema.json
    https://stac-extensions.github.io/eo/v1.0.0/schema.json
    https://stac-extensions.github.io/alternate-assets/v1.1.0/schema.json
    https://stac-extensions.github.io/storage/v1.0.0/schema.json
    https://stac-extensions.github.io/file/v1.0.0/schema.json
    https://stac-extensions.github.io/accuracy/v1.0.0/schema.json
    https://stac-extensions.github.io/classification/v1.0.0/schema.json
    \n", - "
    \n", + "
  • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.json\"\n", + "
  • \n", " \n", " \n", - "
    \n", - " \n", - "

    Assets

    \n", - "
    \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Thumbnail image

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " type\n", + " \"application/json\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + "
  • \n", + " title\n", + " \"Product Metadata File (json)\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " description\n", + " \"Collection 2 Level-1 Product Metadata File (json)\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + "
  • \n", + " alternate\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " s3\n", + "
        \n", + " \n", + " \n", " \n", + "
      • \n", + " storage:platform\n", + " \"AWS\"\n", + "
      • \n", + " \n", + " \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " storage:requester_pays\n", + " True\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.json\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_thumb_small.jpeg
    type: image/jpeg
    title: Thumbnail image
    roles: ['thumbnail']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_thumb_small.jpeg'}}
    file:checksum: 1340f87154cc5704dd8859a463daab579507540604454354feaaf7a7f5a724e9756a667edc4a966777f166ff55d46506f30a53f64bfc05aeca656f7f8eed74686ed6
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Reduced resolution browse image

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " file:checksum\n", + " \"1340cdeb22284cc5c6d705c1ae7b17cc4138d4bbf77ab9dc7e0a51276fa19c63ac908e71251ce7e60408ec9dc278255a4e5fb5543d0f3194cfebc5ad7b0c1c063d27\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " 0\n", + " \"metadata\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + "
  • \n", + " coastal\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B1.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " title\n", + " \"Coastal/Aerosol Band (B1)\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " description\n", + " \"Collection 2 Level-1 Coastal/Aerosol Band (B1) Top of Atmosphere Radiance\"\n", + "
  • \n", + " \n", + " \n", " \n", " \n", - " \n", + "
  • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", + " \n", " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " name\n", + " \"B1\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + "
  • \n", + " common_name\n", + " \"coastal\"\n", + "
  • \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_thumb_large.jpeg
    type: image/jpeg
    title: Reduced resolution browse image
    roles: ['overview']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_thumb_large.jpeg'}}
    file:checksum: 13408ff95b52ff690149bc4eda908bd0b845257fbdc35ea5cc279cca7eb197edf470003f2633f8fc188e0e30749feddfe30eb5130025ae69a1c9aca65b1f5d60179d
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: HTML index page

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/stac-browser/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1
    type: text/html
    title: HTML index page
    roles: ['metadata']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    \n", - "
    \n", - "
    \n", - "
    \n", + "
  • \n", + " gsd\n", + " 30\n", + "
  • \n", + " \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Product Metadata File (json)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " center_wavelength\n", + " 0.44\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_MTL.json
    type: application/json
    title: Product Metadata File (json)
    description: Collection 2 Level-1 Product Metadata File (json)
    roles: ['metadata']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_MTL.json'}}
    file:checksum: 1340f37f1acff50fc0f76d079ea5da64b87bde30b846bdaddfc22bf8d3ecb358b91c149ba138c4013699bf9a0c008c3098c2d3e0e07622aeaf5a14449ae570867bf1
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Coastal/Aerosol Band (B1)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " alternate\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " s3\n", + "
        \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " storage:platform\n", + " \"AWS\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " storage:requester_pays\n", + " True\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B1.TIF\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B1.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Coastal/Aerosol Band (B1)
    description: Collection 2 Level-1 Coastal/Aerosol Band (B1) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B1', 'common_name': 'coastal', 'gsd': 30, 'center_wavelength': 0.44}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B1.TIF'}}
    file:checksum: 1340dcff4cf50bbf402d7cabd6b13ff5c83b031ab339ce61995ae0573fe649edd11cdc852eea1fbb2fbf534d1d69b8a8738b259d6f4daa984f664305cf983832d3b2
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Blue Band (B2)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " file:checksum\n", + " \"1340c03174043d3c94303da08abc2fd78f6e45526c5831056cd1502bdecf514daf079fc05ab02bdd383b7c3e4da6964e1394a5ca4a584eada3cd6909d7c53724ebe7\"\n", + "
  • \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"data\"\n", + "
    • \n", + " \n", " \n", - "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B2.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Blue Band (B2)
    description: Collection 2 Level-1 Blue Band (B2) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B2', 'common_name': 'blue', 'gsd': 30, 'center_wavelength': 0.48}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B2.TIF'}}
    file:checksum: 1340f0a602019909fbb3e6bd909443ef7f9adfe7efabc86586f6e5f85e941aab30f03adbde671e000852b535ce627d864c1e6c3b33011a907b9a67fa1b7e595d9f42
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Green Band (B3)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " blue\n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B2.TIF\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " title\n", + " \"Blue Band (B2)\"\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B3.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Green Band (B3)
    description: Collection 2 Level-1 Green Band (B3) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B3', 'common_name': 'green', 'gsd': 30, 'center_wavelength': 0.56}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B3.TIF'}}
    file:checksum: 1340390ee928fcce762ed559dd7624dac340cb11f494a4a3eaf8a410e07c8dc2efcbc8095b7b8a7753b77cd3ac484a1dc4a820412070da2fbbb26c4a8c84da65c740
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Red Band (B4)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " description\n", + " \"Collection 2 Level-1 Blue Band (B2) Top of Atmosphere Radiance\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", " \n", + "
      • \n", + " name\n", + " \"B2\"\n", + "
      • \n", + " \n", + " \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " common_name\n", + " \"blue\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " gsd\n", + " 30\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " center_wavelength\n", + " 0.48\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B4.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Red Band (B4)
    description: Collection 2 Level-1 Red Band (B4) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B4', 'common_name': 'red', 'gsd': 30, 'center_wavelength': 0.66}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B4.TIF'}}
    file:checksum: 13407ee4ce734a8f1253e88a6ee07115ce1259780593a497277fabea9754224709f9a18f6e24c6f797b5087e139d88eb3623906f78ff346b0aab1ecec9dd74bf5e64
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Near Infrared Band 0.8 (B5)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " alternate\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " s3\n", + "
        \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " storage:platform\n", + " \"AWS\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " storage:requester_pays\n", + " True\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B2.TIF\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B5.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Near Infrared Band 0.8 (B5)
    description: Collection 2 Level-1 Near Infrared Band 0.8 (B5) Top of Atmosphere Radiance
    roles: ['data', 'reflectance']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B5', 'common_name': 'nir08', 'gsd': 30, 'center_wavelength': 0.87}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B5.TIF'}}
    file:checksum: 13400a93071bb947a66627d3a081edd3d61120eaf1a7ca8ae05246747361c893865456f9632ffa9b71577b7b3be98dcf0126bcc265cfc680869b34a66d670c35012f
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Short-wave Infrared Band 1.6 (B6)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " file:checksum\n", + " \"1340eda74ede96fa71b87679644ee9addd5ea19d4df78a20c8f000c3031c449f3c6f172c9e78b0e3ee291d3af574360ee260d628b07932ba23cbb7fa674b55ef568b\"\n", + "
  • \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " 0\n", + " \"data\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B6.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Short-wave Infrared Band 1.6 (B6)
    description: Collection 2 Level-1 Short-wave Infrared Band 1.6 (B6) Top of Atmosphere Radiance
    roles: ['data', 'reflectance']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B6', 'common_name': 'swir16', 'gsd': 30, 'center_wavelength': 1.61}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B6.TIF'}}
    file:checksum: 134062a6c6a75da004aafab56bd32144d3f8771047a5dd70ec0ea95490833d650ad004c785f53d8505f7dd6944b6b427abb464c7b89bb99873d7851c83cfea527bda
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Short-wave Infrared Band 2.2 (B7)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " green\n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B3.TIF\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " title\n", + " \"Green Band (B3)\"\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B7.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Short-wave Infrared Band 2.2 (B7)
    description: Collection 2 Level-1 Short-wave Infrared Band 2.2 (B7) Top of Atmosphere Radiance
    roles: ['data', 'reflectance']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B7', 'common_name': 'swir22', 'gsd': 30, 'center_wavelength': 2.2}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B7.TIF'}}
    file:checksum: 1340f5a2ec02ecabfbbe1e5c146d0a024a99ba3fe858e7d7f93294a51ee4c6b87109cdad2c59b4e6b7a4f5e42e634a8fef078fb8754ee4cd918c9b4e906bee65a550
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Panchromatic Band (B8)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " description\n", + " \"Collection 2 Level-1 Green Band (B3) Top of Atmosphere Radiance\"\n", + "
  • \n", + " \n", + " \n", " \n", " \n", - " \n", + "
  • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", + " \n", " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " name\n", + " \"B3\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " common_name\n", + " \"green\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " gsd\n", + " 30\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " center_wavelength\n", + " 0.56\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B8.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Panchromatic Band (B8)
    description: Collection 2 Level-1 Panchromatic Band (B8) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B8', 'common_name': 'pan', 'gsd': 15, 'center_wavelength': 0.59}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B8.TIF'}}
    file:checksum: 1340f2a81f05dabed172f1609c89e9ea351f2c756f65fdbd51fb6dd00098d8c7d5663d7d57609a2129c5b3fcf25147ba583738fb518e83834b011f2ffb0008de3ea9
    proj:shape: [17541, 17481]
    proj:transform: [15, 0, 261292.5, 0, -15, 7855507.5]
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Cirrus Band (B9)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " alternate\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " s3\n", + "
        \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " storage:platform\n", + " \"AWS\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " storage:requester_pays\n", + " True\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B3.TIF\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B9.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Cirrus Band (B9)
    description: Collection 2 Level-1 Cirrus Band (B9) Top of Atmosphere Radiance
    roles: ['data']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B9', 'common_name': 'cirrus', 'gsd': 30, 'center_wavelength': 1.37}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B9.TIF'}}
    file:checksum: 13401223a49db734e01483777ca9330c7795753d4f974f237db1b661e371fd64e1eb4ca98f485729b637605c18286f0bd5be20d067690e5484cc8e4d102dd77ba014
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Thermal Infrared Band 10.9 (B10)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " file:checksum\n", + " \"13405bc02e5190d2f6d162f803bd59938c24166c428c23f5a2991cb1eb13de91398c5fa3638ee72bb3dd9fb591edc1388bad44e892f5d5c9ff310f5a8a76d26c14a3\"\n", + "
  • \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"data\"\n", + "
    • \n", + " \n", " \n", - "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B10.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Thermal Infrared Band 10.9 (B10)
    description: Collection 2 Level-1 Thermal Infrared Band 10.9 (B10) Top of Atmosphere Radiance
    roles: ['data', 'temperature']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B10', 'common_name': 'lwir11', 'gsd': 100, 'center_wavelength': 10.9}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B10.TIF'}}
    file:checksum: 134024fd68eddf8df59bd045ba2070ce7a2a07b3670200ee2f637c7c03197956733d12b69213ed4e91d3094f4322ead9e528a3151ece2afd6498763493ff75807285
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Thermal Infrared Band 12.0 (B11)

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " red\n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B4.TIF\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " title\n", + " \"Red Band (B4)\"\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B11.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Thermal Infrared Band 12.0 (B11)
    description: Collection 2 Level-1 Thermal Infrared Band 12.0 (B11) Top of Atmosphere Radiance
    roles: ['data', 'temperature']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    eo:bands: [{'name': 'B11', 'common_name': 'lwir12', 'gsd': 100, 'center_wavelength': 12.01}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_B11.TIF'}}
    file:checksum: 1340322de4bd2084bda1235c08301b24e9773d102cde9cdef9e568fe308f31f81d3910cac0c1624026561f0c3919d7490511de65b15005f2a2787194aa246e4e870c
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Pixel Quality Assessment Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " description\n", + " \"Collection 2 Level-1 Red Band (B4) Top of Atmosphere Radiance\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", " \n", + "
      • \n", + " name\n", + " \"B4\"\n", + "
      • \n", + " \n", + " \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " common_name\n", + " \"red\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " gsd\n", + " 30\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " center_wavelength\n", + " 0.66\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_QA_PIXEL.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Pixel Quality Assessment Band
    description: Collection 2 Level-1 Pixel Quality Assessment Band Top of Atmosphere Radiance
    roles: ['cloud', 'cloud-shadow', 'snow-ice', 'water-mask']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    classification:bitfields: [{'name': 'fill', 'description': 'Corresponding pixels in L1 image bands are fill', 'offset': 0, 'length': 1, 'classes': [{'name': 'not_fill', 'description': 'L1 image band pixels are not fill', 'value': 0}, {'name': 'fill', 'description': 'L1 image band pixels are fill', 'value': 1}]}, {'name': 'dilated', 'description': 'Dilated cloud', 'offset': 1, 'length': 1, 'classes': [{'name': 'not_dilated', 'description': 'Cloud is not dilated or no cloud', 'value': 0}, {'name': 'dilated', 'description': 'Cloud dilation', 'value': 1}]}, {'name': 'cirrus', 'description': 'Cirrus mask', 'offset': 2, 'length': 1, 'classes': [{'name': 'not_cirrus', 'description': 'No confidence level set or low confidence cirrus', 'value': 0}, {'name': 'cirrus', 'description': 'High confidence cirrus', 'value': 1}]}, {'name': 'cloud', 'description': 'Cloud mask', 'offset': 3, 'length': 1, 'classes': [{'name': 'not_cloud', 'description': 'Cloud confidence is not high', 'value': 0}, {'name': 'cloud', 'description': 'High confidence cloud', 'value': 1}]}, {'name': 'shadow', 'description': 'Cloud shadow mask', 'offset': 4, 'length': 1, 'classes': [{'name': 'not_shadow', 'description': 'Cloud shadow confidence is not high', 'value': 0}, {'name': 'shadow', 'description': 'High confidence cloud shadow', 'value': 1}]}, {'name': 'snow', 'description': 'Snow/Ice mask', 'offset': 5, 'length': 1, 'classes': [{'name': 'not_snow', 'description': 'Snow/Ice confidence is not high', 'value': 0}, {'name': 'snow', 'description': 'High confidence snow cover', 'value': 1}]}, {'name': 'clear', 'description': 'Cloud or dilated cloud bits set', 'offset': 6, 'length': 1, 'classes': [{'name': 'not_clear', 'description': 'Cloud or dilated cloud bits are set', 'value': 0}, {'name': 'clear', 'description': 'Cloud and dilated cloud bits are not set', 'value': 1}]}, {'name': 'water', 'description': 'Water mask', 'offset': 7, 'length': 1, 'classes': [{'name': 'not_water', 'description': 'Land or cloud', 'value': 0}, {'name': 'water', 'description': 'Water', 'value': 1}]}, {'name': 'cloud_confidence', 'description': 'Cloud confidence levels', 'offset': 8, 'length': 2, 'classes': [{'name': 'not_set', 'description': 'No confidence level set', 'value': 0}, {'name': 'low', 'description': 'Low confidence cloud', 'value': 1}, {'name': 'medium', 'description': 'Medium confidence cloud', 'value': 2}, {'name': 'high', 'description': 'High confidence cloud', 'value': 3}]}, {'name': 'shadow_confidence', 'description': 'Cloud shadow confidence levels', 'offset': 10, 'length': 2, 'classes': [{'name': 'not_set', 'description': 'No confidence level set', 'value': 0}, {'name': 'low', 'description': 'Low confidence cloud shadow', 'value': 1}, {'name': 'reserved', 'description': 'Reserved - value not used', 'value': 2}, {'name': 'high', 'description': 'High confidence cloud shadow', 'value': 3}]}, {'name': 'snow_confidence', 'description': 'Snow/Ice confidence levels', 'offset': 12, 'length': 2, 'classes': [{'name': 'not_set', 'description': 'No confidence level set', 'value': 0}, {'name': 'low', 'description': 'Low confidence snow/ice', 'value': 1}, {'name': 'reserved', 'description': 'Reserved - value not used', 'value': 2}, {'name': 'high', 'description': 'High confidence snow/ice', 'value': 3}]}, {'name': 'cirrus_confidence', 'description': 'Cirrus confidence levels', 'offset': 14, 'length': 2, 'classes': [{'name': 'not_set', 'description': 'No confidence level set', 'value': 0}, {'name': 'low', 'description': 'Low confidence cirrus', 'value': 1}, {'name': 'reserved', 'description': 'Reserved - value not used', 'value': 2}, {'name': 'high', 'description': 'High confidence cirrus', 'value': 3}]}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_QA_PIXEL.TIF'}}
    file:checksum: 1340bd1ba8811b39d3f87b9fbac994e2d8b9cdc68206de261277b72bef13eb8e4941a738af18f99e313afc2d7ecbd16c0283fb7797ed2f524bc8517fc031e25351c5
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Radiometric Saturation Quality Assessment Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " alternate\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " s3\n", + "
        \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " storage:platform\n", + " \"AWS\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " storage:requester_pays\n", + " True\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B4.TIF\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_QA_RADSAT.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Radiometric Saturation Quality Assessment Band
    description: Collection 2 Level-1 Radiometric Saturation Quality Assessment Band Top of Atmosphere Radiance
    roles: ['saturation']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    classification:bitfields: [{'name': 'band1', 'description': 'Band 1 radiometric saturation', 'offset': 0, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 1 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 1 is saturated', 'value': 1}]}, {'name': 'band2', 'description': 'Band 2 radiometric saturation', 'offset': 1, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 2 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 2 is saturated', 'value': 1}]}, {'name': 'band3', 'description': 'Band 3 radiometric saturation', 'offset': 2, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 3 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 3 is saturated', 'value': 1}]}, {'name': 'band4', 'description': 'Band 4 radiometric saturation', 'offset': 3, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 4 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 4 is saturated', 'value': 1}]}, {'name': 'band5', 'description': 'Band 5 radiometric saturation', 'offset': 4, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 5 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 5 is saturated', 'value': 1}]}, {'name': 'band6', 'description': 'Band 6 radiometric saturation', 'offset': 5, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 6 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 6 is saturated', 'value': 1}]}, {'name': 'band7', 'description': 'Band 7 radiometric saturation', 'offset': 6, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 7 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 7 is saturated', 'value': 1}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 7, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'band9', 'description': 'Band 9 radiometric saturation', 'offset': 8, 'length': 1, 'classes': [{'name': 'not_saturated', 'description': 'Band 9 is not saturated', 'value': 0}, {'name': 'saturated', 'description': 'Band 9 is saturated', 'value': 1}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 9, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 10, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'occlusion', 'description': 'Terrain not visible from sensor due to intervening terrain', 'offset': 11, 'length': 1, 'classes': [{'name': 'not_occluded', 'description': 'Terrain is not occluded', 'value': 0}, {'name': 'occluded', 'description': 'Terrain is occluded', 'value': 1}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 12, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 13, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 14, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}, {'name': 'unused', 'description': 'Unused bit', 'offset': 15, 'length': 1, 'classes': [{'name': 'unused', 'description': 'Unused bit', 'value': 0}]}]
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_QA_RADSAT.TIF'}}
    file:checksum: 1340c7989f6e2f2452c6d831fa381023a96a6239f2468c1cab822bfeccbb0e81d09ef9e66beb25076a15b5f92e64d37fc9bc7b2a8bd841d4c23f0d5e99b00339dfe8
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Angle Coefficients File

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " file:checksum\n", + " \"134012c84e81bf929d73b1d4aacb6108ca7c1fff428726320b1ce5fe4fcf7daf6ba43c418670ee4825de1927427c42bade0386dae18b07d14e1a500d2ec25dbcfdff\"\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_ANG.txt
    type: text/plain
    title: Angle Coefficients File
    description: Collection 2 Level-1 Angle Coefficients File (ANG)
    roles: ['metadata']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_ANG.txt'}}
    file:checksum: 1340d62f86775fcb6bf2cf857977a5396da298d39a9fdb52d6629bb3512fd27f9eab1272a2e7bf98bd4ecd8182446840c2778431fd0dd43a1ad78c0643b501e813d7
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", - " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Sensor Azimuth Angle Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " 0\n", + " \"data\"\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_VAA.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Sensor Azimuth Angle Band
    description: Collection 2 Level-1 Sensor Azimuth Angle Band
    roles: ['azimuth']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_VAA.TIF'}}
    file:checksum: 134002d80cf9e82ddb6461f32daa52b6f0849489ba1f6da8766e4c980a0c57f0d660fb8ad1b9af8b2df0b1cf88fc9d413daff597ba9185b83b90a1539906ec9078c5
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Sensor Zenith Angle Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " nir08\n", + "
      \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B5.TIF\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
  • \n", + " \n", " \n", " \n", - " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_VZA.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Sensor Zenith Angle Band
    description: Collection 2 Level-1 Sensor Zenith Angle Band
    roles: ['data']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_VZA.TIF'}}
    file:checksum: 1340d7400e77da79fc700141da99b3f99589949ff4ae68c0a3bb42dbd7b8e6589afbed6d96c8feb5495a3358c576605e253043d5e71ad09ec84c433c490171d5ed21
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Solar Azimuth Angle Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " title\n", + " \"Near Infrared Band 0.8 (B5)\"\n", + "
  • \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " description\n", + " \"Collection 2 Level-1 Near Infrared Band 0.8 (B5) Top of Atmosphere Radiance\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + "
  • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", " \n", - " \n", - "
  • href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_SAA.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Solar Azimuth Angle Band
    description: Collection 2 Level-1 Solar Azimuth Angle Band
    roles: ['sun-azimuth']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_SAA.TIF'}}
    file:checksum: 1340aeccc943e32f169f13ed62b3040f9d56c9ef9f3aa4913fb053b2d3d380d383c2e0d70d6d97222ac0dfbab3d847e7af7a8c43dc8d230cf73e2485dd186c06f8bb
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Solar Zenith Angle Band

    \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + "
  • \n", + " 0\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " name\n", + " \"B5\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
    • \n", + " common_name\n", + " \"nir08\"\n", + "
    • \n", + " \n", + " \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " gsd\n", + " 30\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " center_wavelength\n", + " 0.87\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_SZA.TIF
    type: image/vnd.stac.geotiff; cloud-optimized=true
    title: Solar Zenith Angle Band
    description: Collection 2 Level-1 Solar Zenith Angle Band
    roles: ['data']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_SZA.TIF'}}
    file:checksum: 1340b5b25eaf0db0e92b3f8d51c264541aed07204de462db88bec5b14f8f424609038c55e037258eea160000f7bc182e0ac025a141b2ca2928d8426655be194e8855
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Product Metadata File

    \n", - "
    \n", - " \n", - " \n", + "
  • \n", + " alternate\n", + "
      \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " s3\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " storage:platform\n", + " \"AWS\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
    • \n", + " storage:requester_pays\n", + " True\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B5.TIF\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " file:checksum\n", + " \"134076277bf855f3f21cd4c25c17dc2db210caa43547b3108df0bac8dfcb65b645083d3bfef96f8335af2144b3a38b001cceec2a3bd6c17127c518b2bf87a4a054f8\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " \n", + " roles\n", + " [] 2 items\n", + " \n", + " \n", + "
      \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " 0\n", + " \"data\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " 1\n", + " \"reflectance\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + "
  • \n", + " swir16\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B6.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " title\n", + " \"Short-wave Infrared Band 1.6 (B6)\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " description\n", + " \"Collection 2 Level-1 Short-wave Infrared Band 1.6 (B6) Top of Atmosphere Radiance\"\n", + "
  • \n", + " \n", + " \n", " \n", " \n", - " \n", + "
  • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", + " \n", " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " name\n", + " \"B6\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + "
  • \n", + " common_name\n", + " \"swir16\"\n", + "
  • \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_MTL.txt
    type: text/plain
    title: Product Metadata File
    description: Collection 2 Level-1 Product Metadata File (MTL)
    roles: ['metadata']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_MTL.txt'}}
    file:checksum: 13409050479ffcfd16eb8ac7f83ef533308d1ff13833558eeb5f48f2ba8a192fc32885ff28d29163f19200a0525e404965c4af5c48892c763cfb4b9d8b3662fee216
    \n", - "
    \n", - "
    \n", - "
    \n", + " \n", + " \n", " \n", " \n", - "\n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - "
    \n", - " \n", - "

    Asset: Product Metadata File (xml)

    \n", - "
    \n", - " \n", - " \n", + "
  • \n", + " gsd\n", + " 30\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + "
  • \n", + " center_wavelength\n", + " 1.61\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " alternate\n", + "
      \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " s3\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " storage:platform\n", + " \"AWS\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " storage:requester_pays\n", + " True\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B6.TIF\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + "
  • \n", + " file:checksum\n", + " \"1340688d7d2eeba5767eb1a13a9a0681878bf9d465c68481162d00f2eb3859ca82d05f5d2a71d89dc9c605d5c5e3bfe75d7e762c063718e0c8cd71c51914cb87176a\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " \n", + " roles\n", + " [] 2 items\n", + " \n", + " \n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " 0\n", + " \"data\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", " \n", - "
  • \n", + "
  • \n", + " 1\n", + " \"reflectance\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", + "
  • \n", + " swir22\n", + "
      \n", + " \n", + " \n", " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B7.TIF\"\n", + "
    • \n", + " \n", + " \n", " \n", " \n", - "
  • \n", + " \n", + "
  • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
  • \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", + "
  • \n", + " title\n", + " \"Short-wave Infrared Band 2.2 (B7)\"\n", + "
  • \n", + " \n", " \n", " \n", + " \n", + " \n", + "
  • \n", + " description\n", + " \"Collection 2 Level-1 Short-wave Infrared Band 2.2 (B7) Top of Atmosphere Radiance\"\n", + "
  • \n", " \n", - "
    href: https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_MTL.xml
    type: application/xml
    title: Product Metadata File (xml)
    description: Collection 2 Level-1 Product Metadata File (xml)
    roles: ['metadata']
    owner: LC08_L1TP_008011_20190507_20200828_02_T1
    alternate: {'s3': {'storage:platform': 'AWS', 'storage:requester_pays': True, 'href': 's3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/011/LC08_L1TP_008011_20190507_20200828_02_T1/LC08_L1TP_008011_20190507_20200828_02_T1_MTL.xml'}}
    file:checksum: 13407003d50020e48bbf8ab39dd6dc378aa30a2faadedb5ccd9a0655f8012cf6f78f9b2d2046d3c0f7289126db9f70d63d70deddddb529b2e797d9bb495d1a8a9e7f
    \n", - "
    \n", - "
    \n", - "
    \n", " \n", - " \n", + " \n", + " \n", + "
  • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " name\n", + " \"B7\"\n", + "
      • \n", " \n", " \n", - "
        \n", - " \n", - "

        Links

        \n", - "
        \n", + " \n", " \n", " \n", - "\n", - "
        \n", - "
        \n", - "
        \n", - "
        \n", - "

        Link:

        \n", - " \n", - " \n", - " \n", + "
      • \n", + " common_name\n", + " \"swir22\"\n", + "
      • \n", + " \n", " \n", + " \n", " \n", + " \n", + "
      • \n", + " gsd\n", + " 30\n", + "
      • \n", + " \n", " \n", - "
        rel: self
        href: https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l1/items/LC08_L1TP_008011_20190507_20200828_02_T1
        \n", " \n", - "
        \n", - "
        \n", " \n", " \n", - "\n", - "
        \n", - "
        \n", - "
        \n", - "
        \n", - "

        Link:

        \n", - " \n", - " \n", - " \n", + "
      • \n", + " center_wavelength\n", + " 2.2\n", + "
      • \n", + " \n", " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", + " \n", + " \n", + " \n", " \n", - "
        rel: parent
        href: https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l1
        \n", " \n", - "
        \n", - "
        \n", " \n", " \n", - "\n", - "
        \n", - "
        \n", - "
        \n", - "
        \n", - "

        Link:

        \n", - " \n", - " \n", - " \n", + "
      • \n", + " alternate\n", + "
          \n", + " \n", " \n", + " \n", + "
        • \n", + " s3\n", + "
            \n", + " \n", " \n", + " \n", + "
          • \n", + " storage:platform\n", + " \"AWS\"\n", + "
          • \n", + " \n", " \n", - "
      • rel: collection
        href: https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l1
        \n", " \n", - "
        \n", - "
        \n", " \n", " \n", - "\n", - "
        \n", - "
        \n", - "
        \n", - "
        \n", - "

        Link: STAC API

        \n", - " \n", - " \n", - " \n", + "
      • \n", + " storage:requester_pays\n", + " True\n", + "
      • \n", + " \n", " \n", - " \n", + " \n", " \n", + " \n", + "
      • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B7.TIF\"\n", + "
      • \n", + " \n", " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", + " \n", + " \n", + " \n", + " \n", " \n", - "
        rel: root
        href: https://landsatlook.usgs.gov/stac-server
        type: application/json
        title: STAC API
        \n", " \n", - "
        \n", - "
        \n", " \n", - "
        \n", + " \n", + "
      • \n", + " file:checksum\n", + " \"134026c0bc77778fb217e70418740499f3037d9d2011d4eed3a9a4a015b32916d0dd719cc4a40a79fcd5356bac2b59b8037efed3161a9eb196757e3df37db666d981\"\n", + "
      • \n", " \n", - "
      \n", - "
  • \n", - "
    \n", - " \n", - " \n", " \n", - " \n", - "
    \n", - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "items" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "user_expressions": [] - }, - "source": [ - "Load the geojson file into geopandas and inspect the items we want to collect" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "tags": [] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", + " \n", + " \n", + "
  • \n", + " \n", + " roles\n", + " [] 2 items\n", + " \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"data\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 1\n", + " \"reflectance\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " pan\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B8.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Panchromatic Band (B8)\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Panchromatic Band (B8) Top of Atmosphere Radiance\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"B8\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " common_name\n", + " \"pan\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " gsd\n", + " 15\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " center_wavelength\n", + " 0.59\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B8.TIF\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"1340f77a5622dd725a486b05d543f4f3501857fda6abdf11f43102dbdffd7b1476bfeef336aa2ba0e80c52d197e8e22634a58cbf9e33fa110c2a7996f8dbd46f3c7b\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " proj:shape\n", + " [] 2 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " 16981\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " 16861\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " proj:transform\n", + " [] 6 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " 15\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " 0\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + " 437092.5\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 3\n", + " 0\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 4\n", + " -15\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 5\n", + " 7701607.5\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"data\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " cirrus\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B9.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Cirrus Band (B9)\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Cirrus Band (B9) Top of Atmosphere Radiance\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"B9\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " common_name\n", + " \"cirrus\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " gsd\n", + " 30\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " center_wavelength\n", + " 1.37\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B9.TIF\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"1340db743557b1c240b880587754b1276e53a97d53a98228d0ec21fcda4ad24a6f0476f22cfcb9f7625aff9a7b69c290a78e8785f8e5f2729b6982b9a86f805b4d1b\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"data\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " lwir11\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B10.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Thermal Infrared Band 10.9 (B10)\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Thermal Infrared Band 10.9 (B10) Top of Atmosphere Radiance\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"B10\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " common_name\n", + " \"lwir11\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " gsd\n", + " 100\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " center_wavelength\n", + " 10.9\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B10.TIF\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"1340817216a8ca7622fc5e30e638b61a132eb653aefb603077d7a405bf618eb87d8540346a647cae65a263f878d868cc478b59a283bca0808315732c5377bb621c04\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 2 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"data\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " \"temperature\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " lwir12\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B11.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Thermal Infrared Band 12.0 (B11)\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Thermal Infrared Band 12.0 (B11) Top of Atmosphere Radiance\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " eo:bands\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"B11\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " common_name\n", + " \"lwir12\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " gsd\n", + " 100\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " center_wavelength\n", + " 12.01\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_B11.TIF\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"1340822c9200e180feb779a16c57c620cedf316ab2a5f6fed95a86426dd00586b344fb8866e103eda68c201e17e6837ae3f6aaa6c8b0319d1298a79a590c14bd8893\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 2 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"data\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " \"temperature\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " qa_pixel\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_QA_PIXEL.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Pixel Quality Assessment Band\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Pixel Quality Assessment Band Top of Atmosphere Radiance\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " classification:bitfields\n", + " [] 12 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"fill\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Corresponding pixels in L1 image bands are fill\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 0\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_fill\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"L1 image band pixels are not fill\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"fill\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"L1 image band pixels are fill\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"dilated\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Dilated cloud\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_dilated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Cloud is not dilated or no cloud\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"dilated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Cloud dilation\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"cirrus\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Cirrus mask\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 2\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_cirrus\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"No confidence level set or low confidence cirrus\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"cirrus\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"High confidence cirrus\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"cloud\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Cloud mask\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 3\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_cloud\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Cloud confidence is not high\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"cloud\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"High confidence cloud\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 4\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"shadow\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Cloud shadow mask\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 4\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_shadow\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Cloud shadow confidence is not high\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"shadow\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"High confidence cloud shadow\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 5\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"snow\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Snow/Ice mask\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 5\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_snow\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Snow/Ice confidence is not high\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"snow\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"High confidence snow cover\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 6\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"clear\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Cloud or dilated cloud bits set\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 6\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_clear\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Cloud or dilated cloud bits are set\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"clear\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Cloud and dilated cloud bits are not set\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 7\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"water\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Water mask\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 7\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_water\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Land or cloud\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"water\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Water\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 8\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"cloud_confidence\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Cloud confidence levels\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 8\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 2\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 4 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_set\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"No confidence level set\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"low\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Low confidence cloud\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"medium\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Medium confidence cloud\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 2\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"high\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"High confidence cloud\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 3\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 9\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"shadow_confidence\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Cloud shadow confidence levels\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 10\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 2\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 4 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_set\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"No confidence level set\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"low\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Low confidence cloud shadow\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"reserved\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Reserved - value not used\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 2\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"high\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"High confidence cloud shadow\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 3\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 10\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"snow_confidence\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Snow/Ice confidence levels\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 12\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 2\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 4 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_set\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"No confidence level set\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"low\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Low confidence snow/ice\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"reserved\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Reserved - value not used\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 2\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"high\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"High confidence snow/ice\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 3\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 11\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"cirrus_confidence\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Cirrus confidence levels\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 14\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 2\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 4 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_set\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"No confidence level set\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"low\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Low confidence cirrus\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 2\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"reserved\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Reserved - value not used\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 2\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 3\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"high\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"High confidence cirrus\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 3\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_QA_PIXEL.TIF\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"1340041f2f8b0d68ed7a13c1c9f7f600ac1ecb21622e194863afbfcee9e951e9345e84cb4b2a9c018009ac395f0b159ea13464e78621961c3201b45e1bc26ffa807b\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 4 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"cloud\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + " \"cloud-shadow\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + " \"snow-ice\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 3\n", + " \"water-mask\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " qa_radsat\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_QA_RADSAT.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Radiometric Saturation Quality Assessment Band\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Radiometric Saturation Quality Assessment Band Top of Atmosphere Radiance\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " classification:bitfields\n", + " [] 16 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"band1\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Band 1 radiometric saturation\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 0\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 1 is not saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 1 is saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 1\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"band2\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Band 2 radiometric saturation\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 2 is not saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 2 is saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 2\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"band3\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Band 3 radiometric saturation\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 2\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 3 is not saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 3 is saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"band4\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Band 4 radiometric saturation\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 3\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 4 is not saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 4 is saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 4\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"band5\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Band 5 radiometric saturation\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 4\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 5 is not saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 5 is saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 5\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"band6\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Band 6 radiometric saturation\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 5\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 6 is not saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 6 is saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 6\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"band7\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Band 7 radiometric saturation\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 6\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 7 is not saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 7 is saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 7\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"unused\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Unused bit\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 7\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 1 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"unused\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Unused bit\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 8\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"band9\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Band 9 radiometric saturation\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 8\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 9 is not saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Band 9 is saturated\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 9\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"unused\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Unused bit\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 9\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 1 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"unused\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Unused bit\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 10\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"unused\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Unused bit\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 10\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 1 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"unused\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Unused bit\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 11\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"occlusion\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Terrain not visible from sensor due to intervening terrain\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 11\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 2 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"not_occluded\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Terrain is not occluded\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 1\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"occluded\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Terrain is occluded\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 1\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 12\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"unused\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Unused bit\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 12\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 1 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"unused\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Unused bit\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 13\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"unused\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Unused bit\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 13\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 1 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"unused\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Unused bit\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 14\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"unused\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Unused bit\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 14\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 1 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"unused\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Unused bit\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 15\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " name\n", + " \"unused\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " description\n", + " \"Unused bit\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " offset\n", + " 15\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " length\n", + " 1\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " \n", + " classes\n", + " [] 1 items\n", + " \n", + " \n", + "
            \n", + " \n", + " \n", + " \n", + "
          • \n", + " 0\n", + "
              \n", + " \n", + " \n", + " \n", + "
            • \n", + " name\n", + " \"unused\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " description\n", + " \"Unused bit\"\n", + "
            • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
            • \n", + " value\n", + " 0\n", + "
            • \n", + " \n", + " \n", + " \n", + "
            \n", + "
          • \n", + " \n", + " \n", + " \n", + "
          \n", + " \n", + "
        • \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_QA_RADSAT.TIF\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"134098013147e3c4295eb92a41e5a265c0dc32054a52247cad869ae20b9efd8fdaaf07f653392042d47f90d13d4441d9af34b52f0ec749f3df4e7c5b690afc95449b\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"saturation\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " ANG.txt\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_ANG.txt\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"text/plain\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Angle Coefficients File\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Angle Coefficients File (ANG)\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_ANG.txt\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"1340ebbc3d9c8a18169934e8bf8475522b908d27fc5a46c7f7b8110edb871fd1fafc489c39e39475a52fddf77417e7dd765850b90329829f5b5b2726a2aacce23ffa\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"metadata\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " VAA\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_VAA.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Sensor Azimuth Angle Band\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Sensor Azimuth Angle Band\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_VAA.TIF\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"1340a2a690a1525b335469f4c705cbceeaaf3e3b9727af3245f00e82042f668502d5221d0e175148603f1f2fce8ea48f11ee41f546c94fcb854679a3ac167d7009dc\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"azimuth\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " VZA\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_VZA.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Sensor Zenith Angle Band\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Sensor Zenith Angle Band\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_VZA.TIF\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"134098f9201879522069038cf57430d310f50d7e34cac1c547d3b36c36e85f8b2bccacf7dcee0c6061ea5900c891acc9f901ca8f33f13d3fb826669bb8ed496bcf98\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"data\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " SAA\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_SAA.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Solar Azimuth Angle Band\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Solar Azimuth Angle Band\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_SAA.TIF\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"134010e6cf0f7110cd8abeaba4567630fbd7a571a638779a89374819526e33ec5b458da01da9cadb904cfab4218fbb0cdbdffa9676b6e263f3329106bd997dbd8c9a\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"sun-azimuth\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " SZA\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_SZA.TIF\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"image/vnd.stac.geotiff; cloud-optimized=true\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Solar Zenith Angle Band\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Solar Zenith Angle Band\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_SZA.TIF\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"134065525f02b562f8d9d193e89d21d1b028af0ae1503a12ad26848c8c2edaaa9b2fe046c2ddab87735c14af334826b19b989c71bb6521b9dd9351f7433be432c7e7\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"data\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " MTL.txt\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.txt\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"text/plain\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Product Metadata File\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Product Metadata File (MTL)\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.txt\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"1340577c688e4c66398fca961abb4450d0a5427f4da8992a5f1afe2ea2163513579d626687c263a3344b11cbe6f67857802aed78268394a5ca839f127953d05a7974\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"metadata\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " MTL.xml\n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " href\n", + " \"https://landsatlook.usgs.gov/data/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.xml\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " type\n", + " \"application/xml\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " title\n", + " \"Product Metadata File (xml)\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " description\n", + " \"Collection 2 Level-1 Product Metadata File (xml)\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " alternate\n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " s3\n", + "
          \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:platform\n", + " \"AWS\"\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " storage:requester_pays\n", + " True\n", + "
        • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        • \n", + " href\n", + " \"s3://usgs-landsat/collection02/level-1/standard/oli-tirs/2019/008/012/LC08_L1TP_008012_20190507_20200829_02_T1/LC08_L1TP_008012_20190507_20200829_02_T1_MTL.xml\"\n", + "
        • \n", + " \n", + " \n", + " \n", + "
        \n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " file:checksum\n", + " \"134049a8e4edcdab491a9cbf015dce99db646983326b7224662b2b8001654c97cff201d146150a5af42086ecbec6adf2412cb1c6d2f82919f0c2d6d5a435c1c5deee\"\n", + "
    • \n", + " \n", + " \n", + " \n", + " \n", + "
    • \n", + " \n", + " roles\n", + " [] 1 items\n", + " \n", + " \n", + "
        \n", + " \n", + " \n", + " \n", + "
      • \n", + " 0\n", + " \"metadata\"\n", + "
      • \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + "
    • \n", + " \n", + " \n", + "
    \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " \n", + " bbox\n", + " [] 4 items\n", + " \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " -52.450348972917006\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 1\n", + " 67.13075970832166\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 2\n", + " -46.38012875444901\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 3\n", + " 69.41548599740054\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + "
  • \n", + " \n", + " stac_extensions\n", + " [] 9 items\n", + " \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 0\n", + " \"https://landsat.usgs.gov/stac/landsat-extension/v1.1.1/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 1\n", + " \"https://stac-extensions.github.io/view/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 2\n", + " \"https://stac-extensions.github.io/projection/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 3\n", + " \"https://stac-extensions.github.io/eo/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 4\n", + " \"https://stac-extensions.github.io/alternate-assets/v1.1.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 5\n", + " \"https://stac-extensions.github.io/storage/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 6\n", + " \"https://stac-extensions.github.io/file/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 7\n", + " \"https://stac-extensions.github.io/accuracy/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + "
    • \n", + " 8\n", + " \"https://stac-extensions.github.io/classification/v1.0.0/schema.json\"\n", + "
    • \n", + " \n", + " \n", + " \n", + "
    \n", + " \n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + "
  • \n", + " collection\n", + " \"landsat-c2l1\"\n", + "
  • \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    \n", + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "items" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "user_expressions": [] + }, + "source": [ + "Load the geojson file into geopandas and inspect the items we want to collect" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", "\n", " \n", " \n", @@ -5799,7 +21219,7 @@ "[2 rows x 25 columns]" ] }, - "execution_count": 26, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -5812,7 +21232,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 32, "metadata": { "tags": [] }, @@ -5826,14 +21246,21 @@ "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ - "
    \n", - "
    \n", + "
    \n", + "
    \n", "
    \n", "