Files
simpeg/simpegPF/notebooks/SimPEG Tutorial - MAG Linear Problem.ipynb
T

2861 lines
349 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Objective:** \n",
"\n",
"In this tutorial we will create a simple magnetic problem from scratch using the SimPEG framework.\n",
"\n",
"We are using the integral form of the magnetostatic problem. In the absence of free-currents or changing magnetic field, magnetic material can give rise to a secondary magnetic field according to:\n",
"\n",
"$$\\vec b = \\frac{\\mu_0}{4\\pi} \\int_{V} \\vec M \\cdot \\nabla \\nabla \\left(\\frac{1}{r}\\right) \\; dV $$\n",
"\n",
"Where $\\mu_0$ is the magnetic permealitity of free-space, $\\vec M$ is the magnetization per unit volume and $r$ defines the distance between the observed field $\\vec b$ and the magnetized object. Assuming a purely induced response, the strenght of magnetization can be written as:\n",
"\n",
"$$ \\vec M = \\mu_0 \\kappa \\vec H_0 $$\n",
"\n",
"where $\\vec H$ is an external inducing magnetic field, and $\\kappa$ the magnetic susceptibility of matter.\n",
"As derived by Sharma 1966, the integral can be evaluated for rectangular prisms such that:\n",
"\n",
"$$ \\vec b(P) = \\mathbf{T} \\cdot \\vec H_0 \\; \\kappa $$\n",
"\n",
"Where the tensor matrix $\\bf{T}$ relates the three components of magnetization $\\vec M$ to the components of the field $\\vec b$:\n",
"\n",
"$$\\mathbf{T} =\n",
"\t \\begin{pmatrix}\n",
" \t\tT_{xx} & T_{xy} & T_{xz} \\\\\n",
"\t\tT_{yx} & T_{yy} & T_{yz} \\\\\n",
"\t\tT_{zx} & T_{zy} & T_{zz} \n",
"\t\\end{pmatrix} $$\n",
" \n",
"In general, we discretize the earth into a collection of cells, each contributing to the magnetic data such that:\n",
"\n",
"$$\\vec b(P) = \\sum_{j=1}^{nc} \\mathbf{T}_j \\cdot \\vec H_0 \\; \\kappa_j$$\n",
"\n",
"giving rise to a linear problem.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Using matplotlib backend: nbAgg\n",
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\dominiquef.MIRAGEOSCIENCE\\AppData\\Local\\Continuum\\Anaconda\\lib\\site-packages\\IPython\\kernel\\__init__.py:13: ShimWarning: The `IPython.kernel` package has been deprecated. You should import from ipykernel or jupyter_client instead.\n",
" \"You should import from ipykernel or jupyter_client instead.\", ShimWarning)\n"
]
}
],
"source": [
"%matplotlib notebook\n",
"%pylab"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Efficiency Warning: Interpolation will be slow, use setup.py!\n",
"\n",
" python setup.py build_ext --inplace\n",
" \n"
]
}
],
"source": [
"from SimPEG import *\n",
"import simpegPF as PF"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"# First we need to define the direction of the inducing field\n",
"# As a simple case, we pick a vertical inducing field of magnitude 50,000nT. \n",
"# From old convention, field orientation is given as an azimuth from North \n",
"# (positive clockwise) and dip from the horizontal (positive downward).\n",
"H0 = np.array(([90.,0.,50000.]))\n",
"\n",
"# Assume all induced so the magnetization M is also in the same direction\n",
"M = np.array([90,0])\n",
"\n",
"# Create a mesh\n",
"dx = 5.\n",
"\n",
"hxind = [(dx,5,-1.3), (dx, 20), (dx,5,1.3)]\n",
"hyind = [(dx,5,-1.3), (dx, 20), (dx,5,1.3)]\n",
"hzind = [(dx,5,-1.3),(5, 10)]\n",
"\n",
"mesh = Mesh.TensorMesh([hxind, hyind, hzind], 'CCC')\n",
"\n",
"# Get index of the center\n",
"midx = int(mesh.nCx/2)\n",
"midy = int(mesh.nCy/2)\n",
"\n",
"# Assume flat topo for now, so all cells are active\n",
"nC = mesh.nC \n",
"actv = np.ones(nC)\n",
"\n",
"\n",
"# Create and array of observation points\n",
"xr = np.linspace(-20., 20., 20)\n",
"yr = np.linspace(-20., 20., 20)\n",
"X, Y = np.meshgrid(xr, yr)\n",
"Z = np.ones(X.size)*(mesh.vectorNz[-1]+dx) # Let just put the observation flat\n",
"\n",
"rxLoc = np.c_[Utils.mkvc(X.T), Utils.mkvc(Y.T), Utils.mkvc(Z.T)]\n"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"59.390075000000003"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Z.max()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have all our spatial components, we can create our linear system. For a single location and single component of the data, the system would looks like this:\n",
"\n",
"$$ b_x =\n",
"\t\\begin{bmatrix}\n",
"\tT_{xx}^1 &... &T_{xx}^{nc} & T_{xy}^1 & ... & T_{xy}^{nc} & T_{xz}^1 & ... & T_{xz}^{nc}\\\\\n",
"\t \\end{bmatrix}\n",
"\t \\begin{bmatrix}\n",
"\t\t\\mathbf{M}_x \\\\ \\mathbf{M}_y \\\\ \\mathbf{M}_z\n",
"\t\\end{bmatrix} \\\\ $$\n",
"\n",
"where each of $T_{xx},\\;T_{xy},\\;T_{xz}$ are [nc x 1] long. For the $y$ and $z$ component, we need the two other rows of the tensor $\\mathbf{T}$.\n",
"In our simple induced case, the magnetization direction $\\mathbf{M_x,\\;M_y\\;,Mz}$ are known and assumed to be constant everywhere, so we can reduce the size of the system such that: \n",
"\n",
"$$ \\vec{\\mathbf{d}}_{\\text{pred}} = (\\mathbf{T\\cdot M})\\; \\kappa$$\n",
"\n",
"\n",
"\n",
"In most geophysical surveys, we are not collecting all three components, but rather the magnitude of the field, or $Total\\;Magnetic\\;Intensity$ (TMI) data.\n",
"Because the inducing field is really large, we will assume that the anomalous fields are parallel to $H_0$:\n",
"\n",
"$$ d^{TMI} = \\hat H_0 \\cdot \\vec d$$\n",
"\n",
"We then end up with a much smaller system:\n",
"\n",
"$$ d^{TMI} = \\mathbf{F\\; \\kappa}$$\n",
"\n",
"where $\\mathbf{F} \\in \\mathbb{R}^{nd \\times nc}$ is our $forward$ operator."
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Begin calculation of forward operator: tmi\n",
"Done 0.0 %\n",
"Done 10.0 %\n",
"Done 20.0 %\n",
"Done 30.0 %\n",
"Done 40.0 %\n",
"Done 50.0 %\n",
"Done 60.0 %\n",
"Done 70.0 %\n",
"Done 80.0 %\n",
"Done 90.0 %\n",
"Done 100% ...forward operator completed!!\n",
"\n"
]
}
],
"source": [
"# First, convert the magnetization direction to Cartesian\n",
"mi = np.ones(mesh.nC) * M[0]\n",
"md = np.ones(mesh.nC) * M[1]\n",
"M_xyz = PF.Magnetics.dipazm_2_xyz( mi , md ) # Ouputs an nc x 3 array\n",
"\n",
"# Create the forward model operator\n",
"F = PF.Magnetics.Intrgl_Fwr_Op(mesh,H0,M_xyz,rxLoc,actv,'tmi')"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Begin calculation of distance weighting for R= 3.0\n",
"Done 0.0 %\n",
"Done 10.0 %\n",
"Done 20.0 %\n",
"Done 30.0 %\n",
"Done 40.0 %\n",
"Done 50.0 %\n",
"Done 60.0 %\n",
"Done 70.0 %\n",
"Done 80.0 %\n",
"Done 90.0 %\n",
"Done 100% ...distance weighting completed!!\n",
"\n"
]
},
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\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 = $('<div/>');\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",
" 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",
" fig.waiting = false;\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" this.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",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\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 = $('<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 = $('<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 rubberband = $('<canvas/>');\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);\n",
" canvas.attr('height', height);\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 = $('<div/>')\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 = $('<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 = $('<span/>');\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 = $('<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 = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\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",
" '<option/>', {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 = $('<span class=\"mpl-message\"/>');\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'];\n",
" var y0 = fig.canvas.height - msg['y0'];\n",
" var x1 = msg['x1'];\n",
" var y1 = fig.canvas.height - msg['y1'];\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, fig.canvas.height);\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",
" 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",
" 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",
"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;\n",
" var y = canvas_pos.y;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step});\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",
" 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 overriden (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(\"<div id='\" + id + \"'></div>\");\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",
" // 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('<img src=\"' + dataURL + '\">');\n",
" fig.send_message('closing', {});\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 dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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 = $('<div/>')\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 = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></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 = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-danger\" href=\"#\" title=\"Close figure\"><i class=\"fa fa-times icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Close figure', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\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",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\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<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4nO3de7Ssd0He8Sc5sSQkIQairhIiUbGYQhIukhCCeATEWzAVqbYSyLHKskEkZImCismJECDVQKWWtiCSVUhNbaPI4pZEEsAbbRdasAtEMBCSQLiFxFy4CGf6x+/d68yZ875z3ne/e+b9nezPZ61nmT179j6z5/p1ZvYmAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADhY7UqyZ253Jfl4kj9M8i9bjn9ic7xnDfg3dia5KMkhmz+Z93o7U87XJ2zia3c3X3voAY73iOa4x7Z8bk+SCzfxbwMAB6FdKQ/+T0tyWpLvSXJOkt9P8rUk1yY5fO74/6Q53gMG/Bu70y9QtrOjU87XozfxtbuTfD0HPn93pVwO397yudOSPHAT/zYAcBDale4oeFpKWLx65L+xu/k3doz8PrTbnX6Bvas53nes+PQAAJXble4ATMpLwV9KckTz8YnN8c+dO85jUp4p/HySe5L8fZL/2Hxud/Z9iXljGy5O8ldJ7kjyuSTvSnL6wmnY2XzNU5P8TnO8zyV5Y5JjFo57WJIXJvlQc7o/m+QdSR46d5xvSvKfk9yc5MtJPpzk2R0//4YdSW5P8mtzh53cnK4/XTjuzUn+3dzH901yacpL619JckOSX82+L4lv/IzzLwHvSPLSJJ9OcnfKefNdzfEumjve7uawhyR5W5I7k3wiya/P/Ru70n45fGvz+c18zw2Pas6De5J8MsmvpFyuewIAVGlXlgfgs5vPP775+MTs+x7Ao5LcluTtSX4kJWDOTQmsJDk+yeuarzkj5aXG0+a+/+823+t7k/xwykvPX0ny8Lnj7Gy+/oYkv53kyUmemxIcly+c3v+Z5B9TAuwpSc5O8lvN90iS+yX5SErM/EySJzbH/VrzPZf545QI23B+Sph9OSXykhKae5L8QPPxYSlx9Pkkz0vyfSnx96XmdC3+jPMB+NKUZ2BfnuRJKWH7d9n//Xq7m8P+JskFzc/075vDdjXHOS7Jb2Tfl/tPS3lJP5v8nhvf94vN8Z6ecn6/O8mNzWkHACq0K8sD8Aeaz2/8QsiJ2TcAv7v5+OH7feVeu9PvJcodKcH0tymxsWFn8/VvWDj+f0gJqQ1PbI63LOR+vfmaxZdBX5vyrOKy03hBSnR+Q/Pxm5O8JuUXZ57SHPZvk3w1e4Pwmdk3oDf8akroHtd8vDP7BuCxzff9nZbT0BVr5y4c94NJrp77eFe6L+vNfs+XpZyf8+8fPDzJZyIAAaBau7I8AH+w+fzTm49PzL4BeEzKM4B/keQZSU5o+R670x2AT05yfcozZPMvTb597jg7F07Dhp9rDv/m5uNXpETHfTp+liT58+bf24jNjT09Bw7ZU5vjfG/zs9yW8ozXO5t/O0n+oPk3NlyR8tLv4r/3mOZ7nbXwM24E4BPm/q15J6Q71o5bOO7vp7y8vWFXhgfggb7ndSnn56Lfi5eAAaBau9LvJeAzm49PzP5/BubUlJde78jelw2fNvf53WkPwEelPFv2x0l+NCWKHp3kr1PCYsPO5uuf2HHaN97H9rqUZ/GW+Wja3wu3JyUeF4Nr3iHN97+4OZ1fSwngFyb5X81xPpvkJXNfc+0B/r2NZ9g2fsaNAPzJ5uOTFk7DfdIda4vn7+Up8blhV4YH4IG+54eT/PeW7/fyCEAAqNauLA/AN6e8z23jT8GcmO6/A3hoyi9wvDkljh7WHL477TFxScrLnIu/HXxjNheAL0+JqsPT7S9T3pP3qI4dteRrkxK6f5rkBUn+T3PYaSnvOzyz5XT+fsovxXT9ext/TmfjZzzQM4DfmroC8F0p7/lb5BlAAKjYrnRHwY+nBNVlc4edmAP/IehTmuP8ePPxrzQfL8bVq5L8Q/YNwI338W0mADeOt+w9gBelvNz8TUuOs8xzUt679+6U3+xN9v6G8LUp74ebfwn63JRnOed/C7nNzuz/HsA7s/e3qTf8YobF2g1zH//rdL/MvdkAvCTl/Dh+7rAj4j2AAFC1Xdkba49NCZBzklyZ8izeO7L3N0WT/QPwrCRvSfLTKb/helaSa1KCaOMXA340e//MyOkpvziSlF+c2JPy51yelOS8JLckuSn7vq9sZ/oFYJL8j5TgujTl/YtPTfKb2ftM2v1S/kTM36a8h3DjNL8g5ZnLAzkpe1/C/cG5w9/SHLb4frjDUmLx5pRf4HhSkh9KidSrs/fP62z8jE+Y+9qXpETUK5J8f8pLzR9pjvfiuePtTr9Y2wjz/5TyG9nfnb2/0LLZAHxAynsh/1/KLwqdneQ9Kc/ifi0AQJXOzb7vS7sn5U+kXJW9z+DNOzH7BuA/S4nFG7L37+69NeX9fBsOTflt1o1nheafGXpu87X3pLyP7okpEbX4DODX0x6AX8++Abgj5TdsP5LyzNTG6fnOueN8Y5JXNv/uV5rT9Z6UP9PSx6ebr7vv3GHPb07LhS3Hv09K/H445U/GfCHlZ70we5/93PgZ5wPw0Oz9O4D3pJwnZ6Sc/78wd7yL0v6/BPKG7PsMYJp/8+aUOJs/7xYDcMj3fGTKy+JfSon3X0v5Le7bAgDAaBu/rXzmgY44oR1JPpDykjgAAAOclvLHm38k5aXjX055Vu3Pl33RBF6S8kzyzpRnjd+R8uzhDyz5GgAAWvzz7P0biV9NeXn1Ndn/f/5uahcn+VjKy9R3p/xNyKdOeooAAAAAAAC2xCEpfwvrfmZmZnZQ7fiUx3EY7PgkMzMzMzsoN/8HzaG3+yWZJZfOkldv0XZu4fea35UT711r2Ee3eHdsfkf+/CzH39FvTx6w3cN2+E2f6L3fvuMnB+2O56f33pX+u3jgXrTCPWZF33fozzjk/BtyuQy9zIdcn4ZeVwfdDvreto7fuE3+/CZvy1t9n7KO+8Gp7+tX8fi1isfHS2fl8Tv3m7gjOEg1AfjqWfK6LdqTt/B7ze8tE+99a9itW7zZ5nfUBbOcMOu3HxqwVwzbEXfc1nuvnT1z0GYvTO+9L/136cDtXuEeu6LvO/RnHHL+Dblchl7mQ65PQ6+rg24HfW9bJ2zcJi/Y5G15q+9T1nE/OPV9/Soev1bx+PjqWQQgIwhAAdg+ASgABaAAFIBbPAFIPVYQgOev6IYz9Z3CNgvA494pAO8FAXiOALyXBOA7N3lbFoB1BeBWPj4KQMZZQQCualPfKWyzABzyACUAqw3AVU0ArjsANzsBWFcAbuUEIOMIQAHYPgEoAAWgABSAFU8AMo4AFIDtE4ACUAAKQAFY8QQg4whAAdg+ASgABaAAFIAVTwAyjgAUgO0TgAJQAApAAVjxBCDjCEAB2D4BKAAFoAAUgBVPADKOABSA7ROAAlAACkABWPEEIOMcRAF41cRbxx3fTVu8EQ8cxw7YGQN23sBd1X8Pmn100J4zu6z3Lp/9RO9dNztj0P5y9oje+9+zh69sQ07H0J9xyPk35HIZepkPuT4Nvq4OuR0MuX2NCsCtvk9Zx/3g1Pf1Uz/WCUDWQwAKwPYJQAEoAAWgAKx4ApBxBKAAbJ8AFIACUAAKwIonABlHAArA9glAASgABaAArHgCkHEEoABsnwAUgAJQAArAiicAGUcACsD2CUABKAAFoACseAKQcQSgAGyfABSAAlAACsCKJwAZRwAKwPYJQAEoAAWgAKx4ApBxBKAAbJ8AFIACUAAKwIonABlHAArA9glAASgABaAArHgCkHEEoABsnwAUgAJQAArAiicAGUcA9t6frWEf3+J9dfM7bNZ/3zZgPzRwLxiwKwfuI/33zbMbe++k2V8NWv/s+svZabP3rGxDTsfQn3HI+Tfkchl8mQ+5Pg29rg65HQy5fY25HW/5fco67genvq+f+rFOALIeAlAAtk8ACkABKAAFYMUTgIwjAAVg+wSgABSAAlAAVjwByDgCUAC2TwAKQAEoAAVgxROAJH+UZE+SJ80ddkqS9ya5K8ktSS7q+FoBKADbJwAFoAAUgAKw4gnA7e5ZSd6ZEoBPbA47Osmnk1yS5D5JHp7kpiTPb/l6ASgA2ycABaAAFIACsOIJwO3sQUluTHJC9g3Ac5N8Jsmhc8d9XpKPtXwPASgA2ycABaAAFIACsOIJwO3qkCTXJPnZ5uP5AHxVkncsHP9xzXGOWjhcAArA9glAASgABaAArHgCcLt6TpKr5z6eD8DXJ7ly4fgnNcd54MLhAlAAtk8ACkABKAAFYMUTgNvRdyT5VJJvnTts/pdAXpnyvsB5ngEUgMMmAAWgABSAArDiCcDtaFeSryT53Nz2JLk9yX9J+cWQzyTZMfc15yf5aMv3agJw5yx5crPzK7hiC0ABOBOAAlAACsAJNvVj3bKdP9v7WL1zFgG47RyR8lLuxo5PCcCfSPKNKc/yfSrJS5McnuTkJJ+M3wIeOQEoAAWgAFwyAbhFm/q+furHur7zDCDF/HsAkxJ9701yd8qfhLmw4+uaALxslrym8l058a5fwz60xfvCiM367+gBO2nghjwA/+zAXTJgrx+wqwbubQN29Qo35HQM/RmHnH9DLpehl/mQ69PQ6+qQ28GQ29eo2/FW36dcv4ZNfV8/9WNd3102iwBkBAEoADs24AFKAApAASgABeCaJwAZRwAKwI4NeIASgAJQAApAAbjmCUDGEYACsGMDHqAEoAAUgAJQAK55ApBxBKAA7NiABygBKAAFoAAUgGueAGQcASgAOzbgAUoACkABKAAF4JonABlHAArAjg14gBKAAlAACkABuOYJQMYRgAKwYwMeoASgABSAAlAArnkCkHEEoADs2IAHKAEoAAWgABSAa54AZBwBKAA7NuABSgAKQAEoAAXgmicAGUcACsCODXiAEoACUAAKQAG45glAxhGAvXftGvaBLd5NI3bPgA14MDt24B4yYGcM3FMH7JkDdt7AXTBgQ/63bIduyOkY+jMOOf+GXC5DL/Mh16eh19VBUTfk9jXmdrzV9ynruB+c+r5+6sc6Ach6CEAB2DEBKACXTAAKQAE48QQg4whAAdgxASgAl0wACkABOPEEIOMIQAHYMQEoAJdMAApAATjxBCDjCEAB2DEBKACXTAAKQAE48QQg4whAAdgxASgAl0wACkABOPEEIOMIQAHYMQEoAJdMAApAATjxBCDjCEAB2DEBKACXTAAKQAE48QQg4whAAdgxASgAl0wACkABOPEEIOMIQAHYMQEoAJdMAApAATjxBCDjCEAB2DEBKACXTAAKQAE48QQg4xxEAfimiff2Nex9W7y/G7FbB2zIg9nAB8ojBuyfDtyQGHjkgA2Nku8ZsO9b4YacjqE/45Dzb8jlMvQyH3J9GnpdHXQ7GHL7GnM73ur7lHXcD059Xz/1Y13fCUDGEYACsGMCUAAumQBs2ZDbgQAUgGMnABlHAArAjglAAbhkArBlQ24HAlAAjp0AZBwBKAA7JgAF4JIJwJYNuR0IQAE4dgKQcQSgAOyYABSASyYAWzbkdiAABeDYCUDGEYACsGMCUAAumQBs2ZDbgQAUgGMnABlHAArAjglAAbhkArBlQ24HAlAAjp0AZBwBKAA7JgAF4JIJwJYNuR0IQAE4dgKQcQSgAOyYABSASyYAWzbkdiAABeDYCUDGEYACsGMCUAAumQBs2ZDbgQAUgGMnABlHAArAjglAAbhkArBlQ24HAlAAjp0AZBwBKAA7JgAF4JIJwJYNuR0IQAE4dgKQcZoAvHSWvLryTX2n8JY17Pot3vtHrIZY3EQwrioujx2w4wZuSMCcsMINOR1Df8Yh599KI23Ihl5XVxV1Y27H12/x1nE/OPV9/dSPdX136SwCkBEEoADsmAAUgEsmAFsmAAXgOicAGUcACsCOCUABuGQCsGUCUACucwKQcQSgAOyYABSASyYAWyYABeA6JwC3o1ck+WCSO5J8Ksl/S/KgheOckuS9Se5KckuSizq+lwAUgB0TgAJwyQRgywSgAFznBOB29LIkj0xyWJJjklyR5K/nPn90kk8nuSTJfZI8PMlNSZ7f8r0EoADsmAAUgEsmAFsmAAXgOicASR6RZE9KDCbJuUk+k+TQueM8L8nHWr5WAArAjglAAbhkArBlAlAArnMCkOSXk9ww9/Grkrxj4TiPS4nEoxYOF4ACsGMCUAAumQBsmQAUgOucANzunpzyPr+nzB32+iRXLhzvpJQAfODC4QJQAHZMAArAJROALROAAnCdE4Db2VlJvpjk7IXDX5nknQuHHeAZwMfPkp3Nzqvgit22qe8U1nHHt9V31gJQAA6YAFyYABSAte282d7H6sfPIgC3pWckuT3lGcBFz0p5D+COucPOT/LRluN6BlAAdkwACsAlE4AtE4ACcJ3zDOB29NwktyU5s+PzR6X8eZiXJjk8yclJPpmD/reA3zDxrlrDrt3i/dmIfWDAhjyY3TRwXxiwiuJyyA45CDf1ebbpSBtyfRp6XR1yOxhy+xpzO97q+5R13A+OuZ/eik39WCcA6bYnyVeS3Lmw+SA8OeXvAN6d8idhLuz4XgJQAHZMAArAJZv6PBOAPScABSC0E4ACsGMCUAAu2dTnmQDsOQEoAKGdABSAHROAAnDJpj7PBGDPCUABCO0EoADsmAAUgEs29XkmAHtOAApAaCcABWDHBKAAXLKpzzMB2HMCUABCOwEoADsmAAXgkk19ngnAnhOAAhDaCUAB2DEBKACXbOrzTAD2nAAUgNBOAArAjglAAbhkU59nArDnBKAAhHYCUAB2TAAKwCWb+jwTgD0nAAUgtBOAArBjAlAALtnU55kA7DkBKAChnQAUgB0TgAJwyaY+zwRgzwlAAQjtDqIAfN3Eu3INe8sW7/oRG/Ig8/4B+9DAfXzAVhmXdwzY0CgZsq+ucKs83UPOv1VG2pDr09Dr6pDbwZDb15jb8Vbfp6zjfnDq+/qpH+sEIOshAAVgxwSgABSAAlAA1jsByDgCUAB2TAAKQAEoAAVgvROAjCMABWDHBKAAFIACUADWOwHIOAJQAHZMAApAASgABWC9E4CMIwAFYMcEoAAUgAJQANY7Acg4AlAAdkwACkABKAAFYL0TgIwjAAVgxwSgABSAAlAA1jsByDgCUAB2TAAKQAEoAAVgvROAjCMABWDHBKAAFIACUADWOwHIOAJQAHZMAApAASgABWC9E4CM0wTgJbPksso39Z3Cm9awq7Z4bx+xVcXi+wbuAwM29AH77wZslSG6HTbk/BtyuQy9zIdcn4ZeV1cVdWNux1t9n7KO+8Gp7+unfqzru0tmEYCMIAAFYMcEoAAUgAJQANY7Acg4AlAAdkwACkABKAAFYL0TgIwjAAVgxwSgABSAAlAA1jsByDgCUAB2TAAKQAEoAAVgvROAjCMABWDHBKAAFIACUADWOwHIOAJQAHZMAApAASgABWC9E4CMIwAFYMcEoAAUgAJQANY7Acg4AlAAdkwACkABKAAFYL0TgIwjAAVgxwSgABSAAlAA1jsByDgCUAB2TAAKQAEoAAVgvROAjHMQBeBrJt4b1rArt3jrisdrB2zIA9+q4/L9K9qQyNguW9V5XUukXT8bdjtYV8Rt9X3KOu4Hp76vn/qxru8EIOMIQAHYMQEoAAWgABSA9U4AMo4AFIAdE4ACUAAKQAFY7wQg4whAAdgxASgABaAAFID1TgAyjgAUgB0TgAJQAApAAVjvBCDLXZzkliR3JXlPkoctfF4ACsCOCUABKAAFoACsdwKQbr+U5JMp0Xd4kpcluTnJkXPHEYACsGMCUAAKQAEoAOudAKzFRdn/2bUkedG6T8icjyf5hbmPdyT5TJJz5g4TgAKwYwJQAApAASgA650ArMXXk3w+yZkLh985wWlJkmOS7Ely+sLhVye5bO5jASgAOyYABaAAFIACsN4JwFrcmfLM2h1Jnrpw+BROSAnAhy4cfmWS1859LAAFYMcEoAAUgAJQANY7AViLjdD74SS3J/nphcPXresZwGuS/Nbcx00AnjlLntDs2RVcsds29Z2CABSAfTd1bNW4VZ3XAlAAbqcAfPZs72P1mbMIwCrMh97pST6b8v6/qQIwSW7Ivu8BPCzldD1j7jDPAArAjglAASgABaAArHeeAazFYuh9V5IbU56Fm8oLmtPwsCRHJHl5kpuS3HfuOAJQAHZMAApAASgABWC9E4C1eGTLYccn2bXm07Ho4iSfTnJ3knfH3wEcMQEoAPtu6tiqcas6rwWgABSAa60K7jUEoADsmAAUgAJQAArAeicAGacJwItnyaWV79UT73Vr2Fbfkb5pxFYVmm8ZuFWF6NANjQHb/FZ5OQ65Pg29rq4qzMbcjrf6PmUd94NT39dP/VjXdxfPIgAZQQAKwI4JQAE41QSgABSAApBVE4ACsGMCUABONQEoAAWgAGTVBKAA7JgAFIBTTQAKQAEoAFk1ASgAOyYABeBUE4ACUAAKQFZNAArAjglAATjVBKAAFIACkFUTgAKwYwJQAE41ASgABaAAZNUEoADsmAAUgFNNAApAASgAWTUBKAA7JgAF4FQTgAJQAApAVk0ACsCOCUABONUEoAAUgAKQVROAArBjAlAATjUBKAAFoABk1QSgAOyYABSAU00ACkABKABZNQEoADsmAAXgVBOAAlAACkBWTQAKwI4JQAE41QSgABSAApBVE4ACsGMCUABONQEoAAWgAGTVBKAA7JgAFIBTTQAKQAEoAFk1ASgAOyYABeBUE4ACUAAKQFZNAArAjglAATjVBKAAFIACkFUTgAKwYwJQAE41ASgABaAAZNUEoADsmAAUgFNNAApAASgAWbUmAF88S15a+S6beOu443nNFm9dMTrmAWorQ3Tohjxgr3JDQ6OGTX2ebSakhm6V1+t1RddW36es435w6vv6qR/r+u7FswhARhCAArBjAlAACkABKADrnQBkHAEoADsmAAWgABSAArDeCUDGEYACsGMCUAAKQAEoAOudAGQcASgAOyYABaAAFIACsN4JQMYRgAKwYwJQAApAASgA650AZBwBKAA7JgAFoAAUgAKw3glAxhGAArBjAlAACkABKADrnQBkHAEoADsmAAWgABSAArDeCUDGEYACsGMCUAAKQAEoAOudAGQcASgAOyYABaAAFIACsN4JQMYRgAKwYwJQAApAASgA650AZBwBKAA7JgAFoAAUgAKw3glAxhGAArBjAlAACkABKADrnQBkHAEoADsmAAWgABSAArDeCcDt6FlJ/izJF5J8Psn1SR63cJxjk1yR5PYkX0zypiTHtHwvASgAOyYABaAAFIACsN4JwO3oOUm+P8mRSXYkOT/J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\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Generate a distance weighting\n",
"wr = PF.Magnetics.get_dist_wgt(mesh,rxLoc,3.,np.min(mesh.hx)/4)\n",
"wrMap = PF.BaseMag.WeightMap(mesh, wr)\n",
"\n",
"plt.figure()\n",
"ax = subplot()\n",
"mesh.plotSlice(wr, ax = ax, normal = 'Y', ind=midx)\n",
"title('Distance weighting')\n",
"xlabel('x');ylabel('z')\n",
"plt.gca().set_aspect('equal', adjustable='box')"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\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 = $('<div/>');\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",
" 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",
" fig.waiting = false;\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" this.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",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\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 = $('<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 = $('<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 rubberband = $('<canvas/>');\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);\n",
" canvas.attr('height', height);\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 = $('<div/>')\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 = $('<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 = $('<span/>');\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 = $('<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 = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\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",
" '<option/>', {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 = $('<span class=\"mpl-message\"/>');\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'];\n",
" var y0 = fig.canvas.height - msg['y0'];\n",
" var x1 = msg['x1'];\n",
" var y1 = fig.canvas.height - msg['y1'];\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, fig.canvas.height);\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",
" 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",
" 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",
"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;\n",
" var y = canvas_pos.y;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step});\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",
" 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 overriden (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(\"<div id='\" + id + \"'></div>\");\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",
" // 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('<img src=\"' + dataURL + '\">');\n",
" fig.send_message('closing', {});\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 dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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 = $('<div/>')\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 = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></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 = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-danger\" href=\"#\" title=\"Close figure\"><i class=\"fa fa-times icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Close figure', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\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",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\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<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# We can now create a susceptibility model and generate data\n",
"# Lets start with a simple block in half-space\n",
"model = np.zeros((mesh.nCx,mesh.nCy,mesh.nCz))\n",
"model[(midx-2):(midx+2),(midy-2):(midy+2),-6:-2] = 0.01\n",
"model = mkvc(model)\n",
"\n",
"# Create a few models\n",
"figure()\n",
"ax = subplot(211)\n",
"mesh.plotSlice(model, ax = ax, normal = 'Y', ind=midx, grid=True)\n",
"title('A simple block model.')\n",
"xlabel('x');ylabel('z')\n",
"plt.gca().set_aspect('equal', adjustable='box')\n",
"\n",
"# We can now generate data\n",
"data = F.dot(model) #: this is matrix multiplication!!\n",
"subplot(212)\n",
"imshow(data.reshape(X.shape), extent=[xr.min(), xr.max(), yr.min(), yr.max()])\n",
"title('Predicted data.')\n",
"plt.gca().set_aspect('equal', adjustable='box')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"class LinearSurvey(Survey.BaseSurvey):\n",
" def projectFields(self, u):\n",
" return u\n",
" \n",
" @property\n",
" def nD(self):\n",
" return self.prob.G.shape[1]\n",
"\n",
"class LinearProblem(Problem.BaseProblem):\n",
" \n",
" surveyPair = LinearSurvey\n",
"\n",
" def __init__(self, mesh, G, **kwargs):\n",
" Problem.BaseProblem.__init__(self, mesh, **kwargs)\n",
" self.G = G\n",
"\n",
" def fields(self, m):\n",
" return self.G.dot(m)\n",
"\n",
" def Jvec(self, m, v, u=None):\n",
" return self.G.dot(v)\n",
"\n",
" def Jtvec(self, m, v, u=None):\n",
" return self.G.T.dot(v)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Once we have our problem, we can use the inversion tools in SimPEG to run our inversion:"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"prob = LinearProblem(mesh, F)\n",
"prob.solverOpts['accuracyTol'] = 1e-4\n",
"survey = LinearSurvey()\n",
"survey.pair(prob)\n",
"#survey.makeSyntheticData(data, std=0.01)\n",
"survey.dobs=data\n",
"survey.mtrue = model\n",
"\n",
"\n",
"reg = Regularization.Tikhonov(mesh, mapping=wrMap)\n",
"dmis = DataMisfit.l2_DataMisfit(survey)\n",
"dmis.Wd = np.ones(len(data))*1.\n",
"opt = Optimization.ProjectedGNCG(maxIter=6,lower=0.,upper=1.)\n",
"# opt = Optimization.InexactGaussNewton(maxIter=6)\n",
"invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta = 1e+4)\n",
"beta = Directives.BetaSchedule()\n",
"#betaest = Directives.BetaEstimate_ByEig()\n",
"target = Directives.TargetMisfit()\n",
"inv = Inversion.BaseInversion(invProb, directiveList=[beta, target])\n",
"reg.alpha_s =0.0025\n",
"m0 = np.ones_like(survey.mtrue)*1e-4"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Explore the documentation to see what other parameters you can tweak in the different elements of the inversion, but let's check how well we recovered the model just by using the default parameters:"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SimPEG.InvProblem will set Regularization.mref to m0.\n",
"SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n",
" ***Done using same solver as the problem***\n",
"=============================== Projected GNCG ===============================\n",
" # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n",
"-----------------------------------------------------------------------------\n",
" 0 1.00e+04 5.58e+04 2.22e-07 5.58e+04 8.41e+01 0 \n",
"------------------------- STOP! -------------------------\n",
"1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 5.5847e+03\n",
"1 : |xc-x_last| = 4.1645e-02 <= tolX*(1+|x0|) = 1.0116e-01\n",
"0 : |proj(x-g)-x| = 8.4094e+01 <= tolG = 1.0000e-01\n",
"0 : |proj(x-g)-x| = 8.4094e+01 <= 1e3*eps = 1.0000e-02\n",
"0 : maxIter = 6 <= iter = 1\n",
"------------------------- DONE! -------------------------\n"
]
}
],
"source": [
"mrec = inv.run(m0)"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\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 = $('<div/>');\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",
" 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",
" fig.waiting = false;\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" this.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",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\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 = $('<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 = $('<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 rubberband = $('<canvas/>');\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);\n",
" canvas.attr('height', height);\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 = $('<div/>')\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 = $('<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 = $('<span/>');\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 = $('<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 = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\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",
" '<option/>', {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 = $('<span class=\"mpl-message\"/>');\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'];\n",
" var y0 = fig.canvas.height - msg['y0'];\n",
" var x1 = msg['x1'];\n",
" var y1 = fig.canvas.height - msg['y1'];\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, fig.canvas.height);\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",
" 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",
" 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",
"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;\n",
" var y = canvas_pos.y;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step});\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",
" 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 overriden (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(\"<div id='\" + id + \"'></div>\");\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",
" // 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('<img src=\"' + dataURL + '\">');\n",
" fig.send_message('closing', {});\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 dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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 = $('<div/>')\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 = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></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 = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-danger\" href=\"#\" title=\"Close figure\"><i class=\"fa fa-times icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Close figure', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\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",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\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<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar instance at 0x000000002CCA78C8>"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Here is the recovered susceptibility model\n",
"plt.figure()\n",
"ax = subplot(211)\n",
"mesh.plotSlice(mrec, ax = ax, normal = 'Y', ind=10)\n",
"title('Recovered model.')\n",
"xlabel('x');ylabel('y')\n",
"plt.gca().set_aspect('equal', adjustable='box')\n",
"\n",
"# Plot predicted data and residual\n",
"pred = F.dot(mrec) #: this is matrix multiplication!!\n",
"\n",
"subplot(234)\n",
"imshow(data.reshape(X.shape))\n",
"title('Predicted data.')\n",
"plt.gca().set_aspect('equal', adjustable='box')\n",
"colorbar()\n",
"\n",
"subplot(235)\n",
"imshow(pred.reshape(X.shape))\n",
"title('Predicted data.')\n",
"plt.gca().set_aspect('equal', adjustable='box')\n",
"colorbar()\n",
"\n",
"subplot(236)\n",
"imshow(data.reshape(X.shape) - pred.reshape(X.shape))\n",
"title('Residual data.')\n",
"plt.gca().set_aspect('equal', adjustable='box')\n",
"colorbar()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Hopefully you now have an idea of how to create a Problem class in SimPEG, and how this can be used with the other tools available."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"reg.W"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"class MagProblem(object):\n",
" \n",
" def __init__(self, mesh, **kwargs):\n",
" self.mesh = mesh\n",
" Utils.setKwargs(self, **kwargs)\n",
" \n",
" @property\n",
" def dtype(self):\n",
" return getattr(self, '_dtype', 'tmi')\n",
" @dtype.setter\n",
" def dtype(self, val):\n",
" assert type(val) is str, 'dtype must be a string'\n",
" assert val in ['tmi', 'xyz'], 'dtype must be either \"tmi\" or \"xyz\"'\n",
" self._dtype = val\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"p = MagProblem(M, dtype='xyz')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"p.dtype"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"p.dtype"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"d.height = 4\n",
"print d.height"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"M = Mesh.TensorMesh([5,5])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"M._cellGrad"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}