Files
simpeg/simpegPF/notebooks/SimPEG Tutorial - MAG Linear Problem.ipynb
T
D Fournier bb9624f4ff Implement sparse norm on mag problem.
Add Nutcracker example to folder.
2016-01-31 15:33:57 -08:00

2849 lines
364 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": 3,
"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": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"59.390075000000003"
]
},
"execution_count": 4,
"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": 5,
"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": 6,
"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,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AazFYuh9V5IbU56Fm8oLmtPwsCRHJHl5kpuS3HfuOAJQAHZMAApAASgABWC9E4C1eGTLYccn2bXm07Ho4iSfTnJ3knfH3wEcMQEoAPtu6tiqcas6rwWgABSAa60K7jUEoADsmAAUgAJQAArAeicAGacJwItnyaWV79UT73Vr2Fbfkb5pxFYVmm8ZuFWF6NANjQHb/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,actv,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": 39,
"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 0x00000000204FF088>"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"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",
"plt.colorbar()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"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": 70,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"beta_in = 1e+4\n",
"\n",
"prob = PF.Magnetics.MagneticIntegral(mesh, F)\n",
"prob.solverOpts['accuracyTol'] = 1e-4\n",
"survey = Survey.LinearSurvey()\n",
"survey.pair(prob)\n",
"\n",
"survey.dobs=data\n",
"\n",
"# Create pre-conditioner \n",
"diagA = np.sum(F**2.,axis=0) + beta_in*np.ones(nC)\n",
"PC = sp.spdiags(diagA**-1., 0, nC, nC);\n",
"\n",
"reg = Regularization.Simple(mesh, mapping=wrMap)\n",
"reg.mref = np.zeros(mesh.nC)\n",
"reg.alpha_s = 1.\n",
"\n",
"\n",
"dmis = DataMisfit.l2_DataMisfit(survey)\n",
"dmis.Wd = np.ones(F.shape[0])\n",
"opt = Optimization.ProjectedGNCG(maxIter=10,lower=0.,upper=1.)\n",
"# opt = Optimization.InexactGaussNewton(maxIter=6)\n",
"opt.approxHinv = PC\n",
"\n",
"# betaest = Directives.BetaEstimate_ByEig()\n",
"\n",
"invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta = beta_in)\n",
"beta = Directives.BetaSchedule(coolingFactor=2, coolingRate=1)\n",
"\n",
"target = Directives.TargetMisfit()\n",
"\n",
"inv = Inversion.BaseInversion(invProb, directiveList=[beta, target])\n",
"\n",
"m0 = np.ones(mesh.nC) * 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": 71,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n",
" ***Done using same Solver and solverOpts 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.30e-04 5.58e+04 8.41e+01 0 \n",
" 1 5.00e+03 3.97e+03 9.46e-03 4.02e+03 6.95e+01 0 \n",
" 2 2.50e+03 3.63e+02 2.51e-02 4.26e+02 7.78e+01 0 Skip BFGS \n",
"------------------------- STOP! -------------------------\n",
"1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 5.5849e+03\n",
"1 : |xc-x_last| = 8.2961e-03 <= tolX*(1+|x0|) = 1.0116e-01\n",
"0 : |proj(x-g)-x| = 7.7747e+01 <= tolG = 1.0000e-01\n",
"0 : |proj(x-g)-x| = 7.7747e+01 <= 1e3*eps = 1.0000e-02\n",
"0 : maxIter = 10 <= iter = 3\n",
"------------------------- DONE! -------------------------\n"
]
}
],
"source": [
"mrec = inv.run(m0)"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\dominiquef.MIRAGEOSCIENCE\\AppData\\Local\\Continuum\\Anaconda\\lib\\site-packages\\matplotlib\\pyplot.py:424: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).\n",
" max_open_warning, RuntimeWarning)\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,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\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar instance at 0x00000000284DCBC8>"
]
},
"execution_count": 72,
"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=midx)\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": [
"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
}