{ "cells": [ { "cell_type": "markdown", "id": "320f6915-f3cc-49de-b9a3-de88ec9972ff", "metadata": {}, "source": [ "# Urban Heat Island Effect Changes\n", "\n", "## Authors & Contributors\n", "\n", "### Notebook\n", "- Jean Iaquinta, University of Oslo (Norway), [@j34ni](https://github.com/j34ni)\n", "\n", "### Contributors\n", "- Anne Fouilloux, Simula Research Laboratory (Norway), [@annefou](https://github.com/annefou)\n", "\n", "

\n", " \n", " \"RoHub\"\n", " \n", "

" ] }, { "cell_type": "markdown", "id": "009f8792-a293-48e0-9b6e-f06a029d3f38", "metadata": {}, "source": [ "
\n", " Overview\n", "
\n", "
\n", " Questions\n", " \n", " Objectives\n", " \n", "
" ] }, { "cell_type": "markdown", "id": "0206f9ae-3d42-4d08-a36b-37f7a8047e01", "metadata": {}, "source": [ "## Context\n", "\n", "The term \"Urban Heat Island\" (UHI) effect describes the phenomenon where urban environments exhibit higher air temperatures than their rural counterparts, a difference that is especially pronounced at night. This effect arises from the greater capacity of urban materials and man-made structures, such as buildings and pavements, to absorb, store, and then re-radiate heat compared to natural landscapes.\n", "\n", "First identified over two centuries ago, the UHI effect is subject of research to understand, measure, and mitigate its impacts on society, economic activities, and public health. Although traditionally the prerogative of specialists, the UHI is also attracting increasing interest among citizens. However, not all have the necessary technical expertise or infrastructure access to source relevant data (from in-situ measurements, satellite remote sensing, or numerical models), process it efficiently, synthesize it and interpret the changes over time or between different locations.\n", "\n", "The UHI-Stream tool was specifically developed to bridge this gap and quickly analyze temperature differences between two points anywhere on Earth's by leveraging EGI compute and storage resources (owned by CESNET) and ERA5-Land reanalysis data (available from 1950, as part of the Copernicus Climate Change Service). The corresponding hourly 2m air temperatures are streamed from S3 buckets, processed on-the-fly and visualized as annual heat-maps or animations spanning user-defined time-frames.\n", "\n", "Conveniently hosted on RoHub as a FAIR (Findable, Accessible, Interoperable, and Reusable) Executable Research Object, UHI-Stream is expected to be further converted into a Galaxy tool with a Graphical User Interface as part of the EuroScienceGateway project, potentially incorporating additional features to help users pinpoint representative urban and adjacent rural areas, or account for more grid cells.\n", "\n", "In summary, UHI-Stream is poised to become a valuable asset in urban climatology studies, enabling easier identification of UHI patterns and estimating climate impacts on a regional scale. The tool’s versatility in analyzing any two geographic points enhances its usefulness beyond the mere urban-rural context, allowing for comparative analyses of temperature changes across diverse locales, regardless of their relationship.\n", "\n", "### Data\n", "\n", "We will be using [ERA5-Land HRES dataset](https://confluence.ecmwf.int/display/CKB/ERA5-Land%3A+data+documentation) from [Open Meteo Historical Weather](https://open-meteo.com/en/docs/historical-weather-api#start_date=1940-03-17).\n", "\n", "The ERA5-Land HRES dataset has been produced at a resolution of 9 km, (~0.08°) and in a (octahedral) reduced Gaussian grid (represented as TCo1279).\n", "\n", ":::{warning}\n", "\n", "Note that to prevent discontinuities when IFS data is used instead of ERA5 data (~ from January 2017) one can specify which model is to be used with the parameter \"models\": \"era5_land\", for instance\n", "\n", ":::" ] }, { "cell_type": "markdown", "id": "c69de862-0010-49a5-8b17-c7e38bd789b3", "metadata": {}, "source": [ "## Setup\n", "\n", "This episode uses the following main Python packages:\n", "\n", "- openmeteo-requests {cite:ps}`a-openmeteo-requests2023`\n", "- pandas {cite:ps}`a-pandas-reback2020`\n", "\n", "Please install these packages if not already available in your Python environment.\n", "\n", "### Packages\n", "\n", "In this episode, some Python packages are imported when we start to use them. However, for best software practices, we recommend you to install and import all the necessary libraries at the top of your Jupyter notebook." ] }, { "cell_type": "markdown", "id": "77fd0384-e496-4854-bb51-4ac7cd4be952", "metadata": {}, "source": [ "#### Package Installation" ] }, { "cell_type": "code", "execution_count": 1, "id": "9470c22f-7fa3-45d7-8683-fde6801e8ba2", "metadata": { "scrolled": true, "tags": [ "hide-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: openmeteo-requests in /srv/conda/envs/notebook/lib/python3.12/site-packages (1.3.0)\n", "Requirement already satisfied: openmeteo-sdk>=1.4.0 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from openmeteo-requests) (1.14.1)\n", "Requirement already satisfied: requests in /srv/conda/envs/notebook/lib/python3.12/site-packages (from openmeteo-requests) (2.32.3)\n", "Requirement already satisfied: flatbuffers>=24.0.0 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from openmeteo-sdk>=1.4.0->openmeteo-requests) (24.3.25)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests->openmeteo-requests) (3.3.2)\n", "Requirement already satisfied: idna<4,>=2.5 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests->openmeteo-requests) (3.7)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests->openmeteo-requests) (1.26.19)\n", "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests->openmeteo-requests) (2024.7.4)\n", "Requirement already satisfied: requests-cache in /srv/conda/envs/notebook/lib/python3.12/site-packages (1.2.1)\n", "Requirement already satisfied: retry-requests in /srv/conda/envs/notebook/lib/python3.12/site-packages (2.0.0)\n", "Requirement already satisfied: attrs>=21.2 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests-cache) (24.2.0)\n", "Requirement already satisfied: cattrs>=22.2 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests-cache) (23.2.3)\n", "Requirement already satisfied: platformdirs>=2.5 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests-cache) (4.2.2)\n", "Requirement already satisfied: requests>=2.22 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests-cache) (2.32.3)\n", "Requirement already satisfied: url-normalize>=1.4 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests-cache) (1.4.3)\n", "Requirement already satisfied: urllib3>=1.25.5 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests-cache) (1.26.19)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests>=2.22->requests-cache) (3.3.2)\n", "Requirement already satisfied: idna<4,>=2.5 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests>=2.22->requests-cache) (3.7)\n", "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from requests>=2.22->requests-cache) (2024.7.4)\n", "Requirement already satisfied: six in /srv/conda/envs/notebook/lib/python3.12/site-packages (from url-normalize>=1.4->requests-cache) (1.16.0)\n", "Requirement already satisfied: cmcrameri in /srv/conda/envs/notebook/lib/python3.12/site-packages (1.9)\n", "Requirement already satisfied: matplotlib in /srv/conda/envs/notebook/lib/python3.12/site-packages (from cmcrameri) (3.9.2)\n", "Requirement already satisfied: numpy in /srv/conda/envs/notebook/lib/python3.12/site-packages (from cmcrameri) (1.26.4)\n", "Requirement already satisfied: packaging in /srv/conda/envs/notebook/lib/python3.12/site-packages (from cmcrameri) (24.1)\n", "Requirement already satisfied: contourpy>=1.0.1 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from matplotlib->cmcrameri) (1.2.1)\n", "Requirement already satisfied: cycler>=0.10 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from matplotlib->cmcrameri) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from matplotlib->cmcrameri) (4.53.1)\n", "Requirement already satisfied: kiwisolver>=1.3.1 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from matplotlib->cmcrameri) (1.4.5)\n", "Requirement already satisfied: pillow>=8 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from matplotlib->cmcrameri) (10.4.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from matplotlib->cmcrameri) (3.1.2)\n", "Requirement already satisfied: python-dateutil>=2.7 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from matplotlib->cmcrameri) (2.8.2)\n", "Requirement already satisfied: six>=1.5 in /srv/conda/envs/notebook/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib->cmcrameri) (1.16.0)\n" ] } ], "source": [ "! pip install openmeteo-requests\n", "! pip install requests-cache retry-requests\n", "! pip install cmcrameri" ] }, { "cell_type": "markdown", "id": "37038ffc-033b-4e75-8e61-ff4604e9b0ba", "metadata": {}, "source": [ "## Load Libraries" ] }, { "cell_type": "code", "execution_count": 2, "id": "d3d61c6f-ccc0-424c-b749-2481f92e164e", "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", " var py_version = '3.4.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n", " var reloading = false;\n", " var Bokeh = root.Bokeh;\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': {}, 'shim': {}});\n", " root._bokeh_is_loading = css_urls.length + 0;\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", " } 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.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.4.2.min.js\", \"https://cdn.holoviz.org/panel/1.4.5/dist/panel.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", " },\n", "function(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", "\ttry {\n", " inline_js[i].call(root, root.Bokeh);\n", "\t} catch(e) {\n", "\t if (!reloading) {\n", "\t throw e;\n", "\t }\n", "\t}\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", " root._bokeh_is_initializing = true\n", " root._bokeh_onload_callbacks = []\n", " var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", " if (!reloading && !bokeh_loaded) {\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 var py_version = '3.4.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var reloading = false;\n var Bokeh = root.Bokeh;\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': {}, 'shim': {}});\n root._bokeh_is_loading = css_urls.length + 0;\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 } 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.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.4.2.min.js\", \"https://cdn.holoviz.org/panel/1.4.5/dist/panel.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\ttry {\n inline_js[i].call(root, root.Bokeh);\n\t} catch(e) {\n\t if (!reloading) {\n\t throw e;\n\t }\n\t}\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 root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n if (!reloading && !bokeh_loaded) {\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" }, { "data": { "application/javascript": [ "\n", "if ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n", " window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n", "}\n", "\n", "\n", " function JupyterCommManager() {\n", " }\n", "\n", " JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n", " if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", " comm_manager.register_target(comm_id, function(comm) {\n", " comm.on_msg(msg_handler);\n", " });\n", " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", " window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n", " comm.onMsg = msg_handler;\n", " });\n", " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", " google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n", " var messages = comm.messages[Symbol.asyncIterator]();\n", " function processIteratorResult(result) {\n", " var message = result.value;\n", " console.log(message)\n", " var content = {data: message.data, comm_id};\n", " var buffers = []\n", " for (var buffer of message.buffers || []) {\n", " buffers.push(new DataView(buffer))\n", " }\n", " var metadata = message.metadata || {};\n", " var msg = {content, buffers, metadata}\n", " msg_handler(msg);\n", " return messages.next().then(processIteratorResult);\n", " }\n", " return messages.next().then(processIteratorResult);\n", " })\n", " }\n", " }\n", "\n", " JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n", " if (comm_id in window.PyViz.comms) {\n", " return window.PyViz.comms[comm_id];\n", " } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", " var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n", " if (msg_handler) {\n", " comm.on_msg(msg_handler);\n", " }\n", " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", " var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n", " comm.open();\n", " if (msg_handler) {\n", " comm.onMsg = msg_handler;\n", " }\n", " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", " var comm_promise = google.colab.kernel.comms.open(comm_id)\n", " comm_promise.then((comm) => {\n", " window.PyViz.comms[comm_id] = comm;\n", " if (msg_handler) {\n", " var messages = comm.messages[Symbol.asyncIterator]();\n", " function processIteratorResult(result) {\n", " var message = result.value;\n", " var content = {data: message.data};\n", " var metadata = message.metadata || {comm_id};\n", " var msg = {content, metadata}\n", " msg_handler(msg);\n", " return messages.next().then(processIteratorResult);\n", " }\n", " return messages.next().then(processIteratorResult);\n", " }\n", " }) \n", " var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n", " return comm_promise.then((comm) => {\n", " comm.send(data, metadata, buffers, disposeOnDone);\n", " });\n", " };\n", " var comm = {\n", " send: sendClosure\n", " };\n", " }\n", " window.PyViz.comms[comm_id] = comm;\n", " return comm;\n", " }\n", " window.PyViz.comm_manager = new JupyterCommManager();\n", " \n", "\n", "\n", "var JS_MIME_TYPE = 'application/javascript';\n", "var HTML_MIME_TYPE = 'text/html';\n", "var EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\n", "var CLASS_NAME = 'output';\n", "\n", "/**\n", " * Render data to the DOM node\n", " */\n", "function render(props, node) {\n", " var div = document.createElement(\"div\");\n", " var script = document.createElement(\"script\");\n", " node.appendChild(div);\n", " node.appendChild(script);\n", "}\n", "\n", "/**\n", " * Handle when a new output is added\n", " */\n", "function handle_add_output(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", " if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", " var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", " if (id !== undefined) {\n", " var nchildren = toinsert.length;\n", " var html_node = toinsert[nchildren-1].children[0];\n", " html_node.innerHTML = output.data[HTML_MIME_TYPE];\n", " var scripts = [];\n", " var nodelist = html_node.querySelectorAll(\"script\");\n", " for (var i in nodelist) {\n", " if (nodelist.hasOwnProperty(i)) {\n", " scripts.push(nodelist[i])\n", " }\n", " }\n", "\n", " scripts.forEach( function (oldScript) {\n", " var newScript = document.createElement(\"script\");\n", " var attrs = [];\n", " var nodemap = oldScript.attributes;\n", " for (var j in nodemap) {\n", " if (nodemap.hasOwnProperty(j)) {\n", " attrs.push(nodemap[j])\n", " }\n", " }\n", " attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n", " newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n", " oldScript.parentNode.replaceChild(newScript, oldScript);\n", " });\n", " if (JS_MIME_TYPE in output.data) {\n", " toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n", " }\n", " output_area._hv_plot_id = id;\n", " if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n", " window.PyViz.plot_index[id] = Bokeh.index[id];\n", " } else {\n", " window.PyViz.plot_index[id] = null;\n", " }\n", " } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", "}\n", "\n", "/**\n", " * Handle when an output is cleared or removed\n", " */\n", "function handle_clear_output(event, handle) {\n", " var id = handle.cell.output_area._hv_plot_id;\n", " var server_id = handle.cell.output_area._bokeh_server_id;\n", " if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n", " var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n", " if (server_id !== null) {\n", " comm.send({event_type: 'server_delete', 'id': server_id});\n", " return;\n", " } else if (comm !== null) {\n", " comm.send({event_type: 'delete', 'id': id});\n", " }\n", " delete PyViz.plot_index[id];\n", " if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n", " var doc = window.Bokeh.index[id].model.document\n", " doc.clear();\n", " const i = window.Bokeh.documents.indexOf(doc);\n", " if (i > -1) {\n", " window.Bokeh.documents.splice(i, 1);\n", " }\n", " }\n", "}\n", "\n", "/**\n", " * Handle kernel restart event\n", " */\n", "function handle_kernel_cleanup(event, handle) {\n", " delete PyViz.comms[\"hv-extension-comm\"];\n", " window.PyViz.plot_index = {}\n", "}\n", "\n", "/**\n", " * Handle update_display_data messages\n", " */\n", "function handle_update_output(event, handle) {\n", " handle_clear_output(event, {cell: {output_area: handle.output_area}})\n", " handle_add_output(event, handle)\n", "}\n", "\n", "function register_renderer(events, OutputArea) {\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[0]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " events.on('output_added.OutputArea', handle_add_output);\n", " events.on('output_updated.OutputArea', handle_update_output);\n", " events.on('clear_output.CodeCell', handle_clear_output);\n", " events.on('delete.Cell', handle_clear_output);\n", " events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n", "\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " safe: true,\n", " index: 0\n", " });\n", "}\n", "\n", "if (window.Jupyter !== undefined) {\n", " try {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " } catch(err) {\n", " }\n", "}\n" ], "application/vnd.holoviews_load.v0+json": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n console.log(message)\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n comm.open();\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n }) \n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ] }, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "p1002" } }, "output_type": "display_data" } ], "source": [ "from cmcrameri import cm\n", "import openmeteo_requests\n", "import matplotlib.pyplot as plt\n", "import matplotlib.animation as animation\n", "from IPython.display import HTML\n", "import pandas as pd\n", "import requests_cache\n", "import seaborn as sns\n", "from retry_requests import retry\n", "import hvplot.pandas" ] }, { "cell_type": "markdown", "id": "6794824c-e9d7-4ce9-bd71-44d4f08897fa", "metadata": {}, "source": [ "## Setup the Open-Meteo API client with cache and retry on error" ] }, { "cell_type": "code", "execution_count": 3, "id": "0f40d024-1181-4d9e-b24c-870e5bf1bc93", "metadata": {}, "outputs": [], "source": [ "cache_session = requests_cache.CachedSession('.cache', expire_after = -1)\n", "retry_session = retry(cache_session, retries = 5, backoff_factor = 0.2)\n", "openmeteo = openmeteo_requests.Client(session = retry_session)" ] }, { "cell_type": "markdown", "id": "dbcc9b82-d54c-4c0c-8089-8c79b1ec61ba", "metadata": {}, "source": [ "## Define the period of interest " ] }, { "cell_type": "code", "execution_count": 4, "id": "02f79b9b-f8e6-4e5d-a3cf-84f2880a521a", "metadata": {}, "outputs": [], "source": [ "start_year = 1950\n", "end_year = 2023" ] }, { "cell_type": "markdown", "id": "21432fc3-3fa8-43af-9fee-94bc6ed48a62", "metadata": {}, "source": [ "## Define locations for which the 2m temperature is to be compared over the period of interest \n", "\n", "- For each Area of Interest, we define two distinct (but nearby) locations to compare in order to identify potential Urban Heat Island effects." ] }, { "cell_type": "code", "execution_count": 5, "id": "e7d113f9-fa69-453c-b208-37083ee0de90", "metadata": {}, "outputs": [], "source": [ "oslo_area = {\n", " \"area\" : \"Norway\",\n", " \"urban\" : \"Oslo\",\n", " \"latitude_urban\" : 59.92000036537046,\n", " \"longitude_urban\" : 10.700146410119512,\n", " \"rural\" : \"Mortensrud\",\n", " \"latitude_rural\" : 59.85344259770861,\n", " \"longitude_rural\" : 10.821229728045472,\n", " \"time_zone\" : \"Europe/Oslo\"\n", "}" ] }, { "cell_type": "code", "execution_count": 6, "id": "0a26c99e-2da4-494d-b296-95ce28ed0475", "metadata": {}, "outputs": [], "source": [ "paris_area = {\n", " \"area\" : \"Paris, France\",\n", " \"urban\" : \"Montsouris public park\",\n", " \"latitude_urban\" : 48.82,\n", " \"longitude_urban\" : 2.33,\n", " \"rural\" : \"Melun\",\n", " \"latitude_rural\" : 48.61,\n", " \"longitude_rural\" : 2.67,\n", " \"time_zone\" : \"Europe/Paris\"\n", "}" ] }, { "cell_type": "code", "execution_count": 7, "id": "32829dae-3305-411b-b1e4-55859e38e4d2", "metadata": {}, "outputs": [], "source": [ "geirangerfjorden_area = {\n", " \"area\" : \"Geirangerfjorden, Norway\",\n", " \"urban\" : \"Geiranger\",\n", " \"latitude_urban\" : 62.09947881213586,\n", " \"longitude_urban\" : 7.20271411119387,\n", " \"rural\" : \"Dalen Gaard\",\n", " \"latitude_rural\" : 62.06916486996622,\n", " \"longitude_rural\" : 7.255376960289076,\n", " \"time_zone\" : \"Europe/Oslo\"\n", "}" ] }, { "cell_type": "code", "execution_count": 8, "id": "227a8a0c-7c7c-4018-9e7a-64661220cbd7", "metadata": {}, "outputs": [], "source": [ "brazil_area = {\n", " \"area\" : \"Brazil\",\n", " \"urban\" : \"Fortaleza\",\n", " \"latitude_urban\" : -3.673056,\n", " \"longitude_urban\" : -38.942222,\n", " \"rural\" : \"São Gonçalo do Amarante\",\n", " \"latitude_rural\" : -3.795,\n", " \"longitude_rural\" : -38.558333,\n", " \"time_zone\" : \"America/Sao_Paulo\"\n", "}" ] }, { "cell_type": "markdown", "id": "2d98a9fb-80f7-48d9-ae0b-af76f6ac8383", "metadata": {}, "source": [ "## Get the data from openmeteo archive <- time in GMT+0\n", "- Here we fetch data for a given location." ] }, { "cell_type": "code", "execution_count": 9, "id": "8526fbdb-4570-4011-8017-1f4986825e21", "metadata": {}, "outputs": [], "source": [ "class coordinates:\n", " def __init__(self, latitude, longitude):\n", " self.latitude = latitude\n", " self.longitude = longitude" ] }, { "cell_type": "code", "execution_count": 10, "id": "f6ecaf17-5a9c-4add-acf7-2c96f8d34b1d", "metadata": {}, "outputs": [], "source": [ "def get_data(urban_coords, rural_coords, start_year, end_year):\n", " url = \"https://archive-api.open-meteo.com/v1/archive\"\n", " params = {\n", " \"latitude\": [urban_coords.latitude, rural_coords.latitude],\n", " \"longitude\": [urban_coords.longitude, rural_coords.longitude],\n", " \"start_date\": str(start_year) + \"-01-01\",\n", " \"end_date\": str(end_year) + \"-12-31\",\n", " \"hourly\": \"temperature_2m\",\n", " \"timezone\": \"auto\", \n", " \"models\": \"era5_land\"\n", " }\n", " responses = openmeteo.weather_api(url, params=params)\n", " return responses" ] }, { "cell_type": "markdown", "id": "114cbe97-ca7f-47dc-82a3-028dd1edf29c", "metadata": {}, "source": [ "### Get Data for Brazil Area" ] }, { "cell_type": "code", "execution_count": 11, "id": "3c75a449-604f-4290-a8f7-8d14976e02cf", "metadata": {}, "outputs": [], "source": [ "area_params = brazil_area\n", "urban_coords = coordinates( brazil_area[\"latitude_urban\"], brazil_area[\"longitude_urban\"])\n", "rural_coords = coordinates( brazil_area[\"latitude_rural\"], brazil_area[\"longitude_rural\"])\n", "\n", "responses = get_data(urban_coords, rural_coords, start_year, end_year)" ] }, { "cell_type": "markdown", "id": "610aeb5e-c176-4256-afba-d05b30265612", "metadata": {}, "source": [ "## Compute Urban Heat Island" ] }, { "cell_type": "code", "execution_count": 12, "id": "29314e0d-f388-4d86-a3a7-607f45904fa3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Urban location\n", "Coordinates -3.6999969482421875°N -38.899993896484375°E\n", "Elevation 34.0 m above sea level\n", "Timezone b'America/Fortaleza' b'-03'\n", "Timezone difference to GMT+0 -3.0 hours\n", "\n", "Rural location\n", "Coordinates -3.7999954223632812°N -38.59999084472656°E\n", "Elevation 27.0 m above sea level\n", "Timezone b'America/Fortaleza' b'-03'\n", "Timezone difference to GMT+0 -3.0 hours\n", "\n" ] } ], "source": [ "# First location - Urban\n", "print(f\"Urban location\")\n", "print(f\"Coordinates {responses[0].Latitude()}°N {responses[0].Longitude()}°E\")\n", "print(f\"Elevation {responses[0].Elevation()} m above sea level\")\n", "print(f\"Timezone {responses[0].Timezone()} {responses[0].TimezoneAbbreviation()}\")\n", "print(f\"Timezone difference to GMT+0 {responses[0].UtcOffsetSeconds()/3600.} hours\")\n", "print()\n", "\n", "# Second location - Rural area\n", "print(f\"Rural location\")\n", "print(f\"Coordinates {responses[1].Latitude()}°N {responses[1].Longitude()}°E\")\n", "print(f\"Elevation {responses[1].Elevation()} m above sea level\")\n", "print(f\"Timezone {responses[1].Timezone()} {responses[1].TimezoneAbbreviation()}\")\n", "print(f\"Timezone difference to GMT+0 {responses[1].UtcOffsetSeconds()/3600.} hours\")\n", "print()\n", "\n", "# Process hourly data\n", "hourly = responses[0].Hourly()\n", "hourly_temperature_2m_urban = responses[0].Hourly().Variables(0).ValuesAsNumpy()\n", "hourly_temperature_2m_rural = responses[1].Hourly().Variables(0).ValuesAsNumpy()\n", "\n", "hourly_data = {\"date\": pd.date_range(\n", "\tstart = pd.to_datetime(hourly.Time(), unit = \"s\", utc = True),\n", "\tend = pd.to_datetime(hourly.TimeEnd(), unit = \"s\", utc = True),\n", "\tfreq = pd.Timedelta(seconds = hourly.Interval()),\n", "\tinclusive = \"left\"\n", ")}\n", "hourly_data[\"temperature_2m_urban-rural\"] = hourly_temperature_2m_urban - hourly_temperature_2m_rural\n", "\n", "hourly_dataframe = pd.DataFrame(data = hourly_data)" ] }, { "cell_type": "code", "execution_count": 13, "id": "41c47791-a48d-41c9-b61f-33d5838a3bd5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", "
temperature_2m_urban-rural
date
1950-01-01 03:00:00+00:000.050001
1950-01-01 04:00:00+00:000.049999
1950-01-01 05:00:00+00:000.049999
1950-01-01 06:00:00+00:000.050001
1950-01-01 07:00:00+00:00-0.099998
......
2023-12-31 22:00:00+00:000.049999
2023-12-31 23:00:00+00:000.049999
2024-01-01 00:00:00+00:000.000000
2024-01-01 01:00:00+00:000.000000
2024-01-01 02:00:00+00:00-0.049999
\n", "

648672 rows × 1 columns

\n", "
" ], "text/plain": [ " temperature_2m_urban-rural\n", "date \n", "1950-01-01 03:00:00+00:00 0.050001\n", "1950-01-01 04:00:00+00:00 0.049999\n", "1950-01-01 05:00:00+00:00 0.049999\n", "1950-01-01 06:00:00+00:00 0.050001\n", "1950-01-01 07:00:00+00:00 -0.099998\n", "... ...\n", "2023-12-31 22:00:00+00:00 0.049999\n", "2023-12-31 23:00:00+00:00 0.049999\n", "2024-01-01 00:00:00+00:00 0.000000\n", "2024-01-01 01:00:00+00:00 0.000000\n", "2024-01-01 02:00:00+00:00 -0.049999\n", "\n", "[648672 rows x 1 columns]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hourly_dataframe = hourly_dataframe.set_index(\"date\")\n", "hourly_dataframe" ] }, { "cell_type": "code", "execution_count": 14, "id": "4e38daf7-9529-4b93-8a82-2a302190b82c", "metadata": {}, "outputs": [], "source": [ "grouped = hourly_dataframe.groupby([hourly_dataframe.index.year, hourly_dataframe.index.month, hourly_dataframe.index.hour]).mean()" ] }, { "cell_type": "code", "execution_count": 15, "id": "60ac65dc-e890-4fdc-b757-316fd76c8087", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
temperature_2m_urban-rural
datedatedate
195010-0.040000
1-0.085000
2-0.113334
3-0.091935
4-0.072581
............
202312220.114516
230.017742
2024100.000000
10.000000
2-0.049999
\n", "

21315 rows × 1 columns

\n", "
" ], "text/plain": [ " temperature_2m_urban-rural\n", "date date date \n", "1950 1 0 -0.040000\n", " 1 -0.085000\n", " 2 -0.113334\n", " 3 -0.091935\n", " 4 -0.072581\n", "... ...\n", "2023 12 22 0.114516\n", " 23 0.017742\n", "2024 1 0 0.000000\n", " 1 0.000000\n", " 2 -0.049999\n", "\n", "[21315 rows x 1 columns]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grouped" ] }, { "cell_type": "code", "execution_count": 16, "id": "8c2912be-75e9-4bce-b170-c00dee397d22", "metadata": {}, "outputs": [], "source": [ "grouped.index = grouped.index.set_names('year', level=0)\n", "grouped.index = grouped.index.set_names('month', level=1)\n", "grouped.index = grouped.index.set_names('hour', level=2)" ] }, { "cell_type": "code", "execution_count": 17, "id": "cb4f96b0-ffe1-456a-b73d-8db961646e70", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
monthhourtemperature_2m_urban-rural
year
195010-0.040000
195011-0.085000
195012-0.113334
195013-0.091935
195014-0.072581
............
202312220.114516
202312230.017742
2024100.000000
2024110.000000
202412-0.049999
\n", "

21315 rows × 3 columns

\n", "
" ], "text/plain": [ " month hour temperature_2m_urban-rural\n", "year \n", "1950 1 0 -0.040000\n", "1950 1 1 -0.085000\n", "1950 1 2 -0.113334\n", "1950 1 3 -0.091935\n", "1950 1 4 -0.072581\n", "... ... ... ...\n", "2023 12 22 0.114516\n", "2023 12 23 0.017742\n", "2024 1 0 0.000000\n", "2024 1 1 0.000000\n", "2024 1 2 -0.049999\n", "\n", "[21315 rows x 3 columns]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grouped.reset_index().set_index('year')" ] }, { "cell_type": "code", "execution_count": 18, "id": "dcac7dd7-5103-4945-b521-a80c0da803ac", "metadata": {}, "outputs": [], "source": [ "hm = grouped.reset_index()" ] }, { "cell_type": "code", "execution_count": 19, "id": "4d009d29-bc2e-467f-a845-e362df04a907", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(year 1950.000000\n", " month 1.000000\n", " hour 0.000000\n", " temperature_2m_urban-rural -0.498333\n", " dtype: float64,\n", " year 2024.000000\n", " month 12.000000\n", " hour 23.000000\n", " temperature_2m_urban-rural 1.382258\n", " dtype: float64)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hm.min(), hm.max()" ] }, { "cell_type": "code", "execution_count": 20, "id": "6c88b06c-511c-4a11-9fa2-6504c94b5cc6", "metadata": {}, "outputs": [], "source": [ "# Adjust min & max for the plots\n", "vmin = hm[\"temperature_2m_urban-rural\"].min() - 0.1\n", "vmax = hm[\"temperature_2m_urban-rural\"].max() + 0.1" ] }, { "cell_type": "code", "execution_count": 21, "id": "fe55a896-6a48-4ba0-a5c7-6c010344d54c", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "year 1950.000000\n", "month 1.000000\n", "hour 0.000000\n", "temperature_2m_urban-rural -0.295161\n", "dtype: float64 year 1950.000000\n", "month 12.000000\n", "hour 23.000000\n", "temperature_2m_urban-rural 1.183871\n", "dtype: float64\n" ] } ], "source": [ "year = 1950\n", "z = hm.loc[hm['year'] == year]\n", "print(z.min(), z.max())" ] }, { "cell_type": "code", "execution_count": 22, "id": "9b58b38d-006f-467f-9c97-cc2d33e45ffb", "metadata": { "scrolled": true }, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ ":Curve [hour] (0)" ] }, "execution_count": 22, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "p1004" } }, "output_type": "execute_result" } ], "source": [ "# 1950 - Entire year\n", "year = 1950\n", "z = hm.loc[hm['year'] == year].pivot(index='month', columns='hour', values='temperature_2m_urban-rural')\n", "z.loc[0:11].min().transpose().hvplot.line()" ] }, { "cell_type": "code", "execution_count": 23, "id": "988b7a4d-c82a-485a-85ce-cf870f08f6b6", "metadata": {}, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ ":Curve [hour] (0)" ] }, "execution_count": 23, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "p1068" } }, "output_type": "execute_result" } ], "source": [ "# 2023 - Entire year\n", "year = 2023\n", "z = hm.loc[hm['year'] == year].pivot(index='month', columns='hour', values='temperature_2m_urban-rural')\n", "z.loc[0:11].mean().transpose().hvplot.line()" ] }, { "cell_type": "code", "execution_count": 24, "id": "0c3a2290-fb74-4db2-a46e-d6e92fbfdcda", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABMwAAALlCAYAAAA4x3qnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3gUVfs38O9syqYnhBACIYUSSqgJQUIJAaRIlQ6CQMRHH0QFRWmiAooCPhbAiqiEJqJSFVBQaSpFkN5L6AmElgAJqff7B+/ML8vuZjfLhk3g+7muva5k5syZe/rOvWfOKCIiICIiIiIiIiIiIgCAztEBEBERERERERERlSRMmBERERERERERERXAhBkREREREREREVEBTJgREREREREREREVwIQZERERERERERFRAUyYERERERERERERFcCEGRERERERERERUQFMmBERERERERERERXAhBkREREREREREVEBTJgRkcMkJCRAURQkJiY6OhSyYPz48ShTpgw6duyI1NRUAEC/fv3QtWtXB0dGp06dgqIoCA8Pd3QoJSoWKt369OkDV1dXnDlzxtGhFIvw8HAoioJTp04ZDDd3XXzrrbegKArWrVt3/4IkIiJ6yDFhRlRCqV+mC/tMnz79vsQyceJETJw48b7Mi4rX4sWL0aFDB5QvXx6urq4oW7YsIiMj0bt3b3z66adITk42mmb37t1499134e/vj3Xr1qF169bYsmULtmzZgho1ajhgKYDt27fj+eefR506dVCmTBm4uLggICAATZs2xejRo7Fz506HxEWOs3PnTu3cOGDAAEeHU+pNnz4dEydOxPXr1+/7vP/55x/88MMPSEhIQGhoqMG4li1bmrweenh4oGbNmnjxxRcfyCTb8OHD4evri7Fjx0JE7ss8V69eDUVR4O3tbXGdvvjii1AUBU2aNEF+fv59ie9e3bhxAwsWLMCTTz6J6tWrw93dHR4eHqhduzZGjRpl8npYUH5+PmbOnImoqCh4enrC398fbdq0wZo1a0yWz8vLw6+//ooXX3wR0dHR8Pb2hl6vR1hYGAYNGoR///3X7LyWL1+O//73v2jYsCEqVKgAV1dX+Pn5oWnTppgxYways7PvaV0QEZEZQkQlUlhYmACQiIgIadasmcnP999/f19iASDFcboYPHiwAJA5c+bYvW4ylJ2dLd26ddO2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tGnTEBcXh4MHD5pMjBW2nu1xPVu1ahVef/11eHh4YMWKFdr+Yi/u7u64du2aVckYe4uMjESFChVw+vRpPProowbj1H1i2bJl+Pvvv01Or75MouD1+17X+b1+hynoiy++wHvvvQdnZ2csWrTI5HGjJv1NvfhDlZWVBQAmv3sUtGPHDvTr1w8ignHjxqF3796Flu/du7dBmW3btuG///0v3n33XVy9ehWff/55odMTEVHR8C2ZRA8A9abNVEs0lfordME3Nqmsbc1hztSpU7F8+XIEBQVh3rx5OHXqFG7fvg2589i3lsjIycmxWJeaKMjOzsZff/1l8qN+EVdvru62efNmjBgxAi4uLliyZInJNypu2rQJr732GhRFwZQpU3DgwAHcvHkT+fn5EBHtDYvWxFxQ//79AfxfizLgzhu1UlJSEBkZifr16xuUHzZsGObNm4f69etj586dmDZtGrp06YLAwEA8++yzhSZO7kXlypXRt29ffPHFFzhx4oSWyEtMTMTZs2e1crZs23vdH00JDg4GALNvlHv00Ufx559/ap+YmBijMsV1nJhr2aC+Da6w1gIFXb9+Hf369UNaWhoGDRqErVu34tq1a8jLy4OIaG+htHafLI7toNZpLgFgrrWLpVgURdHqtDYW4P/ejqkedwV17twZPj4+SElJwW+//WZyelNJKzUea8YXbN0FACNHjsSWLVtQo0YNLFmyBOfPn0dWVpZ2vKj7sbltWNi5OCEhAUeOHEHjxo3xyy+/ICUlBdnZ2RARrT5zb8osrG51/717WSxRz007d+40e65Wt6W1iR21Zdn169eLFIvK3d0dU6dORaNGjXDmzBnMnj3bZLnC1vO9Xs+OHDmCAQMGID8/H998802R30xsDTVxFBAQYFX5d999F82bNzf63P2G1Hul7hPHjx83u0+ob64tuE/c6zq/1+8wqsWLF+P555/X3qRq7k2tZcqUAXAn8W2OOk4ta8qhQ4fQoUMH3Lx5E88++6zZxHNhGjdujNWrV0Ov1+PLL7/UEpJERGQfbGFG9ADw8vICAFy6dMlsmYsXLwKA3VstAcDChQsB3Em2tG/f3mh8wQSMJeqyBAcHa1+si+LMmTPo2bMncnJyMGvWLDRv3rzQmEeNGoWxY8feU8wF9e3bF6+88gp+/vln3LhxA97e3lryzNQjgwAwcOBADBw4ECkp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iIiIiIiIiKgAPpJJRERERERERGRnfCSzdGMLMyIiIiIiIiIiogLYwoyIiIiIiIiIyM7Ywqx0YwszIiIiIiIiIiKiAtjCjIiIiIiIiIjIzhQdW5iVZmxhRkREREREREREVAATZkRERERERERERAXwkUwiIiIiIiIiIjtTnBwdAd0LtjAjIiIiIiIiIiIqgC3MiIiIiIiIiIjsjJ3+l25sYUZERERERERERFQAE2ZEREREREREREQF8JFMIiIiIiIiIiI7U5z4SGZpxhZmREREREREREREBbCFGRERERERERGRnSlsolSqcfMREREREREREREVwBZmRERERERERER2pujYh1lpxhZmREREREREREREBTBhRkREREREREREVECpT5idPXsWQ4YMKbRMVlYW0tPTDT75Odn3KUIiIiIiIiIietgoOsVhH7p3pT5hdvXqVcydO7fQMlOmTIGvr6/B5+zPhU9DREREREREREQPpxLf6f/KlSsLHX/y5EmLdYwbNw4jR440GNbhhz33FBcRERERERERkTm6Ut9E6eFW4hNm3bp1g6IoEBGzZRSl8OaGer0eer3eYJjOxdUu8RERERERERER0YOlxOc7K1SogCVLliA/P9/k599//3V0iERERERERERE9AAp8Qmzhg0bFpoUs9T6jIiIiIiIiIjofmOn/6VbiX8kc9SoUbh165bZ8dWqVcP69evvY0RERERERERERPQgK/EJs7i4uELHe3p6Ij4+/j5FQ0RERERERERkGVt6lW4l/pFMIiIiIiIiIiKi+6nEtzAjIiIiIiIiIipt2MKsdGMLMyIiIiIiIiIiogKYMCMiIiIiIiIiIiqAj2QSEREREREREdmZwiZKpRo3HxERERERERERUQFsYUZEREREREREZGfs9L90YwszIiIiIiIiIiKiApgwIyIiIiIiIiIiKoCPZBIRERERERER2RkfySzd2MKMiIiIiIiIiIioALYwIyIiIiIiIiKyN7YwK9XYwoyIiIiIiIiIiKgAtjAjIiIiIiIiIrIz9mFWurGFGRERERERERERUQFMmBERERERERERERXARzKJiIiIiIiIiOxMYROlUo2bj4iIiIiIiIiIqAC2MCMiIiIiIiIisjN2+l+89u7dW+RpIiMj4exsXSrsoU2Y3bx829EhWCUrPdvRIVgkeeLoECzKvZXj6BCskn8719EhWKQ4lfyGqYpLyY8RAHSlIM78nHxHh2CRs3vpuJRleJT8ONNvujk6BIuOXHZydAhWcdGVdXQIFpV19XF0CBaV06c7OgSreOVdc3QIFt1Q/BwdgkW3xcXRIVjlUnbJP1em3Cr5N+lZpeA7BgDk5pb8e53bGSX/HoKoODRo0ACKokDEuuNUp9Ph6NGjqFKlilXlS/63dyIiIiIiIiIiorts27YN5cqVs1hORFCnTp0i1c2EGRERERERERGRnSlKyW/tWZrFx8ejWrVq8PPzs6p8ixYt4O7ubnX9TJgREREREREREVGpsn79+iKVX716dZHKM2FGRERERERERGRn7PTfcfLy8rBv3z6EhYWhTJkyNtVR8nucJiIiIiIiIiIiMuOll17C119/DeBOsiw+Ph7R0dEICQnBhg0bbKqTCTMiIiIiIiIiIjtTdI77PGx+/PFH1K9fHwDw008/ISkpCYcPH8ZLL72E8ePH21TnQ7gaiYiIiIiIiIjoQXH58mUEBQUBuNNXWe/evVG9enU8/fTT2Ldvn011MmFGRERERERERESlVvny5XHw4EHk5eXhl19+QZs2bQAAGRkZcHJysqlOdvpPRERERERERGRn7PT//nnqqafQp08fVKhQAYqioG3btgCAbdu2oWbNmjbVyYQZERERERERERGVWhMnTkSdOnVw9uxZ9O7dG3q9HgDg5OSEsWPH2lQnE2ZERERERERERHamKGxhdj/16tXLaNjgwYNtro8JMyIiIiIiIiIiKrXeeuutQse/+eabRa6Tnf4TERERERERET2kNm3ahC5duqBixYpQFAXLly8vtPzSpUvRtm1blCtXDj4+PmjSpAl+/fVXgzKJiYlQFMXoc/v27WJZhmXLlhl8vv/+e0ybNg0ffPCBxeUxhy3MiIiIiIiIiIjsTCklTZRu3bqF+vXr46mnnkLPnj0tlt+0aRPatm2Ld999F35+fpgzZw66dOmCbdu2ISoqSivn4+ODI0eOGEzr5uZm9/gBYNeuXUbD0tPTkZCQgO7du9tUJxNmREREREREREQPqQ4dOqBDhw5Wl58+fbrB/++++y5WrFiBn376ySBhpigKgoKC7BVmkfn4+OCtt95C586dMXDgwCJPX0rynUREREREREREpYhOcdgnKysL6enpBp+srKxiWcz8/HzcuHED/v7+BsNv3ryJsLAwVKpUCZ07dzbZCqy4Xb9+HWlpaTZNyxZmREREREREREQPkClTpmDSpEkGwyZMmICJEyfafV4ffPABbt26hT59+mjDatasicTERNStWxfp6emYMWMGmjVrhj179iAiIsLuMcycOdPgfxFBcnIy5s+fj8cee8ymOpkwIyIiIiIiIiJ6gIwbNw4jR440GKbX6+0+n0WLFmHixIlYsWIFAgMDteGxsbGIjY3V/m/WrBmio6Px8ccfGyW37OGjjz4y+F+n06FcuXIYPHgwxo0bZ1OdTJgREREREREREdmZoigOm7dery+WBFlBixcvxtNPP40ffvgBbdq0KbSsTqdDo0aNcOzYsWKJJSkpye51sg8zIiIiIiIiIiKy2qJFi5CQkIBvv/0WnTp1slheRLB7925UqFDhPkRnH2xhRkRERERERERkZ4rOcS3MiuLmzZs4fvy49n9SUhJ2794Nf39/hIaGYty4cTh//jzmzZsH4E6ybNCgQZgxYwZiY2ORkpICAHB3d4evry8AYNKkSYiNjUVERATS09Mxc+ZM7N69G59++qnd4u7RowcSExPh4+ODHj16FFp26dKlRa6fCTMiIiIiIiIioofUjh070KpVK+1/te+zwYMHIzExEcnJyThz5ow2ftasWcjNzcXzzz+P559/XhuulgfuvJ3y2WefRUpKCnx9fREVFYVNmzbhkUcesVvcvr6+2mOvaqLOnhQREbvXWgpEfbjR0SFYJSs929EhWCR5JX8Xyr2V4+gQrJJ/O9fRIVikOJX8J7kVl5IfIwDoSkGc+Tn5jg7BImf30vHbj0eQh6NDsCikqo+jQ7AoJNDV0SFYpU6g5TKOVta15F8byzmlOzoEq3jlXXN0CBZdcyr5O+VtcXF0CFa5lO3m6BAsOplW8r9jnL+a5+gQrJJ8OcvRIViUdrXkx7jl6SaODsEhvu4X5LB5P/1disPm/aAo+WdSAJmZmfjzzz9x8OBBo3G3b9/WmgUSEREREREREdHDJSkpyeQLBY4dO4ZTp07ZVGeJT5gdPXoUtWrVQosWLVC3bl20bNkSycnJ2vi0tDQ89dRThdaRlZWF9PR0g09+bslvuUVERERERERERIVLSEjA33//bTR827ZtSEhIsKnOEp8wGzNmDOrWrYtLly7hyJEj8PHxQbNmzQyen7VkypQp8PX1Nfhc/H1hMUZNRERERERERA8zRVEc9nnY7Nq1C82aNTMaHhsbi927d9tUZ4lPmP3999949913ERAQgGrVqmHlypXo0KED4uLicPLkSavqGDduHNLS0gw+5R8dUMyRExERERERERFRcVMUBTdu3DAanpaWhrw82/pMLPE9JWdmZsLZ2TDMTz/9FDqdDvHx8fj2228t1qHX66HX6w2G6ZxLR6fBRERERERERFT6KLqHr6WXo8TFxWHKlClYtGgRnJycAAB5eXmYMmUKmjdvblOdJT5hVrNmTezYsQO1atUyGP7xxx9DRNC1a1cHRUZERERERERERI723nvvoUWLFqhRowbi4uIAAJs3b0Z6ejr++OMPm+os8Y9kdu/eHYsWLTI57pNPPsETTzwBEbnPURERERERERERUUkQGRmJvXv3ok+fPrh06RJu3LiBQYMG4fDhw6hTp45NdSrykGaboj7c6OgQrJKVXvLf5il5JX8Xyr2V4+gQrJJ/O9fRIVikOJX4PDsUl5IfIwDoSkGc+Tn5jg7BImf3Et9YGgDgEeTh6BAsCqnq4+gQLAoJLB1dKtQJdHQElpV1LfnXxnJO6Y4OwSpeedccHYJF15xK/k55W1wcHYJVLmW7OToEi06mlfzvGOev2tan0P2WfDnL0SFYlHa15Me45ekmjg7BIeYMrOiweT81/4LD5v2gKB13GURERERERERERP/f3r17rS5br169ItfPhBkRERERERERkZ0pCjv9L04NGjSAoigWu+lSFMWmN2UyYUZERERERERERKVKUlJSsdbPhBkRERERERERkZ0pOrYwK05hYWHFWn/J7w2SiIiIiIiIiIioEPPnz0ezZs1QsWJFnD59GgAwffp0rFixwqb6mDAjIiIiIiIiIqJS6/PPP8fIkSPRsWNHXL9+XeuzzM/PD9OnT7epTibMiIiIiIiIiIjsTNEpDvs8bD7++GPMnj0b48ePh5OTkzY8JiYG+/bts6lOJsyIiIiIiIiIiKjUSkpKQlRUlNFwvV6PW7du2VQnE2ZERERERERERHamKI77PGwqV66M3bt3Gw1fs2YNIiMjbaqTb8kkIiIiIiIiIqJSa9SoUXj++edx+/ZtiAi2b9+ORYsWYcqUKfjqq69sqpMJMyIiIiIiIiIiKrWeeuop5ObmYvTo0cjIyED//v0RHByMGTNmoF+/fjbVyYQZEREREREREZG9PYSd7zvSM888g2eeeQaXL19Gfn4+AgMD76k+9mFGRERERERERESlTmZmJlauXIkbN25owwICAhAYGIj09HSsXLkSWVlZNtXNhBkRERERERERkZ0piuKwz8Piyy+/xIwZM+Dt7W00zsfHBzNnzrS5DzMmzIiIiIiIiIiIqNRZuHAhXnrpJbPjX3rpJcydO9emutmHGRERERERERGRnSlsolTsjh07hvr165sdX69ePRw7dsymurn5iIiIiIiIiIio1MnNzUVqaqrZ8ampqcjNzbWpbibMiIiIiIiIiIio1KlduzZ+++03s+PXrVuH2rVr21Q3E2ZERERERERERHbGTv+L35AhQ/D222/j559/Nhr3008/YfLkyRgyZIhNdT+0fZhlpdn2WlEyIV8cHYFFTm5Ojg7BKjqXkp/DlrySv71zrpWO49vJy8XRIVhWCo7vnJxsR4dglWzPkr+9U87fcnQID4yMrJL/FatygKujQ7Do74yyjg7BKlXKlPw4L9wo+TdPF9PzHB2CVc5fuu3oECzKzLDt8aP7Kft26djeWTdzHB2CRbmZJX97ExWXZ599Fps2bULXrl1Rs2ZN1KhRA4qi4NChQzh69Cj69OmDZ5991qa6S/63OSIiIiIiIiKiUkbRlfwfKx4ECxYsQNeuXfHtt9/i6NGjEBHUqFEDkyZNQp8+fWyulwkzIiIiIiIiIiIqtfr06XNPyTFTSv7zX0RERERERERERPcRW5gREREREREREdkbmyiVatx8REREREREREREBbCFGRERERERERGRnSkKO/0vzdjCjIiIiIiIiIiIqAC2MCMiIiIiIiIisjNFxxZmxS0zMxPTp09HWloaRowYgQoVKtitbrYwIyIiIiIiIiKiUufpp5/G8ePHUbZsWbRp08audbOFGRERERERERERlTobNmzAunXrULt2bYwfPx6XLl1CYGCgXepmwoyIiIiIiIiIyM7Y6X/xi4+Px4wZM1C9enWEhobaLVkG8JFMIiIiIiIiIiIqhb766iuEhYXh4sWL+P333+1aN1uYERERERERERHZG5soFTtPT0+MHz++WOrm5iMiIiIiIiIiIiqACTMiIiIiIiIiIipVevTogfT0dKvLDxgwAJcuXbK6PB/JJCIiIiIiIiKyM3b6X7xWrFiB1NRUq8qKCH766Se8/fbbVr8YgAkzIiIiIiIi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l19+GaNGjbKpTvZhRkRERERERERkZ4qObZTul5dffln7u1WrVjh8+DB27NiBqlWron79+jbVyYQZERERERERERE9MEJDQxEaGnpPdTDdSUREREREREREVABbmBERERERERER2Zvy8HW+/yBhCzMiIiIiIiIiIqIC2MKMiIiIiIiIiMjOFB1bmJVmTJgREREREREREVGpkp6ebnVZHx+fItfPhBkREREREREREZUqfn5+UCz0EyciUBQFeXl5Ra6fCTMiIiIiIiIiIjtTdOw2vjitX7++WOtnwoyIiIiIiIiIiEqV+Pj4Yq2fCTMiIiIiIiIiIjtjp//3X0ZGBs6cOYPs7GyD4fXq1StyXUyYERERERERERFRqZWamoqnnnoKa9asMTnelj7M+EAtEREREREREZGdKTqdwz4Pm5deegnXrl3D1q1b4e7ujl9++QVz585FREQEVq5caVOdpbKFmfqWAyIiIiIiIiIierj98ccfWLFiBRo1agSdToewsDC0bdsWPj4+mDJlCjp16lTkOktl2lGv1+PQoUOODoOIiIiIiIiIiBzs1q1bCAwMBAD4+/sjNTUVAFC3bl38+++/NtVZoluYjRw50uTwvLw8TJ06FWXLlgUAfPjhh4XWk5WVhaysLINh+bnZ0Dm72idQIiIiIiIiIqICHsZHIx2lRo0aOHLkCMLDw9GgQQPMmjUL4eHh+OKLL1ChQgWb6izRCbPp06ejfv368PPzMxguIjh06BA8PT2tejRzypQpmDRpksGwss0HICDuSXuGS0RERERERERE99lLL72E5ORkAMCECRPQvn17LFy4EK6urkhMTLSpzhKdMHvnnXcwe/ZsfPDBB2jdurU23MXFBYmJiYiMjLSqnnHjxhm1VouZvMGeoRIRERERERERaRQd+16/XwYMGKD9HRUVhVOnTuHw4cMIDQ1FQECATXWW6PaB48aNw+LFi/Hcc8/h1VdfRU5Ojk316PV6+Pj4GHz4OCYRERERERERUemWk5ODKlWq4ODBg9owDw8PREdH25wsA0p4wgwAGjVqhJ07dyI1NRUxMTHYt28f35BJRERERERERERwcXFBVlaW3XNFJT5hBgBeXl6YO3cuxo0bh7Zt2yIvL8/RIRERERERERERmaXodA77PGxefPFFTJs2Dbm5uXars0T3YXa3fv36oXnz5ti5cyfCwsIcHQ4RERERERERETnYtm3b8Pvvv2Pt2rWoW7cuPD09DcYvXbq0yHWWqoQZAFSqVAmVKlVydBhEREREREREROY9hC29HMXPzw89e/a0a52lLmFGRERERERERESkmjNnjt3rZMKMiIiIiIiIiMjOFIUtzEozJsyIiIiIiIiIiKjUqly5cqFvyTx58mSR62TCjIiIiIiIiIiISq2XXnrJ4P+cnBzs2rULv/zyC0aNGmVTnUyYERERERERERHZmaIz3+KJ7GvEiBEmh3/66afYsWOHTXXygVoiIiIiIiIiInrgdOjQAUuWLLFpWrYwIyIiIiIiIiKyM0XHNkqO9uOPP8Lf39+maZkwIyIiIiIiIiKiUisqKsqg038RQUpKClJTU/HZZ5/ZVCcTZkREREREREREVGp169bN4H+dTody5cqhZcuWqFmzpk11MmFGRERERERERGRnfCTz/sjNzUV4eDjat2+PoKAgu9XLrUdERERERERERKWSs7MznnvuOWRlZdm3XrvWRkREREREREREUHROjg7hodG4cWPs2rULYWFhdquTCTMiIiIiIiIiIiq1hg0bhldeeQXnzp1Dw4YN4enpaTC+Xr16Ra6TCTMiIiIiIiIiIjtjH2b3T9++fQEAw4cP14YpigIRgaIoyMvLK3KdTJgREREREREREVGplZSUZPc6mTAjIiIiIiIiIqJSy559l6mYMCMiIiIiIiIisjc+klmqcesREREREREREREVwBZmRERERERERER2xk7/S7eHNmGmL+Pm6BCsknc719EhWKRzKfkngdxbOY4OwSp5pSDOrMuZjg7BIie9k6NDsIrOteTHKXn5jg7BIqXkn4IAAIqT4ugQLHItBceOl3sp2eClQEa+i6NDsKiqV8m/5gCAs3fJP1dm5JX87d24vDg6BKuk55b8W6ibOa6ODsGiPcmlY3snnc1wdAgWpV2+7egQiB5I/NZJRERERERERERUQMn/eYSIiIiIiIiIqJRRdCW/9X5pVqZMGSiKdU9xXL16tcj1M2FGRERERERERESlyvTp07W/r1y5gsmTJ6N9+/Zo0qQJAGDLli349ddf8cYbb9hUv80Js02bNgEAmjRpAheXkt8nAhERERERERHR/cJO/4vX4MGDtb979uyJt956Cy+88II2bPjw4fjkk0/w22+/4eWXXy5y/TZvvZYtW2LQoEFM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keuzOWF29OhRREREoGLFihbLent748SJE7bOioiIiIiIiIiodGGn//fN7Nmz8dxzzyEgIABBQUEGb8dUFOX+JsycnZ2Rk5NjVdkrV67A09PT1lkRERERERERERGZNHnyZLzzzjsYM2aM3eq0OWFWvXp17N27F6mpqShXrpzZcidOnMDx48cRHx9v66yIiIiIiIiIiEoVhS3M7ptr166hd+/edq1TZ+uEvXr1Qk5ODl5++WWjZ0NV2dnZeO6556AoCvr162dzkERERERERERERKb07t0ba9eutWudNrcwGz58OObNm4dFixbhxIkTGDx4MNLS0gAA69evx759+zBr1iwcOnQI0dHRGDJkiN2CJiIiIiIiIiIiAoBq1arhjTfewNatW1G3bl24uLgYjB8+fHiR67Q5Yebu7o5169ahd+/e2LJlC7Zv366Na9OmDQBARBAbG4ulS5caBUtERERERERE9MDiI5n3zZdffgkvLy9s3LgRGzduNBinKMr9TZgBQMWKFfHnn39i1apVWLp0Kfbt24e0tDR4eXkhMjISPXr0QPfu3Q3eTkBERERERERERGQvSUlJdq/znhJmwJ1MXefOndG5c2d7xENEREREREREVPopbGFWmtmcMLt+/Tr8/PzsGAoREREREREREVHRnTt3DitXrsSZM2eQnZ1tMO7DDz8scn02J8wqVKiAxx9/HAkJCWjfvj0fuyQiIiIiIiIiovvu999/R9euXVG5cmUcOXIEderUwalTpyAiiI6OtqlOna3B5Obm4vvvv0enTp1QqVIljB07FocOHbK1OiIiIiIiIiKiB4fOyXGfh8y4cePwyiuvYP/+/XBzc8OSJUtw9uxZxMfHo3fv3jbVaXPC7Pz58/jf//6H2rVrIzk5Gf/73/9Qp04dxMbG4osvvsD169dtrZqIiIiIiIiIiMgqhw4dwuDBgwEAzs7OyMzMhJeXF9566y1MmzbNpjptTpgFBgbilVdewd69e/Hvv//ixRdfREBAALZv347nn38eFSpUQL9+/bBmzRqIiK2zISIiIiIiIiIqfRQnx30eMp6ensjKygIAVKxYESdOnNDGXb582aY6bU6YFdSgQQNMnz4dFy5cwPLly9GtWzeICL7//nt07tyZj2wSEREREREREVGxiI2NxV9//QUA6NSpE1555RW88847GDJkCGJjY22q0y4JM5WTkxO6du2KJUuW4MKFC5g0aRKcnJyQkpKiPbLZpEkTzJ8/H3l5efacNRERERERERFRycE+zO6bDz/8EI0bNwYATJw4EW3btsXixYsRFhaGr7/+2qY6bX5Lpjn5+fn45ZdfkJiYiJ9++gm5ubkAgHr16uHy5cvYtm0btm/fjvfffx8///wzQkJC7B0CERERERERERE9JKpUqaL97eHhgc8++3/t3Wd4FOX79vFz00MLiSGBoAm9g0BQqlJEmtIVEESaKIoCoiDYKJYAilRBmhRBxB+CggqCShVEinQMSItAINICoaTtPC94yJ81IZssm8yufD/HMYfkntlrziyYSa7cc8+UO67ptIbZnj17NHfuXC1YsEBxcXEyDEOBgYF69tln1bNnT1WrVk2GYeiHH37QiBEjtG3bNvXv319LlixxVgQAAAAAAADcpbZt26YDBw7IYrGofPnyioyMdLjWHTXMzp49qwULFmju3LnatWuXDMOQh4eHGjdurJ49e6pt27by8fFJO95iseixxx7TI488omLFimnNmjV3cnoAAAAAAADXdBcuvm+WEydO6KmnntKvv/6qggULSpIuXryoOnXqaOHChQ7d3ehww6x169ZauXKlUlJSZBiGihcvru7du6tHjx669957M32tn5+fypYtq40bNzp6+jt2z335TDt3diReTzE7gl2pyVazI9hluH5ESXKLJ8paU10/o7tIcYP/v92BxWIxO0KWBIblNTuCXdXLuH7GqoWSzY6QJeFejj2NKTflSzxpdgS7LG5yAbekXDM7gn3JV8xOYFfqhRizI2SJZ1BxsyPYlZS/mNkR7AorUczsCFmyN9D1f27cf9LX7AiA6Xr27Knk5GQdOHBAZcuWlSRFR0erZ8+e6tWrl1atWpXtmg43zJYvXy5/f3916NBBPXv2VMOGDbP1+p49e6pRo0aOnh4AAAAAAMB13YWL75tlw4YN2rRpU1qzTJLKli2rSZMmqW7dug7VdLhhNnXqVD311FMqUKCAQ6/v1q2bo6cGAAAAAAAAJEnh4eFKTk5/J0JKSoqKFi3qUE0PR8M8//zzDjfLAAAAAAAAAGcYM2aMXn75ZW3bti1tqaObD5v86KOPHKrptKdkAgAAAAAA4P9j0f8cFRgYaLOe8ZUrV1SzZk15ed1odaWkpMjLy0s9e/ZUmzZtsl2fhhkAAAAAAADcyvjx43O0Pg0zAAAAAAAAZ7M4vAoWsuDm2vgpKSlasGCBmjZtqsKFCzutPn97AAAAAAAAcEteXl564YUXlJiY6Ny6Tq0GAAAAAAAAGaxhlmtq1qypP/74QxEREU6rScMMAAAAAAAAbuvFF1/Uq6++qhMnTigyMlJ58+a12V+lSpVs16RhBgAAAAAAALfVsWNHSVK/fv3SxiwWiwzDkMViUWpqarZrOqVh9vfff2vDhg06efKkrl27pnfeeSdtX3JysgzDkI+PjzNOBQAAAAAA4Po8uCUztxw9etTpNe+oYXb27Fn17dtXX3/9tQzDSBu/tWHWo0cPLVy4UL///rsiIyPv5HQAAAAAAACADWeuXXaTww2zy5cvq379+jpw4IDuu+8+NW7cWKtXr9bJkydtjnv22Wf1xRdfaMmSJTTMAAAAAADA3YFF/3PNvHnzMt3/zDPPZLumww2zMWPG6MCBA2rfvr3mzZsnf39/PfTQQ+kaZg8//LD8/f21Zs0aR08FAAAAAAAAZKh///42HycnJ+vq1avy8fFRnjx5HGqYeTgaZvHixfL19dXMmTPl7+9/+xN4eKhUqVKKiYlx9FQAAAAAAABAhi5cuGCzJSQkKDo6WvXq1dPChQsdqulww+zYsWMqU6aMAgIC7B6bJ08enT171tFTAQAAAAAAuBXD4mHaBql06dIaNWpUutlnWeXwu+jn56fLly9n6djY2NgsNdYAAAAAAAAAZ/D09NSpU6cceq3Da5hVrFhRW7Zs0fHjxzN9GsHOnTsVExOjZs2aOXoqAAAAAAAA98Ki/7lm2bJlNh8bhqHY2FhNnjxZdevWdaimww2zp59+Wps2bdJzzz2npUuXKk+ePOmOuXDhgnr16iWLxeLQAmsAAAAAAABAZtq0aWPzscViUaFChdSoUSONHTvWoZoON8x69+6thQsXavXq1apcubKefPJJnTlzRpL02Wefae/evZo/f77Onj2rJk2aqFOnTo6eCgAAAAAAwK2wlljusVqtTq/pcMPM09NT3333nZ577jktWrRIH374oQzDkHSjmXbzzx06dNCsWbOckxYAAAAAAADIYQ43zCQpf/78Wrhwod544w0tXbpUe/bsUXx8vPLly6cKFSqobdu2ioyMdFZWAAAAAAAAIMfdUcPspsqVK6ty5crOKAUAAAAAAOD2DLHovzvjhloAAAAAAADgFk6ZYSbdeCJmQkJC2tplGQkPD8923T/++EMFCxZU8eLFJUnz58/X1KlTFRMTo4iICL300kt2HyiQmJioxMREmzFrcpI8vH2ynQcAAAAAAMAeFv13b3fUMDt48KCGDx+ulStXKj4+PtNjLRaLUlJSsn2OXr16aezYsSpevLhmzpypfv36qXfv3uratauio6PVu3dvXb16VT179rxtjaioKI0YMcJmrFj73ir+xHPZzgMAAAAAAADXcvHiRf3++++Ki4tL99TMZ555Jtv1HG6Y7dy5U/Xr10+bVebn56dChQrJw8O5HdTo6GiVLFlSkjRlyhSNHz9ezz33f42uBx54QO+//36mDbOhQ4dq4MCBNmOtvt3r1JwAAAAAAADIfcuXL1eXLl105coV5c+fXxaLJW2fxWLJ3YbZG2+8ocuXL+uRRx7RuHHjVKlSJUdLZcrf31///POPwsPDdfLkSdWsWdNmf82aNXX06NFMa/j6+srX19dmjNsxAQAAAABATjEsLPqfW1599VX17NlTH3zwgfLkyeOUmg5PB9u0aZPy5cunb775JseaZZLUvHlzTZ06VZJUv359LV682Gb/V199pVKlSuXY+QEAAAAAAOC6Tp48qX79+jmtWSbdQcPMarWqbNmyyps3r9PCZGT06NH6+eefVb9+fd13330aO3asHnroIT333HOqX7++hg8frlGjRuVoBgAAAAAAgOzxMHHLvilTpqh48eLy8/NTZGSkNmzYcNtj165dK4vFkm77888/bY77+uuvVaFCBfn6+qpChQpaunSpQ9nsadq0qbZt2+bUmg7fklm1alUdOXLEmVkyFBYWpj/++EOjRo3S8uXLZRiGfv/9d/3999+qW7eufv31V9WoUSPHcwAAAAAAAPwXLVq0SAMGDNCUKVNUt25dTZs2Tc2bN9f+/fsVHh5+29dFR0erQIECaR8XKlQo7c+bN29Wx44d9e6776pt27ZaunSpOnTooI0bN6ZbbutOPfbYYxo0aJD279+vypUry9vb22Z/q1atsl3TYhiG4UiYFStW6PHHH9ecOXPUtWtXR0qYqtGXzu085pTE69l/smhuS0222j/IZIbrR5QkOfi/Y66yprp+RneR4gb/f7uDWxf0dGWBYTk7I9sZHqiQz+wIdlUtlGx2hCwJ9zprdgS78iWeNDuCXRY3uYBbUq6Z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mzZlqYbVatXly5cVFBRkM56QkKCIiAilpqaqatWqevfdd20aas5y5coVjRo1Sj///LPi4uJktVpt9h85ciTbNR1umJ09e1aNGjXSvn37btsku5XF4j5TEQEAAAAAANxVYmKiEhMTbcZ8fX0zvEXx7NmzSk1NVWhoqM14aGioTp8+naXzjR07VleuXFGHDh3SxsqVK6c5c+aocuXKunTpkiZMmKC6detq165dKl26tAOf1e09++yzWrdunbp27aoiRYo4pQflcMNsyJAh2rt3r+69914NHjxYDzzwgEJCQuThBk99AwAAAAAAyEmpJs4wi4qK0ogRI2zGhg0bpuHDh9/2Nf9uMhmGkaXG08KFCzV8+HB9++23CgkJSRuvVauWatWqlfZx3bp1Vb16dU2aNEkTJ07M4meSNStWrND333+vunXrOq2mww2z7777Tt7e3vrll19UqlQppwUCAAAAAACA44YOHaqBAwfajN1uAfzg4GB5enqmm00WFxeXbtbZvy1atEi9evXS//73PzVu3DjTYz08PPTAAw/o0KFDWfgMsicwMDDd7aB3yuHpYPHx8SpbtizNMgAAAAAAABfi6+urAgUK2Gy3a5j5+PgoMjJSq1evthlfvXq16tSpc9tzLFy4UN27d9cXX3yhxx57zG4mwzC0c+dOFSlSJHufTBa8++67euedd3T16lWn1XR4hlmpUqWUlJTktCAAAAAAAAD/Ff9ad96lDRw4UF27dlWNGjVUu3ZtTZ8+XTExMerTp4+kGzPWTp48qXnz5km60Sx75plnNGHCBNWqVSttdpq/v78CAgIkSSNGjFCtWrVUunRpXbp0SRMnTtTOnTv1ySefOD3/2LFjdfjwYYWGhqpYsWLy9va22b9jx45s13S4Yfbss89q4MCB2r59uyIjIx0tAwAAAAAAABN17NhR586d08iRIxUbG6tKlSrphx9+UEREhCQpNjZWMTExacdPmzZNKSkp6tu3r/r27Zs23q1bN82ZM0eSdPHiRT333HM6ffq0AgICVK1aNa1fv14PPvig0/O3adPG6TUtRlYecZkBwzDUtWtXrVu3TpMnT1br1q2dnS1HNf5qm9kRsuTK5WSzI9hlTXGTZ+W6AYsbPDPD09sNQroJLzd4Lz093SCjl3s8hblQkI/ZEewqEept/yCT1Qi+bnaELAmzxJodwS7/iwfMjmBXcqzrZ5SkK6f+NjuCXQmn/jE7gl2J8dfMjpAlQWXCzI5gV97GL5sdwa41V8qaHSFLdp9MMTuCXZcSUs2OYNc3Le43O4Ipog7+adq5h5YpZ9q5/yscnmH2yCOPSLqxCFy7du0UGBiokiVLKm/evBkeb7FY9PPPPzt6OgAAAAAAACBDFy9e1OLFi3X48GENGjRIQUFB2rFjh0JDQ1W0aNFs13O4YbZ27Vqbj8+fP6/z58/f9visPIoUAAAAAAAAyI7du3ercePGCggI0LFjx9S7d28FBQVp6dKlOn78eNraa9nhcMNszZo1jr4UAAAAAADgPy2V1YtyzcCBA9W9e3eNGTNG+fPnTxtv3ry5Onfu7FBNhxtm9evXd/SlAAAAAAAAgFNs3bpV06ZNSzdetGjRtCd4ZpfDDTMAAAAAAABkzMoMs1zj5+enS5cupRuPjo5WoUKFHKrplIbZlStX9Ouvv+rgwYO6fPmy8ufPrzJlyqhu3bq3fQgAAAAAAAAAcKdat26tkSNH6quvvpJ0Yx39mJgYDRkyRO3bt3eo5h01zJKSkjRs2DB98sknunLlSrr9efPm1csvv6xhw4bJx8fnTk4FAAAAAAAApPPRRx+pRYsWCgkJ0bVr11S/fn2dPn1atWvX1vvvv+9QTYcbZqmpqWrVqpVWr14twzB07733qly5cgoNDdWZM2f0559/6sSJExo1apS2b9+u77//Xp6eno6eDgAAAAAAwG2kWs1OcPcoUKCANm7cqF9++UU7duyQ1WpV9erV1bhxY4drOtwwmzZtmlatWqXQ0FBNmjRJ7du3l8ViSdtvGIa+/vpr9e/fX6tXr9b06dP1wgsvOBwUAAAAAAAAuFVKSor8/Py0c+dONWrUSI0aNXJKXQ9HXzhv3jxZLBZ9//33euKJJ2yaZdKN+0WfeOIJLV++XIZhaO7cuXccFgAAAAAAwB2kGuZtdxMvLy9FREQoNTXVqXUdbpgdOHBA5cuXV/Xq1TM9rnr16qpQoYL279/v6KkAAAAAAACADL311lsaOnSozp8/77Sad7SGmbe3d5aO9fb2ltXKzbsAAAAAAODuQBsk90ycOFF//fWXwsLCFBERobx589rs37FjR7ZrOtwwK1mypPbu3atjx46pWLFitz3u6NGj2rt3rypUqODoqTRp0iRt27ZNjz32mDp06KDPP/9cUVFRslqtateunUaOHCkvrzt64CcAAAAAAADcUJs2bZxe0+Eu05NPPql33nlHrVu31ueff64qVaqkO2bXrl165plnZLVa1aFDB4fO8+677+rDDz9UkyZN1L9/fx09elQffvihXnnlFXl4eGjcuHHy9vbWiBEjblsjMTFRiYmJNmPW5CR5ePs4lAkAAAAAAACuYdiwYU6v6XDDbODAgfrqq6+0Z88eVatWTfXq1VOFChUUEhKiuLg47d+/Xxs3bpRhGKpSpYoGDhzo0HnmzJmjOXPmqF27dtq1a5ciIyM1d+5cdenSRZJUrlw5DR48ONOGWVRUVLr9xZ/orRJPPudQJgAAAAAAgMzcbYvvm+3ixYtavHixDh8+rEGDBikoKEg7duxQaGioihYtmu16DjfM8uTJo19++UV9+vTR0qVLtWHDBm3YsEEWi0WGceNfhcViUfv27TV16lT5+/s7dJ7Y2FjVqFFDknT//ffLw8NDVatWTdtfvXp1nTp1KtMaQ4cOTdewa7N8r0N5AAAAAAAA4Dp2796txo0bKyAgQMeOHVPv3r0VFBSkpUuX6vjx45o3b162a97Rwl/BwcFavHix/vrrL61evVoHDx5UQkKC8uXLpzJlyqhJkyYqWbLknZxChQsX1v79+xUeHq5Dhw4pNTVV+/fvV8WKFSVJ+/btU0hISKY1fH195evrazPG7ZgAAAAAACCnWK1MMcstAwcOVPfu3TVmzBjlz58/bbx58+bq3LmzQzWdslJ+qVKlVKpUKWeUSqdz58565pln1Lp1a/388896/fXX9dprr+ncuXOyWCx6//339cQTT+TIuQEAAAAAAODatm7dqmnTpqUbL1q0qE6fPu1QTZd/tOSIESPk7++v3377Tc8//7xef/11ValSRYMHD9bVq1fVsmVLvfvuu2bHBAAAAAAAgAn8/Px06dKldOPR0dEqVKiQQzVdvmHm6empN99802asU6dO6tSpk0mJAAAAAAAAMsei/7mndevWGjlypL766itJN9bUj4mJ0ZAhQ9S+fXuHanpk9UBPT8872ry8XL43BwAAAAAAADfz0Ucf6Z9//lFISIiuXbum+vXrq1SpUsqfP7/ef/99h2pmuYt188mXjrrT1wMAAAAAALiLVKvZCe4eBQoU0MaNG/XLL79ox44dslqtql69uho3buxwzWxN+7JYLCpbtqy6du2q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sGCBWrZsqd69e+vs2bOyWq0KCQm5o7qsYQYAAAAAAAC35OXlpRdeeEGJiYmSpODg4DtulknMMAMAAAAAAHA6q8EMs9xSs2ZN/fHHH4qIiHBaTRpmAAAAAAAAcFsvvviiXn31VZ04cUKRkZHKmzevzf4qVapkuyYNMwAAAAAAALitjh07SpL69euXNmaxWGQYhiwWi1JTU7Ndk4YZAAAAAACAk1mtZie4exw9etTpNV1+0f/Y2Fi98847atSokcqXL69KlSqpZcuWmjVrlkMdQgAAAAAAANiaMmWKihcvLj8/P0VGRmrDhg2ZHr9u3TpFRkbKz89PJUqU0KeffprumK+//loVKlSQr6+vKlSooKVLl+ZI9oiIiEw3R7j0DLNt27apcePGKl68uPz9/XXw4EF16dJFSUlJeu211zRr1iz9+OOPyp8/f6Z1EhMT056WcJM1OUke3j45GR8AAAAAANylrFb3WfR/0aJFGjBggKZMmaK6detq2rRpat68ufbv36/w8PB0xx89elQtWrRQ7969NX/+fP3666968cUXVahQIbVv316StHnzZnXs2FHvvvuu2rZtq6VLl6pDhw7auHGjatas6dT88+bNy3T/M888k+2aFsNw3cc21KtXT48++qiGDRsmSZo/f74mT56s3377TRcuXFCjRo308MMPa8KECZnWGT58uEaMGGEzVrLDcyrV6fkcy+4sidddfxZdUqLrZ0xNdo+5sB6eLj/p0y14+7rH++jhYTE7gl2+fp5mR7DLHd5HSQoO9DY7gl3lC7v079EkSdUCL5sdIUvCru01O4JdKUc3mR3BrvMH9pkdIUsun7xgdgS7rp29ZnYEu3wDfM2OkCVF61Y2O4JdHjV7mR3Brm3XipkdIUv2nnHZH5fTxF1IMTuCXYubZn/B9f+CZkt3mHbulW2rZ+v4mjVrqnr16po6dWraWPny5dWmTRtFRUWlO/7111/XsmXLdODAgbSxPn36aNeuXdq8ebOkG+uKXbp0SStWrEg7plmzZgoMDNTChQuz+yllKjAw0Obj5ORkXb16VT4+PsqTJ4/Onz+f7Zou/VPljh071LVr17SPO3furB07dujMmTMKDAzUmDFjtHjxYrt1hg4dqvj4eJutRPseORkdAAAAAADA5SUlJWn79u1q0qSJzXiTJk20aVPGv2DbvHlzuuObNm2qbdu2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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(16,8)) \n", "ax = plt.subplot(1, 1, 1)\n", "plt.title(area_params[\"urban\"] + ' vs. ' + area_params[\"rural\"] + ' (' + area_params[\"area\"] + ') - Year '+ str(year) +'\\n Hourly ERA-Land reanalysis data (from https://open-meteo.com)', fontsize=16)\n", "sns.heatmap(z, cmap=cm.roma_r, vmin=vmin, vmax=vmax, cbar_kws={'label': 'Air (2m) temperature difference between urban and rural areas [° Celcius]'}, ax=ax)\n", "ax.set_ylabel('Month of the year', fontsize=16)\n", "ax.set_xlabel('Local time (hours)', fontsize=16)\n", "plt.savefig('UHI_' + area_params[\"urban\"] + '_' + str(year) + '.png')" ] }, { "cell_type": "code", "execution_count": 25, "id": "00f4038a-84a9-478e-9c46-7461f0bd3894", "metadata": {}, "outputs": [], "source": [ "years = hm['year'].unique()" ] }, { "cell_type": "code", "execution_count": 26, "id": "a8036301-83ad-45e0-9357-ecb6de1a3366", "metadata": {}, "outputs": [], "source": [ "def myheatmap(year, ax, start_year, area_params, hm):\n", " ax.clear()\n", " plt.clf()\n", " fig = plt.figure(1, figsize=[16,8])\n", " ax = plt.subplot(1, 1, 1)\n", " plt.title(area_params[\"urban\"] + ' vs. ' + area_params[\"rural\"] + ' (' + area_params[\"area\"] + ') - Year '+ str(year + start_year) +'\\n Hourly ERA-Land reanalysis data (from https://open-meteo.com)', fontsize=16)\n", " z = hm.loc[hm['year'] == (year + start_year)].pivot(index='month', columns='hour', values='temperature_2m_urban-rural')\n", " ax = sns.heatmap(z, cmap=cm.roma_r, vmin=vmin, vmax=vmax, cbar_kws={'label': 'Air (2m) temperature difference between urban and rural areas [° Celcius]'})\n", " ax.set_ylabel('Month of the year', fontsize=16)\n", " ax.set_xlabel('Local time (hours)', fontsize=16)" ] }, { "cell_type": "markdown", "id": "280c7486-2827-447d-a435-57748ab97137", "metadata": {}, "source": [ "## Create animation and save to HTML" ] }, { "cell_type": "code", "execution_count": 27, "id": "71c73094-e534-4a3a-be29-9a6dcafc245d", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABMwAAALlCAYAAAA4x3qnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3gU1fs28Hs2ZdMTQggJqSChhJJCkBoCSpEqvQoEbKAUQWkiQgCl2Ch+VQSli6BUBRSUjhRBei+BUBIIARJIL+f9g3fml2V3s5tlw2bh/lzXXFcyc+bMs1N3nj1zRhJCCBAREREREREREREAQGXpAIiIiIiIiIiIiEoTJsyIiIiIiIiIiIgKYcKMiIiIiIiIiIioECbMiIiIiIiIiIiICmHCjIiIiIiIiIiIqBAmzIiIiIiIiIiIiAphwoyIiIiIiIiIiKgQJsyIiIiIiIiIiIgKYcKMiIiIiIiIiIioECbMiMhiYmNjIUkSFi1aZOlQyIDx48ejTJkyaNOmDZKTkwEAPXv2RIcOHSwcGV25cgWSJCE4ONjSoZSqWMi6de/eHfb29khISLB0KCUiODgYkiThypUrGuP1XRcnT54MSZKwdevWpxckERHRc44JM6JSSv4yXdQwa9aspxLLpEmTMGnSpKeyLCpZK1euROvWrVG+fHnY29ujbNmyCA0NRbdu3fC///0PiYmJWvMcPXoUn376KTw9PbF161a89NJL2LdvH/bt24eqVata4FMABw8exLvvvouaNWuiTJkysLOzg5eXFxo2bIjRo0fj8OHDFomLLOfw4cPKubFPnz6WDsfqzZo1C5MmTcL9+/ef+rL//fdf/PLLL4iNjUVgYKDGtKZNm+q8Hjo5OaFatWoYOnToM5lkGzZsGNzd3TF27FgIIZ7KMjdt2gRJkuDq6mpwnQ4dOhSSJKFBgwYoKCh4KvGZw44dOzBt2jR06tQJfn5+yv50/fp1g/MeOXIEvXr1QoUKFaBWq+Hn54d+/frh3LlzeufRt//Kg4+PT5HL3LRpE5o3bw5PT084OzsjMjISc+fOtap1TkRkTWwtHQARFS0kJATe3t46p/n5+T2VGOLi4gCASTMrlpubi+7du2PdunUAAHd3d1SvXh02Nja4fPkyzpw5g19//RVCCAwZMkRj3r1798LZ2RlnzpzBwYMH0b17dzRs2BCenp54++23n+rnyMjIwBtvvIEVK1YAAOzs7PDCCy/Azc0Nd+/excGDB7Fv3z589tlnaN26NTZt2vRU4yPLWbp0qfL3unXr8ODBA7i6ulowIus2a9YsXL16FbGxsfDw8Hiqyx47diwkScK4ceP0lgkICFCSaUII3Lp1CxcvXsS5c+ewZMkS/P3334iKinpaIRfbCy+8AAcHB9jZ2RlV3sPDA4MHD8b06dOxatUq9OjRo4QjBNq0aYPevXvjp59+wttvv43NmzfrLLd//3588803sLe3x4IFC6BSWc/v8R07dkRqamqx51u+fDkGDBiA3NxceHp6IiwsDAkJCVi6dClWr16N33//Hc2aNdM7f82aNeHu7q41vmzZsnrnmT59unJMVKpUCS4uLjh27BiGDRuGv/76C2vXrrWqdU9EZBUEEZVKQUFBAoBYuHChpUMRAERJnC769+9faj7js+7TTz8VAISjo6NYvny5yMvLU6YVFBSIf//9VwwbNkwsXrxYa95z586JP//8U/k/LS1N/P333+LWrVtPJXZZTk6OaNy4sQAgfH19xY8//igePnyoUebevXti0aJFIjQ0VKjV6qcan6XEx8cLACIoKMjSoVgsltzcXOHt7S0ACA8PDwFALFq06KnG8KyRr0Hx8fFPdbmnT58WAERMTIzO6TExMQKAmDhxota0CxcuiFq1agkAom7duiUbaAkp6rp45swZAUA0btz4qcWTnJwsvLy8BACxZMkSrenZ2dmiRo0aAoCYNGnSU4vLXBo2bChiY2PFN998Iw4dOqR837l27Zreec6fPy/UarUAIEaMGCFycnKEEI+upZ9//rkAIMqWLSvu3bunNa+8/27fvr1Ycf7zzz9CkiShUqnETz/9pIw/evSoKF++vAAgPvvss2LVSUREhvFnCCKi58DixYsBPOqLrHfv3rCxsVGmSZKEqKgozJ49G/369dOat0qVKmjZsqXyv6urK1566SW9LR9LyqRJk7Bnzx5UqFABBw4cwIABA+Ds7KxRxsPDA/3798exY8cwYcKEpxofWc6WLVtw+/ZtBAQEKC0wCrc4I+vx/fffAwB69epV7HkrV66M6dOnA3j0WGdaWppZY7O0atWqISwsDHv27CnysT9z8vLyUrp/GDFiBG7fvq0x/dNPP8WpU6dQo0aNIlsEllZ79+7FwoULMXjwYNSpU8eoeb755htk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wSIm+ljuWIxLso5jrDSzjrtKIiIiIiIiIiKip8Q6fqYlIiIiIiIiIrIikk3pb+1J+rGFGRERERERERERUSFMmBERERERERERERXCRzKJiIiIiIiIiMyMj2RaN7YwIyIiIiIiIiIiKoQtzIiIiIiIiIiIzIwtzKwbW5gREREREREREREVwhZmRERERERERERmJqnYwsyasYUZERERERERERFRIUyYERERERERERERFcJHMomIiIiIiIiIzEyysXQE9CTYwoyIiIiIiIiIiKgQtjAjIiIiIiIiIjIzdvpv3djCjIiIiIiIiIiIqBAmzIiIiIiIiIiIiArhI5lERERERERERGYm2fCRTGvGFmZERERERERERESFsIUZEREREREREZGZSWyiZNW4+YiIiIiIiIiIiAphCzMiIiIiIiIiIjOTVOzDzJqxhRkREREREREREVEhTJgREREREREREREVYvUJs2vXrmHgwIFFlsnOzkZaWprGUJCb85QiJCIiIiIiIqLnjaSSLDbQk7P6hNndu3exePHiIstMmzYN7u7uGkPChqLnISIiIiIiIiKi51Op7/R/w4YNRU6/fPmywTrGjRuHkSNHaoxru+b4E8VFRERERERERKSPyuqbKD3fSn3CrGPHjpAkCUIIvWUkqejmhmq1Gmq1WmOcys7eLPEREREREREREdGzpdTnO319fbF69WoUFBToHP777z9Lh0hERERERERERM+QUp8wq1OnTpFJMUOtz4iIiIiIiIiInjZ2+m/dSv0jmaNGjUJ6erre6ZUrV8b27dufYkRERERERERERPQsK/UJs+jo6CKnOzs7IyYm5ilFQ0RERERERERkGFt6WbdS/0gmERERERERERHR01TqW5gREREREREREVkbtjCzbmxhRkREREREREREVAgTZkRERERERERERIXwkUwiIiIiIiIiIjOT2ETJqnHzERERERERERERFcIWZkREREREREREZsZO/60bW5gREREREREREREVwoQZERERERERERFRIXwkk4iIiIiIiIjIzPhIpnVjCzMiIiIiIiIiIqJC2MKMiIiIiIiIiMjc2MLMqrGFGRERERERERERUSFsYUZEREREREREZGbsw8y6sYUZERERERERERFRIUyYERERERERERERFcJHMomIiIiIiIiIzExiEyWrxs1HRERERERERERUCFuYERERERERERGZGTv9L1nHjx8v9jyhoaGwtTUuFfbcJszSbmVaOgSjFOQLS4dgkJ1T6d+NstPzLB2CcQpK//YWovTHWJBbYOkQjJKXlW/pEAyydbCxdAjPjLzs0r+97dWlf3u7OFhH43gP+9J/HsrIK/1f4q8/tLd0CEbJyrV0BIblWsF3SrWdpSMwzuUMS0dg2J0Hpf+77/200h8jANy/l2PpEAzKSreCkxBRCQgPD4ckSUbfo6pUKpw/fx6VKlUyqnzpz3QQERERERERERE95sCBAyhXrpzBckII1KxZs1h1M2FGRERERERERGRmklT6W3Nbs5iYGFSuXBkeHh5GlW/SpAkcHR2Nrp8JMyIiIiIiIiIisirbt28vVvlNmzYVqzwTZkREREREREREZsZO/y0nPz8fJ06cQFBQEMqUKWNSHdbRcy4REREREREREZEO7733Hn744QcAj5JlMTExiIyMREBAAHbs2GFSnUyYERERERERERGZmaSy3PC8+fXXXxEWFgYA+O233xAfH4+zZ8/ivffew/jx402q8zlcjURERERERERE9Ky4c+cOfHx8ADzqq6xbt26oUqUKXn/9dZw4ccKkOpkwIyIiIiIiIiIiq1W+fHmcPn0a+fn5+OOPP9C8eXMAQEZGBmxsbEyqk53+ExERERERERGZGTv9f3oGDBiA7t27w9fXF5IkoUWLFgCAAwcOoFq1aibVyYQZERERERERERFZrUmTJqFmzZq4du0aunXrBrVaDQCwsbHB2LFjTaqTCTMiIiIiIiIiIjOTJLYwe5q6du2qNa5///4m18eEGRERERERERERWa3JkycXOf3jjz8udp3s9J+IiIiIiIiI6Dm1a9cutG/fHhUqVIAkSVi3bl2R5desWYMWLVqgXLlycHNzQ4MGDfDnn39qlFm0aBEkSdIasrKySuQzrF27VmNYtWoVZsyYgS+++MLg59GHLcyIiIiIiIiIiMxMspImSunp6QgLC8OAAQPQpUsXg+V37dqFFi1a4NNPP4WHhwcWLlyI9u3b48CBA4iIiFDKubm54dy5cxrzOjg4mD1+ADhy5IjWuLS0NMTGxqJTp04m1cmEGRERERERERHRc6p169Zo3bq10eVnzZql8f+nn36K9evX47ffftNImEmSBB8fH3OFWWxubm6YPHky2rVrh759+xZ7fivJdxIRERERERERWRGVZLEhOzsbaWlpGkN2dnaJfMyCggI8ePAAnp6eGuMfPnyIoKAg+Pv7o127djpbgZW0+/fvIzU11aR52cKMiIiIiIiIiOgZMm3aNMTFxWmMmzhxIiZNmmT2ZX3xxRdIT09H9+7dlXHVqlXDokWLUKtWLaSlpWH27Nlo1KgRjh07hpCQELPHMGfOHI3/hRBITEzE0qVL8corr5hUJxNmRERERERERETPkHHjxmHkyJEa49RqtdmXs2LFCkyaNAnr16+Ht7e3Mr5+/fqoX7++8n+jRo0QGRmJuXPnaiW3zOGrr77S+F+lUqFcuXLo378/xo0bZ1KdTJgREREREREREZmZJEkWW7ZarS6RBFlhK1euxOuvv45ffvkFzZs3L7KsSqVC3bp1ceHChRKJJT4+3ux1sg8zIiIiIiIiIiIy2ooVKxAbG4uffvoJbdu2NVheCIGjR4/C19f3KURnHmxhRkRERERERERkZpLKci3MiuPhw4e4ePGi8n98fDyOHj0KT09PBAYGYty4cbhx4waWLFkC4FGyrF+/fpg9ezbq16+PpKQkAICjoyPc3d0BAHFxcahfvz5CQkKQlpaGOXPm4OjRo/jf//5ntrg7d+6MRYsWwc3NDZ07dy6y7Jo1a4pdPxNmRERERERERETPqUOHDqFZs2bK/3LfZ/3798eiRYuQmJiIhIQEZfq8efOQl5eHd999F++++64yXi4PPHo75VtvvYWkpCS4u7sjIiICu3btwosvvmi2uN3d3ZXHXuVEnTlJQghh9lqtQMSXOy0dglEK8kv/5rFzKv151/zcAkuHYJyC0r+9reGUUWAl2zsvK9/SIRhk62Bj6RCeGWo3e0uHYFA5P2dLh2BQiL+DpUMwSi3v0n+uzMov/b96380q/TECQFaupSMwLNcKvlOq7axje2fklP51eedB6f+OcT8tz9IhGOX+vRxLh2BQVnrpPwkdHNTI0iFYxA89fSy27Nd/TrLYsp8VVtGHWWZmJvbs2YPTp09rTcvKylKaBRIRERERERER0fMlPj5e5wsFLly4gCtXrphUZ6lPmJ0/fx7Vq1dHkyZNUKtWLTRt2hSJiYnK9NTUVAwYMKDIOrKzs5GWlqYxFOSV/l8KiIiIiIiIiIioaLGxsfjnn3+0xh84cACxsbEm1VnqE2ZjxoxBrVq1cPv2bZw7dw5ubm5o1KiRxvOzhkybNg3u7u4aw62/l5dg1ERERERERET0PJMkyWLD8+bIkSNo1Ej70d/69evj6NGjJtVZ6hNm//zzDz799FN4eXmhcuXK2LBhA1q3bo3o6GhcvnzZqDrGjRuH1NRUjaH8y31KOHIiIiIiIiIiIippkiThwYMHWuNTU1ORn29av46lvrf2zMxM2Npqhvm///0PKpUKMTEx+OmnnwzWoVaroVarNcapbEt/58tEREREREREZJ0k1fPX0stSoqOjMW3aNKxYsQI2No9eXJafn49p06ahcePGJtVZ6hNm1apVw6FDh1C9enWN8XPnzoUQAh06dLBQZEREREREREREZGkzZ85EkyZNULVqVURHRwMAdu/ejbS0NGzbts2kOkv9I5mdOnXCihUrdE77+uuv0atXLwhR+l/tTERERERERERE5hcaGorjx4+je/fuuH37Nh48eIB+/frh7NmzqFmzpkl1SuI5zTZFfLnT0iEYpSC/9G8eO6dS31AR+bkFlg7BOAWlf3tbwymjwEq2d16Wac/SP022DjaWDuGZoXYr/V0BlPNztnQIBoX4O1g6BKPU8i7958qs/NL/mMjdrNIfIwBk5Vo6AsNyreA7pdrOOrZ3Rk7pX5d3HpT+7xj30/IsHYJR7t/LsXQIBmWll/6T0MFB2p2xPw8W9q1gsWUPWHrTYst+VpT+TAcREREREREREVEhx48fN7ps7dq1i10/E2ZERERERERERGYmSdbRctZahYeHQ5Ikg09BSZJk0psymTAjIiIiIiIiIiKrEh8fX6L1M2FGRERERERERGRmkootzEpSUFBQidZf6t+SSUREREREREREVJSlS5eiUaNGqFChAq5evQoAmDVrFtavX29SfUyYERERERERERGR1fr2228xcuRItGnTBvfv31f6LPPw8MCsWbNMqpMJMyIiIiIiIiIiM5NUksWG583cuXMxf/58jB8/HjY2Nsr4qKgonDhxwqQ6mTAjIiIiIiIiIiKrFR8fj4iICK3xarUa6enpJtXJhBkRERERERERkZlJkuWG503FihVx9OhRrfGbN29GaGioSXXyLZlERERERERERGS1Ro0ahXfffRdZWVkQQuDgwYNYsWIFpk2bhgULFphUJxNmRERERERERERktQYMGIC8vDyMHj0aGRkZ6N27N/z8/DB79mz07NnTpDqZMCMiIiIiIiIiMrfnsPN9S3rzzTfx5ptv4s6dOygoKIC3t/cT1cc+zIiIiIiIiIiIyOpkZmZiw4YNePDggTLOy8sL3t7eSEtLw4YNG5CdnW1S3UyYERERERERERGZmSRJFhueF99//z1mz54NV1dXrWlubm6YM2eOyX2YMWFGRERERERERERWZ/ny5Xjvvff0Tn/vvfewePFik+pmH2ZERERERERERGYmsYlSibtw4QLCwsL0Tq9duzYuXLhgUt3cfEREREREREREZHXy8vKQnJysd3pycjLy8vJMqpsJMyIiIiIiIiIisjo1atTAX3/9pXf61q1bUaNGDZPqZsKMiIiIiIiIiMjM2Ol/yRs4cCCmTJmC33//XWvab7/9hqlTp2LgwIEm1f3c9mFm62Bj6RCeGdkPci0dgmFCWDoCoxTkl/44n6eTb0mzd7WzdAgGFeQWWDoEg2wdreNSlnU/x9IhGPTQ1d7SIRj0MKv0xwgAp++U/t8kK7iV/vO5u9rSERhHVfpXJQ5dKv3noDKu1nE+f5CRb+kQDEq+k2XpEAzKtIZ7CAC5GaY9yvU0STZWcBIiKiFvvfUWdu3ahQ4dOqBatWqoWrUqJEnCmTNncP78eXTv3h1vvfWWSXVbx1WJiIiIiIiIiMiKSNbwi8ozYNmyZejQoQN++uknnD9/HkIIVK1aFXFxcejevbvJ9TJhRkREREREREREVqt79+5PlBzTpfQ/L0BERERERERERPQUsYUZEREREREREZG5sYmSVePmIyIiIiIiIiIiKoQtzIiIiIiIiIiIzEyS2Om/NWMLMyIiIiIiIiIiokLYwoyIiIiIiIiIyMwkFVuYlbTMzEzMmjULqampGD58OHx9fc1WN1uYERERERERERGR1Xn99ddx8eJFlC1bFs2bNzdr3WxhRkREREREREREVmfHjh3YunUratSogfHjx+P27dvw9vY2S91MmBERERERERERmRk7/S95MTExmD17NqpUqYLAwECzJcsAPpJJRERERERERERWaMGCBQgKCsKtW7fw999/m7VutjAjIiIiIiIiIjI3NlEqcc7Ozhg/fnyJ1M3NR0REREREREREVAgTZkREREREREREZFU6d+6MtLQ0o8v36dMHt2/fNro8H8kkIiIiIiIiIjIzdvpfstavX4/k5GSjygoh8Ntvv2HKlClGvxiACTMiIiIi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hOXLl6NPnz7FrpMtzIiIiIiIiIiIyGrdvXsXFStWBPCov7K7d+8CABo3boxdu3aZVCcTZkREREREREREZiapJIsNz5tKlSrhypUrAIDQ0FCsWrUKwKOWZx4eHibVyYQZERERERERERFZrQEDBuDYsWMAgHHjxil9mY0YMQKjRo0yqU72YUZEREREREREZGaSim2UnpYRI0Yofzdr1gxnz57FoUOH8MILLyAsLMykOpkwIyIiIiIiIiKiZ0ZgYCACAwOfqA6mO4mIiIiIiIiIiAphCzMiIiIiIiIiInOTnr/O958lbGFGRERERERERERUCFuYERERERERERGZmaRiCzNrxoQZERERERERERFZlbS0NKPLurm5Fbt+JsyIiIiIiIiIiMiqeHh4QDLQT5wQApIkIT8/v9j1M2FGRERERERERGRmkordxpek7du3l2j9TJgREREREREREZFViYmJKdH6mTAjIiIiIiIiIjIzdvr/9GVkZCAhIQE5OTka42vXrl3supgwIyIiIiIiIiIiq5WcnIwBAwZg8+bNOqeb0ocZH6glIiIiIiIiIjIzSaWy2PC8ee+993Dv3j3s378fjo6O+OOPP7B48WKEhIRgw4YNJtVplS3M5LccEBERERERERHR823btm1Yv3496tatC5VKhaCgILRo0QJubm6YNm0a2rZtW+w6rTLtqFarcebMGUuHQUREREREREREFpaeng5vb28AgKenJ5KTkwEAtWrVwn///WdSnaW6hdnIkSN1js/Pz8f06dNRtmxZAMCXX35ZZD3Z2dnIzs7WGFeQlwOVrb15AiUiIiIiIiIiKuR5fDTSUqpWrYpz584hODgY4eHhmDdvHoKDg/Hdd9/B19fXpDpLdcJs1qxZCAsLg4eHh8Z4IQTOnDkDZ2dnox7NnDZtGuLi4jTGlW8VC99XBpgzXCIiIiIiIiIiesree+89JCYmAgAmTpyIVq1aYfny5bC3t8eiRYtMqlMSQggzxmhW06ZNw/z587FgwQK89NJLyng7OzscO3YMoaGhRtWjq4VZ9PcH2cLMTPKz8iwdgmFW0uedNbx2uCC3wNIhPDNUdqX/Fycb+9Ifo7XIzyn9x45LOQdLh2BQmbJqS4dglBcqlP51GVym9F9zrOErBgC42pfar9OKbWdzLB2CQVnZpf88CQDW0GAk1wquORnp1nGA52QW/816pO3A2w0tHYJF7FzykuFCJSSm3zaLLbs0yMjIwNmzZxEYGAgvLy+T6ijVp/tx48Zh5cqVGDx4MD744APk5uaaVI9arYabm5vGwGQZEREREREREZF1y83NRaVKlXD69GllnJOTEyIjI01OlgGlPGEGAHXr1sXhw4eRnJyMqKgonDhxgm/IJCIiIiIiIiIi2NnZITs72+y5olKfMAMAFxcXLF68GOPGjUOLFi2Qn89msURERERERERUekkqlcWG583QoUMxY8YM5OWZ73HvUt3p/+N69uyJxo0b4/DhwwgKCrJ0OEREREREREREZGEHDhzA33//jS1btqBWrVpwdnbWmL5mzZpi12lVCTMA8Pf3h7+/v6XDICIiIiIiIiLS7zls6WUpHh4e6NKli1nrtLqEGRERERERERERkWzhwoVmr5MJMyIiIiIiIiIiM5MktjCzZkyYERERERERERGR1apYsWKRb8m8fPlysetkwoyIiIiIiIiIiKzWe++9p/F/bm4ujhw5gj/++AOjRo0yqU4mzIiIiIiIiIiIzExS6W/xROY1fPhwneP/97//4dChQybVyQdqiYiIiIiIiIjomdO6dWusXr3apHnZwoyIiIiIiIiIyMwkFdsoWdqvv/4KT09Pk+ZlwoyIiIiIiIiIiKxWRESERqf/QggkJSUhOTkZ33zzjUl1MmFGRERERERERERWq2PHjhr/q1QqlCtXDk2bNkW1atVMqpMJMyIiIiIiIiIiM+MjmU9HXl4egoOD0apVK/j4+JitXm49IiIiIiIiIiKySra2thg8eDCys7PNW69ZayMiIiIiIiIiIkgqG0uH8NyoV68ejhw5gqCgILPVyYQZERERERERERFZrXfeeQfvv/8+rl+/jjp16sDZ2Vljeu3atYtdJxNmRERERERERERmxj7Mnp4ePXoAAIYNG6aMkyQJQghIkoT8/Pxi18mEGRERERERERERWa34+Hiz18mEGRERERERERERWS1z9l0mY8KMiIiIiIiIiMjc+EimVePWIyIiIiIiIiIiKoQtzIiIiIiIiIiIzIyd/lu35zZhZmtvHTuurdrG0iEYJLnZWzqEZ0bGvSxLh2CQZCNZOgSDCnKK/wYUS8h+mGPpEAwqyCmwdAiGlf5dEgDg4OVo6RAMsrEp/ddGB/vSf10EACtYlcjKs3QEhpV3soJzEICM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OapVyB8wOzsb5cuX15hWvnx5JCcnFzm/Wq2GWq3WGKeyszdrjEREREREREREClXpf2KM9HuiFmbZ2dkYM2YMvL29ER0djZ49e2LAgAEaZV5//XVUqFDB5LcSAMDLL7+MyMhIpKWl4fz58xrTEhIS4OXlZXLdREREREREREREhZncwiwnJwctW7bEnj174OzsjKZNm+LkyZO4c+eORrnOnTtj4cKF+PXXXzF+/PhiL2fixIka/8uPY8p+++03REdHF/8DEBERERERERER6WBywmzOnDnYvXs3oqOjsXLlSvj4+CA6OlorYdaiRQvY29tjy5YtZkmYPe6zzz4rdp1ERERERERERCVJkvhIpjUzOWG2fPly2NnZYcWKFfDx8dFbzt7eHpUrV8bVq1dNXRQREREREREREZFe58+fx44dO3D79m0UFGi+iffjjz8udn0mJ8zOnz+PkJAQVKhQwWBZV1dXXLp0ydRFERERERERERFZF3b6/9TMnz8fgwcPhpeXF3x8fDTejilJ0tNNmNna2iI3N9eosikpKXB2djZ1UURERERERERERDpNnToVn3zyCcaMGWO2Ok1OmFWpUgXHjx9HcnIyypUrp7fcpUuXcPHiRcTExJi6KCIiIiIiIiIiqyKxhdlTc+/ePXTr1s2sdapMnbFr167Izc3FiBEjtJ4NleXk5GDw4MGQJAk9e/Y0OUgiIiIiIiIiIiJdunXrhi1btpi1TpNbmA0bNgxLlizBihUrcOnSJfTv3x+pqakAgO3bt+PEiROYN28ezpw5g8jISAwcONBsQRMREREREREREQFA5cqVMWHCBOzfvx+1atWCnZ2dxvRhw4YVu06TE2aOjo7YunUrunXrhn379uHgwYPKtObNmwMAhBCoX78+1qxZoxUsEREREREREdEzi49kPjXff/89XFxcsHPnTuzcuVNjmiRJTzdhBgAVKlTAnj17sHHjRqxZswYnTpxAamoqXFxcEBoais6dO6NTp04abycgIiIiIiIiIiIyl/j4eLPX+UQJM+BRpq5du3Zo166dOeIhIiIiIiIiIrJ+EluYWTOTE2b379+Hh4eHGUMhIiIiIiIiIiIqvuvXr2PDhg1ISEhATk6OxrQvv/yy2PWZnDDz9fXFq6++itjYWLRq1YqPXRIRERERERER0VP3999/o0OHDqhYsSLOnTuHmjVr4sqV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TVLlypVVokQJ+fn5qWXLlpo6daoaNmxodjRJUsWKFRUZGanhw4fr3LlzSklJ0ZgxYxQfH2/aNSizn8fd7brj7r8zSNnL6A7XnKxyuvt1B7idfMwO8F/w75kchmG41ewOT/P8889r586dbjuro0KFCtq+fbvOnz+vpUuXqkePHlq7dq3bNM3+/vtvDRw4UD/++GOurnOSE61atbL9uVq1aqpXr57KlCmjefPmafDgwSYms2e1WlW7dm29++67kqSaNWtqz549mjZtmp588kmT02U0e/ZstWrVyrQ1g25m8eLFWrBggT777DNVqVJF27dv16BBg1SsWDH16NHD7Hg2n376qXr37q3ixYvL29tbtWrVUteuXRUTE2N2tCxxDXKt1NRUPfbYY7JarZo6darZcTJo0qSJtm/frtOnT2vmzJnq3LmzNm/erLCwMLOjadu2bZo4caJiYmLc/muwS5cutj9XrVpVtWvXVmRkpL799lu3aPhcfyhKu3bt9OKLL0qSatSooY0bN+rjjz9Wo0aNzIyXqU8++UTdunVzy589Jk2apN9++01ff/21IiMjtW7dOj333HMqWrSoW8zE9/X11dKlS9WnTx+FhITI29tbzZo1s/t5Kbdl9fO4u1x33P13BslxRne55mSV052vO8DtxgyzWxAaGipvb+8M/6KSkJCQ4V9ekD0vvPCCvv76a61evVolSpQwO06m/Pz8VLZsWdWuXVvR0dG6++67NXHiRLNj2Wzbtk0JCQmKioqSj4+PfHx8tHbtWk2aNEk+Pj5KT083O2IGefPmVbVq1XL9aVCOFC1aNEMjtFKlSm71UI/rjh49qp9++klPPfWU2VEyGDJkiIYNG6bHHntM1apVU/fu3fXiiy+63QzIMmXKaO3atUpKStLff/+tLVu2KDU1VaVKlTI7WqauP1mWa5DrpKamqnPnzjp8+LBWrVrldrPLpGvfL8uWLau6detq9uzZ8vHx0ezZs82OJUlav369EhISFBERYbv+HD16VC+99JJKlixpdrwsFS1aVJGRkW5zHQoNDZWPj4/HXIPWr1+v2NhYt7wGXblyRa+++qo+/PBDtWnTRtWrV9fzzz+vLl266IMPPjA7nk1UVJTtH2RPnjyplStX6syZM6Zcg27287g7XXc84XcGRxnd5ZrjKKc7X3eA242G2S3w8/NTVFSU7al0161a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KipKI0aM0MmTJ+2OXbVqlZ5//nndfffdCgkJUUBAgMqUKaNnn33WZbfN9ezZU6VKlZIkHT16VBaLxW677maL/t+4UH56erree+89VapUSYGBgSpZsqRGjhyptLQ0SdKVK1f0xhtvqGzZsrbPZezYsTIM46b5tmzZoscee0zFixeXn5+fwsPD9eijj+qPP/7I8ee6evVqJSQkqGHDhgoKCsryWKvVqokTJ6pq1aoKCAhQeHi4+vTpo3/++eemr9mzZ4+6d++uEiVK2LJ26tRJv/32W6bHN27cWBaLRWvWrMl0f8+ePTNdW+/G8cOHD6tnz54qXry4fHx87B72sGLFCrVo0UKhoaHy9fVV4cKFVb16db3wwgvat29fhvOFhoaqTp06OnbsmH799dcs3x8AAABPR8MMAAAX27x5s+6++259/PHH+ueff1StWjUFBgZq5cqVat269U0Xk1+4cKGqV6+umTNn6sSJE6pcubLCwsK0Z88ejR49Wj/88IPd8a1atdLUqVMVHx+vyMhIlStXTqdOndLHH3+sWrVqae/evbf8uZQvX161a9eWJPn7+6tBgwZ2W0506dJFw4YNk8ViUWRkpOLi4jRq1Cg9/fTTunr1qpo0aaLo6GjlzZtXRYsW1aFDh/TKK6/c9Ime48ePV926dbV48WJdvXpVVatWVXp6upYsWaI6depo2bJlOcq3bt06SdK9997r8Nju3btr0KBBSklJUdmyZXX27Fl98sknatKkiZKTkzMc//XXXysqKkoLFizQpUuXdPfdd8swDC1btkwNGjS4Lbc5xsbGqlatWvr8889VpEgRlStXztbknDJlitq2basff/xRvr6+qlGjhoKDg3XgwAFNmTIlw9faddffm+vvFQAAwH+WAQAAshQZGWlIMubMmePw2EuXLhkRERGGJKNz587GhQsXbPvmzp1reHt7G5KM7777zu51v//+u+Hr62tIMoYOHWokJSXZ9qWkpBiLFi0y1q9fb/ea6dOnG8ePH7cbu3z5svHOO+8YkozGjRtnyDdixAhDkjFixIhsfObXHD582JBkREZG3vSYOXPmGJKMHj162I2vXr3akGT4+voaJUqUMP744w/bvjVr1hh+fn6GxWIx2rZta1SrVs04ePCgbf/ChQsNSYa/v79x9uxZu7rff/+9YbFYjNDQUGPp0qV2+2bNmmX4+PgY+fPnN06cOJHtz7NJkyaGJGPJkiWZ7r/xcylWrJixefNm277Y2FijRIkShiRj2rRpdq87fvy4UaBAAUOSMXDgQCM5OdkwDMNIT0+3/V35+voaO3bssHtdo0aNDEnG6tWrM83To0ePTL8ur497e3sbbdu2Nc6cOWPbd+XKFSM1NdUIDg42fHx8jOXLl9u9NjU11VixYoWxdu3aTM/52WefGZKMFi1aZLofAADgv4IZZgAAuNBnn32muLg4hYeHa968ecqfP79tX48ePfTMM89IUobF8UeMGKHU1FT17t1b7733nvLmzWvb5+vrq8cee0wNGza0e83TTz+tYsWK2Y0FBgbq1VdfVcOGDbVmzRodP37c1Z+iU1JTUzV58mTVqFHDNtaoUSN16tRJhmFoxYoVmjdvnkqXLm3b37VrV9WtW1fJyckZbkt87bXXZBiGZs+erY4dO9rt69OnjwYOHKiLFy9q1qxZ2c549OhRSXL4pM/rn8uNM9HKly+voUOHSlKG226nTp2qCxcuqEaNGpowYYL8/PwkSV5eXnr11VfVunVrpaam6oMPPsh21uwoXLiwPvvsM4WEhNjGAgICdPr0aZ07d07VqlVT+/bt7V7j4+Ojhx9+WPfff3+mNa+/N9ffKwAAgP8qGmYAALjQjz/+KEnq27evAgICMuwfOHCgJGnjxo26dOmSpGtrd61atUqSbE2X7Nq6dauGDRumtm3bqlGjRmrYsKEaNmyo/fv3S5J27tzp9OfiSiEhIRmaM5JsDbSaNWuqZs2aGfZfHzt06JBt7OjRo4qJiVFYWJjatm2b6fmuj69duzbbGU+fPm3LmpXg4OAMTTpJuueeezJklf7va+L555/PtN71r4nrx7lKp06d7Bqv1xUuXFj+/v7av3+/duzYkaOa19+brNZqAwAA+C/wMTsAAAD/JdcbVZUrV850f7ly5eTn56eUlBQdPHhQ1atX119//aXU1FQVLFhQFSpUyNZ5DMPQ888/r6lTp2Z53NmzZ3P2CdwmZcqUyXS8cOHC2dqflJRkG9u1a5ck6erVqxlm3V139epVScrRDLvrr/H398/yuJtlDQsLy5BVcvw1UaVKFUnSqVOndOHCBRUoUCDbmbNSqVKlTMe9vb01YMAAvf/++6pVq5YaNGigJk2a6L777lPDhg0zbfReFxgYKOlakxcAAOC/jIYZAAAudL1Zcr158m8Wi0WFCxfW8ePHdfHiRUnShQsXJEkFCxbM9nk+/fRTTZ06VXnz5tX777+vBx98UMWLF7c1NJ544gktXLhQqampt/DZuE6ePHkyHb++CL2j/cYNT8pMTEyUdO19c/S0xpw0dkJCQhQfH6/z589neVxms7aka7dY/jur5PhrIjw83PbnixcvuqxhdrOckjRmzBgVL15cH330kdavX6/169dLkgoUKKDnnntOI0eOzLRxeL0BGxoa6pKMAAAA7opbMgEAcKF8+fJJkhISEjLdbxiG7Xa26+ubXf+vo0bNjRYuXChJGjdunJ599lmVLVvW1iyTpL///jvH2T3F9fe4QYMGMgwjy+3IkSPZrnu9oeXqWXmOviZOnTpl+/ONa95l1iy80fVbep3h5eWlgQMHav/+/Tp8+LDmzZunxx57TFevXtWYMWP00ksvZfq66+/N9Zl/AAAA/1U0zAAAcKHy5ctLkvbu3Zvp/gMHDiglJUXe3t62W/uu36Z5/vx5xcbGZus81xtB9evXz7AvNTVV+/btcyJ95q43btzF9Vsb9+3bJ6vV6rK619dTc+V7Jzn+mtizZ4+kazPNbpxddn2G2M3WC/vrr79ckq9kyZJ68skntWjRIn399deSpE8++STT9/b651CrVi2XnBsAAMBd0TADAMCFWrRoIUmaOXOmbU2sG02aNEnStdlR1xsigYGBat68uSRl+0mJ12eT3Tg76bo5c+a4dFF2d1u3qly5cqpatarOnj2r+fPnu6zu9fXQtm7d6rKa0v99TUyZMiXT/de/Jq4fd931J4b+/vvvGV6zdevWHC/Ynx1169aVdO3v+ty5cxn2b9myRZJ03333ufzcAAAA7oSGGQAALvT4448rIiJCp06dUs+ePe0WgF+wYIGmT58uSRo2bJjd60aMGCFfX1/NmjVLr776qi5fvmzbl5qaqsWLF2vDhg22sevNnddff92uObZy5UoNGTIky4Xbc6pw4cLKnz+/EhISXD77ylnvvfeeLBaL+vfvr1mzZiktLc1u/6FDh/TOO+9o2bJl2a754IMPymKx2L3PrvDss8+qQIEC2r59u1588UWlpKRIkqxWq8aOHatvv/1Wvr6+GW6DbNWqlaRrzdfrjSrp2izFHj16yMfHuaVooj+PzgAAA9ZJREFU9+7dq2eeeUa///673e2eycnJeueddyRJkZGRKlSokN3rDMPQxo0b5e3trQceeMCpcwMAAHgKGmYAAGTTCy+8oNDQ0Jtuu3fvVp48efTFF18oKChIixcvVpEiRXTPPfcoIiJC3bt3V1paml5//XVbM+S62rVr65NPPpGvr6+io6NVuHBhRUVFqXLlyipQoIAee+wxu1vwhg4dqpCQEG3evFmRkZGqWbOmSpUqpVatWikqKkqdOnVy2edtsVj06KOPSrp2K94999yjxo0bq3Hjxi47R061bt1akydPVnJysvr27auQkBDVrl1b99xzj4oUKaIyZcro9ddfv+m6YZkpWbKkmjZtqoMHD2rbtm0uy1qsWDF9+umn8vPz04QJE1SkSBHde++9Klq0qF555RV5eXlpypQpql69ut3rWrZsqWbNmikxMVH16tVTxYoVVa1aNVWsWFGhoaG2v5OcSklJ0YwZM3TvvfcqJCREUVFRqlWrlsLDw/X+++/Lz89P06ZNy/C6jRs36tixY2rRooWKFSvm1LkBAAA8BQ0zAACyKSkpSWfOnLnpdn2WU506dbRjxw4988wzCg0N1c6dO5WUlKTmzZvr22+/1VtvvZVp/SeeeELbt29Xr169bA24f/75R1WqVNHIkSPVsmVL27ERERHatGmTOnbsKD8/P/35558KCAjQqFGjtHLlSqdnH93MxIkTNXDgQBUpUkQ7duzQ2rVrtXbtWpeeI6f69++v7du366mnnlLhwoW1Z88eHThwQKGhoXr88cf1v//9T08++WSOaj799NOS/u+hCq7Stm1bbdu2Td26dVNAQIC2b98uwzDUoUMHbdiwwXbeG1ksFi1fvlyDBw9WsWLFdPjwYV26dEnDhw/Xjz/+KF9fX6eylCtXTjNnztSjjz6qwoULa//+/Tpw4ICKFy+ufv36ae/evRkaupK0aNEiSVLfvn2dOi8AAIAnsRg3e/QSAADAHSY9PV3VqlVTfHy8jh49avfUyjvZ+fPnVbJkSUVERGj79u3y8uLfXAEAwH8bP+0AAAD8f97e3oqOjta5c+c0efJks+O4jYkTJyoxMVFjxoyhWQYAAO4Irr1fAwAAwMO1a9dOH3zwgfz9/c2O4jaCg4P14YcfqnXr1mZHAQAAyBXckgkAAAAAAADcgDn1AAAAAAAAwA1omAEAAAAAAAA3oGEGAAAAAAAA3ICGGQAAAAAAAHADGmYAAAAAAADADWiYAQAAAAAAADegYQYAAAAAAADcgIYZAAAAAAAAcAMaZgAAAAAAAMANaJgBAAAAAAAAN/h/97dXn2LvgSoAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "FFMpegWriter = animation.writers['ffmpeg']\n", "metadata = dict(title='UHI in ' + area_params[\"urban\"] + '(' + area_params[\"area\"] + ')', artist='Jean Iaquinta', comment='ERA5-Land data from https://open-meteo.com')\n", "writer = FFMpegWriter(fps=25, metadata=metadata)\n", "fig = plt.figure(1, figsize=[16,8])\n", "ax = plt.subplot(1, 1, 1)\n", "ani = animation.FuncAnimation(fig, myheatmap, frames=range(end_year - start_year + 1), fargs=(ax, start_year, area_params, hm), interval=200)\n", "vid = HTML(ani.to_html5_video())" ] }, { "cell_type": "code", "execution_count": 29, "id": "ef507b4e-c368-49e4-812a-d2a039c052f0", "metadata": {}, "outputs": [], "source": [ "with open('UHI_' + area_params[\"urban\"] + '_' + str(start_year) + '-' + str(end_year) + '.html', 'w') as f:\n", " print(ani.to_html5_video(), file=f)" ] }, { "cell_type": "markdown", "id": "3a701fce-df1f-487a-9863-15fa3c86aec1", "metadata": {}, "source": [ "## Packages citation\n", "\n", "```{bibliography}\n", ":style: alpha\n", ":filter: topic % \"UHI\" and topic % \"package\"\n", ":keyprefix: a-\n", "```" ] }, { "cell_type": "code", "execution_count": null, "id": "9f2ee6ee-9109-4829-a943-99d13e091b82", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.5" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }