{ "cells": [ { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import xarray as xr\n", "import geopandas as gpd\n", "\n", "from sklearn.cluster import DBSCAN\n", "from sklearn.cluster import KMeans\n", "import hdbscan\n", "\n", "import os\n", "import time\n", "import calendar\n", "\n", "%matplotlib notebook\n", "import matplotlib.pyplot as plt\n", "import matplotlib\n", "\n", "from demand_mapping import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def categorical_cmap(df, column, cmap = 'tab20', N = 20):\n", " # Get colormap data\n", " c = matplotlib.cm.get_cmap( cmap )(np.linspace(0., 1, N))\n", " \n", " # Get length of series, number of total copies and remainder\n", " l = len(df[ column ].unique())\n", " n = int(np.floor(l / N))\n", " r = l % N\n", " \n", " # Concatenate colormap\n", " clist = [c]*n\n", " clist.append( c[:r,:] )\n", " colors = np.vstack(clist)\n", " \n", " # return colormap\n", " return matplotlib.colors.LinearSegmentedColormap.from_list('%s_concat' %cmap, colors)\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "CH_fp = '/work/hyenergy/raw/Surface_data/swissBOUNDARIES3D/BOUNDARIES_2019/DATEN/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/swissBOUNDARIES3D_1_3_TLM_HOHEITSGEBIET.shp'\n", "CH = gpd.read_file( CH_fp )" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "scratch_fp = '/scratch/walch/cluster_hubs'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Load data" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "data = pd.read_csv(os.path.join(scratch_fp, 'BLD_data.csv'))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "demand = data[data.annual_demand_kWh > 0]\n", "potential = data[data.pv_potential_kWh_a > 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 1: Perform DBSCAN on BLD coords" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "cluster_data = demand[demand.peak_demand_W < 1e6]" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "MIN_SAMPLES = 10\n", "\n", "#EPS = 350\n", "# model = DBSCAN(eps = EPS, min_samples = MIN_SAMPLES, n_jobs = -1)\n", "\n", "EPS_merge = 50\n", "\n", "model = hdbscan.HDBSCAN( min_cluster_size = MIN_SAMPLES, cluster_selection_epsilon = EPS_merge, \n", " core_dist_n_jobs = -1 ) " ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "coords = ['x', 'y']" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fit and predict in 681.15s\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/walch/miniconda3/envs/py3_geo/lib/python3.6/site-packages/ipykernel_launcher.py:2: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " \n" ] } ], "source": [ "tt = time.time()\n", "cluster_data['clusterID'] = model.fit_predict( cluster_data[coords] )\n", "print('Fit and predict in %.2fs' %(time.time()-tt))" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "9230" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(cluster_data['clusterID'].unique())" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "cluster_size = cluster_data[cluster_data.clusterID > -1].groupby('clusterID').peak_demand_W.count().sort_values(ascending = False)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "cluster_g1MWp = cluster_size[cluster_size > 1e3]" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "scrolled": false }, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '');\n", " var titletext = $(\n", " '');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n", " 'ui-button-icon-only');\n", " button.attr('role', 'button');\n", " button.attr('aria-disabled', 'false');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", "\n", " var icon_img = $('');\n", " icon_img.addClass('ui-button-icon-primary ui-icon');\n", " icon_img.addClass(image);\n", " icon_img.addClass('ui-corner-all');\n", "\n", " var tooltip_span = $('');\n", " tooltip_span.addClass('ui-button-text');\n", " tooltip_span.html(tooltip);\n", "\n", " button.append(icon_img);\n", " button.append(tooltip_span);\n", "\n", " nav_element.append(button);\n", " }\n", "\n", " var fmt_picker_span = $('');\n", "\n", " var fmt_picker = $('');\n", " fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n", " fmt_picker_span.append(fmt_picker);\n", " nav_element.append(fmt_picker_span);\n", " this.format_dropdown = fmt_picker[0];\n", "\n", " for (var ind in mpl.extensions) {\n", " var fmt = mpl.extensions[ind];\n", " var option = $(\n", " '', {selected: fmt === mpl.default_extension}).html(fmt);\n", " fmt_picker.append(option);\n", " }\n", "\n", " // Add hover states to the ui-buttons\n", " $( \".ui-button\" ).hover(\n", " function() { $(this).addClass(\"ui-state-hover\");},\n", " function() { $(this).removeClass(\"ui-state-hover\");}\n", " );\n", "\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "}\n", "\n", "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n", " // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n", " // which will in turn request a refresh of the image.\n", " this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n", "}\n", "\n", "mpl.figure.prototype.send_message = function(type, properties) {\n", " properties['type'] = type;\n", " properties['figure_id'] = this.id;\n", " this.ws.send(JSON.stringify(properties));\n", "}\n", "\n", "mpl.figure.prototype.send_draw_message = function() {\n", " if (!this.waiting) {\n", " this.waiting = true;\n", " this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n", " }\n", "}\n", "\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " var format_dropdown = fig.format_dropdown;\n", " var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n", " fig.ondownload(fig, format);\n", "}\n", "\n", "\n", "mpl.figure.prototype.handle_resize = function(fig, msg) {\n", " var size = msg['size'];\n", " if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n", " fig._resize_canvas(size[0], size[1]);\n", " fig.send_message(\"refresh\", {});\n", " };\n", "}\n", "\n", "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n", " var x0 = msg['x0'] / mpl.ratio;\n", " var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n", " var x1 = msg['x1'] / mpl.ratio;\n", " var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n", " x0 = Math.floor(x0) + 0.5;\n", " y0 = Math.floor(y0) + 0.5;\n", " x1 = Math.floor(x1) + 0.5;\n", " y1 = Math.floor(y1) + 0.5;\n", " var min_x = Math.min(x0, x1);\n", " var min_y = Math.min(y0, y1);\n", " var width = Math.abs(x1 - x0);\n", " var height = Math.abs(y1 - y0);\n", "\n", " fig.rubberband_context.clearRect(\n", " 0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);\n", "\n", " fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n", "}\n", "\n", "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n", " // Updates the figure title.\n", " fig.header.textContent = msg['label'];\n", "}\n", "\n", "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n", " var cursor = msg['cursor'];\n", " switch(cursor)\n", " {\n", " case 0:\n", " cursor = 'pointer';\n", " break;\n", " case 1:\n", " cursor = 'default';\n", " break;\n", " case 2:\n", " cursor = 'crosshair';\n", " break;\n", " case 3:\n", " cursor = 'move';\n", " break;\n", " }\n", " fig.rubberband_canvas.style.cursor = cursor;\n", "}\n", "\n", "mpl.figure.prototype.handle_message = function(fig, msg) {\n", " fig.message.textContent = msg['message'];\n", "}\n", "\n", "mpl.figure.prototype.handle_draw = function(fig, msg) {\n", " // Request the server to send over a new figure.\n", " fig.send_draw_message();\n", "}\n", "\n", "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n", " fig.image_mode = msg['mode'];\n", "}\n", "\n", "mpl.figure.prototype.updated_canvas_event = function() {\n", " // Called whenever the canvas gets updated.\n", " this.send_message(\"ack\", {});\n", "}\n", "\n", "// A function to construct a web socket function for onmessage handling.\n", "// Called in the figure constructor.\n", "mpl.figure.prototype._make_on_message_function = function(fig) {\n", " return function socket_on_message(evt) {\n", " if (evt.data instanceof Blob) {\n", " /* FIXME: We get \"Resource interpreted as Image but\n", " * transferred with MIME type text/plain:\" errors on\n", " * Chrome. But how to set the MIME type? It doesn't seem\n", " * to be part of the websocket stream */\n", " evt.data.type = \"image/png\";\n", "\n", " /* Free the memory for the previous frames */\n", " if (fig.imageObj.src) {\n", " (window.URL || window.webkitURL).revokeObjectURL(\n", " fig.imageObj.src);\n", " }\n", "\n", " fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n", " evt.data);\n", " fig.updated_canvas_event();\n", " fig.waiting = false;\n", " return;\n", " }\n", " else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n", " fig.imageObj.src = evt.data;\n", " fig.updated_canvas_event();\n", " fig.waiting = false;\n", " return;\n", " }\n", "\n", " var msg = JSON.parse(evt.data);\n", " var msg_type = msg['type'];\n", "\n", " // Call the \"handle_{type}\" callback, which takes\n", " // the figure and JSON message as its only arguments.\n", " try {\n", " var callback = fig[\"handle_\" + msg_type];\n", " } catch (e) {\n", " console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n", " return;\n", " }\n", "\n", " if (callback) {\n", " try {\n", " // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n", " callback(fig, msg);\n", " } catch (e) {\n", " console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n", " }\n", " }\n", " };\n", "}\n", "\n", "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n", "mpl.findpos = function(e) {\n", " //this section is from http://www.quirksmode.org/js/events_properties.html\n", " var targ;\n", " if (!e)\n", " e = window.event;\n", " if (e.target)\n", " targ = e.target;\n", " else if (e.srcElement)\n", " targ = e.srcElement;\n", " if (targ.nodeType == 3) // defeat Safari bug\n", " targ = targ.parentNode;\n", "\n", " // jQuery normalizes the pageX and pageY\n", " // pageX,Y are the mouse positions relative to the document\n", " // offset() returns the position of the element relative to the document\n", " var x = e.pageX - $(targ).offset().left;\n", " var y = e.pageY - $(targ).offset().top;\n", "\n", " return {\"x\": x, \"y\": y};\n", "};\n", "\n", "/*\n", " * return a copy of an object with only non-object keys\n", " * we need this to avoid circular references\n", " * http://stackoverflow.com/a/24161582/3208463\n", " */\n", "function simpleKeys (original) {\n", " return Object.keys(original).reduce(function (obj, key) {\n", " if (typeof original[key] !== 'object')\n", " obj[key] = original[key]\n", " return obj;\n", " }, {});\n", "}\n", "\n", "mpl.figure.prototype.mouse_event = function(event, name) {\n", " var canvas_pos = mpl.findpos(event)\n", "\n", " if (name === 'button_press')\n", " {\n", " this.canvas.focus();\n", " this.canvas_div.focus();\n", " }\n", "\n", " var x = canvas_pos.x * mpl.ratio;\n", " var y = canvas_pos.y * mpl.ratio;\n", "\n", " this.send_message(name, {x: x, y: y, button: event.button,\n", " step: event.step,\n", " guiEvent: simpleKeys(event)});\n", "\n", " /* This prevents the web browser from automatically changing to\n", " * the text insertion cursor when the button is pressed. We want\n", " * to control all of the cursor setting manually through the\n", " * 'cursor' event from matplotlib */\n", " event.preventDefault();\n", " return false;\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " // Handle any extra behaviour associated with a key event\n", "}\n", "\n", "mpl.figure.prototype.key_event = function(event, name) {\n", "\n", " // Prevent repeat events\n", " if (name == 'key_press')\n", " {\n", " if (event.which === this._key)\n", " return;\n", " else\n", " this._key = event.which;\n", " }\n", " if (name == 'key_release')\n", " this._key = null;\n", "\n", " var value = '';\n", " if (event.ctrlKey && event.which != 17)\n", " value += \"ctrl+\";\n", " if (event.altKey && event.which != 18)\n", " value += \"alt+\";\n", " if (event.shiftKey && event.which != 16)\n", " value += \"shift+\";\n", "\n", " value += 'k';\n", " value += event.which.toString();\n", "\n", " this._key_event_extra(event, name);\n", "\n", " this.send_message(name, {key: value,\n", " guiEvent: simpleKeys(event)});\n", " return false;\n", "}\n", "\n", "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n", " if (name == 'download') {\n", " this.handle_save(this, null);\n", " } else {\n", " this.send_message(\"toolbar_button\", {name: name});\n", " }\n", "};\n", "\n", "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n", " this.message.textContent = tooltip;\n", "};\n", "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n", "\n", "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n", "\n", "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n", " // Create a \"websocket\"-like object which calls the given IPython comm\n", " // object with the appropriate methods. Currently this is a non binary\n", " // socket, so there is still some room for performance tuning.\n", " var ws = {};\n", "\n", " ws.close = function() {\n", " comm.close()\n", " };\n", " ws.send = function(m) {\n", " //console.log('sending', m);\n", " comm.send(m);\n", " };\n", " // Register the callback with on_msg.\n", " comm.on_msg(function(msg) {\n", " //console.log('receiving', msg['content']['data'], msg);\n", " // Pass the mpl event to the overridden (by mpl) onmessage function.\n", " ws.onmessage(msg['content']['data'])\n", " });\n", " return ws;\n", "}\n", "\n", "mpl.mpl_figure_comm = function(comm, msg) {\n", " // This is the function which gets called when the mpl process\n", " // starts-up an IPython Comm through the \"matplotlib\" channel.\n", "\n", " var id = msg.content.data.id;\n", " // Get hold of the div created by the display call when the Comm\n", " // socket was opened in Python.\n", " var element = $(\"#\" + id);\n", " var ws_proxy = comm_websocket_adapter(comm)\n", "\n", " function ondownload(figure, format) {\n", " window.open(figure.imageObj.src);\n", " }\n", "\n", " var fig = new mpl.figure(id, ws_proxy,\n", " ondownload,\n", " element.get(0));\n", "\n", " // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n", " // web socket which is closed, not our websocket->open comm proxy.\n", " ws_proxy.onopen();\n", "\n", " fig.parent_element = element.get(0);\n", " fig.cell_info = mpl.find_output_cell(\"\");\n", " if (!fig.cell_info) {\n", " console.error(\"Failed to find cell for figure\", id, fig);\n", " return;\n", " }\n", "\n", " var output_index = fig.cell_info[2]\n", " var cell = fig.cell_info[0];\n", "\n", "};\n", "\n", "mpl.figure.prototype.handle_close = function(fig, msg) {\n", " var width = fig.canvas.width/mpl.ratio\n", " fig.root.unbind('remove')\n", "\n", " // Update the output cell to use the data from the current canvas.\n", " fig.push_to_output();\n", " var dataURL = fig.canvas.toDataURL();\n", " // Re-enable the keyboard manager in IPython - without this line, in FF,\n", " // the notebook keyboard shortcuts fail.\n", " IPython.keyboard_manager.enable()\n", " $(fig.parent_element).html('');\n", " fig.close_ws(fig, msg);\n", "}\n", "\n", "mpl.figure.prototype.close_ws = function(fig, msg){\n", " fig.send_message('closing', msg);\n", " // fig.ws.close()\n", "}\n", "\n", "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n", " // Turn the data on the canvas into data in the output cell.\n", " var width = this.canvas.width/mpl.ratio\n", " var dataURL = this.canvas.toDataURL();\n", " this.cell_info[1]['text/html'] = '';\n", "}\n", "\n", "mpl.figure.prototype.updated_canvas_event = function() {\n", " // Tell IPython that the notebook contents must change.\n", " IPython.notebook.set_dirty(true);\n", " this.send_message(\"ack\", {});\n", " var fig = this;\n", " // Wait a second, then push the new image to the DOM so\n", " // that it is saved nicely (might be nice to debounce this).\n", " setTimeout(function () { fig.push_to_output() }, 1000);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items){\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) { continue; };\n", "\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i<xarray.Dataset>\n", "Dimensions: (EPS: 14, min_samples: 10)\n", "Coordinates:\n", " * EPS (EPS) float64 50.0 100.0 150.0 200.0 ... 600.0 650.0 700.0\n", " * min_samples (min_samples) float64 5.0 10.0 15.0 ... 40.0 45.0 50.0\n", "Data variables:\n", " exec_time (EPS, min_samples) float64 10.9 8.74 7.356 ... 31.13 30.87\n", " N_clusters (EPS, min_samples) float64 4.524e+04 2.765e+04 ... 540.0\n", " N_clust_noDem (EPS, min_samples) float64 2.993e+03 497.0 ... 2.0 1.0\n", " N_clust_>1MWp (EPS, min_samples) float64 517.0 10.0 0.0 ... 91.0 100.0\n", " perc_outliers (EPS, min_samples) float64 26.44 65.66 ... 2.524 2.889\n", " aprx_add_clst (EPS, min_samples) float64 1.125e+03 14.51 ... 5.821e+03\n", " kWp_mean (EPS, min_samples) float64 70.17 40.34 ... 1.093e+04\n", " kWp_std (EPS, min_samples) float64 352.2 64.62 ... 1.897e+05\n", " kWp_min (EPS, min_samples) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0\n", " kWp_25% (EPS, min_samples) float64 2.307 11.97 ... 45.68 61.2\n", " kWp_50% (EPS, min_samples) float64 7.14 22.01 ... 150.2 183.0\n", " kWp_75% (EPS, min_samples) float64 33.98 43.92 ... 478.7 572.4\n", " kWp_max (EPS, min_samples) float64 4.048e+04 ... 4.387e+06\n", " N_BLD_mean (EPS, min_samples) float64 35.07 26.78 ... 3.872e+03\n", " N_BLD_std (EPS, min_samples) float64 114.7 33.99 ... 6.149e+04\n", " N_BLD_min (EPS, min_samples) float64 1.0 1.0 5.0 ... 5.0 9.0 16.0\n", " N_BLD_25% (EPS, min_samples) float64 6.0 11.0 15.0 ... 72.5 91.0\n", " N_BLD_50% (EPS, min_samples) float64 8.0 16.0 21.0 ... 170.0 196.0\n", " N_BLD_75% (EPS, min_samples) float64 19.0 28.0 31.0 ... 431.5 504.0\n", " N_BLD_max (EPS, min_samples) float64 5.489e+03 879.0 ... 1.423e+06\n", " perc_clust_>1MWp (EPS, min_samples) float64 0.01143 0.0003616 ... 0.1852
array([ 50., 100., 150., 200., 250., 300., 350., 400., 450., 500., 550., 600.,\n", " 650., 700.])
array([ 5., 10., 15., 20., 25., 30., 35., 40., 45., 50.])
array([[10.89790606, 8.74047923, 7.35572934, 8.0149436 , 8.24790025,\n", " 8.21875978, 7.67502594, 7.44032407, 7.43783832, 7.47696233],\n", " [12.82523704, 12.33091283, 11.89866257, 11.20625949, 10.15860701,\n", " 10.31904268, 9.12866402, 8.9227798 , 8.42354703, 8.50940084],\n", " [15.20891166, 14.58047295, 13.33452845, 13.20334697, 12.54898214,\n", " 13.20547438, 12.97855687, 12.00742435, 11.27362061, 10.66570807],\n", " [16.73065782, 15.90852141, 14.12576628, 15.341609 , 15.17913914,\n", " 15.05266404, 13.64806175, 14.03546381, 13.78620052, 15.01218534],\n", " [18.67505693, 17.75208259, 17.83842492, 17.70723748, 17.61859441,\n", " 17.47236276, 17.38359284, 17.43644047, 16.51877928, 16.22869873],\n", " [20.31152344, 18.75259089, 16.44944358, 18.64869428, 18.53184319,\n", " 18.04948997, 18.3912425 , 17.83800483, 15.79583311, 16.44580555],\n", " [20.76063967, 20.16922426, 18.44421124, 18.654037 , 18.12612844,\n", " 17.92182255, 17.90987754, 17.86857915, 17.65168977, 19.55101991],\n", " [20.54181671, 19.77047634, 19.77507353, 19.86275578, 19.13662815,\n", " 19.56343246, 19.11957335, 19.41501713, 19.22756219, 19.00051951],\n", " [22.05818176, 21.17098689, 20.82398701, 20.4316678 , 20.20427823,\n", " 20.98595715, 20.43796825, 21.06786585, 20.19740009, 20.26402617],\n", " [23.91184282, 22.73497176, 22.48032308, 22.81613517, 21.50704384,\n", " 24.16148233, 21.05304861, 22.50745869, 21.81538486, 21.77230906],\n", " [26.49379778, 24.79119468, 24.44736862, 24.40538001, 27.09162068,\n", " 25.56160474, 25.95654392, 24.78375506, 27.092628 , 20.96500325],\n", " [28.44891357, 27.50390673, 27.26682043, 28.15991974, 27.32128882,\n", " 26.75687051, 26.74267697, 23.31433702, 26.0666678 , 23.68049383],\n", " [26.38037872, 27.61735845, 26.57709813, 26.08937812, 26.75189805,\n", " 26.01558304, 26.36685252, 29.56849313, 29.69812727, 30.52727532],\n", " [30.90124846, 27.74722481, 27.19165182, 27.54868603, 28.68856978,\n", " 30.19283056, 26.31503701, 31.4053123 , 31.12872696, 30.86638904]])
array([[4.5239e+04, 2.7652e+04, 4.0950e+03, 6.9000e+02, 3.2600e+02,\n", " 2.0200e+02, 1.4000e+02, 8.4000e+01, 5.3000e+01, 3.7000e+01],\n", " [3.1599e+04, 1.3852e+04, 1.0086e+04, 9.4020e+03, 9.3000e+03,\n", " 8.1650e+03, 5.8360e+03, 3.2940e+03, 1.5420e+03, 6.9200e+02],\n", " [2.4618e+04, 1.2411e+04, 8.3760e+03, 6.8590e+03, 6.0890e+03,\n", " 5.6460e+03, 5.3480e+03, 5.2040e+03, 5.0920e+03, 4.9280e+03],\n", " [1.7309e+04, 1.0579e+04, 7.6590e+03, 6.1520e+03, 5.3110e+03,\n", " 4.8460e+03, 4.5710e+03, 4.3190e+03, 4.1220e+03, 3.9850e+03],\n", " [1.1830e+04, 8.0580e+03, 6.5250e+03, 5.5400e+03, 4.8220e+03,\n", " 4.4130e+03, 4.1240e+03, 3.9110e+03, 3.7420e+03, 3.5990e+03],\n", " [7.9550e+03, 5.7050e+03, 5.1530e+03, 4.6300e+03, 4.2380e+03,\n", " 3.9110e+03, 3.6970e+03, 3.5360e+03, 3.3780e+03, 3.2940e+03],\n", " [5.5240e+03, 3.8710e+03, 3.6870e+03, 3.6270e+03, 3.4780e+03,\n", " 3.3590e+03, 3.2380e+03, 3.1250e+03, 3.0170e+03, 2.9470e+03],\n", " [3.9090e+03, 2.7480e+03, 2.5630e+03, 2.6170e+03, 2.6510e+03,\n", " 2.6910e+03, 2.6660e+03, 2.6800e+03, 2.6320e+03, 2.5830e+03],\n", " [2.8290e+03, 1.9400e+03, 1.8590e+03, 1.8870e+03, 1.9260e+03,\n", " 2.0200e+03, 2.1040e+03, 2.1570e+03, 2.1790e+03, 2.1610e+03],\n", " [2.1030e+03, 1.4020e+03, 1.2800e+03, 1.3290e+03, 1.4020e+03,\n", " 1.4560e+03, 1.5220e+03, 1.6210e+03, 1.7100e+03, 1.7460e+03],\n", " [1.5870e+03, 1.0340e+03, 9.1200e+02, 9.4900e+02, 1.0280e+03,\n", " 1.0820e+03, 1.1320e+03, 1.1910e+03, 1.2740e+03, 1.3350e+03],\n", " [1.2480e+03, 8.1500e+02, 6.7300e+02, 7.1600e+02, 7.6200e+02,\n", " 7.8900e+02, 8.5100e+02, 8.9000e+02, 9.3800e+02, 1.0120e+03],\n", " [9.5800e+02, 6.1300e+02, 5.1700e+02, 4.9800e+02, 5.4000e+02,\n", " 5.8200e+02, 6.0700e+02, 6.5100e+02, 6.8000e+02, 7.2800e+02],\n", " [7.5200e+02, 4.7700e+02, 4.0600e+02, 3.8600e+02, 4.0400e+02,\n", " 4.2800e+02, 4.6100e+02, 5.0100e+02, 5.3800e+02, 5.4000e+02]])
array([[2.993e+03, 4.970e+02, 1.450e+02, 8.300e+01, 6.900e+01, 6.300e+01,\n", " 5.300e+01, 3.900e+01, 2.300e+01, 1.600e+01],\n", " [2.494e+03, 4.520e+02, 1.770e+02, 1.240e+02, 1.040e+02, 9.000e+01,\n", " 5.300e+01, 2.800e+01, 1.300e+01, 1.000e+01],\n", " [2.060e+03, 4.460e+02, 1.630e+02, 8.900e+01, 5.500e+01, 4.800e+01,\n", " 4.400e+01, 4.200e+01, 4.200e+01, 3.800e+01],\n", " [1.612e+03, 4.100e+02, 1.550e+02, 8.600e+01, 4.900e+01, 4.000e+01,\n", " 3.000e+01, 2.900e+01, 3.000e+01, 2.600e+01],\n", " [1.284e+03, 3.390e+02, 1.420e+02, 7.000e+01, 4.600e+01, 3.400e+01,\n", " 2.500e+01, 1.900e+01, 1.700e+01, 1.800e+01],\n", " [1.069e+03, 2.630e+02, 1.420e+02, 6.000e+01, 3.900e+01, 3.400e+01,\n", " 1.900e+01, 2.000e+01, 2.100e+01, 1.800e+01],\n", " [9.460e+02, 2.270e+02, 1.170e+02, 6.400e+01, 4.100e+01, 2.700e+01,\n", " 1.900e+01, 1.600e+01, 1.500e+01, 1.500e+01],\n", " [8.080e+02, 2.150e+02, 8.700e+01, 5.000e+01, 3.400e+01, 2.000e+01,\n", " 1.000e+01, 1.200e+01, 1.100e+01, 1.100e+01],\n", " [7.130e+02, 1.920e+02, 7.700e+01, 4.100e+01, 2.600e+01, 1.800e+01,\n", " 1.500e+01, 9.000e+00, 6.000e+00, 5.000e+00],\n", " [6.170e+02, 1.670e+02, 6.600e+01, 3.200e+01, 2.100e+01, 1.600e+01,\n", " 9.000e+00, 8.000e+00, 6.000e+00, 6.000e+00],\n", " [5.250e+02, 1.550e+02, 6.000e+01, 2.500e+01, 2.000e+01, 1.000e+01,\n", " 8.000e+00, 5.000e+00, 6.000e+00, 6.000e+00],\n", " [4.360e+02, 1.350e+02, 5.800e+01, 2.600e+01, 1.700e+01, 1.300e+01,\n", " 7.000e+00, 2.000e+00, 1.000e+00, 3.000e+00],\n", " [3.570e+02, 1.210e+02, 5.100e+01, 2.800e+01, 1.400e+01, 1.100e+01,\n", " 9.000e+00, 5.000e+00, 1.000e+00, 1.000e+00],\n", " [2.850e+02, 9.600e+01, 4.400e+01, 3.000e+01, 1.400e+01, 1.000e+01,\n", " 7.000e+00, 3.000e+00, 2.000e+00, 1.000e+00]])
array([[517., 10., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [725., 804., 800., 702., 468., 211., 60., 11., 5., 2.],\n", " [619., 653., 715., 756., 776., 786., 805., 773., 720., 642.],\n", " [500., 561., 612., 633., 670., 700., 721., 721., 739., 767.],\n", " [376., 462., 520., 564., 593., 617., 635., 664., 675., 681.],\n", " [280., 343., 425., 478., 529., 563., 577., 592., 602., 617.],\n", " [187., 232., 306., 378., 440., 479., 522., 541., 559., 572.],\n", " [120., 164., 213., 275., 332., 389., 433., 471., 499., 513.],\n", " [ 85., 109., 152., 188., 231., 280., 332., 372., 401., 433.],\n", " [ 55., 73., 109., 140., 170., 198., 233., 269., 311., 358.],\n", " [ 41., 54., 76., 98., 128., 151., 176., 197., 230., 264.],\n", " [ 26., 36., 48., 73., 86., 105., 130., 148., 165., 187.],\n", " [ 19., 26., 39., 47., 63., 76., 90., 104., 121., 134.],\n", " [ 17., 21., 29., 35., 50., 61., 70., 81., 91., 100.]])
array([[26.44399374, 65.66420583, 94.44890769, 98.361152 , 98.96621661,\n", " 99.22577505, 99.41612099, 99.58866547, 99.72913021, 99.80956134],\n", " [11.05211798, 20.96823318, 28.32765834, 36.06211972, 46.36792026,\n", " 60.17931274, 74.86585154, 86.61000174, 93.67083502, 96.888961 ],\n", " [ 6.21878658, 13.29241467, 18.37570841, 22.21901837, 25.67204033,\n", " 29.09224083, 32.8222982 , 36.94088196, 41.74129918, 47.40545865],\n", " [ 3.71601089, 8.52834212, 12.90708698, 16.23396882, 18.91267312,\n", " 21.29232196, 23.43684302, 25.6249406 , 27.78471345, 29.95065191],\n", " [ 2.42192733, 5.53329084, 8.87412644, 11.89884684, 14.43031813,\n", " 16.4569508 , 18.29351567, 19.93458886, 21.51947615, 23.08980703],\n", " [ 1.67431187, 3.72658052, 6.02473199, 8.4690966 , 10.7517645 ,\n", " 12.74817176, 14.45488787, 15.94330417, 17.33877267, 18.60239903],\n", " [ 1.19575824, 2.63253173, 4.22757142, 5.99121516, 7.8522107 ,\n", " 9.60852987, 11.24195399, 12.64850206, 13.9735064 , 15.11725097],\n", " [ 0.88780205, 1.9407313 , 3.06899229, 4.3059628 , 5.68821927,\n", " 7.12133047, 8.54846149, 9.83100191, 11.09416469, 12.21727994],\n", " [ 0.66862143, 1.47200556, 2.28846265, 3.18576809, 4.19665063,\n", " 5.27901721, 6.36499971, 7.50698267, 8.63482645, 9.69443125],\n", " [ 0.51703077, 1.1587182 , 1.7788028 , 2.42285449, 3.1530857 ,\n", " 3.96657588, 4.81511271, 5.70532538, 6.60188909, 7.5699832 ],\n", " [ 0.40720867, 0.91478241, 1.4354291 , 1.92065828, 2.442603 ,\n", " 3.03491916, 3.68921597, 4.37225474, 5.03832648, 5.82608796],\n", " [ 0.31643971, 0.72879411, 1.15292345, 1.54608565, 1.96752622,\n", " 2.40843716, 2.883004 , 3.39678971, 3.94599293, 4.51823608],\n", " [ 0.24680999, 0.58605783, 0.93281567, 1.26251376, 1.59661587,\n", " 1.96020166, 2.32591992, 2.71477082, 3.14418497, 3.56358579],\n", " [ 0.1993394 , 0.47544764, 0.76031755, 1.02886944, 1.32500435,\n", " 1.61423191, 1.9146781 , 2.21901837, 2.52396129, 2.88944776]])
array([[1.12483526e+03, 1.45053962e+01, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00],\n", " [4.38627115e+03, 3.55895288e+03, 2.72383466e+03, 1.83640094e+03,\n", " 9.68718906e+02, 3.54458254e+02, 8.66666569e+01, 1.83395189e+01,\n", " 7.97097097e+00, 2.52023241e+00],\n", " [5.00959375e+03, 4.76937148e+03, 4.43107945e+03, 4.04200771e+03,\n", " 3.65068691e+03, 3.28424312e+03, 2.90427415e+03, 2.46890292e+03,\n", " 2.02268046e+03, 1.59322261e+03],\n", " [5.27274811e+03, 5.12921469e+03, 4.98233433e+03, 4.82686794e+03,\n", " 4.66411382e+03, 4.42139755e+03, 4.19985157e+03, 3.98473485e+03,\n", " 3.78802349e+03, 3.59506590e+03],\n", " [5.44218225e+03, 5.34273275e+03, 5.22685694e+03, 5.13501990e+03,\n", " 5.04282388e+03, 4.94926160e+03, 4.83562620e+03, 4.72475578e+03,\n", " 4.59511832e+03, 4.43219766e+03],\n", " [5.58445176e+03, 5.50405371e+03, 5.41630271e+03, 5.32026874e+03,\n", " 5.23814652e+03, 5.18010019e+03, 5.11216578e+03, 5.05226268e+03,\n", " 4.99060330e+03, 4.92467606e+03],\n", " [5.69959752e+03, 5.63242604e+03, 5.54797842e+03, 5.46138412e+03,\n", " 5.39867147e+03, 5.33799079e+03, 5.27990981e+03, 5.22994132e+03,\n", "...\n", " 5.52729200e+03, 5.46500298e+03, 5.42216368e+03, 5.37127910e+03,\n", " 5.32411702e+03, 5.29078336e+03],\n", " [5.83070878e+03, 5.79146647e+03, 5.74707134e+03, 5.68941844e+03,\n", " 5.63678792e+03, 5.58179550e+03, 5.54207399e+03, 5.49932308e+03,\n", " 5.44566756e+03, 5.41268685e+03],\n", " [5.86454058e+03, 5.83494864e+03, 5.80422291e+03, 5.77195014e+03,\n", " 5.73526974e+03, 5.68644648e+03, 5.64950196e+03, 5.59976106e+03,\n", " 5.56277929e+03, 5.53573132e+03],\n", " [5.88981898e+03, 5.87097474e+03, 5.84500991e+03, 5.82064125e+03,\n", " 5.78912431e+03, 5.75950184e+03, 5.73066206e+03, 5.70024576e+03,\n", " 5.66606429e+03, 5.62989060e+03],\n", " [5.90512184e+03, 5.88718760e+03, 5.87062309e+03, 5.84906107e+03,\n", " 5.82743236e+03, 5.80975943e+03, 5.78679489e+03, 5.76180626e+03,\n", " 5.73851628e+03, 5.70996087e+03],\n", " [5.91508065e+03, 5.90308800e+03, 5.89110702e+03, 5.87611556e+03,\n", " 5.85986475e+03, 5.84605022e+03, 5.83153058e+03, 5.81391600e+03,\n", " 5.79696162e+03, 5.77171087e+03],\n", " [5.92019890e+03, 5.91456424e+03, 5.90232777e+03, 5.89271426e+03,\n", " 5.88078681e+03, 5.87191871e+03, 5.85552841e+03, 5.84487125e+03,\n", " 5.83306202e+03, 5.82112256e+03]])
array([[7.01702391e+01, 4.03351906e+01, 3.11486107e+01, 2.92127049e+01,\n", " 2.16556696e+01, 1.50709720e+01, 1.00872128e+01, 6.36173837e+00,\n", " 3.80603522e+00, 3.59634167e+00],\n", " [1.73558776e+02, 3.38392930e+02, 3.91134109e+02, 3.46170218e+02,\n", " 2.66836033e+02, 2.01838939e+02, 1.59572908e+02, 1.36155154e+02,\n", " 1.22413637e+02, 1.13600861e+02],\n", " [2.37238731e+02, 4.53864287e+02, 6.36887173e+02, 7.22015983e+02,\n", " 7.49832206e+02, 7.52494257e+02, 7.30382742e+02, 6.79064730e+02,\n", " 6.18407773e+02, 5.55223830e+02],\n", " [3.41362013e+02, 5.52205486e+02, 7.48509118e+02, 9.10013471e+02,\n", " 1.02703688e+03, 1.07737109e+03, 1.09571124e+03, 1.11225211e+03,\n", " 1.11996249e+03, 1.10940337e+03],\n", " [5.00549664e+02, 7.30245955e+02, 8.94737268e+02, 1.04474902e+03,\n", " 1.18650306e+03, 1.27995112e+03, 1.34683247e+03, 1.39215269e+03,\n", " 1.42057483e+03, 1.43372849e+03],\n", " [7.45584956e+02, 1.03555834e+03, 1.14151246e+03, 1.26251954e+03,\n", " 1.37155908e+03, 1.47663570e+03, 1.55173574e+03, 1.60964067e+03,\n", " 1.66990650e+03, 1.69503315e+03],\n", " [1.07441324e+03, 1.52927386e+03, 1.60075404e+03, 1.62068967e+03,\n", " 1.68283601e+03, 1.73567565e+03, 1.79212396e+03, 1.84909410e+03,\n", "...\n", " 2.21807431e+03, 2.17843970e+03, 2.19211864e+03, 2.17419081e+03,\n", " 2.20658395e+03, 2.24101133e+03],\n", " [2.09881517e+03, 3.05608196e+03, 3.18445679e+03, 3.13150808e+03,\n", " 3.06243800e+03, 2.91404135e+03, 2.79150620e+03, 2.71566754e+03,\n", " 2.68093377e+03, 2.69591691e+03],\n", " [2.82337493e+03, 4.22960001e+03, 4.62723520e+03, 4.45202950e+03,\n", " 4.21458272e+03, 4.05143628e+03, 3.86933738e+03, 3.62683385e+03,\n", " 3.43193481e+03, 3.35474072e+03],\n", " [3.74106277e+03, 5.73506934e+03, 6.49549327e+03, 6.23780581e+03,\n", " 5.75385248e+03, 5.46085476e+03, 5.21372863e+03, 4.94928029e+03,\n", " 4.62145861e+03, 4.40225930e+03],\n", " [4.75687300e+03, 7.27600169e+03, 8.80266453e+03, 8.26919754e+03,\n", " 7.76512030e+03, 7.49447898e+03, 6.94292603e+03, 6.63285929e+03,\n", " 6.28757516e+03, 5.82194290e+03],\n", " [6.19575802e+03, 9.67126326e+03, 1.14566912e+04, 1.18860777e+04,\n", " 1.09570925e+04, 1.01617556e+04, 9.73800771e+03, 9.07415881e+03,\n", " 8.68055444e+03, 8.10311579e+03],\n", " [7.89103895e+03, 1.24244370e+04, 1.45845266e+04, 1.53306602e+04,\n", " 1.46425133e+04, 1.38164276e+04, 1.28236861e+04, 1.17953007e+04,\n", " 1.09788698e+04, 1.09312746e+04]])
array([[3.52157309e+02, 6.46195307e+01, 3.54545971e+01, 3.57940974e+01,\n", " 2.88801497e+01, 2.39729222e+01, 1.64437272e+01, 1.15795169e+01,\n", " 6.02593098e+00, 6.36121443e+00],\n", " [3.90458879e+03, 2.75589681e+03, 1.93287872e+03, 1.10518264e+03,\n", " 6.77632237e+02, 3.27505456e+02, 2.04620402e+02, 1.60629151e+02,\n", " 1.35820539e+02, 1.20633510e+02],\n", " [6.17787184e+03, 7.63045105e+03, 7.38264321e+03, 6.90604431e+03,\n", " 4.31774826e+03, 3.65635950e+03, 2.56088048e+03, 1.97126320e+03,\n", " 1.59345287e+03, 1.25270303e+03],\n", " [8.15701591e+03, 1.01580998e+04, 1.07791107e+04, 1.10282915e+04,\n", " 1.08082447e+04, 1.03472273e+04, 9.26996480e+03, 6.89488258e+03,\n", " 5.82661805e+03, 5.03456606e+03],\n", " [1.16116882e+04, 1.27755692e+04, 1.34855533e+04, 1.38158123e+04,\n", " 1.41093500e+04, 1.39319154e+04, 1.34514522e+04, 1.28019383e+04,\n", " 1.24791736e+04, 1.23821078e+04],\n", " [1.91462723e+04, 1.80652674e+04, 1.66092304e+04, 1.66529306e+04,\n", " 1.61252203e+04, 1.66252117e+04, 1.67900778e+04, 1.64319370e+04,\n", " 1.62909704e+04, 1.63137536e+04],\n", " [3.66893655e+04, 3.48519567e+04, 2.28985436e+04, 2.08409720e+04,\n", " 1.99497629e+04, 1.98391220e+04, 1.90715878e+04, 1.87108767e+04,\n", "...\n", " 2.54115575e+04, 2.38131008e+04, 2.25815478e+04, 2.14484322e+04,\n", " 2.15291228e+04, 2.13930708e+04],\n", " [9.40065735e+04, 1.08067322e+05, 7.50256744e+04, 5.84674028e+04,\n", " 4.63092311e+04, 3.49686007e+04, 2.89857481e+04, 2.69970790e+04,\n", " 2.56235170e+04, 2.49326244e+04],\n", " [1.13588840e+05, 1.34802706e+05, 1.23082128e+05, 8.97593131e+04,\n", " 7.31148630e+04, 5.80404592e+04, 4.39517949e+04, 3.86810883e+04,\n", " 3.56675851e+04, 3.00522336e+04],\n", " [1.33430265e+05, 1.63104091e+05, 1.67536697e+05, 1.57579019e+05,\n", " 1.07411072e+05, 9.80614901e+04, 8.23819155e+04, 6.02074890e+04,\n", " 5.22529446e+04, 4.63159213e+04],\n", " [1.53160436e+05, 1.86492682e+05, 2.02820330e+05, 1.88107354e+05,\n", " 1.76971160e+05, 1.37539007e+05, 1.17509688e+05, 9.89870705e+04,\n", " 9.47507139e+04, 7.04931455e+04],\n", " [1.79236262e+05, 2.17761664e+05, 2.34079750e+05, 2.35116755e+05,\n", " 2.19874197e+05, 2.06572030e+05, 1.96964156e+05, 1.36993947e+05,\n", " 1.31667554e+05, 1.10666466e+05],\n", " [2.02673365e+05, 2.53629525e+05, 2.71954382e+05, 2.76545928e+05,\n", " 2.57923891e+05, 2.48471724e+05, 2.34567746e+05, 2.19189124e+05,\n", " 1.92144794e+05, 1.89672562e+05]])
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
array([[ 2.30736504, 11.97194836, 14.55684834, 7.45163139,\n", " 0.96645833, 0. , 0. , 0. ,\n", " 0. , 0. ],\n", " [ 1.93291666, 6.76520832, 19.56449683, 33.63754131,\n", " 46.40776854, 53.63031078, 56.63435269, 57.77882264,\n", " 57.31336207, 56.87515639],\n", " [ 1.93291666, 5.58118841, 12.9749038 , 25.45678405,\n", " 38.30165351, 52.13695944, 67.1311477 , 80.75777634,\n", " 94.33794542, 106.59168354],\n", " [ 1.93291666, 4.91073506, 9.89991351, 19.26849185,\n", " 33.50088548, 48.19586268, 60.43029865, 73.44260534,\n", " 87.42646064, 99.68640152],\n", " [ 1.93291666, 4.83229166, 9.44702174, 15.77710689,\n", " 27.96661684, 41.31898566, 54.09652901, 69.12454217,\n", " 80.36555936, 93.75165801],\n", " [ 1.34090671, 4.83229166, 8.93345517, 14.65376177,\n", " 23.69599774, 36.22777641, 51.06154117, 63.68266893,\n", " 76.50922599, 89.84117932],\n", " [ 0.96645833, 4.61473008, 8.85501178, 14.14019521,\n", " 21.17614671, 31.27340952, 44.03950628, 58.52232468,\n", "...\n", " 19.84533311, 29.17728966, 41.38825269, 55.02745013,\n", " 70.54408925, 83.0075866 ],\n", " [ 0. , 3.27382337, 7.73166666, 12.56395832,\n", " 19.9389452 , 28.77618838, 36.80839761, 48.8039576 ,\n", " 64.94773215, 80.76850289],\n", " [ 0. , 2.899375 , 7.51410507, 12.95801754,\n", " 18.7079361 , 27.06083329, 35.33930379, 48.07196239,\n", " 58.75157002, 76.39094525],\n", " [ 0. , 1.93291666, 7.29654349, 13.35754346,\n", " 19.32916664, 27.0304959 , 35.8259327 , 44.23316852,\n", " 58.2923892 , 71.98673469],\n", " [ 0. , 1.93291666, 5.58118841, 11.59749998,\n", " 19.32916664, 27.87037334, 35.75895828, 45.95615913,\n", " 56.76805234, 68.82873417],\n", " [ 0. , 0.96645833, 4.2402817 , 10.63104165,\n", " 18.15689758, 26.46882334, 37.0062529 , 41.71153104,\n", " 53.27320696, 69.94086045],\n", " [ 0. , 0.96645833, 4.2402817 , 8.75713216,\n", " 16.68259991, 23.67717538, 36.45653351, 42.85755104,\n", " 45.67843255, 61.2006485 ]])
array([[ 7.1396567 , 22.01098005, 22.22854163, 22.22854163,\n", " 14.74997377, 3.77720352, 1.93291666, 0.96645833,\n", " 1.34090671, 0.96645833],\n", " [ 3.86583333, 20.60939855, 54.28712322, 86.81699411,\n", " 101.4811555 , 102.13386801, 96.91634267, 91.81354154,\n", " 87.55332592, 82.73359919],\n", " [ 3.86583333, 12.72084511, 41.43473484, 76.33601115,\n", " 105.44168551, 139.43349822, 169.00885851, 190.47151397,\n", " 211.03187875, 225.06415128],\n", " [ 4.02272012, 11.3799384 , 30.51472364, 63.47921105,\n", " 102.78002961, 136.12413764, 163.61083883, 188.76932649,\n", " 215.89768705, 238.33153765],\n", " [ 4.2402817 , 11.97194836, 25.51701591, 54.12166659,\n", " 89.87325589, 125.39751961, 158.08605881, 183.97127063,\n", " 202.49296493, 227.24411188],\n", " [ 4.02272012, 12.8777319 , 25.06724184, 48.4444153 ,\n", " 81.74025108, 118.19694903, 154.88057825, 182.66953503,\n", " 203.31899077, 220.69303913],\n", " [ 3.86583333, 13.21048401, 27.56183106, 48.71108469,\n", " 76.53365094, 109.09369249, 144.4800374 , 175.58525806,\n", "...\n", " 77.22925065, 111.71108724, 137.15127076, 171.88594981,\n", " 206.62100399, 228.11270976],\n", " [ 2.899375 , 11.97194836, 26.31012983, 47.88887718,\n", " 82.10605203, 115.30424523, 134.3625183 , 158.24296401,\n", " 198.6483327 , 227.48847545],\n", " [ 2.30736504, 11.00549003, 28.2516742 , 49.97219687,\n", " 71.05765582, 114.57604537, 139.27619223, 164.83369521,\n", " 190.30089908, 220.34555065],\n", " [ 1.93291666, 8.69812499, 27.27294046, 53.46907983,\n", " 78.1674915 , 106.59905251, 133.98055133, 162.82445392,\n", " 186.52948871, 228.62886293],\n", " [ 1.93291666, 7.93446814, 23.91355932, 53.62629735,\n", " 75.92497434, 99.99598954, 126.24801187, 157.42182625,\n", " 186.1275745 , 201.08882753],\n", " [ 1.93291666, 7.21810009, 20.10550182, 47.96579196,\n", " 78.12888576, 100.6376145 , 126.12912804, 139.36226112,\n", " 177.88239888, 209.43888333],\n", " [ 1.93291666, 5.88490536, 19.32916664, 40.84434873,\n", " 78.16177531, 100.34348137, 130.95924651, 137.54471501,\n", " 150.17548983, 182.98128306]])
array([[ 33.98292841, 43.91837912, 36.58428467, 37.87020988,\n", " 31.3669896 , 24.78443371, 12.84041227, 7.54472428,\n", " 4.83229166, 3.92466587],\n", " [ 12.94485006, 105.42944313, 219.39210265, 274.84248136,\n", " 257.23706884, 216.46405033, 184.1655361 , 159.5804859 ,\n", " 144.84647114, 132.87111352],\n", " [ 12.12883515, 74.47610784, 202.15351019, 308.17408999,\n", " 382.46500801, 460.07749296, 545.30922817, 572.97295517,\n", " 570.22279495, 547.13128393],\n", " [ 14.51020143, 67.22945155, 177.46572619, 281.12136003,\n", " 386.44290668, 464.08162154, 534.41135413, 586.08135982,\n", " 666.1557066 , 707.98953162],\n", " [ 17.93646944, 72.39392489, 162.41850719, 262.54339319,\n", " 361.36862257, 436.4026002 , 524.68997738, 582.04049953,\n", " 632.85328098, 689.97427935],\n", " [ 20.67007335, 82.09112301, 162.91605567, 259.99561129,\n", " 359.24996793, 438.26741186, 506.0079864 , 574.65367393,\n", " 628.19645767, 680.40382544],\n", " [ 20.29562497, 89.89395132, 176.28175541, 266.24433733,\n", " 351.27976862, 426.86769549, 509.13284895, 587.54989572,\n", "...\n", " 368.80086538, 442.89812099, 505.70173185, 586.31675479,\n", " 661.11971069, 719.45880804],\n", " [ 16.52562608, 86.59757593, 172.62805773, 279.94167202,\n", " 356.42895935, 439.7703911 , 484.46386725, 564.77132325,\n", " 639.51622409, 726.015558 ],\n", " [ 13.55446965, 76.85120599, 184.91910818, 267.39812739,\n", " 326.8604839 , 418.78663069, 469.28424096, 550.57047426,\n", " 625.93684204, 750.12262307],\n", " [ 11.67260498, 72.49382322, 167.26836584, 252.88282209,\n", " 347.18023745, 418.18861606, 465.70495063, 501.61903867,\n", " 595.73083218, 721.97597848],\n", " [ 10.03903169, 60.05959147, 162.50847317, 256.34718419,\n", " 315.70958833, 378.86467856, 457.13037711, 506.97439185,\n", " 572.89037749, 632.73206341],\n", " [ 8.55402809, 56.14191095, 136.67971631, 255.70029102,\n", " 314.42948485, 364.88461509, 423.97837247, 474.14160448,\n", " 543.24267088, 618.07319939],\n", " [ 10.09138091, 45.52159585, 106.66136741, 241.73890041,\n", " 326.65791951, 367.02453811, 456.73117418, 460.72927913,\n", " 478.70833046, 572.40455274]])
array([[4.04829202e+04, 2.37437664e+03, 7.24367551e+02, 4.11736972e+02,\n", " 3.14915990e+02, 1.50664139e+02, 8.84320344e+01, 5.65384581e+01,\n", " 3.28160220e+01, 3.28160220e+01],\n", " [5.89256538e+05, 2.10274705e+05, 1.14126124e+05, 5.78987733e+04,\n", " 4.21404649e+04, 7.88009875e+03, 4.52360043e+03, 4.02958499e+03,\n", " 2.78220063e+03, 1.36709205e+03],\n", " [7.65943588e+05, 6.67630977e+05, 5.62477506e+05, 4.88683676e+05,\n", " 2.01589118e+05, 1.81494095e+05, 8.45459834e+04, 7.60625407e+04,\n", " 5.97623091e+04, 5.02356296e+04],\n", " [8.44489416e+05, 8.29185013e+05, 7.24749693e+05, 6.80788103e+05,\n", " 6.54471741e+05, 6.18565810e+05, 5.29669353e+05, 2.55269025e+05,\n", " 2.16656119e+05, 2.06330244e+05],\n", " [9.82274967e+05, 9.09569996e+05, 8.72970707e+05, 8.12060978e+05,\n", " 7.62412466e+05, 7.14908951e+05, 6.86997463e+05, 6.65647278e+05,\n", " 6.55905779e+05, 6.42842151e+05],\n", " [1.45253247e+06, 1.05456941e+06, 9.32026305e+05, 8.88760635e+05,\n", " 8.26325961e+05, 8.20938659e+05, 8.06128528e+05, 7.65191413e+05,\n", " 7.41184176e+05, 7.35847465e+05],\n", " [2.52770255e+06, 1.97657828e+06, 1.04637554e+06, 9.68786186e+05,\n", " 9.07937073e+05, 9.03988078e+05, 8.42638256e+05, 8.24232830e+05,\n", "...\n", " 1.01217507e+06, 9.69526904e+05, 9.09181327e+05, 8.61792899e+05,\n", " 8.61532692e+05, 8.45818302e+05],\n", " [4.99301491e+06, 4.75260789e+06, 3.03520299e+06, 2.38613598e+06,\n", " 1.83371523e+06, 1.31479255e+06, 1.02560226e+06, 9.77491084e+05,\n", " 9.48049698e+05, 9.08382381e+05],\n", " [5.20260887e+06, 5.04144962e+06, 4.37831936e+06, 3.07262948e+06,\n", " 2.51070763e+06, 2.01313113e+06, 1.43224580e+06, 1.30124925e+06,\n", " 1.24909244e+06, 9.90202456e+05],\n", " [5.30985282e+06, 5.24028093e+06, 5.05530226e+06, 4.84943254e+06,\n", " 3.25948143e+06, 3.02618970e+06, 2.50356647e+06, 1.53745693e+06,\n", " 1.41220731e+06, 1.33668097e+06],\n", " [5.40564105e+06, 5.32025773e+06, 5.25890103e+06, 5.03013337e+06,\n", " 4.88114104e+06, 3.71573025e+06, 3.24255580e+06, 2.70653327e+06,\n", " 2.65958042e+06, 1.87016009e+06],\n", " [5.54447374e+06, 5.38900743e+06, 5.32089386e+06, 5.24545360e+06,\n", " 5.10769411e+06, 4.98095390e+06, 4.84968086e+06, 3.28869667e+06,\n", " 3.24576893e+06, 2.73470791e+06],\n", " [5.55557449e+06, 5.53951288e+06, 5.48101299e+06, 5.43493141e+06,\n", " 5.18413911e+06, 5.13990997e+06, 5.03515527e+06, 4.90433201e+06,\n", " 4.43619042e+06, 4.38687996e+06]])
array([[ 35.07283378, 26.78429104, 29.234375 , 51.16063676,\n", " 68.19571865, 82.27093596, 89.32624113, 104.38823529,\n", " 108.2037037 , 108.10526316],\n", " [ 60.71889241, 123.06460694, 153.27272727, 146.67871956,\n", " 124.38565746, 105.19005633, 92.88590029, 87.65978756,\n", " 88.48217758, 96.83838384],\n", " [ 82.17141232, 150.69215276, 210.18717918, 244.58206997,\n", " 263.27536946, 270.86399858, 270.91175921, 261.33794428,\n", " 246.75299431, 230.17447758],\n", " [ 119.9864818 , 186.49886578, 245.26148825, 293.66780432,\n", " 329.28369729, 350.283268 , 361.23425197, 371.38032407,\n", " 377.82536988, 379.08981435],\n", " [ 177.91234891, 252.85581338, 301.21038921, 342.97996751,\n", " 382.71718847, 408.27548709, 427.27539394, 441.49054192,\n", " 452.29040876, 460.84694444],\n", " [ 266.59225742, 363.95688749, 393.3185875 , 426.35197582,\n", " 454.16277424, 481.11733129, 499.00351541, 512.64009047,\n", " 527.70227878, 532.88254932],\n", " [ 385.76126697, 542.44266529, 560.17651844, 558.9545204 ,\n", " 571.35469963, 580.31458333, 591.115159 , 602.77703135,\n", "...\n", " 767.12782805, 744.24554235, 739.67904012, 725.49720254,\n", " 728.37447778, 732.81075851],\n", " [ 757.1385159 , 1094.98815044, 1133.20430108, 1106.14618644,\n", " 1072.44317592, 1011.00940129, 959.53634204, 924.55514365,\n", " 904.0646789 , 901.01942646],\n", " [1019.9486692 , 1519.6935139 , 1653.9843872 , 1582.60225564,\n", " 1489.02993585, 1421.79890185, 1348.1661195 , 1254.04069051,\n", " 1177.50672122, 1141.28849456],\n", " [1352.85957179, 2065.11304348, 2328.76341731, 2227.04631579,\n", " 2045.12633625, 1931.355494 , 1833.66637246, 1730.54530201,\n", " 1606.62117647, 1520.54565868],\n", " [1721.61649319, 2624.26960784, 3163.58308605, 2962.027894 ,\n", " 2771.53735256, 2664.77468354, 2458.84389671, 2338.77890011,\n", " 2206.60809372, 2033.2290227 ],\n", " [2243.79666319, 3492.64332248, 4125.48841699, 4268.31863727,\n", " 3923.63031423, 3627.51457976, 3465.38157895, 3218.65644172,\n", " 3067.989721 , 2853.57201646],\n", " [2858.99734396, 4491.35774059, 5259.76412776, 5516.61757106,\n", " 5255.6617284 , 4947.0955711 , 4579.7034632 , 4201.70916335,\n", " 3901.07606679, 3872.08133087]])
array([[1.14704756e+02, 3.39940677e+01, 2.96130726e+01, 5.46816501e+01,\n", " 6.99685178e+01, 7.56366411e+01, 7.60350010e+01, 7.90293939e+01,\n", " 7.01890653e+01, 6.01101644e+01],\n", " [4.41411984e+02, 4.35732339e+02, 3.82446406e+02, 2.75099560e+02,\n", " 1.89469292e+02, 1.25391118e+02, 8.62097876e+01, 6.64952478e+01,\n", " 5.82541909e+01, 6.16237875e+01],\n", " [7.29802660e+02, 8.55051171e+02, 8.48172499e+02, 8.05231787e+02,\n", " 6.89512813e+02, 6.08942704e+02, 5.07665675e+02, 4.11225355e+02,\n", " 3.61563786e+02, 3.06480581e+02],\n", " [1.18846083e+03, 1.32922945e+03, 1.28925414e+03, 1.26030335e+03,\n", " 1.22837514e+03, 1.16861785e+03, 1.07221184e+03, 9.12741748e+02,\n", " 8.41344887e+02, 7.82383422e+02],\n", " [2.36064274e+03, 2.06733161e+03, 1.91360754e+03, 1.79265395e+03,\n", " 1.72768705e+03, 1.62370201e+03, 1.54950268e+03, 1.44762209e+03,\n", " 1.41359326e+03, 1.40517735e+03],\n", " [4.99528580e+03, 3.84489313e+03, 2.84021382e+03, 2.51125493e+03,\n", " 2.20324488e+03, 2.18947449e+03, 2.14543589e+03, 2.04962396e+03,\n", " 1.94579790e+03, 1.92136487e+03],\n", " [1.14166279e+04, 9.73546355e+03, 5.22104111e+03, 3.94431122e+03,\n", " 3.22500838e+03, 3.01900730e+03, 2.71161892e+03, 2.52810361e+03,\n", "...\n", " 5.16511127e+03, 4.37929871e+03, 3.65973640e+03, 3.23405442e+03,\n", " 3.15701230e+03, 3.01858444e+03],\n", " [3.06795253e+04, 3.36487215e+04, 2.46581328e+04, 1.72312286e+04,\n", " 1.20920222e+04, 7.56594875e+03, 5.95954428e+03, 5.05279821e+03,\n", " 4.21556342e+03, 3.94799111e+03],\n", " [3.80585524e+04, 4.43921003e+04, 3.99562496e+04, 3.00023175e+04,\n", " 2.22620786e+04, 1.66096154e+04, 1.06869262e+04, 8.15770751e+03,\n", " 6.95323387e+03, 5.44503852e+03],\n", " [4.54986335e+04, 5.46991267e+04, 5.47807254e+04, 5.00782357e+04,\n", " 3.62161193e+04, 3.23154029e+04, 2.48212978e+04, 1.70812829e+04,\n", " 1.31470613e+04, 9.88181176e+03],\n", " [5.31674693e+04, 6.35830814e+04, 6.82300265e+04, 6.15893981e+04,\n", " 5.66500694e+04, 4.53145626e+04, 3.93944669e+04, 3.06538620e+04,\n", " 2.86226001e+04, 1.91003526e+04],\n", " [6.30403863e+04, 7.53505417e+04, 7.98211919e+04, 7.90669066e+04,\n", " 7.26775294e+04, 6.68865724e+04, 6.29034053e+04, 4.68305510e+04,\n", " 4.42184863e+04, 3.46580452e+04],\n", " [7.15459650e+04, 8.91193124e+04, 9.41055881e+04, 9.49944563e+04,\n", " 8.63340277e+04, 8.27069509e+04, 7.74698887e+04, 7.05123395e+04,\n", " 6.30557872e+04, 6.14911087e+04]])
array([[ 1., 1., 5., 12., 13., 17., 35., 35., 45., 50.],\n", " [ 2., 1., 3., 5., 5., 3., 10., 13., 24., 41.],\n", " [ 1., 4., 2., 3., 11., 13., 9., 10., 8., 5.],\n", " [ 1., 1., 2., 5., 11., 12., 15., 15., 22., 30.],\n", " [ 1., 2., 1., 1., 6., 9., 12., 5., 13., 18.],\n", " [ 2., 1., 2., 3., 4., 13., 13., 11., 17., 14.],\n", " [ 1., 1., 2., 4., 4., 4., 7., 7., 21., 22.],\n", " [ 2., 3., 1., 4., 2., 9., 4., 11., 8., 22.],\n", " [ 1., 1., 1., 7., 4., 7., 3., 1., 5., 13.],\n", " [ 2., 4., 2., 5., 2., 4., 8., 4., 9., 13.],\n", " [ 2., 2., 2., 6., 7., 3., 1., 8., 8., 11.],\n", " [ 3., 2., 3., 5., 8., 4., 7., 15., 17., 1.],\n", " [ 2., 5., 6., 6., 8., 1., 8., 4., 15., 10.],\n", " [ 3., 2., 3., 8., 4., 14., 4., 5., 9., 16.]])
array([[ 6. , 11. , 15. , 24. , 30. , 39. , 42. , 56. ,\n", " 61.25, 64.5 ],\n", " [ 6. , 13. , 22. , 30. , 36. , 41. , 44. , 48. ,\n", " 52. , 59. ],\n", " [ 6. , 13. , 21. , 31. , 41. , 50. , 59. , 67. ,\n", " 73. , 78. ],\n", " [ 6. , 13. , 20. , 30. , 41. , 53. , 63. , 72. ,\n", " 82. , 89. ],\n", " [ 6. , 13. , 21. , 29. , 40. , 52. , 64. , 74. ,\n", " 84. , 94. ],\n", " [ 7. , 14. , 21. , 29. , 39. , 50.75, 65. , 74. ,\n", " 85. , 95. ],\n", " [ 6. , 14. , 22. , 30. , 39. , 49. , 63. , 75. ,\n", " 86. , 95. ],\n", " [ 6. , 14. , 21. , 29.25, 39. , 49. , 62. , 76. ,\n", " 88. , 99. ],\n", " [ 6. , 13. , 22. , 29. , 39. , 49. , 59. , 72. ,\n", " 88. , 103.25],\n", " [ 6. , 13. , 21. , 30. , 37.5 , 48. , 60. , 74. ,\n", " 87. , 104. ],\n", " [ 6. , 13. , 21. , 30.25, 38. , 50. , 60. , 70.75,\n", " 83.5 , 103. ],\n", " [ 6. , 12. , 20. , 29. , 39. , 49. , 57. , 70. ,\n", " 82. , 98. ],\n", " [ 6. , 12. , 20. , 27. , 38. , 47. , 58.75, 67.75,\n", " 80. , 98. ],\n", " [ 6. , 12. , 20. , 26. , 37. , 48. , 59.25, 69. ,\n", " 72.5 , 91. ]])
array([[ 8. , 16. , 21. , 34. , 44. , 56. , 61. , 72. , 82.5,\n", " 89.5],\n", " [ 8. , 22. , 42. , 56. , 62. , 64. , 65. , 67. , 70. ,\n", " 77. ],\n", " [ 9. , 21. , 42. , 65. , 86. , 102. , 115. , 120. , 125. ,\n", " 127. ],\n", " [ 10. , 21. , 39. , 65. , 95. , 116. , 130. , 143. , 154. ,\n", " 166. ],\n", " [ 11. , 23. , 39. , 64. , 93. , 117.5, 137. , 154. , 166. ,\n", " 178. ],\n", " [ 11. , 25. , 41. , 64. , 92. , 121. , 144. , 159. , 176. ,\n", " 188. ],\n", " [ 11. , 26. , 44. , 67. , 94. , 121. , 146. , 164. , 184. ,\n", " 198. ],\n", " [ 11. , 26. , 44. , 69. , 98. , 126.5, 152. , 168. , 192. ,\n", " 206.5],\n", " [ 10. , 25. , 43.5, 65. , 104. , 133. , 153. , 172. , 192.5,\n", " 213. ],\n", " [ 10. , 23. , 44. , 71. , 94. , 132. , 159. , 178.5, 197. ,\n", " 217. ],\n", " [ 9. , 21. , 43. , 73. , 98. , 127. , 154. , 176.5, 199. ,\n", " 229. ],\n", " [ 9. , 20. , 37. , 69. , 98. , 127.5, 149. , 175. , 199. ,\n", " 214. ],\n", " [ 9. , 19. , 34. , 60. , 101. , 127. , 144.5, 159.5, 190. ,\n", " 216. ],\n", " [ 9. , 18. , 33. , 50. , 100. , 134. , 156.5, 161.5, 170. ,\n", " 196. ]])
array([[ 19. , 28. , 31. , 52.5 , 73.5 , 89. , 100. , 128. ,\n", " 129.75, 127.5 ],\n", " [ 17. , 70. , 125. , 141. , 131. , 116. , 104. , 101. ,\n", " 103. , 111. ],\n", " [ 20. , 68. , 148. , 196. , 231. , 257. , 273. , 274. ,\n", " 269. , 253. ],\n", " [ 24. , 71. , 146.25, 209. , 259.25, 300. , 318.5 , 340. ,\n", " 359.5 , 378. ],\n", " [ 30. , 82. , 150. , 215. , 268.5 , 306. , 341. , 370.25,\n", " 388.5 , 411. ],\n", " [ 33. , 97. , 160. , 224. , 285. , 329. , 360. , 389. ,\n", " 415.5 , 432.5 ],\n", " [ 32. , 106.25, 177.25, 236. , 291. , 336. , 383.5 , 427. ,\n", " 459.75, 481. ],\n", " [ 28. , 105. , 187. , 250.75, 318. , 360.25, 400.5 , 441. ,\n", " 485. , 507.5 ],\n", " [ 27. , 101. , 178. , 252. , 323.5 , 377. , 412. , 444.75,\n", " 491.5 , 539. ],\n", " [ 23. , 96. , 196. , 253.75, 299.5 , 375. , 416. , 469.25,\n", " 499.5 , 549. ],\n", " [ 21. , 76. , 188. , 251.75, 321. , 348. , 402. , 455. ,\n", " 507.5 , 552. ],\n", " [ 19. , 56.5 , 180.25, 265. , 298.5 , 342.25, 399. , 449.5 ,\n", " 508. , 528. ],\n", " [ 19. , 53. , 172.25, 262.5 , 305. , 332. , 360.25, 421.25,\n", " 471. , 531. ],\n", " [ 20. , 48.75, 143. , 256.5 , 309. , 343. , 392.5 , 402. ,\n", " 431.5 , 504. ]])
array([[5.489000e+03, 8.790000e+02, 4.220000e+02, 4.190000e+02,\n", " 4.180000e+02, 4.130000e+02, 4.070000e+02, 4.010000e+02,\n", " 3.930000e+02, 2.820000e+02],\n", " [4.770300e+04, 2.017200e+04, 1.006100e+04, 6.107000e+03,\n", " 4.155000e+03, 1.995000e+03, 1.419000e+03, 9.400000e+02,\n", " 5.520000e+02, 5.000000e+02],\n", " [6.712300e+04, 5.280200e+04, 4.100700e+04, 3.792700e+04,\n", " 1.915900e+04, 1.815600e+04, 1.123600e+04, 6.437000e+03,\n", " 6.200000e+03, 4.571000e+03],\n", " [9.006000e+04, 8.517100e+04, 6.250400e+04, 5.627700e+04,\n", " 5.299900e+04, 5.063200e+04, 4.149000e+04, 2.191200e+04,\n", " 2.032100e+04, 1.989100e+04],\n", " [1.443010e+05, 1.152320e+05, 1.015320e+05, 8.090900e+04,\n", " 7.215900e+04, 5.968900e+04, 5.682800e+04, 5.313800e+04,\n", " 5.272600e+04, 5.239500e+04],\n", " [3.600730e+05, 1.733710e+05, 1.272510e+05, 1.082340e+05,\n", " 8.547500e+04, 8.314100e+04, 8.035400e+04, 7.386600e+04,\n", " 6.694600e+04, 6.667500e+04],\n", " [8.179260e+05, 5.363590e+05, 1.713310e+05, 1.397180e+05,\n", " 1.145580e+05, 1.118930e+05, 9.250400e+04, 8.491100e+04,\n", "...\n", " 1.557460e+05, 1.401720e+05, 1.148560e+05, 9.798400e+04,\n", " 9.764700e+04, 9.134800e+04],\n", " [1.627056e+06, 1.476344e+06, 1.030450e+06, 6.998490e+05,\n", " 4.617220e+05, 2.255600e+05, 1.585300e+05, 1.428810e+05,\n", " 1.268490e+05, 1.145160e+05],\n", " [1.740674e+06, 1.657604e+06, 1.422301e+06, 1.060731e+06,\n", " 7.767210e+05, 5.630250e+05, 2.794050e+05, 2.203890e+05,\n", " 2.001090e+05, 1.478440e+05],\n", " [1.808282e+06, 1.754983e+06, 1.650369e+06, 1.538092e+06,\n", " 1.130615e+06, 1.029580e+06, 7.689230e+05, 4.159460e+05,\n", " 2.735510e+05, 2.368450e+05],\n", " [1.874248e+06, 1.811541e+06, 1.766834e+06, 1.644370e+06,\n", " 1.559624e+06, 1.244883e+06, 1.118808e+06, 8.540210e+05,\n", " 8.202950e+05, 4.561420e+05],\n", " [1.947982e+06, 1.862256e+06, 1.811897e+06, 1.761373e+06,\n", " 1.685634e+06, 1.609753e+06, 1.545834e+06, 1.155220e+06,\n", " 1.121808e+06, 8.721370e+05],\n", " [1.959105e+06, 1.944402e+06, 1.894490e+06, 1.864755e+06,\n", " 1.732581e+06, 1.708184e+06, 1.660266e+06, 1.574807e+06,\n", " 1.456694e+06, 1.422968e+06]])
array([[0.01142819, 0.00036164, 0. , 0. , 0. ,\n", " 0. , 0. , 0. , 0. , 0. ],\n", " [0.02294376, 0.05804216, 0.07931787, 0.07466496, 0.05032258,\n", " 0.02584201, 0.01028101, 0.0033394 , 0.00324254, 0.00289017],\n", " [0.0251442 , 0.05261462, 0.08536294, 0.11022015, 0.12744293,\n", " 0.1392136 , 0.15052356, 0.14853958, 0.14139827, 0.13027597],\n", " [0.02888671, 0.05302959, 0.07990599, 0.10289337, 0.12615327,\n", " 0.14444903, 0.15773354, 0.16693679, 0.1792819 , 0.19247177],\n", " [0.0317836 , 0.05733433, 0.07969349, 0.10180505, 0.12297802,\n", " 0.13981419, 0.15397672, 0.16977755, 0.18038482, 0.18921923],\n", " [0.03519799, 0.0601227 , 0.08247623, 0.10323974, 0.12482303,\n", " 0.14395295, 0.15607249, 0.16742081, 0.17821196, 0.18731026],\n", " [0.03385228, 0.05993283, 0.0829943 , 0.10421836, 0.12650949,\n", " 0.14260196, 0.16121062, 0.17312 , 0.18528339, 0.19409569],\n", " [0.03069839, 0.05967977, 0.08310574, 0.10508216, 0.12523576,\n", " 0.14455593, 0.1624156 , 0.17574627, 0.18958967, 0.19860627],\n", " [0.03004595, 0.05618557, 0.08176439, 0.09962904, 0.11993769,\n", " 0.13861386, 0.15779468, 0.17246175, 0.18402937, 0.2003702 ],\n", " [0.02615311, 0.05206847, 0.08515625, 0.10534236, 0.12125535,\n", " 0.13598901, 0.15308804, 0.16594695, 0.18187135, 0.20504009],\n", " [0.02583491, 0.05222437, 0.08333333, 0.1032666 , 0.12451362,\n", " 0.13955638, 0.15547703, 0.16540722, 0.18053375, 0.19775281],\n", " [0.02083333, 0.04417178, 0.07132244, 0.10195531, 0.11286089,\n", " 0.13307985, 0.15276146, 0.16629213, 0.17590618, 0.18478261],\n", " [0.01983299, 0.04241436, 0.0754352 , 0.09437751, 0.11666667,\n", " 0.13058419, 0.14827018, 0.15975422, 0.17794118, 0.18406593],\n", " [0.02260638, 0.04402516, 0.07142857, 0.09067358, 0.12376238,\n", " 0.14252336, 0.15184382, 0.16167665, 0.16914498, 0.18518519]])