Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jGaboardi/172f82647086ff4e6090acb0ede3ab7c to your computer and use it in GitHub Desktop.
Save jGaboardi/172f82647086ff4e6090acb0ede3ab7c to your computer and use it in GitHub Desktop.
point_line_poly_centered_norm_matplotlib_391
Display the source blob
Display the rendered blob
Raw
{"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.11.9"},"gist_info":{"create_date":"","gist_id":"","gist_url":""}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"ba34be51-2191-48cc-88cb-395b960aa59d","cell_type":"markdown","source":"# matplotlib 3.9.1\n## `matplotlib.colors.CenteredNorm`","metadata":{}},{"id":"a697159b-a0f0-49c1-aa25-ef9a9a48ab25","cell_type":"code","source":"%load_ext watermark\n%watermark","metadata":{"execution":{"iopub.status.busy":"2024-07-18T00:54:38.734785Z","iopub.execute_input":"2024-07-18T00:54:38.735481Z","iopub.status.idle":"2024-07-18T00:54:38.762467Z","shell.execute_reply.started":"2024-07-18T00:54:38.735460Z","shell.execute_reply":"2024-07-18T00:54:38.762154Z"},"trusted":true},"outputs":[{"name":"stdout","text":"Last updated: 2024-07-17T20:54:38.755280-04:00\n\nPython implementation: CPython\nPython version : 3.11.9\nIPython version : 8.26.0\n\nCompiler : Clang 16.0.6 \nOS : Darwin\nRelease : 23.5.0\nMachine : arm64\nProcessor : arm\nCPU cores : 8\nArchitecture: 64bit\n\n","output_type":"stream"}],"execution_count":1},{"id":"65abdf80-3e61-4330-85f9-b20e8f3a5f9f","cell_type":"code","source":"import geopandas\nimport matplotlib\nimport numpy\nimport pandas\nimport shapely\n\n%watermark -iv","metadata":{"execution":{"iopub.status.busy":"2024-07-18T00:54:38.763107Z","iopub.execute_input":"2024-07-18T00:54:38.763234Z","iopub.status.idle":"2024-07-18T00:54:39.217066Z","shell.execute_reply.started":"2024-07-18T00:54:38.763222Z","shell.execute_reply":"2024-07-18T00:54:39.216856Z"},"trusted":true},"outputs":[{"name":"stdout","text":"shapely : 2.0.5\nmatplotlib: 3.9.1\ngeopandas : 1.0.1\npandas : 2.2.2\nnumpy : 1.26.4\n\n","output_type":"stream"}],"execution_count":2},{"id":"61cc1038-7fd7-4e38-8fae-fb25d38aaf6a","cell_type":"code","source":"values = (\n numpy.random.default_rng(850)\n .uniform(low=.01, high=2.9, size=4)\n)\nvalues","metadata":{"execution":{"iopub.status.busy":"2024-07-18T00:54:39.217477Z","iopub.execute_input":"2024-07-18T00:54:39.217602Z","iopub.status.idle":"2024-07-18T00:54:39.220295Z","shell.execute_reply.started":"2024-07-18T00:54:39.217595Z","shell.execute_reply":"2024-07-18T00:54:39.220123Z"},"trusted":true},"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"array([0.33735074, 1.08379739, 0.98264763, 1.5703785 ])"},"metadata":{}}],"execution_count":3},{"id":"b02d605e-2520-4780-a91d-866f6351d95c","cell_type":"code","source":"centered_norm = matplotlib.colors.CenteredNorm(vcenter=1)\ncentered_norm_values = centered_norm(values)\ncentered_norm_values","metadata":{"execution":{"iopub.status.busy":"2024-07-18T00:54:39.220635Z","iopub.execute_input":"2024-07-18T00:54:39.220737Z","iopub.status.idle":"2024-07-18T00:54:39.222565Z","shell.execute_reply.started":"2024-07-18T00:54:39.220730Z","shell.execute_reply":"2024-07-18T00:54:39.222372Z"},"trusted":true},"outputs":[{"execution_count":4,"output_type":"execute_result","data":{"text/plain":"masked_array(data=[0. , 0.56322907, 0.48690682, 0.93037738],\n mask=False,\n fill_value=1e+20)"},"metadata":{}}],"execution_count":4},{"id":"53c16368-f36e-4c0f-ae3b-7713cee3abaa","cell_type":"markdown","source":"---------------------\n\n## Point","metadata":{}},{"id":"b56f7e1f-d848-4915-b6dd-d67f65791354","cell_type":"code","source":"points = shapely.points(numpy.array([[i, i] for i in range(4)]))\npoint_gdf = geopandas.GeoDataFrame({\"values\": values}, geometry=points)\npoint_gdf","metadata":{"execution":{"iopub.status.busy":"2024-07-18T00:54:39.222844Z","iopub.execute_input":"2024-07-18T00:54:39.222900Z","iopub.status.idle":"2024-07-18T00:54:39.227943Z","shell.execute_reply.started":"2024-07-18T00:54:39.222893Z","shell.execute_reply":"2024-07-18T00:54:39.227764Z"},"trusted":true},"outputs":[{"execution_count":5,"output_type":"execute_result","data":{"text/plain":" values geometry\n0 0.337351 POINT (0 0)\n1 1.083797 POINT (1 1)\n2 0.982648 POINT (2 2)\n3 1.570379 POINT (3 3)","text/html":"<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>values</th>\n <th>geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>0.337351</td>\n <td>POINT (0 0)</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1.083797</td>\n <td>POINT (1 1)</td>\n </tr>\n <tr>\n <th>2</th>\n <td>0.982648</td>\n <td>POINT (2 2)</td>\n </tr>\n <tr>\n <th>3</th>\n <td>1.570379</td>\n <td>POINT (3 3)</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":5},{"id":"6a7905f5-2cdd-47b9-872d-f1b000e0f48c","cell_type":"code","source":"cmap = matplotlib.cm.coolwarm\nax = point_gdf.plot(\n column=\"values\",\n norm=matplotlib.colors.CenteredNorm(vcenter=1),\n cmap=cmap,\n legend=True,\n)\nax.set_axis_off()","metadata":{"execution":{"iopub.status.busy":"2024-07-18T00:54:39.228989Z","iopub.execute_input":"2024-07-18T00:54:39.229064Z","iopub.status.idle":"2024-07-18T00:54:39.429015Z","shell.execute_reply.started":"2024-07-18T00:54:39.229058Z","shell.execute_reply":"2024-07-18T00:54:39.428792Z"},"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 2 Axes>","image/png":"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"},"metadata":{}}],"execution_count":6},{"id":"325b3b98-4408-4a6a-922d-5deb7bc70970","cell_type":"markdown","source":"---------------------\n\n## LineString","metadata":{}},{"id":"21938b6b-725c-46e9-8424-955576aa0f41","cell_type":"code","source":"lines = [\n shapely.LineString(i) for i in\n numpy.array([points[:-1], points[1:]]).reshape(3,2)\n] + [shapely.LineString(((3, 3), (4,4)))]\nline_gdf = geopandas.GeoDataFrame({\"values\": values}, geometry=lines)\nline_gdf","metadata":{"execution":{"iopub.status.busy":"2024-07-18T00:54:39.429423Z","iopub.execute_input":"2024-07-18T00:54:39.429524Z","iopub.status.idle":"2024-07-18T00:54:39.433310Z","shell.execute_reply.started":"2024-07-18T00:54:39.429517Z","shell.execute_reply":"2024-07-18T00:54:39.433148Z"},"trusted":true},"outputs":[{"execution_count":7,"output_type":"execute_result","data":{"text/plain":" values geometry\n0 0.337351 LINESTRING (0 0, 1 1)\n1 1.083797 LINESTRING (2 2, 1 1)\n2 0.982648 LINESTRING (2 2, 3 3)\n3 1.570379 LINESTRING (3 3, 4 4)","text/html":"<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>values</th>\n <th>geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>0.337351</td>\n <td>LINESTRING (0 0, 1 1)</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1.083797</td>\n <td>LINESTRING (2 2, 1 1)</td>\n </tr>\n <tr>\n <th>2</th>\n <td>0.982648</td>\n <td>LINESTRING (2 2, 3 3)</td>\n </tr>\n <tr>\n <th>3</th>\n <td>1.570379</td>\n <td>LINESTRING (3 3, 4 4)</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":7},{"id":"3fa858a5-9db3-4a5d-91f4-da518ff87228","cell_type":"code","source":"cmap = matplotlib.cm.coolwarm\nax = line_gdf.plot(\n column=\"values\",\n norm=matplotlib.colors.CenteredNorm(vcenter=1),\n cmap=cmap,\n legend=True,\n)\nax.set_axis_off()","metadata":{"execution":{"iopub.status.busy":"2024-07-18T00:54:39.433651Z","iopub.execute_input":"2024-07-18T00:54:39.433727Z","iopub.status.idle":"2024-07-18T00:54:39.495704Z","shell.execute_reply.started":"2024-07-18T00:54:39.433720Z","shell.execute_reply":"2024-07-18T00:54:39.495434Z"},"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 2 Axes>","image/png":"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"},"metadata":{}}],"execution_count":8},{"id":"d0291180-3f86-41e0-a776-0be4ac75fe3b","cell_type":"markdown","source":"---------------------\n\n## Polygon","metadata":{}},{"id":"424ee884-9444-4706-97d2-cbf05ac30579","cell_type":"code","source":"polygons = [\n shapely.Polygon(\n [(i+0, i+0), (i+1, i+0), (i+1, i+1), (i+0, i+1)]\n )\n for i in range(4)\n]\npolygon_gdf = geopandas.GeoDataFrame({\"values\": values}, geometry=polygons)\npolygon_gdf","metadata":{"editable":true,"execution":{"iopub.status.busy":"2024-07-18T00:54:39.496195Z","iopub.execute_input":"2024-07-18T00:54:39.496263Z","iopub.status.idle":"2024-07-18T00:54:39.500832Z","shell.execute_reply.started":"2024-07-18T00:54:39.496257Z","shell.execute_reply":"2024-07-18T00:54:39.500618Z"},"slideshow":{"slide_type":""},"tags":[],"trusted":true},"outputs":[{"execution_count":9,"output_type":"execute_result","data":{"text/plain":" values geometry\n0 0.337351 POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))\n1 1.083797 POLYGON ((1 1, 2 1, 2 2, 1 2, 1 1))\n2 0.982648 POLYGON ((2 2, 3 2, 3 3, 2 3, 2 2))\n3 1.570379 POLYGON ((3 3, 4 3, 4 4, 3 4, 3 3))","text/html":"<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>values</th>\n <th>geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>0.337351</td>\n <td>POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1.083797</td>\n <td>POLYGON ((1 1, 2 1, 2 2, 1 2, 1 1))</td>\n </tr>\n <tr>\n <th>2</th>\n <td>0.982648</td>\n <td>POLYGON ((2 2, 3 2, 3 3, 2 3, 2 2))</td>\n </tr>\n <tr>\n <th>3</th>\n <td>1.570379</td>\n <td>POLYGON ((3 3, 4 3, 4 4, 3 4, 3 3))</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":9},{"id":"0357713c-374e-4ce0-bb0b-a2011e6459fc","cell_type":"code","source":"cmap = matplotlib.cm.coolwarm\nax = polygon_gdf.plot(\n column=\"values\",\n norm=matplotlib.colors.CenteredNorm(vcenter=1),\n cmap=cmap,\n legend=True,\n)\nax.set_axis_off()","metadata":{"execution":{"iopub.status.busy":"2024-07-18T00:54:39.501377Z","iopub.execute_input":"2024-07-18T00:54:39.501451Z","iopub.status.idle":"2024-07-18T00:54:39.562206Z","shell.execute_reply.started":"2024-07-18T00:54:39.501444Z","shell.execute_reply":"2024-07-18T00:54:39.561974Z"},"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 2 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAdAAAAGFCAYAAABNHqJEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAbIklEQVR4nO3df0xW99nH8c+5oYCtz00fdSJYVNbOzDxklkCWqTWrdmVhDVuWNpqwjM4fiabrnLKalJlHrGtm1mzGdYrtUq1xMcbUtrYmxEqebuKPLRkEkm6a9IdkoAUJduMWOmFyn+cPC+s9KHKfcwn36Xm/kvPHfTjf7/ny15Xr+v44juu6rgAAQFIikz0AAACCiAAKAIAHBFAAADwggAIA4AEBFAAADwigAAB4QAAFAMCD9MkeAADg8+H69esaGBgw6SsjI0NZWVkmfd0uBFAAgG/Xr19X3pSp+rsGTfqbNWuWWltbUzqIEkABAL4NDAzo7xrUgbQC3elzdvBjxfWDzlYNDAwQQAEA4XDXHWm600nz1YfjDsookb2tCKAAADNOuqOI4/jrw/XXfqKwChcAAA/IQAEAZpw7InIcf7mZE5CPhBFAAQBmImmOIhF/JdhInBIuAACfW2SgAAAzzh2OHJ8ZqBOQDJQACgAwE0mnhAsAAMZABgoAMEMJFwAADyJpjiJpPku4gwRQAEDIOGmOHJ8B1FEwAihzoACAQGtoaFB5ebny8vLkOI6OHTt2yzb9/f3asmWL5s6dq8zMTN17773av39/Uu8lAwUAmDEp4SaZgfb19WnhwoVatWqVHn300XG1WbFiha5cuaJ9+/bpvvvuU1dXl27cuJHUewmgAAAzTsRgEVGSh8mXlZWprKxs3M+fOHFCp06d0sWLFzVt2jRJ0rx585J6p0QABXCbNC1bMtlD+Fwp/v3ZyR7ChIvFYgm/MzMzlZmZ6bvfN998UyUlJXruuef0u9/9TnfddZe+/e1v62c/+5mmTJky7n4IoAAAM05aRE6az8PkdfMw+fz8/IT7NTU12rZtm6++JenixYs6c+aMsrKy9Prrr6u7u1tPPPGEPvroo6TmQQmgAAAzlnOg7e3tikajw/ctsk9JisfjchxHhw4dUnZ2tiRp586deuyxx7Rnz55xZ6GswgUApKRoNJpwWQXQ3NxczZ49ezh4StKCBQvkuq4uXbo07n4IoAAAM47jDC8k8nw5t3cf6JIlS/Thhx+qt7d3+N67776rSCSie+65Z9z9EEABAGactH+Xcb1eTlpy7+zt7VVLS4taWlokSa2trWppaVFbW5skqbq6WpWVlcPPV1RUaPr06Vq1apXOnz+vhoYGbd68WatXr05qEREBFAAQaI2NjSoqKlJRUZEkqaqqSkVFRdq6daskqaOjYziYStLUqVNVX1+vf/zjHyopKdH3vvc9lZeX6/nnn0/qvSwiAgCYMTnKL8l9oA8++KBc1/3Mvx84cGDEvS9/+cuqr69PdmgJCKAAADNOJCIn4nMbi8/2E4UACgAwY3ISkc/2EyUYYR4AgBRDBgoAMGNykEKSc6CThQAKADBDCRcAAIyJDBQAYMZxDFbhOsHI7QigAAAzlHABAMCYyEABAGZMVuHGg5GBEkABAGbCVMIlgAIAzITpKL9gjBIAgBRDBgoAMEMJFwAAD8IUQCnhAgDgARkoAMBMmDJQAigAwMzNAOp3FW4wAiglXAAAPCADBQCYcSL+TyJyBoORgRJAAQBmwjQHSgkXAAAPyEABAGbCdJQfARQAYCZMJVwCKADATJgCaDDyZAAAUgwZKADADHOgAAB4QAkXAACMiQwUAGCGEi4AAF44zs3Lbx8BEIwwDwBAiiEDBQCYcRyDRUQByUAJoAAAM2GaAw3GKAEASDFkoAAAM2HaB0oABQCYCVMJlwAKADDjRPxnkE4w4idzoAAAeEEGCgAwwxwoAABeRCI3L799BEAwRgkAQIohAwUAmHEcx/dJQpxEBAAInTBtYwnGKAEASDEEUACAmaFVuH6vZDQ0NKi8vFx5eXlyHEfHjh0bd9uzZ88qPT1d999/f3L/qAigAABLTuTfK3G9XkmepNDX16eFCxdq9+7dSbXr6elRZWWlHnrooaTaDWEOFAAQaGVlZSorK0u63bp161RRUaG0tLSkstYhZKAAADsW5dtPSrixWCzh6u/vNxvmyy+/rA8++EA1NTWe+yCAAgDMOE7E5JKk/Px8ZWdnD187duwwGeN7772np59+WocOHVJ6uvdCLCVcAICdT2WQvvqQ1N7ermg0Onw7MzPTX7+SBgcHVVFRoWeeeUbz58/31RcBFACQkqLRaEIAtXDt2jU1NjaqublZTz75pCQpHo/LdV2lp6fr5MmTWr58+bj6IoACAMyk+kEK0WhU77zzTsK92tpavf322zp69KgKCgrG3RcBFABgZjK+xtLb26v3339/+Hdra6taWlo0bdo0zZkzR9XV1bp8+bIOHjyoSCSiwsLChPYzZ85UVlbWiPu3QgAFAARaY2Ojli1bNvy7qqpKkvT444/rwIED6ujoUFtbm/l7Hdd1XfNeAYRe07Ilkz2Ez5Xi35+d7CGMKRaLKTs7W20/W6dolr/FPrHr/Zrzvy+qp6fHfA7UEhkoAMBMmD6ozT5QAAA8IAMFANgZOs/Wbx8BQAAFAJgJ0we1gxHmAQBIMWSgAAA7jkEJN8nPmU0WAigAwEyYVuESQAEAdpzkP4g9ah8BEIxRAgCQYshAAQB2DD9nluoIoAAAM5/+ILafPoIgGKMEACDFkIECAOxQwgUAIHmp/kFtS8EYJQAAKYYMFABgx3FuXn77CAACKADATsQx+BpLMAIoJVwAADwgAwUA2KGECwBA8sK0CpcACnzi3Q/aJnsInyvFvz872UPAZOAweQAAMBYyUACAHcfgJCLmQAEAYcNh8gAAYExkoAAAOxwmDwCAB6zCBQAAYyEDBQDY4SQiAAA8iEQMDpMPRnE0GKMEACDFkIECAOyEaBERARQAYIdtLAAAeOA4BhloMAJoMPJkAABSDBkoAMAO21gAAPCAbSwAAGAsZKAAADuUcAEA8CBE+0CDMUoAAFIMGSgAwI5jsIgoIBkoARQAYCdEc6DBCPMAAKQYMlAAgB0WEQEA4MFQCdfvlYSGhgaVl5crLy9PjuPo2LFjYz7/2muv6eGHH9YXvvAFRaNRLVq0SG+99VbS/yoBFABgZ+gkIr9XEvr6+rRw4ULt3r17XM83NDTo4YcfVl1dnZqamrRs2TKVl5erubk5qfdSwgUApKRYLJbwOzMzU5mZmSOeKysrU1lZ2bj73bVrV8Lvn//853rjjTd0/PhxFRUVjbsfMlAAgBnXcUwuScrPz1d2dvbwtWPHjtsy5ng8rmvXrmnatGlJtSMDBQDYMfweaHt7u6LR6PDt0bJPC7/61a/U19enFStWJNWOAAoASEnRaDQhgN4Ohw8f1rZt2/TGG29o5syZSbUlgAIA7ARoG8uRI0e0Zs0avfLKK/rGN76RdHsCKADAzKfnMP30cbsdPnxYq1ev1uHDh/XII4946oMACgAItN7eXr3//vvDv1tbW9XS0qJp06Zpzpw5qq6u1uXLl3Xw4EFJN4NnZWWlfv3rX+trX/uaOjs7JUlTpkxRdnb2uN/LKlwAgJ2hEq7fKwmNjY0qKioa3oJSVVWloqIibd26VZLU0dGhtra24edffPFF3bhxQz/84Q+Vm5s7fP34xz9O6r1koAAAO5NwmPyDDz4o13U/8+8HDhxI+P2HP/zBw6BGIgMFAMADMlAAgB0PR/GN2kcAEEABAGaCsgrXAgEUAGAnQPtA/QrGKAEASDFkoAAAM64Tkeszg/TbfqIQQAEAdiZhG8tkCUaYBwAgxZCBAgDMuDIo4QYktyOAAgDsUMIFAABjIQMFANhxHIN9oMHIQAmgAAAzYTqJiBIuAAAekIECAOyE6Cg/AigAwIwrR658lnB9tp8oBFAAgJkwHeUXjFECAJBiyEABAHaYAwUAIHlsYwEAAGMiAwUAmAnTIiICKADADofJAwCAsZCBAgDsGJRwWYULAAidMJ1EFIwwDwBAiiEDBQCYYRUuAABeODJYhWsyktuOAAoAMOMqItfn7KDf9hMlGKMEACDFkIECAMyE6SxcAigAwEyYFhEFY5QAAKQYMlAAgJkwHaRAAAUAmKGECwAAxkQGCgAwwypcAAA8CNMcKCVcAAA8IAMFAJgJ0yIiAigAwEyYSrgEUACAGVcGGWhAZheDMUoAAFIMARQAYGaohOv3SkZDQ4PKy8uVl5cnx3F07NixW7Y5deqUiouLlZWVpS9+8Yt64YUXkv5fCaAAADM394FGfF7JBdC+vj4tXLhQu3fvHtfzra2t+ta3vqWlS5equblZP/3pT7Vhwwa9+uqrSb2XOVAAQKCVlZWprKxs3M+/8MILmjNnjnbt2iVJWrBggRobG/XLX/5Sjz766Lj7IQMFAJixLOHGYrGEq7+/32SMf/zjH1VaWppw75vf/KYaGxv1r3/9a9z9kIEG2NW/nJvsIXyuzC9cPNlDAALP8ii//Pz8hPs1NTXatm2br74lqbOzUzk5OQn3cnJydOPGDXV3dys3N3dc/RBAAQApqb29XdFodPh3ZmamWd/OfwR513VHvT8WAigAwIzrOnJdnxnoJ+2j0WhCALUya9YsdXZ2Jtzr6upSenq6pk+fPu5+CKAAAEMRg4MQbu/ynEWLFun48eMJ906ePKmSkhLdcccd4+6HRUQAgEDr7e1VS0uLWlpaJN3cptLS0qK2tjZJUnV1tSorK4efX79+vf72t7+pqqpKFy5c0P79+7Vv3z499dRTSb2XDBQAYGYyzsJtbGzUsmXLhn9XVVVJkh5//HEdOHBAHR0dw8FUkgoKClRXV6dNmzZpz549ysvL0/PPP5/UFhZJctyhmVMEDqtwbU1nFS7gWSwWU3Z2thqb/6qp//VfvvrqvXZNJUX/o56entsyB2qFDBQAYCZMX2NhDhQAAA/IQAEAZsKUgRJAAQBmLPeBpjpKuAAAeEAGCgAwQwkXAAAPwhRAKeECAOABGSgAwEyYMlACKADAjCuDVbgBCaCUcAEA8IAMFABgJi5HcZ8ZpN/2E4UACgAwwxwoAAAecBIRAAAYExkoAMCMK/8l2KB8pJoACgAwQwkXAACMiQwUAGCGVbgAAHhACRcAAIyJDBQAYMaVFDfoIwgIoAAAM5RwAQDAmMhAAQBmWIULAIAHYSrhEkABAGbClIEyBwoAgAdkoAAAM3H35uW3jyAggAIAzFDCBQAAYyIDBQCYYRUuAAAeuO7Ny28fQUAJFwAAD8hAAQBm4nIU97kIyG/7iUIABQCYCdMcKCVcAAA8IAMFAJgJ0yIiAigAwEyYDlIggAIAzITpKD/mQAEA8IAMFABgx2AVrgKyCpcACgAwE6ZFRJRwAQDwgAwUAGAmTCcRkYECAMwMlXD9Xsmqra1VQUGBsrKyVFxcrNOnT4/5/KFDh7Rw4ULdeeedys3N1apVq3T16tWk3kkABQAE2pEjR7Rx40Zt2bJFzc3NWrp0qcrKytTW1jbq82fOnFFlZaXWrFmjv/71r3rllVf05z//WWvXrk3qvQRQAICZobNw/V7J2Llzp9asWaO1a9dqwYIF2rVrl/Lz87V3795Rn//Tn/6kefPmacOGDSooKNADDzygdevWqbGxMan3EkABAGaGDlLwe0lSLBZLuPr7+0e8b2BgQE1NTSotLU24X1paqnPnzo06xsWLF+vSpUuqq6uT67q6cuWKjh49qkceeSSp/5UACgBISfn5+crOzh6+duzYMeKZ7u5uDQ4OKicnJ+F+Tk6OOjs7R+138eLFOnTokFauXKmMjAzNmjVLd999t37zm98kNT4CKADAjOUiovb2dvX09Axf1dXVn/lex0ks+7quO+LekPPnz2vDhg3aunWrmpqadOLECbW2tmr9+vVJ/a9sYwEAmLE8TD4ajSoajY757IwZM5SWljYi2+zq6hqRlQ7ZsWOHlixZos2bN0uSvvKVr+iuu+7S0qVL9eyzzyo3N3dc4yQDBQCYictgDjSJ92VkZKi4uFj19fUJ9+vr67V48eJR23z88ceKRBLDX1pamqSbmet4EUABAIFWVVWll156Sfv379eFCxe0adMmtbW1DZdkq6urVVlZOfx8eXm5XnvtNe3du1cXL17U2bNntWHDBn31q19VXl7euN9LCRcAYGYyzsJduXKlrl69qu3bt6ujo0OFhYWqq6vT3LlzJUkdHR0Je0J/8IMf6Nq1a9q9e7d+8pOf6O6779by5cv1i1/8Iqn3Om4y+SpSytW/jL5EG95MLxy93APg1mKxmLKzs/Vy/d91511jz1veysd9Ma16+L/V09NzyznQyUQJFwAADyjhAgDMxF1HcZ/f8/TbfqIQQAEAZvgeKAAAGBMZKADATJgyUAIoAMCM+6nD4P30EQSUcAEA8IAMFABgxsv3PEfrIwgIoAAAM8yBAgDgQdxgDtRv+4nCHCgAAB6QgQIAzFDCBQDAgzAFUEq4AAB4QAYKADATpkVEBFAAgBlKuAAAYExkoAAAM/H4zctvH0FAAAUAmAlTCZcACgAwE6YAyhwoAAAeTGgG+kD5qYl83efemeNfn+whAECCuAy2sZiM5PajhAsAMOO6rlyfNVi/7ScKJVwAADwgAwUAmAnTIiICKADAjGuwD9QNyCQoJVwAADwgAwUAmKGECwCAB2H6GgslXAAAPCADBQCYoYQLAIAHbtyV67MG67f9RCGAAgDMMAcKAADGRAYKADDDHCgAAB7E467iPmuwfttPFEq4AAB4QAYKADBDCRcAAA/CFEAp4QIA4AEZKADATNx1FfeZQvptP1EIoAAAM27c//c8+R4oAACfY2SgAAAzrly5PkuwrijhAgBCxo1LcUq4AAAkx3VdkytZtbW1KigoUFZWloqLi3X69Okxn+/v79eWLVs0d+5cZWZm6t5779X+/fuTeicZKAAg0I4cOaKNGzeqtrZWS5Ys0YsvvqiysjKdP39ec+bMGbXNihUrdOXKFe3bt0/33Xefurq6dOPGjaTeSwAFAJiZjM+Z7dy5U2vWrNHatWslSbt27dJbb72lvXv3aseOHSOeP3HihE6dOqWLFy9q2rRpkqR58+YlPU5KuAAAM0Mf1PZ7SVIsFku4+vv7R7xvYGBATU1NKi0tTbhfWlqqc+fOjTrGN998UyUlJXruuec0e/ZszZ8/X0899ZT++c9/JvW/koECAFJSfn5+wu+amhpt27Yt4V53d7cGBweVk5OTcD8nJ0ednZ2j9nvx4kWdOXNGWVlZev3119Xd3a0nnnhCH330UVLzoARQAIAZy7Nw29vbFY1Gh+9nZmZ+ZhvHcf6jD3fEvSHxeFyO4+jQoUPKzs6WdLMM/Nhjj2nPnj2aMmXKuMZJAAUAmLH8Hmg0Gk0IoKOZMWOG0tLSRmSbXV1dI7LSIbm5uZo9e/Zw8JSkBQsWyHVdXbp0SV/60pfGNU7mQAEAgZWRkaHi4mLV19cn3K+vr9fixYtHbbNkyRJ9+OGH6u3tHb737rvvKhKJ6J577hn3uwmgAAAzk7EPtKqqSi+99JL279+vCxcuaNOmTWpra9P69eslSdXV1aqsrBx+vqKiQtOnT9eqVat0/vx5NTQ0aPPmzVq9evW4y7cSJVwAgKHJOEx+5cqVunr1qrZv366Ojg4VFhaqrq5Oc+fOlSR1dHSora1t+PmpU6eqvr5eP/rRj1RSUqLp06drxYoVevbZZ5N6r+P6PbQwCQ+Un5qoV4XCmeNfn+whAICkm1tOsrOztWFnpzKnjD1veSv9/4zp+apZ6unpueUc6GQiAwUAmOF7oAAAeOD1LNv/7CMICKAAADOW21hSHatwAQDwgAwUAGDG8iSiVEcABQCYcd1/Hwbvp48goIQLAIAHZKAAADOuwTaWoGSgBFAAgJlPf8/TTx9BQAkXAAAPyEABAGbClIESQAEAZuLuzctvH0FACRcAAA/IQAEAZijhAgDgAYfJAwDgQTzu/zD4uM8Pck8U5kABAPCADBQAYIYSLgAAHoRpERElXAAAPCADBQCYCVMGSgAFAJiJy//XWOIKRgClhAsAgAdkoAAAM5RwAQDwIEzbWCjhAgDgARkoAMCMG3d9H+VHCRcAEDrMgQIA4AFzoAAAYExkoAAAM248Ltfn98j8tp8oBFAAgJm4wSIiv+0nCiVcAAA8IAMFAJgJ0yIiAigAwEyYtrFQwgUAwAMyUACAmTBloARQAICZuOKKu/62ocQVjG0slHABAPCADBQAYMaN+y/B+kxgJwwBFABghjlQAAA8CNM+UOZAAQDwgAwUAGAmHo8r7vMweL/tJwoBFABgJkxzoJRwAQCBV1tbq4KCAmVlZam4uFinT58eV7uzZ88qPT1d999/f9LvJIACAMy4btzkSsaRI0e0ceNGbdmyRc3NzVq6dKnKysrU1tY2Zruenh5VVlbqoYce8vS/EkABAGaGSrh+r2Ts3LlTa9as0dq1a7VgwQLt2rVL+fn52rt375jt1q1bp4qKCi1atMjT/0oABQCkpFgslnD19/ePeGZgYEBNTU0qLS1NuF9aWqpz5859Zt8vv/yyPvjgA9XU1Hge34QuIjpz/OsT+ToAwEQzWESkT9rn5+cn3K6pqdG2bdsS7nV3d2twcFA5OTkJ93NyctTZ2Tlq9++9956efvppnT59Wunp3sMgq3ABAGbirsFh8p+0b29vVzQaHb6fmZn5mW0cx0n47bruiHuSNDg4qIqKCj3zzDOaP3++r3ESQAEAKSkajSYE0NHMmDFDaWlpI7LNrq6uEVmpJF27dk2NjY1qbm7Wk08+KenmvlPXdZWenq6TJ09q+fLl4xofARQAYGai94FmZGSouLhY9fX1+u53vzt8v76+Xt/5zndGPB+NRvXOO+8k3KutrdXbb7+to0ePqqCgYNzvJoACAMy4blyuz5OEkt3GUlVVpe9///sqKSnRokWL9Nvf/lZtbW1av369JKm6ulqXL1/WwYMHFYlEVFhYmNB+5syZysrKGnH/VgigAAAzk3ES0cqVK3X16lVt375dHR0dKiwsVF1dnebOnStJ6ujouOWeUC8cNyjH3gMAUlYsFlN2dra+/ujvlX7HVF993fhXr069ukw9PT23nAOdTGSgAAAzXk4SGq2PICCAAgDMxONS3GcJNyAfY+EkIgAAvCADBQCYceMGq3ADkoISQAEAZvgeKAAAGBMZKADADKtwAQDwgBIuAAAYExkoAMDMjYFrvlfRDt7oMxrN7UUABQD4lpGRoVmzZqnx/1aY9Ddr1ixlZGSY9HW7cBYuAMDE9evXNTAwYNJXRkaGsrKyTPq6XQigAAB4wCIiAAA8IIACAOABARQAAA8IoAAAeEAABQDAAwIoAAAeEEABAPDg/wFZwWcl87PIwwAAAABJRU5ErkJggg=="},"metadata":{}}],"execution_count":10}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment