Skip to content

Instantly share code, notes, and snippets.

@jhitesma
Created March 15, 2017 18:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jhitesma/8165612464415d7ed93139002d99c943 to your computer and use it in GitHub Desktop.
Save jhitesma/8165612464415d7ed93139002d99c943 to your computer and use it in GitHub Desktop.
hex tune notebook
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div class=\"bk-root\">\n",
" <a href=\"http://bokeh.pydata.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n",
" <span id=\"e293e8e3-f0a1-4207-ac5b-2194a2ca80ec\">Loading BokehJS ...</span>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"\n",
"(function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
"\n",
" var force = true;\n",
"\n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
"\n",
"\n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 5000;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
"\n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
"\n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"e293e8e3-f0a1-4207-ac5b-2194a2ca80ec\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
"\n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
"\n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"e293e8e3-f0a1-4207-ac5b-2194a2ca80ec\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'e293e8e3-f0a1-4207-ac5b-2194a2ca80ec' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
"\n",
" var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.js\"];\n",
"\n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" Bokeh.set_log_level(\"info\");\n",
" },\n",
" \n",
" function(Bokeh) {\n",
" \n",
" document.getElementById(\"e293e8e3-f0a1-4207-ac5b-2194a2ca80ec\").textContent = \"BokehJS is loading...\";\n",
" },\n",
" function(Bokeh) {\n",
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.css\");\n",
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.4.min.css\");\n",
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.css\");\n",
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.4.min.css\");\n",
" }\n",
" ];\n",
"\n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"e293e8e3-f0a1-4207-ac5b-2194a2ca80ec\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
"\n",
" }\n",
"\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
"}(this));"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Autotune data: pts = 512, aux_data_len = 0, timestep = 1.00ms\n"
]
}
],
"source": [
"%matplotlib inline\n",
"\n",
"# Import all the numerical computing stuff we need...\n",
"\n",
"from dronin import autotune\n",
"import numpy as np\n",
"import pandas\n",
"import math\n",
"from scipy import fftpack, signal\n",
"from bokeh.plotting import figure, show\n",
"from bokeh.io import output_notebook\n",
"from bokeh.models import LinearAxis, Range1d, Span\n",
"\n",
"output_notebook() # Tell bokeh to send plots to notebook\n",
"\n",
"# And load up a datafile of autotune data. In this file, the average\n",
"# motor commands and gyro responses from all 90-120 wobbles during the\n",
"# autotune sequence are stored.\n",
"df, time_step = autotune.read_autotune_lump('/Users/jhitesma/Downloads/jasonhex.bin', filter_freq=55)#, filter_order=6)\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"e7f4f454-f7ab-4f0d-ba91-bcf7ae3097e2\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"e7f4f454-f7ab-4f0d-ba91-bcf7ae3097e2\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"e7f4f454-f7ab-4f0d-ba91-bcf7ae3097e2\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'e7f4f454-f7ab-4f0d-ba91-bcf7ae3097e2' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"afd61d29-276b-44c1-811b-348457d34238\":{\"roots\":{\"references\":[{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"8e4623f1-cb3a-4120-8ab9-eeb6ae7cfbc2\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"0ac3eff5-e851-4c80-b9b1-ae2bb64f269e\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null,\"end\":11.04218864440918,\"start\":-7.624988555908203},\"id\":\"4ccfb028-499b-497c-bdff-7bff5b096432\",\"type\":\"Range1d\"},{\"attributes\":{\"below\":[{\"id\":\"2d894c6c-f0c5-4df9-9bc6-915413da24e0\",\"type\":\"LinearAxis\"}],\"extra_y_ranges\":{\"actuation\":{\"id\":\"4ccfb028-499b-497c-bdff-7bff5b096432\",\"type\":\"Range1d\"}},\"left\":[{\"id\":\"5652217a-3495-4b96-9b44-fa03fd10d851\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"2d894c6c-f0c5-4df9-9bc6-915413da24e0\",\"type\":\"LinearAxis\"},{\"id\":\"ffa8a87c-45a4-4ff4-b0b6-07267e3488f6\",\"type\":\"Grid\"},{\"id\":\"5652217a-3495-4b96-9b44-fa03fd10d851\",\"type\":\"LinearAxis\"},{\"id\":\"9723f9f3-d69d-4646-9b7e-27f262f82d5f\",\"type\":\"Grid\"},{\"id\":\"d5ffd013-a014-416b-b0d6-8afd58fa55fd\",\"type\":\"BoxAnnotation\"},{\"id\":\"51f53a2b-13d7-4cb8-a929-a8ddd38b895c\",\"type\":\"GlyphRenderer\"},{\"id\":\"7bc4d5c9-9c77-4e02-9e10-547903302bf2\",\"type\":\"GlyphRenderer\"},{\"id\":\"53f20b1e-beea-4c9e-97bb-c2b66f5267e2\",\"type\":\"LinearAxis\"}],\"right\":[{\"id\":\"53f20b1e-beea-4c9e-97bb-c2b66f5267e2\",\"type\":\"LinearAxis\"}],\"title\":{\"id\":\"018bc6b4-919f-4141-baf6-369c1565e04b\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"7cb205cb-e6e1-481d-82e7-298ccf574bb4\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"88b53d7c-9497-4c76-ae3a-0dcfa3055014\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"6002d390-0496-4d9a-aa4e-8d65e724605c\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"1c68019a-762b-4c56-b4eb-30a262bec198\",\"type\":\"DataRange1d\"}},\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"plot\":null,\"text\":\"roll gyro vs actuators\"},\"id\":\"018bc6b4-919f-4141-baf6-369c1565e04b\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"e8be8b19-d8a2-4d28-9666-adcc7978f5a5\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"0ac3eff5-e851-4c80-b9b1-ae2bb64f269e\",\"type\":\"BasicTicker\"}},\"id\":\"9723f9f3-d69d-4646-9b7e-27f262f82d5f\",\"type\":\"Grid\"},{\"attributes\":{\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"81a1191e-03c8-4e36-aca3-b857f9a7e8cf\",\"type\":\"HelpTool\"},{\"attributes\":{\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"8a7f98fd-fdf8-40a7-a4ec-24aa71188300\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"22dae4a3-4512-4204-9d68-87c28a998305\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null},\"id\":\"6002d390-0496-4d9a-aa4e-8d65e724605c\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data_source\":{\"id\":\"427ad4a9-0896-4422-a89e-118c7deb08dc\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"dddd2d70-b32c-43b5-ab39-c3184280f913\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"2fb05c1f-3c86-4eb8-9d74-11b9cfebff31\",\"type\":\"Line\"},\"selection_glyph\":null,\"y_range_name\":\"actuation\"},\"id\":\"7bc4d5c9-9c77-4e02-9e10-547903302bf2\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"22dae4a3-4512-4204-9d68-87c28a998305\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"cd442682-3215-4c1f-b062-f43d5e330131\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"8e4623f1-cb3a-4120-8ab9-eeb6ae7cfbc2\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"51f53a2b-13d7-4cb8-a929-a8ddd38b895c\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"7cb205cb-e6e1-481d-82e7-298ccf574bb4\",\"type\":\"ToolEvents\"},{\"attributes\":{\"formatter\":{\"id\":\"ea57cb77-26aa-4a16-8811-3053dc72ecc3\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"f9be37f5-3ac4-40b9-8f62-8189dd2a8ef8\",\"type\":\"BasicTicker\"}},\"id\":\"2d894c6c-f0c5-4df9-9bc6-915413da24e0\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"ea57cb77-26aa-4a16-8811-3053dc72ecc3\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"06242712-023d-48b6-89dd-c98284387304\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null},\"id\":\"1c68019a-762b-4c56-b4eb-30a262bec198\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"d5ffd013-a014-416b-b0d6-8afd58fa55fd\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"overlay\":{\"id\":\"d5ffd013-a014-416b-b0d6-8afd58fa55fd\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"3a94bad9-56ff-4e3a-b75a-c050d7a2557c\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"06242712-023d-48b6-89dd-c98284387304\",\"type\":\"PanTool\"},{\"id\":\"8a7f98fd-fdf8-40a7-a4ec-24aa71188300\",\"type\":\"WheelZoomTool\"},{\"id\":\"3a94bad9-56ff-4e3a-b75a-c050d7a2557c\",\"type\":\"BoxZoomTool\"},{\"id\":\"5ced54ee-394d-4058-acb5-b4bbb7b868ca\",\"type\":\"SaveTool\"},{\"id\":\"aa28adaf-aa2e-43c1-aea4-95821b2bab8d\",\"type\":\"ResetTool\"},{\"id\":\"81a1191e-03c8-4e36-aca3-b857f9a7e8cf\",\"type\":\"HelpTool\"}]},\"id\":\"88b53d7c-9497-4c76-ae3a-0dcfa3055014\",\"type\":\"Toolbar\"},{\"attributes\":{\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"aa28adaf-aa2e-43c1-aea4-95821b2bab8d\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"cd442682-3215-4c1f-b062-f43d5e330131\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"f9be37f5-3ac4-40b9-8f62-8189dd2a8ef8\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"f9be37f5-3ac4-40b9-8f62-8189dd2a8ef8\",\"type\":\"BasicTicker\"}},\"id\":\"ffa8a87c-45a4-4ff4-b0b6-07267e3488f6\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2fb05c1f-3c86-4eb8-9d74-11b9cfebff31\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"dddd2d70-b32c-43b5-ab39-c3184280f913\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"427ad4a9-0896-4422-a89e-118c7deb08dc\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"formatter\":{\"id\":\"4778962b-8117-4549-b5ac-5e736b2c478a\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e8be8b19-d8a2-4d28-9666-adcc7978f5a5\",\"type\":\"BasicTicker\"},\"y_range_name\":\"actuation\"},\"id\":\"53f20b1e-beea-4c9e-97bb-c2b66f5267e2\",\"type\":\"LinearAxis\"},{\"attributes\":{\"formatter\":{\"id\":\"24da47d2-e4b8-46d5-9a59-991493e6e540\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"0ac3eff5-e851-4c80-b9b1-ae2bb64f269e\",\"type\":\"BasicTicker\"}},\"id\":\"5652217a-3495-4b96-9b44-fa03fd10d851\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"5ced54ee-394d-4058-acb5-b4bbb7b868ca\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"24da47d2-e4b8-46d5-9a59-991493e6e540\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"4778962b-8117-4549-b5ac-5e736b2c478a\",\"type\":\"BasicTickFormatter\"}],\"root_ids\":[\"9137aef0-83d2-4bdd-a527-525e665d86cf\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"afd61d29-276b-44c1-811b-348457d34238\",\"elementid\":\"e7f4f454-f7ab-4f0d-ba91-bcf7ae3097e2\",\"modelid\":\"9137aef0-83d2-4bdd-a527-525e665d86cf\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"e7f4f454-f7ab-4f0d-ba91-bcf7ae3097e2\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# next let's plot what the roll gyro does vs. the flight controller's roll command\n",
"\n",
"p = figure(title=\"roll gyro vs actuators\")\n",
"p.line(df.time, df.gyroX)\n",
"p.extra_y_ranges = { 'actuation' : Range1d(min(df.desiredX), max(df.desiredX)) }\n",
"p.line(df.time, df.desiredX, y_range_name='actuation', color=\"red\")\n",
"p.add_layout(LinearAxis(y_range_name=\"actuation\"), 'right')\n",
"\n",
"show(p)\n",
"\n",
"# Looks really nasty, huh? This is the gyro data vs. the actuator data. They're clearly related\n",
"# but phase is off and shape is a fair bit different."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"cfb6b9db-6601-4f3a-9369-d0435e19b4d3\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"cfb6b9db-6601-4f3a-9369-d0435e19b4d3\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"cfb6b9db-6601-4f3a-9369-d0435e19b4d3\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'cfb6b9db-6601-4f3a-9369-d0435e19b4d3' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"bdd4b66c-a47a-4571-a7b4-539a5137ed67\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"dade8eb0-3f15-493b-a76b-6e63b9e5d8d5\",\"type\":\"BasicTicker\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"5b1d1e18-6b63-45ce-8483-84085a8dc899\",\"type\":\"PanTool\"},{\"id\":\"310efc1a-74bb-4ecb-9214-ce22c6672b21\",\"type\":\"WheelZoomTool\"},{\"id\":\"cb8ea064-ce42-4185-a474-e9649c9af90e\",\"type\":\"BoxZoomTool\"},{\"id\":\"e3aa8878-d939-4195-9ceb-8abc58069a8e\",\"type\":\"SaveTool\"},{\"id\":\"a3c188cc-4785-4187-a29a-aee24b440477\",\"type\":\"ResetTool\"},{\"id\":\"09010351-094e-4c8a-bc35-e771f87c8dc5\",\"type\":\"HelpTool\"}]},\"id\":\"1926f4f6-1893-4bbb-b25e-9d6f187919eb\",\"type\":\"Toolbar\"},{\"attributes\":{\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"e3aa8878-d939-4195-9ceb-8abc58069a8e\",\"type\":\"SaveTool\"},{\"attributes\":{\"formatter\":{\"id\":\"761dafce-7117-4d06-a7c1-b0c8281fb10d\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6d9e2411-34b9-46d3-b476-22804058c9b5\",\"type\":\"BasicTicker\"},\"y_range_name\":\"actuation\"},\"id\":\"9f2cb4c0-d277-40a6-8ddc-af20ea249bfc\",\"type\":\"LinearAxis\"},{\"attributes\":{\"formatter\":{\"id\":\"c7590be2-6ebb-4ad7-847b-2dee4b0d9c42\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"62b86da2-706b-4ae4-b81f-4f314414d9c3\",\"type\":\"BasicTicker\"}},\"id\":\"17d37147-295b-4c80-9d4f-4acecb4fbb38\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null},\"id\":\"ebb7c267-67ae-4905-bdc8-9c4dfbad7c46\",\"type\":\"DataRange1d\"},{\"attributes\":{\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"dade8eb0-3f15-493b-a76b-6e63b9e5d8d5\",\"type\":\"BasicTicker\"}},\"id\":\"f13f862e-f712-4ea2-a9c2-422f685c44ef\",\"type\":\"Grid\"},{\"attributes\":{\"plot\":null,\"text\":\"roll gyrodiff vs actuators\"},\"id\":\"752714cd-6215-4cd0-9051-615459f4183c\",\"type\":\"Title\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"fdedf556-992c-46c8-88a5-acf3b1851a4c\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"5b1d1e18-6b63-45ce-8483-84085a8dc899\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1678fe04-6e06-48cb-b967-84a4a79b1d46\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"761dafce-7117-4d06-a7c1-b0c8281fb10d\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"267f6926-53fa-4cab-ad38-6273c2a52ba9\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"c7601bb8-8478-496f-83af-5b1c0db16d51\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"c7590be2-6ebb-4ad7-847b-2dee4b0d9c42\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"AAAAgAtF6z8AAADg9UrqPwAAAMDgquo/AAAAAEYG6j8AAAAgBG/oPwAAAIABPec/AAAA4MFB5z8AAACgFFnnPwAAAGDmHec/AAAAIKnc5T8AAAAgXErlPwAAAOBJAuY/AAAAQGJD5T8AAAAg8RrjPwAAAMATIOI/AAAAgPiV4j8AAACgBJDiPwAAAMDun+E/AAAAwJnJ4D8AAACAJtLfPwAAAEBted4/AAAAYAtz3z8AAABgM5DgPwAAAKC3CuE/AAAAwBs54T8AAABgXpTgPwAAAKDqat4/AAAA4F5C3D8AAACgFoDbPwAAAODuD90/AAAAQAsM4D8AAACApcrgPwAAAECo+N4/AAAAQAft2j8AAABAprHaPwAAAOAMutw/AAAAoF6i3T8AAACAq07dPwAAAOAtOtw/AAAAIP+X2j8AAAAAlUHaPwAAAKDNdNw/AAAAQD9c3z8AAADAeOTfPwAAAMBfpt0/AAAAoJ2p3D8AAAAADOXcPwAAAKBklN0/AAAAQF/+3T8AAABAcDrfPwAAAEB+GeA/AAAAoLb/2z8AAACgx2HYPwAAAEC3g9s/AAAA4Dss4D8AAAAggcHgPwAAAKDb/d8/AAAAQBxw3T8AAADAaWPbPwAAAOCAst0/AAAAQG4T4D8AAAAgndzgPwAAAIBZQOE/AAAAoNtk4T8AAADAuykeQAAAAIAyMh5AAAAAoLhUHkAAAAAAFnQeQAAAACDucR5AAAAAgM9dHkAAAABgqE8eQAAAACAOJh5AAAAAIGEOHkAAAADgmBoeQAAAACCf9B1AAAAAoDqdHUAAAAAAjS4dQAAAAABO3hxAAAAAYEGuHEAAAACAGrMcQAAAAMCrfxxAAAAAwML7G0AAAABgyWkbQAAAAODv9hpAAAAAwImcGkAAAABgYUIaQAAAAEBO0RlAAAAAgIkoGUAAAADgYmQYQAAAAIAG4hdAAAAAoFmvF0AAAADAJjkXQAAAAMAPiBZAAAAAQO3HFUAAAABAQA4VQAAAAGBjXhRAAAAAIJ2tE0AAAABg8zoTQAAAAGCk0RJAAAAAAMEeEkAAAACgeTYRQAAAAOB4hxBAAAAAwA0TEEAAAABgyS4PQAAAAOCD7w1AAAAAgJh9DEAAAACAde4KQAAAAKAthAlAAAAAoGxqCEAAAAAACjQHQAAAAEC34QVAAAAAoMR5BEAAAADgmmcDQAAAACDFNAJAAAAAQKl6AEAAAABA7Tj+PwAAAAADrfw/AAAAoCiX+j8AAABAN6f3PwAAAMAcfPU/AAAAoD6j8z8AAAAgcH/xPwAAAMC7V+4/AAAAAFS96j8AAAAgnyTmPwAAAMCboOE/AAAAoBRY3D8AAACgLCTWPwAAAECVJxvAAAAA4CyEG8AAAABgsO8bwAAAAKAqexzAAAAAIED8HMAAAACAOVkdwAAAACDDnB3AAAAAwBXhHcAAAADgNiQewAAAAGCuTh7AAAAAQFlSHsAAAACgoWEewAAAAGAnfx7AAAAAAP1/HsAAAABgtFoewAAAACCVNB7AAAAAAF0VHsAAAABA4esdwAAAACClwx3AAAAAoNyHHcAAAADAo0gdwAAAAAD//hzAAAAAgEqcHMAAAAAgxQccwAAAAEA6hhvAAAAAADYzG8AAAACAcsoawAAAAMBnTxrAAAAAgCXHGcAAAADg7jQZwAAAAEDikxjAAAAAQJn1F8AAAACgmGMXwAAAAMCQyBbAAAAAYCIdFsAAAAAA5FgVwAAAAODPkRTAAAAAgBziE8AAAAAARE8TwAAAACB+mhLAAAAAgDy7EcAAAABgQ9IQwAAAAECpFBDAAAAAwM3hDsAAAABgqnANwAAAAEDcwQvAAAAAwPs9CsAAAACgkO8IwAAAAOCzTwfAAAAAQLBoBcAAAABg8u8DwAAAAMAdxwLAAAAA4DRIAcAAAABg+gH/vwAAAODfyvu/AAAAwPCD+L8AAADgGo/1vwAAAGArRPK/AAAAgDbn7r8AAAAgopPpvwAAAGD5++O/AAAA4BrE278AAABguc3OvwAAAGAkZbG/AAAAgLylG8AAAACgfvQawAAAAADidBrAAAAAwAblGcAAAACgYjEZwAAAAMB+mRjAAAAAYKUDGMAAAABAL04XwAAAAGDogRbAAAAAIC/SFcAAAAAgty4VwAAAAMBDWxTAAAAAYKCUE8AAAACgn7cSwAAAAKCq5RHAAAAAYMVEEcAAAACgZZoQwAAAAAC9ig/AAAAAwMPbDcAAAADgZi8MwAAAAAB2fArAAAAAgFuTCMAAAADg7N8GwAAAAEB9lwXAAAAAQJsvBMAAAADAHW0CwAAAAIBTWQDAAAAAIOAT/b8AAACAhCv6vwAAAGD0Lfe/AAAAIIT9878AAAAA3nXwvwAAAIBHSOq/AAAAgHvk478AAADAzejZvwAAAIBTY8u/AAAAAE7fsL8AAADAIPy3PwAAAEDOX9E/AAAAYNBm3z8AAADALD3mPwAAAAAnqOs/AAAAwOgc8D8AAAAgFvvxPwAAAKBtZfQ/AAAAILoA+D8AAAAA1177PwAAAEAN9f0/AAAAQNeE/z8AAABg9GkAQAAAAEBOjwFAAAAAAK77AkAAAADgfCUEQAAAAKC5JgVAAAAAwHwnBkAAAABAy9AGQAAAAMBiJwdAAAAAYADrB0AAAAAAPSgJQAAAAKC1NwpAAAAAQCHOCkAAAABgij4LQAAAAMBCnwtAAAAAgMMEDEAAAAAAhjclQAAAAICjdCVAAAAAoM6TJUAAAAAgiKMlQAAAAED6uCVAAAAAYCfIJUAAAABgydUlQAAAAMBc7CVAAAAAwJkVJkAAAADAhxImQAAAAOAV4SVAAAAAIJXCJUAAAABAxcglQAAAAOCwsyVAAAAAgFOKJUAAAABg42YlQAAAAAACPSVAAAAAQFH2JEAAAAAA9LQkQAAAAABeeyRAAAAAoHxKJEAAAABgFhwkQAAAAEAj0yNAAAAAoH1vI0AAAACAgxQjQAAAAABeyyJAAAAAgNl2IkAAAADAaQ0iQAAAAICbpyFAAAAAgK5JIUAAAAAgbe4gQAAAAIDyfCBAAAAAYK8UIEAAAADAtX0fQAAAAECumx5AAAAAIM+GHUAAAACgCJccQAAAAOBl2htAAAAAoIEKG0AAAABAQiEaQAAAAABQKRlAAAAAgAs4GEAAAAAgHEcXQAAAAMAIUBZAAAAAwFhVFUAAAAAgUHUUQAAAAKAhlxNAAAAAIHWlEkAAAABguaoRQAAAAMBuuRBAAAAAYF7DD0AAAABAr+UNQAAAACA64QtAAAAAANAGCkAAAACgG1oIQAAAAGA+rAZAAAAAQBToBEAAAABAESsDQAAAAMAmswFAAAAAwMwvAEAAAADAQ+v8PwAAAMBsYfk/AAAAAEoX9j8AAAAg5knzPwAAAKA/VvA/AAAAYMGM6j8AAABgWLPkPwAAAEDnkd8/AAAAYM0E1j8AAAAAObjEPwAAAGDSG6y/AAAAgHA9zb8AAAAAEZ3VvwAAAEByCd6/AAAAAKv/478AAACgP2bovwAAAKA2luy/AAAAoHN58L8AAADgQi7yvwAAAAAI6PO/AAAAACJ59b8AAADgcu32vwAAAGDk7Pi/AAAA4Nkd+78AAADgD9r8vwAAAMD3hv2/AAAAAH1F/r8AAABgL8P/vwAAAMAeoADAAAAA4OwUAcAAAACg928BwAAAAMCrzgHAAAAAIMkrAsAAAAAA9I8CwAAAAEAaGQPAAAAAAGmtA8AAAACA794DwAAAACAf1gPAAAAA4C31A8AAAADAekQEwAAAAMC0mQTAAAAAoGS1BMAAAAAAMXgEwAAAAIDgHQTAAAAAYM0vBMAAAABglGAEwAAAAKDOqATAAAAAwLixBMAAAABAxjYEwAAAAKCwsQPAAAAAoB1DA8AAAABAaVEDwAAAAEACkAPAAAAAALGKA8AAAADAAdICwAAAAGDfAALAAAAAYPOKAcAAAACAc40BwAAAACC1SwHAAAAAYFBDAcAAAABAthMBwAAAAMCegwDAAAAAAJCY/78AAAAA3mX+vwAAAKBKU/2/AAAAAAI8/L8AAADAe0z7vwAAAEAdpvq/AAAAoJAW+b8AAADgoZL3vwAAAGAyxPa/AAAAQK/69b8AAAAA+X/0vwAAACD+OvO/AAAAoHam8r8AAADgYCvxvwAAAODPbe+/AAAAYFOo7r8AAACgzrLtvwAAACCwHuu/AAAAAN4c6L8AAABg7snlvwAAAAD3QOO/AAAAQCvA378AAAAgWyXbvwAAAEAJ7Ne/AAAAIOo3078AAADgnxjHvwAAAOAOH72/AAAAwJEDsr8AAAAAbA5kvwAAACAO1rs/AAAAoDAdyD8AAADA+TvNPwAAAADBPNE/AAAAQI0U1z8AAABgkjDbPwAAAMBCJt4/AAAAABoC4T8AAABA8H7jPwAAAAC2keU/AAAAQMiQ5z8AAADAARnpPwAAAEDr/es/AAAAgE3I7T8AAACgm+PuPwAAAKDix/A/AAAAQMYE8j8AAADAQ0LyPwAAACAiMPI/AAAAQL5s8z8AAACAsOT0PwAAAEAwffU/AAAAYGXa9T8AAAAAH2n2PwAAAOAQ5PY/AAAA4Gn29j8AAABgblj3PwAAAGCOqvg/AAAAoI90+T8AAACgrM/5PwAAAMAlcfo/AAAAwFet+j8AAABg96f6PwAAAGAF6fo/AAAAIPbx+z8AAAAAh378PwAAACArTfw/AAAAAEaC/D8AAABAb/T8PwAAAODl7/w/AAAA4Mp6/D8AAACAtbL8PwAAAECZFf0/AAAAANX//D8AAAAANhD9PwAAACDM6fw/AAAAwNOH/D8AAACA9o38PwAAAIBjkfw/AAAAoLup/D8AAABgVkX9PwAAAIAyvv0/AAAAQEKp/T8AAABgDsj8PwAAAABhifw/AAAAoMHj/D8AAADgu6j8PwAAACBra/w/AAAAIIky/D8AAABAhFL8PwAAAOAu8fs/AAAAoJmG+z8AAABgPHz7PwAAAIBSjPs/AAAAwPq1+z8AAACAAYn7PwAAAEBYu/o/AAAAgB8p+j8AAADAWFv6PwAAAOCg2/o/AAAAQFwA+z8AAACAFNP6PwAAAEDQ5Po/AAAAQKWe+j8AAAAAOpD5PwAAAEAT9fg/AAAAADMi+T8AAABApV35PwAAAMAzb/g/AAAAIMrV9z8AAABgbnL3PwAAAMCe8PY/AAAAIHFe9j8AAADg41r2PwAAAIDwYvY/AAAA4I8Z9j8AAACAEnz1PwAAAECsAPU/AAAAIOSM9D8AAAAgUGr0PwAAAODlWfQ/AAAAwJZT9D8AAABgNNfzPwAAAGAIAvM/AAAAgP9w8j8AAAAAJiTyPwAAACApofE/AAAAoDr+8D8AAABgyX7wPwAAAGCCdvA/AAAAAOor8D8AAAAghMvuPwAAAIAQcu0/AAAAYJJs7T8AAACge+PsPw==\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"2e4f2a02-f463-46a0-9e5b-0f223eacbf23\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null},\"id\":\"7f168d5a-1545-4afc-824e-d3f9dee23cda\",\"type\":\"DataRange1d\"},{\"attributes\":{\"below\":[{\"id\":\"e3339612-2291-40e8-b5ac-ddf07ce201f1\",\"type\":\"LinearAxis\"}],\"extra_y_ranges\":{\"actuation\":{\"id\":\"01b10a36-eb45-42cf-a83a-31130dc6ac26\",\"type\":\"Range1d\"}},\"left\":[{\"id\":\"17d37147-295b-4c80-9d4f-4acecb4fbb38\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"e3339612-2291-40e8-b5ac-ddf07ce201f1\",\"type\":\"LinearAxis\"},{\"id\":\"f13f862e-f712-4ea2-a9c2-422f685c44ef\",\"type\":\"Grid\"},{\"id\":\"17d37147-295b-4c80-9d4f-4acecb4fbb38\",\"type\":\"LinearAxis\"},{\"id\":\"9d739c74-6f2c-425c-bfd5-f0f7050294ed\",\"type\":\"Grid\"},{\"id\":\"267f6926-53fa-4cab-ad38-6273c2a52ba9\",\"type\":\"BoxAnnotation\"},{\"id\":\"847a1cd5-d94c-42c7-9523-cf519880d466\",\"type\":\"GlyphRenderer\"},{\"id\":\"0d2f9d5b-7cde-4d01-8949-91bba2c05f0b\",\"type\":\"GlyphRenderer\"},{\"id\":\"9f2cb4c0-d277-40a6-8ddc-af20ea249bfc\",\"type\":\"LinearAxis\"}],\"right\":[{\"id\":\"9f2cb4c0-d277-40a6-8ddc-af20ea249bfc\",\"type\":\"LinearAxis\"}],\"title\":{\"id\":\"752714cd-6215-4cd0-9051-615459f4183c\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"e6226c7a-06be-4167-983b-a737d7cb7579\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"1926f4f6-1893-4bbb-b25e-9d6f187919eb\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"7f168d5a-1545-4afc-824e-d3f9dee23cda\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"ebb7c267-67ae-4905-bdc8-9c4dfbad7c46\",\"type\":\"DataRange1d\"}},\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"62b86da2-706b-4ae4-b81f-4f314414d9c3\",\"type\":\"BasicTicker\"}},\"id\":\"9d739c74-6f2c-425c-bfd5-f0f7050294ed\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"AAAAYIT8SkAAAAAA8P8BwAAAAMAKYUfAAAAAABDIREAAAADA4flSQAAAAAAMYhfAAAAAwDIwS8AAAAAAIE/mvwAAAICg9jNAAAAAgP6fSkAAAAAA/BYiwAAAAEB/iUnAAAAAQAnySUAAAAAAjhRUQAAAAABGVkbAAAAAgDriRcAAAAAALm4gQAAAAIBdREdAAAAAAM6hJ0AAAAAA/KUXQAAAAACodxVAAAAAAOomSMAAAAAAETk2wAAAAACNzkNAAAAAAEQzG0AAAAAAqZs3QAAAAABBZEFAAAAAALjDL0AAAAAAekI4wAAAAACSf0zAAAAAgON6R8AAAAAAVe4wQAAAAIDLVVhAAAAAAHjkSkAAAAAA6rFSwAAAAABdBE7AAAAAALaGK0AAAAAAAQ0+QAAAAADYqDRAAAAAAIqpMkAAAAAA7LM0wAAAAEA7RVDAAAAAAJl0O8AAAACAFyVPQAAAAIBzz09AAAAAAC4SOsAAAAAAOkNFwAAAAADQGhBAAAAAAOCh4z8AAAAAzrY/wAAAAADXFjFAAAAAgKI8XUAAAAAAxHklQAAAAMC+x2PAAAAAgCsUUcAAAADAqVFRQAAAAIAPIk5AAAAAAIXYR0AAAAAAsLwHwAAAAICWbE/AAAAAgILuRMAAAAAAeN0IwAAAAADY2ypAAAAAAMAiQkAAAAAAs2g2QAAAAICLBUbAAAAAgKGnSMAAAAAAyIUgwAAAAACkY0BAAAAAAEXDPUAAAACAxtpBQAAAAADoNEJAAAAAALyNL8AAAACAAX1GwAAAAMAirFBAAAAAAPKCWkAAAAAAislSQAAAAADEzzVAAAAAACoUPsAAAAAAFA5CwAAAAADi+VFAAAAAgNc+Y0AAAAAAInlXQAAAAACIZzFAAAAAAEDNDEAAAAAAkCdHQAAAAAA3S1BAAAAAACj2Y0AAAAAAUt9eQAAAAAAYDz7AAAAAALjuNsAAAAAAqKBWQAAAAACecmJAAAAAAFJbXkAAAAAAsvlSQAAAAADo1VBAAAAAACoyU0AAAAAAmA0xwAAAAADwiD5AAAAAAMgZZkAAAAAAVvBkQAAAAAAAkhhAAAAAAKD/KsAAAAAAEK9SQAAAAABQV1hAAAAAABjHXUAAAAAAIDBaQAAAAAAsuFBAAAAAACABIEAAAAAAqMxVQAAAAACcplpAAAAAAMiFUEAAAAAAQPsgQAAAAADo0FVAAAAAANRWZUAAAAAAwBYzQAAAAABI8E7AAAAAAEAIXEAAAAAA+sBgQAAAAABQTDpAAAAAAIA/C0AAAAAAKDhTQAAAAACA6FRAAAAAAICaHEAAAAAAHK1XQAAAAAAQrkhAAAAAAEC6I0AAAAAAOHBAQAAAAADIKE1AAAAAAIDVK0AAAAAAAE1IQAAAAABsWVZAAAAAACjHQkAAAAAAIM0iwAAAAACgcinAAAAAADBCNkAAAAAAACM4QAAAAABgUSTAAAAAALhvTcAAAAAAsG81QAAAAADA6RtAAAAAAFDrRMAAAAAAkN5RwAAAAAC4Q0XAAAAAAOC+J8AAAAAAqNFGwAAAAACQbzzAAAAAALgjSsAAAAAAoCxMwAAAAABopknAAAAAAAypWcAAAAAAyPBgwAAAAADI5kTAAAAAAIB6BsAAAAAAfBdUwAAAAAC4DljAAAAAAODrWMAAAAAADFJUwAAAAADMZlvAAAAAAHieUMAAAAAAPCJTwAAAAAC0uFXAAAAAALDqXMAAAAAAZHBawAAAAADuG2DAAAAAAOBhTcAAAAAADIdHwAAAAADAbl3AAAAAANZWZMAAAAAAEP5fwAAAAAAIpkvAAAAAAJxzTMAAAAAAkIJdwAAAAABX2GHAAAAAALolU8AAAAAAcABMwAAAAIDSeWXAAAAAgDU6YsAAAAAAfHw+wAAAAAAE4TPAAAAAgABTY8AAAAAABrphwAAAAAAgclbAAAAAgLpuUMAAAACANBhXwAAAAGAyT1/AAAAA4KM5TcAAAABArYhQwAAAAHCJPFbAAAAAgPxnXsAAAAAASvFZwAAAAAA0bkbAAAAAAGlFWMAAAACAMGBTwAAAAADg1CTAAAAAALdWWcAAAAAAuJpbwAAAAACQEkbAAAAAAEy0TsAAAAAATvVgwAAAAAB2C1nAAAAAADBGSsAAAAAAjFFOwAAAAACPk2DAAAAAAOjDWcAAAAAAgrlewAAAAADIY1TAAAAAAGjnMcAAAAAAMJxSwAAAAADHCWPAAAAAAKaYXcAAAAAA4BtSwAAAAAAIP1rAAAAAAMjhYsAAAAAAQLxPwAAAAABwNDHAAAAAADwNWMAAAAAANk1jwAAAAADowGTAAAAAANQwUsAAAAAAYOI7wAAAAAB4zVLAAAAAANyYWcAAAAAA+IlgwAAAAABIelPAAAAAAIimVMAAAAAA1P5ewAAAAAAIMkXAAAAAAKA0LcAAAAAAsLxTwAAAAACoNF/AAAAAALQMYMAAAAAATCxTwAAAAABwQDjAAAAAADC6OMAAAAAAQIEywAAAAAAAFFjAAAAAAEjeZ8AAAAAAABVRwAAAAACAjhnAAAAAAGAeRkAAAAAAgPErwAAAAAB4z17AAAAAAIA5XcAAAAAAoLI6wAAAAACgtTzAAAAAAABvRMAAAAAAAF1BQAAAAADw6khAAAAAAGiEW8AAAAAA9D1iwAAAAAAAMi/AAAAAAAC5RUAAAAAA4HsyQAAAAACAlxBAAAAAAIAPJ8AAAAAAWBZVwAAAAADowFDAAAAAAJA7RUAAAAAAIKBEQAAAAABAHCTAAAAAAABPC0AAAAAAYCc3QAAAAADA0TnAAAAAALCZUsAAAAAAIJ5fQAAAAACMb2VAAAAAAAA86z8AAAAAOLZQwAAAAAAwvFdAAAAAAEjVV0AAAAAA4LFDQAAAAAD4PFJAAAAAAESxYkAAAAAAkC5RQAAAAADQc0NAAAAAACCzSUAAAAAAkHhKQAAAAABa92FAAAAAAM6FZkAAAAAAIO5TQAAAAACww0JAAAAAAJDhXkAAAAAA6AplQAAAAACAnFpAAAAAALBgT0AAAAAApFReQAAAAABo/2NAAAAAAADzV0AAAAAAYGpGQAAAAAB+d2ZAAAAAAFQGa0AAAAAAJKBUQAAAAACYUUBAAAAAAGDfYEAAAAAAOh9iQAAAAAAdf2JAAAAAABIuYUAAAAAAxNNaQAAAAAAwcF9AAAAAAAK1XEAAAAAASJRYQAAAAAA8EV1AAAAAADLHYkAAAACAL5dgQAAAAABtJ1hAAAAAALF3VkAAAACA15ZhQAAAAIDQ+2JAAAAAADjeV0AAAAAAJA9TQAAAAABXhVtAAAAAAHCKYEAAAADwbmZXQAAAAGALokpAAAAAYCIRWkAAAADAb65hQAAAAICfFl5AAAAAAMGpUEAAAAAA2GxLQAAAAAClzlhAAAAAAKlpWkAAAAAAtf9SQAAAAAAiUEtAAAAAAPCGTUAAAAAA0VJfQAAAAAASM2NAAAAAAPgvOkAAAAAACDU5wAAAAACm6VRAAAAAALTKW0AAAAAAsGdEQAAAAAB4FUlAAAAAAPYIU0AAAAAAcAgmQAAAAABc+EhAAAAAACytQEAAAAAAnGVAQAAAAACi3FRAAAAAAAAiV0AAAAAAAFPsPwAAAABMukfAAAAAANAmLEAAAAAAYg5bQAAAAADo4T9AAAAAAHAuOMAAAAAAWGkzQAAAAADAywdAAAAAAOB2MUAAAAAAANAaQAAAAAAooE1AAAAAACDiQUAAAAAAQJVQwAAAAABIUkPAAAAAAPBHOEAAAAAA8JVBQAAAAACA1TNAAAAAAGh2QMAAAAAAttJQwAAAAAD4x0PAAAAAAFA0OUAAAAAAbG9HQAAAAAAQ6jlAAAAAAKiTRcAAAAAAdmhYwAAAAACAoUzAAAAAAHB4NcAAAAAAZG5PQAAAAABQUkdAAAAAAL4hUsAAAAAA3pFhwAAAAACCZ1LAAAAAAEgnNkAAAAAAwIpGQAAAAACMLEjAAAAAADDfNcAAAAAAoLUlwAAAAAAi0VjAAAAAAKA5VMAAAAAAADolwAAAAACALjPAAAAAAJSoSMAAAAAASD0ywAAAAACw5yTAAAAAAG6/WcAAAAAAbPtNwAAAAADwMD9AAAAAADxeQ8AAAAAAyppXwAAAAACALjjAAAAAAADGG0AAAAAAay1bwAAAAADsM0bAAAAAALCeSEAAAAAAfoFCwAAAAADWlVvAAAAAAJbkTMAAAAAA0GwswAAAAADCB0bAAAAAAOyLWcAAAAAAfME3QAAAAABgJSNAAAAAADajVMAAAAAA9oBbwAAAAADs/jhAAAAAAMABEkAAAAAAUINJwAAAAADYu13AAAAAAAACxL8AAAAAtsIzQAAAAABAs03AAAAAAMimVMAAAAAAEOHzvwAAAADeZy/AAAAAAA+2PsAAAABg1fJQwAAAAEDyP0LAAAAAAESDG0AAAAAAQ7Y9wAAAALBql1bAAAAAIE7nNkAAAABgMJEpQAAAAIQsjFvAAAAAwNWzR8AAAADA3LxTQAAAAIBWfzxAAAAAkOu2YMAAAABAq1tQwAAAAIDaBU1AAAAAALPtMsAAAACAdCtMwAAAAABOBTJAAAAAAARiPkAAAAAAxiNNwAAAAIC/AVbAAAAAAIwqMUAAAAAA8uA6QAAAAACqjETAAAAAAGCADkAAAAAAXjdDQAAAAADIrzrAAAAAgHZbV8AAAAAAIqI0QAAAAACgf0ZAAAAAAN5JNcAAAAAADXpAwAAAAAAOqTZAAAAAAFbcN0AAAAAAPEcvwAAAAID1sFHAAAAAAG40PUAAAAAAUBw5QAAAAACAYilAAAAAAPAIK0AAAAAA2pI4wAAAAACAS9i/AAAAAOi0HMAAAAAAR8VBwAAAAABUHSHAAAAAANoxRUAAAAAAobVQQAAAAACyXznAAAAAAHClSsAAAAAAIZRAQAAAAABO3zdAAAAAAAQxMMAAAAAAKBQswAAAAADzXkJAAAAAAB5vQ0AAAAAA4LBMwAAAAACIhSvAAAAAACD1JUAAAAAA/H48QAAAAAAfoVJAAAAAAACuBUAAAACA1NJQwAAAAAB6JkPAAAAAADsrSEAAAAAAhm8+QAAAAABpcEDAAAAAAAMzRkAAAACACP1YQAAAAAAu2DzAAAAAgBuUXcAAAAAA6NRAQAAAAIDztllAAAAAAOg4GEAAAAAA5JUqwAAAAADXkzxAAAAAALwaEEAAAAAAPak7wAAAAABQcgTAAAAAAGHZQUAAAAAAQHFBQAAAAAAP0TJAAAAAANSmJEAAAAAAcI3mvwAAAACvoizAAAAAAABMz78AAADAbqNFQAAAAACEREhAAAAAwOlAKUAAAAAgKno2wAAAAABRJRtAAAAAhFCJR0AAAACwv5shQAAAAFASnEXAAAAAHBB+Q0AAAABE+/1LQAAAAAAyEh5AAAAAsMpURsAAAAAgQCA8QA==\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"332f779b-7428-44c5-a2b9-a0a52a0a4ef9\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"a3c188cc-4785-4187-a29a-aee24b440477\",\"type\":\"ResetTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2e4f2a02-f463-46a0-9e5b-0f223eacbf23\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"c7601bb8-8478-496f-83af-5b1c0db16d51\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"1044fc3a-f563-49a9-90ed-f7d7587ff88d\",\"type\":\"Line\"},\"selection_glyph\":null,\"y_range_name\":\"actuation\"},\"id\":\"0d2f9d5b-7cde-4d01-8949-91bba2c05f0b\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"formatter\":{\"id\":\"1678fe04-6e06-48cb-b967-84a4a79b1d46\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"dade8eb0-3f15-493b-a76b-6e63b9e5d8d5\",\"type\":\"BasicTicker\"}},\"id\":\"e3339612-2291-40e8-b5ac-ddf07ce201f1\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1044fc3a-f563-49a9-90ed-f7d7587ff88d\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"e6226c7a-06be-4167-983b-a737d7cb7579\",\"type\":\"ToolEvents\"},{\"attributes\":{\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"310efc1a-74bb-4ecb-9214-ce22c6672b21\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"332f779b-7428-44c5-a2b9-a0a52a0a4ef9\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"fdedf556-992c-46c8-88a5-acf3b1851a4c\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"8ecb8446-54ed-4f14-bdfb-05ebf7cb00d4\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"847a1cd5-d94c-42c7-9523-cf519880d466\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"overlay\":{\"id\":\"267f6926-53fa-4cab-ad38-6273c2a52ba9\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"cb8ea064-ce42-4185-a474-e9649c9af90e\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"callback\":null,\"end\":11.04218864440918,\"start\":-7.624988555908203},\"id\":\"01b10a36-eb45-42cf-a83a-31130dc6ac26\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"6d9e2411-34b9-46d3-b476-22804058c9b5\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"8ecb8446-54ed-4f14-bdfb-05ebf7cb00d4\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"09010351-094e-4c8a-bc35-e771f87c8dc5\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"62b86da2-706b-4ae4-b81f-4f314414d9c3\",\"type\":\"BasicTicker\"}],\"root_ids\":[\"63516ccb-9d85-4e56-abe2-eb67e675a207\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"bdd4b66c-a47a-4571-a7b4-539a5137ed67\",\"elementid\":\"cfb6b9db-6601-4f3a-9369-d0435e19b4d3\",\"modelid\":\"63516ccb-9d85-4e56-abe2-eb67e675a207\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"cfb6b9db-6601-4f3a-9369-d0435e19b4d3\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = figure(title=\"roll gyrodiff vs actuators\")\n",
"p.line(df.time, df.derivgyroX)\n",
"p.extra_y_ranges = { 'actuation' : Range1d(min(df.desiredX), max(df.desiredX)) }\n",
"p.line(df.time, df.desiredX, y_range_name='actuation', color=\"red\")\n",
"p.add_layout(LinearAxis(y_range_name=\"actuation\"), 'right')\n",
"\n",
"show(p)\n",
"\n",
"# If we differentiate the gyro, the shape is more clearly related, but boy is\n",
"# there a lot of noise."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"f031e3c2-7c8c-4224-896f-0b7ab1a8748f\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"f031e3c2-7c8c-4224-896f-0b7ab1a8748f\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"f031e3c2-7c8c-4224-896f-0b7ab1a8748f\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'f031e3c2-7c8c-4224-896f-0b7ab1a8748f' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"f50d2e31-772f-49fa-9915-3323ca9957cc\":{\"roots\":{\"references\":[{\"attributes\":{\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"0056f498-9965-4782-94fd-248a703e64f6\",\"type\":\"ResetTool\"},{\"attributes\":{\"plot\":null,\"text\":\"filtered roll gyrodiff vs actuators\"},\"id\":\"7455b690-ae69-4802-a206-a0618997db35\",\"type\":\"Title\"},{\"attributes\":{\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"a887ec4f-055d-43b5-867b-868217202ab2\",\"type\":\"BasicTicker\"}},\"id\":\"3c520eac-473d-4eb5-a1df-49576ee93fff\",\"type\":\"Grid\"},{\"attributes\":{\"formatter\":{\"id\":\"943b0dfb-fb21-4b20-8197-46ca79dec382\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"ddfe12e9-bb93-479f-a3d0-6681b60aa7c5\",\"type\":\"BasicTicker\"},\"y_range_name\":\"actuation\"},\"id\":\"f28bdd9e-d79d-4273-96be-e77e3df47f7f\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"819d0e7c-4eda-431f-ae17-1a6688f1b6c1\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"below\":[{\"id\":\"355e3468-a0a3-40b6-87e2-5b88d68b593b\",\"type\":\"LinearAxis\"}],\"extra_y_ranges\":{\"actuation\":{\"id\":\"b86fe38e-0d63-4442-9748-dc89d3235620\",\"type\":\"Range1d\"}},\"left\":[{\"id\":\"847032cb-3226-42aa-bcef-85bc108eacbc\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"355e3468-a0a3-40b6-87e2-5b88d68b593b\",\"type\":\"LinearAxis\"},{\"id\":\"3c520eac-473d-4eb5-a1df-49576ee93fff\",\"type\":\"Grid\"},{\"id\":\"847032cb-3226-42aa-bcef-85bc108eacbc\",\"type\":\"LinearAxis\"},{\"id\":\"9195c370-7d71-42cb-9a10-7b473a4331dc\",\"type\":\"Grid\"},{\"id\":\"d7533379-7f9b-493c-b956-da61c8b99931\",\"type\":\"BoxAnnotation\"},{\"id\":\"b119e690-de56-4e4a-897b-1bc2a98f4421\",\"type\":\"GlyphRenderer\"},{\"id\":\"c1911e51-6a18-4263-b5ae-19e5dfa40203\",\"type\":\"GlyphRenderer\"},{\"id\":\"f28bdd9e-d79d-4273-96be-e77e3df47f7f\",\"type\":\"LinearAxis\"}],\"right\":[{\"id\":\"f28bdd9e-d79d-4273-96be-e77e3df47f7f\",\"type\":\"LinearAxis\"}],\"title\":{\"id\":\"7455b690-ae69-4802-a206-a0618997db35\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"03090149-3788-48c9-84b9-0dc08bea69c0\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"53a3311b-104c-44ad-b356-c2ab01dd1564\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"89042d43-f841-4477-93cd-e43237f22532\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"3a60806d-ba33-4648-8da3-49b9bdc590d5\",\"type\":\"DataRange1d\"}},\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null},\"id\":\"3a60806d-ba33-4648-8da3-49b9bdc590d5\",\"type\":\"DataRange1d\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"7d5444c8-0282-42f0-bb72-19ed2b39e20b\",\"type\":\"BasicTicker\"}},\"id\":\"9195c370-7d71-42cb-9a10-7b473a4331dc\",\"type\":\"Grid\"},{\"attributes\":{\"formatter\":{\"id\":\"819d0e7c-4eda-431f-ae17-1a6688f1b6c1\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"7d5444c8-0282-42f0-bb72-19ed2b39e20b\",\"type\":\"BasicTicker\"}},\"id\":\"847032cb-3226-42aa-bcef-85bc108eacbc\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"end\":11.04218864440918,\"start\":-7.624988555908203},\"id\":\"b86fe38e-0d63-4442-9748-dc89d3235620\",\"type\":\"Range1d\"},{\"attributes\":{\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"fdca7d30-8a6f-400a-a897-17f33c3749a7\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"1f86c2d0-7815-41d0-8f1c-333a5edf5ed1\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"a5c5a306-7590-4703-b7cd-7ebfc7fc2e7b\",\"type\":\"PanTool\"},{\"id\":\"fdca7d30-8a6f-400a-a897-17f33c3749a7\",\"type\":\"WheelZoomTool\"},{\"id\":\"6bf07fdb-680c-4fe8-9bfa-64c450113273\",\"type\":\"BoxZoomTool\"},{\"id\":\"6753582d-0cac-4e0e-aafe-514b3036fc38\",\"type\":\"SaveTool\"},{\"id\":\"0056f498-9965-4782-94fd-248a703e64f6\",\"type\":\"ResetTool\"},{\"id\":\"b28802cf-0c14-4594-aaea-ab437988d40a\",\"type\":\"HelpTool\"}]},\"id\":\"53a3311b-104c-44ad-b356-c2ab01dd1564\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"a3b258dc-eb1e-444b-831c-442a98035abc\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"1f86c2d0-7815-41d0-8f1c-333a5edf5ed1\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"de41c954-191f-4c89-a334-925f24965dca\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"dd23c076-f9d0-43e0-a3b3-df383cabf7ac\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"b119e690-de56-4e4a-897b-1bc2a98f4421\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"7d5444c8-0282-42f0-bb72-19ed2b39e20b\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null},\"id\":\"89042d43-f841-4477-93cd-e43237f22532\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"ddfe12e9-bb93-479f-a3d0-6681b60aa7c5\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"dd23c076-f9d0-43e0-a3b3-df383cabf7ac\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"241b027d-fc4d-4012-aa50-6455e93f5468\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"241b027d-fc4d-4012-aa50-6455e93f5468\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"4a5081c5-f1b3-4e43-a1e6-12645cd1f49b\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"3128e646-1796-49f3-ac89-eb6109d1a61b\",\"type\":\"Line\"},\"selection_glyph\":null,\"y_range_name\":\"actuation\"},\"id\":\"c1911e51-6a18-4263-b5ae-19e5dfa40203\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"overlay\":{\"id\":\"d7533379-7f9b-493c-b956-da61c8b99931\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"6bf07fdb-680c-4fe8-9bfa-64c450113273\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"a5c5a306-7590-4703-b7cd-7ebfc7fc2e7b\",\"type\":\"PanTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3128e646-1796-49f3-ac89-eb6109d1a61b\",\"type\":\"Line\"},{\"attributes\":{\"formatter\":{\"id\":\"a3b258dc-eb1e-444b-831c-442a98035abc\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"a887ec4f-055d-43b5-867b-868217202ab2\",\"type\":\"BasicTicker\"}},\"id\":\"355e3468-a0a3-40b6-87e2-5b88d68b593b\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"b28802cf-0c14-4594-aaea-ab437988d40a\",\"type\":\"HelpTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"d7533379-7f9b-493c-b956-da61c8b99931\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"a887ec4f-055d-43b5-867b-868217202ab2\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"03090149-3788-48c9-84b9-0dc08bea69c0\",\"type\":\"ToolEvents\"},{\"attributes\":{},\"id\":\"943b0dfb-fb21-4b20-8197-46ca79dec382\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"de41c954-191f-4c89-a334-925f24965dca\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4a5081c5-f1b3-4e43-a1e6-12645cd1f49b\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"6753582d-0cac-4e0e-aafe-514b3036fc38\",\"type\":\"SaveTool\"}],\"root_ids\":[\"99d986e7-aaa1-49ff-83b7-d47d72e17987\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"f50d2e31-772f-49fa-9915-3323ca9957cc\",\"elementid\":\"f031e3c2-7c8c-4224-896f-0b7ab1a8748f\",\"modelid\":\"99d986e7-aaa1-49ff-83b7-d47d72e17987\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"f031e3c2-7c8c-4224-896f-0b7ab1a8748f\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = figure(title=\"filtered roll gyrodiff vs actuators\")\n",
"p.line(df.time, df.derivfilteredX)\n",
"p.extra_y_ranges = { 'actuation' : Range1d(min(df.desiredX), max(df.desiredX)) }\n",
"p.line(df.time, df.desiredX, y_range_name='actuation', color=\"red\")\n",
"p.add_layout(LinearAxis(y_range_name=\"actuation\"), 'right')\n",
"\n",
"show(p)\n",
"\n",
"# Low pass filtering clearly helps. Now let's get down to business of finding how the input\n",
"# relates to the output."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true,
"scrolled": false,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"5a76911a-08b8-4b22-acba-7f08c65cbd50\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"5a76911a-08b8-4b22-acba-7f08c65cbd50\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"5a76911a-08b8-4b22-acba-7f08c65cbd50\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid '5a76911a-08b8-4b22-acba-7f08c65cbd50' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"4ee867f1-69c0-4b44-99c3-afae99312c1d\":{\"roots\":{\"references\":[{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"83305fa5-d251-4142-9cc7-054f626fa43d\",\"type\":\"LogTicker\"}},\"id\":\"8cf74131-c08a-4d31-8dbc-746eaa77c281\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"51b90228-e080-497a-a405-b10d3cbdb302\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"7dd428b1-d588-424f-897b-2405048a4163\",\"type\":\"DataRange1d\"},{\"attributes\":{\"formatter\":{\"id\":\"4da0e76d-861f-4305-8af7-146b7172a7fe\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"b2540d79-0077-4b34-9d07-081524e4e3ef\",\"type\":\"BasicTicker\"}},\"id\":\"1293b66b-c16f-4bea-aa75-693511257803\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":null,\"text\":\"X delay time vs. correlation\"},\"id\":\"529d8d93-2647-4478-9fcc-fb47074f6b4d\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"fc22ec96-2a19-4e4d-82a6-1ce393cf7829\",\"type\":\"ToolEvents\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[256]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[256]}}},\"id\":\"7b1a2022-3685-4e53-8cef-958df3b08dab\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"plot\":{\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"ed1c8a0d-9761-4df5-a31a-d76e0978e232\",\"type\":\"HelpTool\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3c89a307-aed4-4076-a366-e477ac5247af\",\"type\":\"Line\"},{\"attributes\":{\"below\":[{\"id\":\"1293b66b-c16f-4bea-aa75-693511257803\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"22300c7f-daf4-418d-9eed-6f68da219c19\",\"type\":\"LogAxis\"}],\"renderers\":[{\"id\":\"1293b66b-c16f-4bea-aa75-693511257803\",\"type\":\"LinearAxis\"},{\"id\":\"f2a124a1-80db-4835-95cb-4abe0d300690\",\"type\":\"Grid\"},{\"id\":\"22300c7f-daf4-418d-9eed-6f68da219c19\",\"type\":\"LogAxis\"},{\"id\":\"8cf74131-c08a-4d31-8dbc-746eaa77c281\",\"type\":\"Grid\"},{\"id\":\"5d0a51be-e12f-44e5-b240-b149f7fbcb4d\",\"type\":\"BoxAnnotation\"},{\"id\":\"d294c9ed-3165-4909-89c6-46ffbe38e6c3\",\"type\":\"GlyphRenderer\"},{\"id\":\"1e17f8b3-1027-443b-9954-7f537ab91515\",\"type\":\"Span\"}],\"title\":{\"id\":\"529d8d93-2647-4478-9fcc-fb47074f6b4d\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"fc22ec96-2a19-4e4d-82a6-1ce393cf7829\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"4f97a0e0-4056-4ff9-ad83-896da44ca60d\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"9c503c9c-2a90-4c05-b3dc-7305cbca6f0e\",\"type\":\"DataRange1d\"},\"y_mapper_type\":\"log\",\"y_range\":{\"id\":\"7dd428b1-d588-424f-897b-2405048a4163\",\"type\":\"DataRange1d\"}},\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data_source\":{\"id\":\"7b1a2022-3685-4e53-8cef-958df3b08dab\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3c89a307-aed4-4076-a366-e477ac5247af\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"51b90228-e080-497a-a405-b10d3cbdb302\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"d294c9ed-3165-4909-89c6-46ffbe38e6c3\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"c5d51b25-cb8f-4cdd-a2c6-2adf69ddfb6d\",\"type\":\"PanTool\"},{\"id\":\"6d38c61d-faf0-4362-84e8-7fce45e1a5d8\",\"type\":\"WheelZoomTool\"},{\"id\":\"4260c7fd-b636-4be6-8b2a-63608e6f01a1\",\"type\":\"BoxZoomTool\"},{\"id\":\"7f7a15c5-3adf-441d-9d61-f945b7917b0c\",\"type\":\"SaveTool\"},{\"id\":\"f0a9bba9-05fa-4924-8793-7340bce17c06\",\"type\":\"ResetTool\"},{\"id\":\"ed1c8a0d-9761-4df5-a31a-d76e0978e232\",\"type\":\"HelpTool\"}]},\"id\":\"4f97a0e0-4056-4ff9-ad83-896da44ca60d\",\"type\":\"Toolbar\"},{\"attributes\":{\"plot\":{\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"b2540d79-0077-4b34-9d07-081524e4e3ef\",\"type\":\"BasicTicker\"}},\"id\":\"f2a124a1-80db-4835-95cb-4abe0d300690\",\"type\":\"Grid\"},{\"attributes\":{\"formatter\":{\"id\":\"00655968-6b3b-48a5-9a0e-47708a5078b3\",\"type\":\"LogTickFormatter\"},\"plot\":{\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"83305fa5-d251-4142-9cc7-054f626fa43d\",\"type\":\"LogTicker\"}},\"id\":\"22300c7f-daf4-418d-9eed-6f68da219c19\",\"type\":\"LogAxis\"},{\"attributes\":{\"num_minor_ticks\":10},\"id\":\"83305fa5-d251-4142-9cc7-054f626fa43d\",\"type\":\"LogTicker\"},{\"attributes\":{},\"id\":\"b2540d79-0077-4b34-9d07-081524e4e3ef\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":\"height\",\"line_color\":{\"value\":\"red\"},\"location\":0.023947274183471867,\"plot\":null},\"id\":\"1e17f8b3-1027-443b-9954-7f537ab91515\",\"type\":\"Span\"},{\"attributes\":{\"callback\":null},\"id\":\"9c503c9c-2a90-4c05-b3dc-7305cbca6f0e\",\"type\":\"DataRange1d\"},{\"attributes\":{\"plot\":{\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"c5d51b25-cb8f-4cdd-a2c6-2adf69ddfb6d\",\"type\":\"PanTool\"},{\"attributes\":{\"plot\":{\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"6d38c61d-faf0-4362-84e8-7fce45e1a5d8\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"4da0e76d-861f-4305-8af7-146b7172a7fe\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"5d0a51be-e12f-44e5-b240-b149f7fbcb4d\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"overlay\":{\"id\":\"5d0a51be-e12f-44e5-b240-b149f7fbcb4d\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"4260c7fd-b636-4be6-8b2a-63608e6f01a1\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"ticker\":null},\"id\":\"00655968-6b3b-48a5-9a0e-47708a5078b3\",\"type\":\"LogTickFormatter\"},{\"attributes\":{\"plot\":{\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"f0a9bba9-05fa-4924-8793-7340bce17c06\",\"type\":\"ResetTool\"},{\"attributes\":{\"plot\":{\"id\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"7f7a15c5-3adf-441d-9d61-f945b7917b0c\",\"type\":\"SaveTool\"}],\"root_ids\":[\"2c375a8e-9d01-44be-b7a7-2741db3583f6\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"4ee867f1-69c0-4b44-99c3-afae99312c1d\",\"elementid\":\"5a76911a-08b8-4b22-acba-7f08c65cbd50\",\"modelid\":\"2c375a8e-9d01-44be-b7a7-2741db3583f6\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"5a76911a-08b8-4b22-acba-7f08c65cbd50\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Axis X: tau=23.9 samples (23.95 ms / -3.732)\n",
"\tgain=14.7 (beta=9.595), bias=12.1\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"d064b108-6b43-46f0-b446-3a0b9228f2e2\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"d064b108-6b43-46f0-b446-3a0b9228f2e2\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"d064b108-6b43-46f0-b446-3a0b9228f2e2\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'd064b108-6b43-46f0-b446-3a0b9228f2e2' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"84d34f09-80b7-4776-ac4d-5bd4897d4da3\":{\"roots\":{\"references\":[{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"098c658c-8429-4263-82dc-a4befc17a58e\",\"type\":\"PanTool\"},{\"id\":\"ae61f0b7-448e-4d41-87b7-7b8ce3fa6e14\",\"type\":\"WheelZoomTool\"},{\"id\":\"9e383841-bbab-4d6f-a417-77214e7e453f\",\"type\":\"BoxZoomTool\"},{\"id\":\"7d33ac63-ca00-4198-8b63-f0cf1d46da02\",\"type\":\"SaveTool\"},{\"id\":\"14ec53af-c2ae-468a-a616-a7b8ef79eadd\",\"type\":\"ResetTool\"},{\"id\":\"04bb462e-a027-4f2e-8fa1-c491188da4e1\",\"type\":\"HelpTool\"}]},\"id\":\"ad557c7c-bca5-49aa-bd2a-0daa3a8b0712\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"821f58e8-593d-42a0-9e14-9a78ee785cd3\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"formatter\":{\"id\":\"30709042-3626-4cce-8ca5-e6b1a48d96bc\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"bd43d61a-065f-49f5-b52c-c575b111adf2\",\"type\":\"BasicTicker\"}},\"id\":\"1feddcdc-86d2-41af-8a03-3e3ce5564c3c\",\"type\":\"LinearAxis\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"f62bec9e-c052-428a-aa80-a4bde682eff5\",\"type\":\"BasicTicker\"}},\"id\":\"32138752-3bd3-4bec-b0f5-d0ae516b8e24\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4c5ef6ff-a6d6-4f78-a931-2d59f6d914b2\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"fe7f8a8f-5eb3-4a74-9284-26f058fbdfd4\",\"type\":\"ToolEvents\"},{\"attributes\":{\"plot\":{\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"ae61f0b7-448e-4d41-87b7-7b8ce3fa6e14\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"bd43d61a-065f-49f5-b52c-c575b111adf2\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":{\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"7d33ac63-ca00-4198-8b63-f0cf1d46da02\",\"type\":\"SaveTool\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"899a83f0-21e8-4d43-8783-c2c7284fb411\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"6a025d6d-8c31-4949-8a30-63b2d1aae087\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"013bdc17-a9c2-4b52-a1f4-fd1c4deedea4\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"4c5ef6ff-a6d6-4f78-a931-2d59f6d914b2\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"eaa211cc-79b4-4ad0-9fef-69233e45fc0b\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"42c47cd1-feca-48a8-a7b5-393db0af99e2\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"plot\":{\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"098c658c-8429-4263-82dc-a4befc17a58e\",\"type\":\"PanTool\"},{\"attributes\":{\"plot\":{\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"bd43d61a-065f-49f5-b52c-c575b111adf2\",\"type\":\"BasicTicker\"}},\"id\":\"ad1a786a-6d0c-44ef-a95e-0fd262bbbba7\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"1feddcdc-86d2-41af-8a03-3e3ce5564c3c\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"8ac7f90b-13a0-4941-9d13-24eb5078c96b\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"1feddcdc-86d2-41af-8a03-3e3ce5564c3c\",\"type\":\"LinearAxis\"},{\"id\":\"ad1a786a-6d0c-44ef-a95e-0fd262bbbba7\",\"type\":\"Grid\"},{\"id\":\"8ac7f90b-13a0-4941-9d13-24eb5078c96b\",\"type\":\"LinearAxis\"},{\"id\":\"32138752-3bd3-4bec-b0f5-d0ae516b8e24\",\"type\":\"Grid\"},{\"id\":\"42c47cd1-feca-48a8-a7b5-393db0af99e2\",\"type\":\"BoxAnnotation\"},{\"id\":\"465c22cb-2d71-44dd-9ed3-24c4c6931a85\",\"type\":\"GlyphRenderer\"},{\"id\":\"eaa211cc-79b4-4ad0-9fef-69233e45fc0b\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"f35c1f82-f55c-4fec-a436-6051bb385df3\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"fe7f8a8f-5eb3-4a74-9284-26f058fbdfd4\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"ad557c7c-bca5-49aa-bd2a-0daa3a8b0712\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"fd4ac985-765d-49af-9c8a-e95c8a4bb16b\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"d5396046-383f-43c7-a0ae-6c032f988221\",\"type\":\"DataRange1d\"}},\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"89ac253d-6ffb-456e-8b3c-df1a8055b4bb\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"89ac253d-6ffb-456e-8b3c-df1a8055b4bb\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"899a83f0-21e8-4d43-8783-c2c7284fb411\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"16c25b41-b7c9-4805-a15d-772aeccb4410\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"465c22cb-2d71-44dd-9ed3-24c4c6931a85\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"f62bec9e-c052-428a-aa80-a4bde682eff5\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":{\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"04bb462e-a027-4f2e-8fa1-c491188da4e1\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"6a025d6d-8c31-4949-8a30-63b2d1aae087\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"plot\":{\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"14ec53af-c2ae-468a-a616-a7b8ef79eadd\",\"type\":\"ResetTool\"},{\"attributes\":{\"overlay\":{\"id\":\"42c47cd1-feca-48a8-a7b5-393db0af99e2\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"9e383841-bbab-4d6f-a417-77214e7e453f\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"30709042-3626-4cce-8ca5-e6b1a48d96bc\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null},\"id\":\"d5396046-383f-43c7-a0ae-6c032f988221\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_color\":{\"value\":\"green\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"013bdc17-a9c2-4b52-a1f4-fd1c4deedea4\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"fd4ac985-765d-49af-9c8a-e95c8a4bb16b\",\"type\":\"DataRange1d\"},{\"attributes\":{\"plot\":null,\"text\":\"X shifted to line up\"},\"id\":\"f35c1f82-f55c-4fec-a436-6051bb385df3\",\"type\":\"Title\"},{\"attributes\":{\"formatter\":{\"id\":\"821f58e8-593d-42a0-9e14-9a78ee785cd3\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"f62bec9e-c052-428a-aa80-a4bde682eff5\",\"type\":\"BasicTicker\"}},\"id\":\"8ac7f90b-13a0-4941-9d13-24eb5078c96b\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"16c25b41-b7c9-4805-a15d-772aeccb4410\",\"type\":\"Line\"}],\"root_ids\":[\"987a526c-4fe1-4cb4-a5ab-746b116ee374\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"84d34f09-80b7-4776-ac4d-5bd4897d4da3\",\"elementid\":\"d064b108-6b43-46f0-b446-3a0b9228f2e2\",\"modelid\":\"987a526c-4fe1-4cb4-a5ab-746b116ee374\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"d064b108-6b43-46f0-b446-3a0b9228f2e2\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"f84cb8a1-8bd3-49c4-ab78-d0db32fac3c1\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"f84cb8a1-8bd3-49c4-ab78-d0db32fac3c1\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"f84cb8a1-8bd3-49c4-ab78-d0db32fac3c1\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'f84cb8a1-8bd3-49c4-ab78-d0db32fac3c1' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"cb393870-298e-41ea-8781-8afb8a8e9489\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"57f0876b-ed90-48d0-8e6a-abcd28f415f9\",\"type\":\"BasicTicker\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"c090d1f2-2a45-4dda-aa47-3a6bed41f61f\",\"type\":\"PanTool\"},{\"id\":\"39b28aa1-7771-4e9f-a14f-b33f676c89dc\",\"type\":\"WheelZoomTool\"},{\"id\":\"f390ab65-920e-4c19-926e-dcab7e1c489a\",\"type\":\"BoxZoomTool\"},{\"id\":\"c15de09f-a024-4582-a0fb-86b4c9a82345\",\"type\":\"SaveTool\"},{\"id\":\"073ac404-81f4-4260-b7cd-706642a8b117\",\"type\":\"ResetTool\"},{\"id\":\"f88a25a3-780c-4cb6-9aa1-c368e130143d\",\"type\":\"HelpTool\"}]},\"id\":\"45e9929e-9f3b-4926-97f5-0fc20799eefc\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null},\"id\":\"744bcc58-7718-4967-9d7f-29c6d8f4b3be\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"48b483f8-01a2-4d63-b4ef-dcaaaa0b9e04\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"plot\":{\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"39b28aa1-7771-4e9f-a14f-b33f676c89dc\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"plot\":{\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"073ac404-81f4-4260-b7cd-706642a8b117\",\"type\":\"ResetTool\"},{\"attributes\":{\"data_source\":{\"id\":\"48b483f8-01a2-4d63-b4ef-dcaaaa0b9e04\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1ca8113c-cec8-4407-bf48-cf0c115aa7d9\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"941f50e9-a709-4403-b5a9-6f0e0b875685\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"ab11c71f-4cb3-4127-ac64-4b8555d10b01\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"formatter\":{\"id\":\"2019fc4d-f9ff-4af3-985e-ae906f0b5edb\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"57f0876b-ed90-48d0-8e6a-abcd28f415f9\",\"type\":\"BasicTicker\"}},\"id\":\"a542fb82-beee-4340-833e-2ec486191ed9\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"57f0876b-ed90-48d0-8e6a-abcd28f415f9\",\"type\":\"BasicTicker\"}},\"id\":\"4556be04-3614-43f5-b837-b69768f6589c\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"ec4677a3-83e5-4fae-9bbd-5942f8ee4fc2\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"plot\":null,\"text\":\"residual X\"},\"id\":\"a9c604ab-3eab-4cd0-8aa1-611dd1f260dd\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"5cecce27-e4c6-468d-af1f-f6840e966c3d\",\"type\":\"ToolEvents\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"ee5d0ada-5ee6-482a-aad2-4d1b01bc7132\",\"type\":\"BasicTicker\"}},\"id\":\"94438d98-17c2-4ece-886e-5afb1276f029\",\"type\":\"Grid\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1ca8113c-cec8-4407-bf48-cf0c115aa7d9\",\"type\":\"Line\"},{\"attributes\":{\"formatter\":{\"id\":\"a652d2c6-4eb3-4f34-bdf5-71eff761c42e\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"ee5d0ada-5ee6-482a-aad2-4d1b01bc7132\",\"type\":\"BasicTicker\"}},\"id\":\"aa7c8901-c9cf-4c0a-8244-3918aba295f6\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"c090d1f2-2a45-4dda-aa47-3a6bed41f61f\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"ee5d0ada-5ee6-482a-aad2-4d1b01bc7132\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"941f50e9-a709-4403-b5a9-6f0e0b875685\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"c15de09f-a024-4582-a0fb-86b4c9a82345\",\"type\":\"SaveTool\"},{\"attributes\":{\"overlay\":{\"id\":\"ec4677a3-83e5-4fae-9bbd-5942f8ee4fc2\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"f390ab65-920e-4c19-926e-dcab7e1c489a\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2019fc4d-f9ff-4af3-985e-ae906f0b5edb\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"below\":[{\"id\":\"a542fb82-beee-4340-833e-2ec486191ed9\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"aa7c8901-c9cf-4c0a-8244-3918aba295f6\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"a542fb82-beee-4340-833e-2ec486191ed9\",\"type\":\"LinearAxis\"},{\"id\":\"4556be04-3614-43f5-b837-b69768f6589c\",\"type\":\"Grid\"},{\"id\":\"aa7c8901-c9cf-4c0a-8244-3918aba295f6\",\"type\":\"LinearAxis\"},{\"id\":\"94438d98-17c2-4ece-886e-5afb1276f029\",\"type\":\"Grid\"},{\"id\":\"ec4677a3-83e5-4fae-9bbd-5942f8ee4fc2\",\"type\":\"BoxAnnotation\"},{\"id\":\"ab11c71f-4cb3-4127-ac64-4b8555d10b01\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"a9c604ab-3eab-4cd0-8aa1-611dd1f260dd\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"5cecce27-e4c6-468d-af1f-f6840e966c3d\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"45e9929e-9f3b-4926-97f5-0fc20799eefc\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"744bcc58-7718-4967-9d7f-29c6d8f4b3be\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"b786b38f-8bd0-41b2-92ab-e7c1558dd9ae\",\"type\":\"DataRange1d\"}},\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"plot\":{\"id\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"f88a25a3-780c-4cb6-9aa1-c368e130143d\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null},\"id\":\"b786b38f-8bd0-41b2-92ab-e7c1558dd9ae\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"a652d2c6-4eb3-4f34-bdf5-71eff761c42e\",\"type\":\"BasicTickFormatter\"}],\"root_ids\":[\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"cb393870-298e-41ea-8781-8afb8a8e9489\",\"elementid\":\"f84cb8a1-8bd3-49c4-ab78-d0db32fac3c1\",\"modelid\":\"70b732ce-3f14-480e-ae2d-9bf1d1c3e26a\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"f84cb8a1-8bd3-49c4-ab78-d0db32fac3c1\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"6609b543-d53c-4c7b-9c79-c5493606c474\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"6609b543-d53c-4c7b-9c79-c5493606c474\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"6609b543-d53c-4c7b-9c79-c5493606c474\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid '6609b543-d53c-4c7b-9c79-c5493606c474' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"da8d4e1d-66f3-44f8-86e7-39e1cb33d794\":{\"roots\":{\"references\":[{\"attributes\":{\"plot\":null,\"text\":\"Y delay time vs. correlation\"},\"id\":\"92c62926-86c5-4a11-8cd2-227ab248797d\",\"type\":\"Title\"},{\"attributes\":{\"plot\":{\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"0df646b6-cda8-47df-9a10-2dd831fc241a\",\"type\":\"ResetTool\"},{\"attributes\":{\"dimension\":\"height\",\"line_color\":{\"value\":\"red\"},\"location\":0.023789939491166267,\"plot\":null},\"id\":\"70e872f7-fb8d-4cd2-a5d0-dffab4f714e1\",\"type\":\"Span\"},{\"attributes\":{\"overlay\":{\"id\":\"ac65f68b-20fd-46de-b9bc-304880159b94\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"cf7336ab-f4ba-460b-ab45-1be7cfc9f291\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"ac65f68b-20fd-46de-b9bc-304880159b94\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"plot\":{\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"4479721f-d39d-472d-b97e-012c276a3a7b\",\"type\":\"HelpTool\"},{\"attributes\":{\"ticker\":null},\"id\":\"913dcdab-ef16-418b-9f6f-b7261c2483fc\",\"type\":\"LogTickFormatter\"},{\"attributes\":{\"formatter\":{\"id\":\"62ec57b1-abf8-43a7-b1fc-c21cb392ebdb\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"3207108f-219a-4830-a337-6801deeb7b0a\",\"type\":\"BasicTicker\"}},\"id\":\"66e33aca-b575-43d0-81dc-64f1ebe882c5\",\"type\":\"LinearAxis\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"03f499ae-4bc4-49ff-a161-1124e9158f08\",\"type\":\"LogTicker\"}},\"id\":\"21742840-d2ef-4855-abd6-ab5e02e1010f\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"66e33aca-b575-43d0-81dc-64f1ebe882c5\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"d868034d-dad4-439e-a8ea-207f5d84b09b\",\"type\":\"LogAxis\"}],\"renderers\":[{\"id\":\"66e33aca-b575-43d0-81dc-64f1ebe882c5\",\"type\":\"LinearAxis\"},{\"id\":\"9d7d8aea-d389-41c6-a3a2-b9deab82f3eb\",\"type\":\"Grid\"},{\"id\":\"d868034d-dad4-439e-a8ea-207f5d84b09b\",\"type\":\"LogAxis\"},{\"id\":\"21742840-d2ef-4855-abd6-ab5e02e1010f\",\"type\":\"Grid\"},{\"id\":\"ac65f68b-20fd-46de-b9bc-304880159b94\",\"type\":\"BoxAnnotation\"},{\"id\":\"9bdde79f-37ba-4b7d-9e63-4812c4818bca\",\"type\":\"GlyphRenderer\"},{\"id\":\"70e872f7-fb8d-4cd2-a5d0-dffab4f714e1\",\"type\":\"Span\"}],\"title\":{\"id\":\"92c62926-86c5-4a11-8cd2-227ab248797d\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"c844c2f3-6265-4123-b09d-0a22d523fbd0\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"7322f491-3891-4425-8da4-db7d14623b04\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"a5ccc038-5740-4fb9-b4c9-1010cbe54b0c\",\"type\":\"DataRange1d\"},\"y_mapper_type\":\"log\",\"y_range\":{\"id\":\"50f871e9-911d-4df9-ae69-ac01c38ab0e2\",\"type\":\"DataRange1d\"}},\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"746cfa27-cbd8-4e0e-b2a4-fd96cb7520d3\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"4492a711-9169-4e76-8ade-7c4f0291cf47\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"62ec57b1-abf8-43a7-b1fc-c21cb392ebdb\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null},\"id\":\"a5ccc038-5740-4fb9-b4c9-1010cbe54b0c\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"c844c2f3-6265-4123-b09d-0a22d523fbd0\",\"type\":\"ToolEvents\"},{\"attributes\":{\"num_minor_ticks\":10},\"id\":\"03f499ae-4bc4-49ff-a161-1124e9158f08\",\"type\":\"LogTicker\"},{\"attributes\":{\"plot\":{\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"3207108f-219a-4830-a337-6801deeb7b0a\",\"type\":\"BasicTicker\"}},\"id\":\"9d7d8aea-d389-41c6-a3a2-b9deab82f3eb\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[256]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[256]}}},\"id\":\"2848055e-edc2-48b4-ba88-1b64887c25bb\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"plot\":{\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"dd37bf47-cf24-48d7-af13-7e5dd239fd65\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"3207108f-219a-4830-a337-6801deeb7b0a\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null},\"id\":\"50f871e9-911d-4df9-ae69-ac01c38ab0e2\",\"type\":\"DataRange1d\"},{\"attributes\":{\"formatter\":{\"id\":\"913dcdab-ef16-418b-9f6f-b7261c2483fc\",\"type\":\"LogTickFormatter\"},\"plot\":{\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"03f499ae-4bc4-49ff-a161-1124e9158f08\",\"type\":\"LogTicker\"}},\"id\":\"d868034d-dad4-439e-a8ea-207f5d84b09b\",\"type\":\"LogAxis\"},{\"attributes\":{\"data_source\":{\"id\":\"2848055e-edc2-48b4-ba88-1b64887c25bb\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"ac187d9f-15e2-4cac-9d3b-4e328306920d\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"746cfa27-cbd8-4e0e-b2a4-fd96cb7520d3\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"9bdde79f-37ba-4b7d-9e63-4812c4818bca\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"plot\":{\"id\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"9858a341-d000-419f-8947-1f4ceb844c0d\",\"type\":\"PanTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"9858a341-d000-419f-8947-1f4ceb844c0d\",\"type\":\"PanTool\"},{\"id\":\"4492a711-9169-4e76-8ade-7c4f0291cf47\",\"type\":\"WheelZoomTool\"},{\"id\":\"cf7336ab-f4ba-460b-ab45-1be7cfc9f291\",\"type\":\"BoxZoomTool\"},{\"id\":\"dd37bf47-cf24-48d7-af13-7e5dd239fd65\",\"type\":\"SaveTool\"},{\"id\":\"0df646b6-cda8-47df-9a10-2dd831fc241a\",\"type\":\"ResetTool\"},{\"id\":\"4479721f-d39d-472d-b97e-012c276a3a7b\",\"type\":\"HelpTool\"}]},\"id\":\"7322f491-3891-4425-8da4-db7d14623b04\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"ac187d9f-15e2-4cac-9d3b-4e328306920d\",\"type\":\"Line\"}],\"root_ids\":[\"176fc997-4a5e-4a94-be1f-20bed54c0258\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"da8d4e1d-66f3-44f8-86e7-39e1cb33d794\",\"elementid\":\"6609b543-d53c-4c7b-9c79-c5493606c474\",\"modelid\":\"176fc997-4a5e-4a94-be1f-20bed54c0258\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"6609b543-d53c-4c7b-9c79-c5493606c474\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Axis Y: tau=23.8 samples (23.79 ms / -3.738)\n",
"\tgain=15.4 (beta=9.642), bias=141.6\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"c8657e80-5b7f-419f-a7c3-6a75df38159b\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"c8657e80-5b7f-419f-a7c3-6a75df38159b\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"c8657e80-5b7f-419f-a7c3-6a75df38159b\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'c8657e80-5b7f-419f-a7c3-6a75df38159b' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"708f88a8-c958-4698-a6c6-e144fc9227ce\":{\"roots\":{\"references\":[{\"attributes\":{\"callback\":null},\"id\":\"a6979654-feed-4805-85bf-165686833d01\",\"type\":\"DataRange1d\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"107b5797-a519-4b5c-8bd6-1df4fb941cea\",\"type\":\"PanTool\"},{\"id\":\"b4e17cbd-7ef6-4fa7-b15c-86a2b591c8fe\",\"type\":\"WheelZoomTool\"},{\"id\":\"4f998242-4ae1-42d0-87ab-3b490c6a1018\",\"type\":\"BoxZoomTool\"},{\"id\":\"c7164c99-0bed-4116-86f2-41858437efb0\",\"type\":\"SaveTool\"},{\"id\":\"22e63c43-31e1-4a52-bd0c-1d9a4edcd6b4\",\"type\":\"ResetTool\"},{\"id\":\"e434dcea-8e6d-4c2e-8e44-94edf645f037\",\"type\":\"HelpTool\"}]},\"id\":\"c117870f-4007-47cd-a8ce-4c6d304e9b62\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null},\"id\":\"bd288977-82f4-4a6d-b995-1e75b6b4dd2a\",\"type\":\"DataRange1d\"},{\"attributes\":{\"plot\":{\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"c7164c99-0bed-4116-86f2-41858437efb0\",\"type\":\"SaveTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"14d13d3f-5eb8-48df-86db-9415c99caf8e\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"22e63c43-31e1-4a52-bd0c-1d9a4edcd6b4\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"e74ae795-2c01-421c-a4bd-212a435b673e\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"3f07a2e4-1976-4f94-9ce0-c245132540f4\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAD8qfHSTWJQP/yp8dJNYmA/+n5qvHSTaD/8qfHSTWJwP3sUrkfhenQ/+n5qvHSTeD956SYxCKx8P/yp8dJNYoA/PN9PjZdugj97FK5H4XqEP7pJDAIrh4Y/+n5qvHSTiD86tMh2vp+KP3npJjEIrIw/uB6F61G4jj/8qfHSTWKQP5zEILByaJE/PN9PjZdukj/b+X5qvHSTP3sUrkfhepQ/Gy/dJAaBlT+6SQwCK4eWP1pkO99PjZc/+n5qvHSTmD+amZmZmZmZPzq0yHa+n5o/2c73U+Olmz956SYxCKycPxkEVg4tsp0/uB6F61G4nj9YObTIdr6fP/yp8dJNYqA/TDeJQWDloD+cxCCwcmihP+xRuB6F66E/PN9PjZduoj+LbOf7qfGiP9v5fmq8dKM/K4cW2c73oz97FK5H4XqkP8uhRbbz/aQ/Gy/dJAaBpT9rvHSTGASmP7pJDAIrh6Y/CtejcD0Kpz9aZDvfT42nP6rx0k1iEKg/+n5qvHSTqD9KDAIrhxapP5qZmZmZmak/6iYxCKwcqj86tMh2vp+qP4lBYOXQIqs/2c73U+Olqz8pXI/C9SisP3npJjEIrKw/yXa+nxovrT8ZBFYOLbKtP2mR7Xw/Na4/uB6F61G4rj8IrBxaZDuvP1g5tMh2vq8/VOOlm8QgsD/8qfHSTWKwP6RwPQrXo7A/TDeJQWDlsD/0/dR46SaxP5zEILByaLE/RIts5/upsT/sUbgeheuxP5QYBFYOLbI/PN9PjZdusj/jpZvEILCyP4ts5/up8bI/MzMzMzMzsz/b+X5qvHSzP4PAyqFFtrM/K4cW2c73sz/TTWIQWDm0P3sUrkfherQ/I9v5fmq8tD/LoUW28/20P3Noke18P7U/Gy/dJAaBtT/D9Shcj8K1P2u8dJMYBLY/E4PAyqFFtj+6SQwCK4e2P2IQWDm0yLY/CtejcD0Ktz+yne+nxku3P1pkO99Pjbc/AiuHFtnOtz+q8dJNYhC4P1K4HoXrUbg/+n5qvHSTuD+iRbbz/dS4P0oMAiuHFrk/8tJNYhBYuT+amZmZmZm5P0Jg5dAi27k/6iYxCKwcuj+S7Xw/NV66Pzq0yHa+n7o/4XoUrkfhuj+JQWDl0CK7PzEIrBxaZLs/2c73U+Oluz+BlUOLbOe7Pylcj8L1KLw/0SLb+X5qvD956SYxCKy8PyGwcmiR7bw/yXa+nxovvT9xPQrXo3C9PxkEVg4tsr0/wcqhRbbzvT9pke18PzW+PxFYObTIdr4/uB6F61G4vj9g5dAi2/m+PwisHFpkO78/sHJoke18vz9YObTIdr6/PwAAAAAAAMA/VOOlm8QgwD+oxks3iUHAP/yp8dJNYsA/UI2XbhKDwD+kcD0K16PAP/hT46WbxMA/TDeJQWDlwD+gGi/dJAbBP/T91HjpJsE/SOF6FK5HwT+cxCCwcmjBP/Cnxks3icE/RIts5/upwT+YbhKDwMrBP+xRuB6F68E/QDVeukkMwj+UGARWDi3CP+j7qfHSTcI/PN9PjZduwj+PwvUoXI/CP+Olm8QgsMI/N4lBYOXQwj+LbOf7qfHCP99PjZduEsM/MzMzMzMzwz+HFtnO91PDP9v5fmq8dMM/L90kBoGVwz+DwMqhRbbDP9ejcD0K18M/K4cW2c73wz9/arx0kxjEP9NNYhBYOcQ/JzEIrBxaxD97FK5H4XrEP8/3U+Olm8Q/I9v5fmq8xD93vp8aL93EP8uhRbbz/cQ/H4XrUbgexT9zaJHtfD/FP8dLN4lBYMU/Gy/dJAaBxT9vEoPAyqHFP8P1KFyPwsU/F9nO91PjxT9rvHSTGATGP7+fGi/dJMY/E4PAyqFFxj9nZmZmZmbGP7pJDAIrh8Y/Di2yne+nxj9iEFg5tMjGP7bz/dR46cY/CtejcD0Kxz9eukkMAivHP7Kd76fGS8c/BoGVQ4tsxz9aZDvfT43HP65H4XoUrsc/AiuHFtnOxz9WDi2yne/HP6rx0k1iEMg//tR46SYxyD9SuB6F61HIP6abxCCwcsg/+n5qvHSTyD9OYhBYObTIP6JFtvP91Mg/9ihcj8L1yD9KDAIrhxbJP57vp8ZLN8k/8tJNYhBYyT9GtvP91HjJP5qZmZmZmck/7nw/NV66yT9CYOXQItvJP5ZDi2zn+8k/6iYxCKwcyj8+CtejcD3KP5LtfD81Xso/5tAi2/l+yj86tMh2vp/KP42XbhKDwMo/4XoUrkfhyj81XrpJDALLP4lBYOXQIss/3SQGgZVDyz8xCKwcWmTLP4XrUbgehcs/2c73U+Olyz8tsp3vp8bLP4GVQ4ts58s/1XjpJjEIzD8pXI/C9SjMP30/NV66Scw/0SLb+X5qzD8lBoGVQ4vMP3npJjEIrMw/zczMzMzMzD8hsHJoke3MP3WTGARWDs0/yXa+nxovzT8dWmQ730/NP3E9CtejcM0/xSCwcmiRzT8ZBFYOLbLNP23n+6nx0s0/wcqhRbbzzT8VrkfhehTOP2mR7Xw/Nc4/vXSTGARWzj8RWDm0yHbOP2U730+Nl84/uB6F61G4zj8MAiuHFtnOP2Dl0CLb+c4/tMh2vp8azz8IrBxaZDvPP1yPwvUoXM8/sHJoke18zz8EVg4tsp3PP1g5tMh2vs8/rBxaZDvfzz8AAAAAAADQP6rx0k1iENA/VOOlm8Qg0D/+1HjpJjHQP6jGSzeJQdA/UrgehetR0D/8qfHSTWLQP6abxCCwctA/UI2XbhKD0D/6fmq8dJPQP6RwPQrXo9A/TmIQWDm00D/4U+Olm8TQP6JFtvP91NA/TDeJQWDl0D/2KFyPwvXQP6AaL90kBtE/SgwCK4cW0T/0/dR46SbRP57vp8ZLN9E/SOF6FK5H0T/y0k1iEFjRP5zEILByaNE/Rrbz/dR40T/wp8ZLN4nRP5qZmZmZmdE/RIts5/up0T/ufD81XrrRP5huEoPAytE/QmDl0CLb0T/sUbgehevRP5ZDi2zn+9E/QDVeukkM0j/qJjEIrBzSP5QYBFYOLdI/PgrXo3A90j/o+6nx0k3SP5LtfD81XtI/PN9PjZdu0j/l0CLb+X7SP4/C9Shcj9I/ObTIdr6f0j/jpZvEILDSP42XbhKDwNI/N4lBYOXQ0j/hehSuR+HSP4ts5/up8dI/NV66SQwC0z/fT42XbhLTP4lBYOXQItM/MzMzMzMz0z/dJAaBlUPTP4cW2c73U9M/MQisHFpk0z/b+X5qvHTTP4XrUbgehdM/L90kBoGV0z/ZzvdT46XTP4PAyqFFttM/LbKd76fG0z/Xo3A9CtfTP4GVQ4ts59M/K4cW2c730z/VeOkmMQjUP39qvHSTGNQ/KVyPwvUo1D/TTWIQWDnUP30/NV66SdQ/JzEIrBxa1D/RItv5fmrUP3sUrkfhetQ/JQaBlUOL1D/P91PjpZvUP3npJjEIrNQ/I9v5fmq81D/NzMzMzMzUP3e+nxov3dQ/IbByaJHt1D/LoUW28/3UP3WTGARWDtU/H4XrUbge1T/Jdr6fGi/VP3Noke18P9U/HVpkO99P1T/HSzeJQWDVP3E9CtejcNU/Gy/dJAaB1T/FILByaJHVP28Sg8DKodU/GQRWDi2y1T/D9Shcj8LVP23n+6nx0tU/F9nO91Pj1T/ByqFFtvPVP2u8dJMYBNY/Fa5H4XoU1j+/nxov3STWP2mR7Xw/NdY/E4PAyqFF1j+9dJMYBFbWP2dmZmZmZtY/EVg5tMh21j+6SQwCK4fWP2Q730+Nl9Y/Di2yne+n1j+4HoXrUbjWP2IQWDm0yNY/DAIrhxbZ1j+28/3UeOnWP2Dl0CLb+dY/CtejcD0K1z+0yHa+nxrXP166SQwCK9c/CKwcWmQ71z+yne+nxkvXP1yPwvUoXNc/BoGVQ4ts1z+wcmiR7XzXP1pkO99Pjdc/BFYOLbKd1z+uR+F6FK7XP1g5tMh2vtc/AiuHFtnO1z+sHFpkO9/XP1YOLbKd79c/AAAAAAAA2D+q8dJNYhDYP1TjpZvEINg//tR46SYx2D+oxks3iUHYP1K4HoXrUdg//Knx0k1i2D+mm8QgsHLYP1CNl24Sg9g/+n5qvHST2D+kcD0K16PYP05iEFg5tNg/+FPjpZvE2D+iRbbz/dTYP0w3iUFg5dg/9ihcj8L12D+gGi/dJAbZP0oMAiuHFtk/9P3UeOkm2T+e76fGSzfZP0jhehSuR9k/8tJNYhBY2T+cxCCwcmjZP0a28/3UeNk/8KfGSzeJ2T+amZmZmZnZP0SLbOf7qdk/7nw/NV662T+YbhKDwMrZP0Jg5dAi29k/7FG4HoXr2T+WQ4ts5/vZP0A1XrpJDNo/6iYxCKwc2j+UGARWDi3aPz4K16NwPdo/6Pup8dJN2j+S7Xw/NV7aPzzfT42Xbto/5tAi2/l+2j+QwvUoXI/aPzq0yHa+n9o/46WbxCCw2j+Nl24Sg8DaPzeJQWDl0No/4XoUrkfh2j+LbOf7qfHaPzVeukkMAts/30+Nl24S2z+JQWDl0CLbPzMzMzMzM9s/3SQGgZVD2z+HFtnO91PbPzEIrBxaZNs/2/l+arx02z+F61G4HoXbPy/dJAaBlds/2c73U+Ol2z+DwMqhRbbbPy2yne+nxts/16NwPQrX2z+BlUOLbOfbPyuHFtnO99s/1XjpJjEI3D9/arx0kxjcPylcj8L1KNw/001iEFg53D99PzVeukncPycxCKwcWtw/0SLb+X5q3D97FK5H4XrcPyUGgZVDi9w/z/dT46Wb3D956SYxCKzcPyPb+X5qvNw/zczMzMzM3D93vp8aL93cPyGwcmiR7dw/y6FFtvP93D91kxgEVg7dPx+F61G4Ht0/yXa+nxov3T9zaJHtfD/dPx1aZDvfT90/x0s3iUFg3T9xPQrXo3DdPxsv3SQGgd0/xSCwcmiR3T9vEoPAyqHdPxkEVg4tst0/w/UoXI/C3T9t5/up8dLdPxfZzvdT490/wcqhRbbz3T9rvHSTGATePxWuR+F6FN4/v58aL90k3j9pke18PzXePxODwMqhRd4/vXSTGARW3j9nZmZmZmbePxFYObTIdt4/u0kMAiuH3j9lO99PjZfePw8tsp3vp94/uB6F61G43j9iEFg5tMjePwwCK4cW2d4/tvP91Hjp3j9g5dAi2/nePwrXo3A9Ct8/tMh2vp8a3z9eukkMAivfPwisHFpkO98/sp3vp8ZL3z9cj8L1KFzfPwaBlUOLbN8/sHJoke183z9aZDvfT43fPwRWDi2ynd8/rkfhehSu3z9YObTIdr7fPwIrhxbZzt8/rBxaZDvf3z9WDi2yne/fPwAAAAAAAOA/1XjpJjEI4D+q8dJNYhDgP39qvHSTGOA/VOOlm8Qg4D8pXI/C9SjgP/7UeOkmMeA/001iEFg54D+oxks3iUHgP30/NV66SeA/UrgehetR4D8nMQisHFrgPw==\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"7c4764ea-289d-4419-8bb3-eae409e0603d\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"506cd306-a19f-4826-bae4-d1f8cb1d8aa0\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"8e6cbd6b-fc86-4abf-8d9d-5a62c0822366\",\"type\":\"Line\"},{\"attributes\":{\"formatter\":{\"id\":\"e66ab51b-f13f-45ce-9eca-5474e7ca3ce1\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"506cd306-a19f-4826-bae4-d1f8cb1d8aa0\",\"type\":\"BasicTicker\"}},\"id\":\"f2a6f880-ab89-4e11-aadd-aa3ca0fa26ac\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"eb2fe656-7632-4640-844f-08db34e23f46\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"overlay\":{\"id\":\"3f07a2e4-1976-4f94-9ce0-c245132540f4\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"4f998242-4ae1-42d0-87ab-3b490c6a1018\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"plot\":{\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"e434dcea-8e6d-4c2e-8e44-94edf645f037\",\"type\":\"HelpTool\"},{\"attributes\":{\"data_source\":{\"id\":\"eb2fe656-7632-4640-844f-08db34e23f46\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"c8ce0a2b-5f22-4f8e-afb8-c5efc2db3a20\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"2b35e683-170e-4fdc-a510-05a319752adf\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"4f93dd1f-64a6-491e-add1-a47f4da25f9a\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"plot\":{\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"b4e17cbd-7ef6-4fa7-b15c-86a2b591c8fe\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2b35e683-170e-4fdc-a510-05a319752adf\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"green\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"c8ce0a2b-5f22-4f8e-afb8-c5efc2db3a20\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e74ae795-2c01-421c-a4bd-212a435b673e\",\"type\":\"BasicTicker\"}},\"id\":\"ff32b236-c1ac-4270-9e74-f78e778e0a4c\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"79a6094b-ba50-464e-8914-94cb24cf01b2\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"f2a6f880-ab89-4e11-aadd-aa3ca0fa26ac\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"79a6094b-ba50-464e-8914-94cb24cf01b2\",\"type\":\"LinearAxis\"},{\"id\":\"ff32b236-c1ac-4270-9e74-f78e778e0a4c\",\"type\":\"Grid\"},{\"id\":\"f2a6f880-ab89-4e11-aadd-aa3ca0fa26ac\",\"type\":\"LinearAxis\"},{\"id\":\"5dd0c006-5804-4223-99b4-f82946b3ce65\",\"type\":\"Grid\"},{\"id\":\"3f07a2e4-1976-4f94-9ce0-c245132540f4\",\"type\":\"BoxAnnotation\"},{\"id\":\"5f5ec9a0-fb0a-47e1-8d3d-14e30b05d208\",\"type\":\"GlyphRenderer\"},{\"id\":\"4f93dd1f-64a6-491e-add1-a47f4da25f9a\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"f83ecdc7-c6d4-40d9-afa5-8c9031e5c6a0\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"e267aa71-17b9-4330-a340-82969d5eb33c\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"c117870f-4007-47cd-a8ce-4c6d304e9b62\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"a6979654-feed-4805-85bf-165686833d01\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"bd288977-82f4-4a6d-b995-1e75b6b4dd2a\",\"type\":\"DataRange1d\"}},\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"506cd306-a19f-4826-bae4-d1f8cb1d8aa0\",\"type\":\"BasicTicker\"}},\"id\":\"5dd0c006-5804-4223-99b4-f82946b3ce65\",\"type\":\"Grid\"},{\"attributes\":{\"plot\":null,\"text\":\"Y shifted to line up\"},\"id\":\"f83ecdc7-c6d4-40d9-afa5-8c9031e5c6a0\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1e5dd6dc-abfc-4879-9170-d630f1e1c563\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"7c4764ea-289d-4419-8bb3-eae409e0603d\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"8e6cbd6b-fc86-4abf-8d9d-5a62c0822366\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"14d13d3f-5eb8-48df-86db-9415c99caf8e\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"5f5ec9a0-fb0a-47e1-8d3d-14e30b05d208\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"e267aa71-17b9-4330-a340-82969d5eb33c\",\"type\":\"ToolEvents\"},{\"attributes\":{\"formatter\":{\"id\":\"1e5dd6dc-abfc-4879-9170-d630f1e1c563\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"e74ae795-2c01-421c-a4bd-212a435b673e\",\"type\":\"BasicTicker\"}},\"id\":\"79a6094b-ba50-464e-8914-94cb24cf01b2\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"e66ab51b-f13f-45ce-9eca-5474e7ca3ce1\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":{\"id\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"107b5797-a519-4b5c-8bd6-1df4fb941cea\",\"type\":\"PanTool\"}],\"root_ids\":[\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"708f88a8-c958-4698-a6c6-e144fc9227ce\",\"elementid\":\"c8657e80-5b7f-419f-a7c3-6a75df38159b\",\"modelid\":\"3b62caf5-4ba1-4b71-85c4-a301117dfd57\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"c8657e80-5b7f-419f-a7c3-6a75df38159b\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"aa2993c9-0a6b-4cbb-807b-2e273af99d0f\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"aa2993c9-0a6b-4cbb-807b-2e273af99d0f\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"aa2993c9-0a6b-4cbb-807b-2e273af99d0f\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'aa2993c9-0a6b-4cbb-807b-2e273af99d0f' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"4eca60c8-843d-4d6c-81da-c2764a63640c\":{\"roots\":{\"references\":[{\"attributes\":{},\"id\":\"973868df-99eb-4305-bbd3-f0a406ab7c43\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":{\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"a6b08b5a-0879-4395-a3e9-813bf4249202\",\"type\":\"SaveTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"c8d629db-fcfd-47e8-b187-8d4d10ce0de9\",\"type\":\"PanTool\"},{\"id\":\"9c683efc-a265-494f-b6fd-db1b03665fc1\",\"type\":\"WheelZoomTool\"},{\"id\":\"0b42ac6c-2dad-4ada-b08a-d281960b0a24\",\"type\":\"BoxZoomTool\"},{\"id\":\"a6b08b5a-0879-4395-a3e9-813bf4249202\",\"type\":\"SaveTool\"},{\"id\":\"6f495fff-f9a2-4811-8b0f-de152c8c8ae8\",\"type\":\"ResetTool\"},{\"id\":\"892e69ca-c41c-4193-a85b-5f1e0113f02b\",\"type\":\"HelpTool\"}]},\"id\":\"c914fe37-ed70-47eb-aad1-9798f01d1f70\",\"type\":\"Toolbar\"},{\"attributes\":{\"formatter\":{\"id\":\"7af8adc0-69d8-4dc6-9bea-a75500db70dc\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"973868df-99eb-4305-bbd3-f0a406ab7c43\",\"type\":\"BasicTicker\"}},\"id\":\"df0593bd-4d93-4bd4-86ad-5379b7e25c6e\",\"type\":\"LinearAxis\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"973868df-99eb-4305-bbd3-f0a406ab7c43\",\"type\":\"BasicTicker\"}},\"id\":\"a19399f5-0c61-4d4e-a859-aadda2273fdf\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null},\"id\":\"a1e10df5-7678-426f-b71a-2346766b7bf7\",\"type\":\"DataRange1d\"},{\"attributes\":{\"plot\":{\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"6f495fff-f9a2-4811-8b0f-de152c8c8ae8\",\"type\":\"ResetTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2510cf69-8693-45d5-b412-7c4ea786a059\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"5e204923-83a3-48ef-9668-3424f7a6c061\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"71bbdba9-4b23-4525-ab5b-c16ea12d1445\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"3d649806-d16f-4604-ba4d-3ec20ece58f4\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"920f3641-68e4-49d6-8655-fa9e3afa632e\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null},\"id\":\"62181200-1d5a-40a7-9cc4-62bf060d7931\",\"type\":\"DataRange1d\"},{\"attributes\":{\"below\":[{\"id\":\"4fe739b4-c8b7-4259-ae1c-184ddf4b8417\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"df0593bd-4d93-4bd4-86ad-5379b7e25c6e\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"4fe739b4-c8b7-4259-ae1c-184ddf4b8417\",\"type\":\"LinearAxis\"},{\"id\":\"66f04f1b-12ae-4f39-bcb7-f9dbfc8a21a2\",\"type\":\"Grid\"},{\"id\":\"df0593bd-4d93-4bd4-86ad-5379b7e25c6e\",\"type\":\"LinearAxis\"},{\"id\":\"a19399f5-0c61-4d4e-a859-aadda2273fdf\",\"type\":\"Grid\"},{\"id\":\"ce683c7c-e30d-4494-814a-9a57a7960991\",\"type\":\"BoxAnnotation\"},{\"id\":\"3d649806-d16f-4604-ba4d-3ec20ece58f4\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"7864670f-ee20-46d8-b9e1-0b499f0a780c\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"52d3002a-43a3-41ba-af06-87ab06bd9036\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"c914fe37-ed70-47eb-aad1-9798f01d1f70\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"62181200-1d5a-40a7-9cc4-62bf060d7931\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"a1e10df5-7678-426f-b71a-2346766b7bf7\",\"type\":\"DataRange1d\"}},\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"plot\":{\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"892e69ca-c41c-4193-a85b-5f1e0113f02b\",\"type\":\"HelpTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"ce683c7c-e30d-4494-814a-9a57a7960991\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"formatter\":{\"id\":\"43b9b973-c45a-4e9e-a9a8-09cb8911f997\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"920f3641-68e4-49d6-8655-fa9e3afa632e\",\"type\":\"BasicTicker\"}},\"id\":\"4fe739b4-c8b7-4259-ae1c-184ddf4b8417\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":null,\"text\":\"residual Y\"},\"id\":\"7864670f-ee20-46d8-b9e1-0b499f0a780c\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"52d3002a-43a3-41ba-af06-87ab06bd9036\",\"type\":\"ToolEvents\"},{\"attributes\":{\"plot\":{\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"c8d629db-fcfd-47e8-b187-8d4d10ce0de9\",\"type\":\"PanTool\"},{\"attributes\":{\"plot\":{\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"9c683efc-a265-494f-b6fd-db1b03665fc1\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"43b9b973-c45a-4e9e-a9a8-09cb8911f997\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"2510cf69-8693-45d5-b412-7c4ea786a059\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"plot\":{\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"920f3641-68e4-49d6-8655-fa9e3afa632e\",\"type\":\"BasicTicker\"}},\"id\":\"66f04f1b-12ae-4f39-bcb7-f9dbfc8a21a2\",\"type\":\"Grid\"},{\"attributes\":{\"overlay\":{\"id\":\"ce683c7c-e30d-4494-814a-9a57a7960991\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"0b42ac6c-2dad-4ada-b08a-d281960b0a24\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"7af8adc0-69d8-4dc6-9bea-a75500db70dc\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"71bbdba9-4b23-4525-ab5b-c16ea12d1445\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"5e204923-83a3-48ef-9668-3424f7a6c061\",\"type\":\"Line\"}],\"root_ids\":[\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"4eca60c8-843d-4d6c-81da-c2764a63640c\",\"elementid\":\"aa2993c9-0a6b-4cbb-807b-2e273af99d0f\",\"modelid\":\"c9b68f0f-3789-4159-99c5-3c11e924e4a6\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"aa2993c9-0a6b-4cbb-807b-2e273af99d0f\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"d20d6fbd-00fa-42e0-8c9d-0f49e37c57a4\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"d20d6fbd-00fa-42e0-8c9d-0f49e37c57a4\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"d20d6fbd-00fa-42e0-8c9d-0f49e37c57a4\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'd20d6fbd-00fa-42e0-8c9d-0f49e37c57a4' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"e3808a0f-9fcb-492e-94de-f1a9cc9af23d\":{\"roots\":{\"references\":[{\"attributes\":{\"plot\":{\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"fad6aa85-0578-43f1-bdfa-55403a8ff517\",\"type\":\"ResetTool\"},{\"attributes\":{\"plot\":null,\"text\":\"Z delay time vs. correlation\"},\"id\":\"d223f98b-1c41-48db-bc42-17c98cd12edc\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null},\"id\":\"3130c9b2-246b-4e99-ac6f-2e4d5128c847\",\"type\":\"DataRange1d\"},{\"attributes\":{\"plot\":{\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"1257985f-c39b-41b2-b0b2-a19c68f376be\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[256]},\"y\":{\"__ndarray__\":\"UTGE/tpH00CBHtsGJrHTQExsQ6cUHtRAhU6SUviF1EBAre9Nee/UQDsdDYO1QNVASpFIoRgv1UCo4ONI7qDUQItgtjmuvdNAVNtaO8us0kAEhx+HgIPRQIFJQmEMWNBAnVVH4phqzkD5Fos+7xDMQIgtr7WTmMlAU8NVPwkzx0Cb5mSje+XEQGRdP837mMJA7UUzJrFnwEDMID8nJvu8QHP3R2pRqLlAD1IbYuR1tkCCBAom+TOzQHxtw9xaxa9A7Nk8ufVMqUB1l6fTmnijQPtAoI4qkJxAsTs6gg7OkkCedNHPQWaCQKBSkguNpyBAiJjVGXUcgkBeH+Pnn6CRQFpS+3+VvZlALEoRTJqvoEBV7egK0/2jQKogcYVj6KZAJA3xulHfqUAZ1CmS6NCsQLXJGtHPsK9AvLOh3+RPsUAtfxJf05CyQPPBye8Ac7NAR8Rpg45VtEAVNLZrbXS1QMcKjfOOiLZAL8G3cmJWt0DrSul3PEK4QLIfLa14gblA9/0CCUK2ukCTpUqmJbe7QCtt+3eAmLxA3IIzM7plvUD8qwt5eSe+QFfdPFLh7L5AofyfeLW/v0A0YMU64VXAQGKL9UbRzsBANc/OAJEkwUDgxn7YNkvBQJpjbso1gsFAByGB2jH3wUAvbyB5XnvCQBZq9f1A28JAMVXZl4Ygw0AvEB465W7DQD4oBp1w1sNAWCU28+lLxEC3tiZYF8rEQGYw6jS3UsVANrD0qhXIxUCzxn99Tf3FQPEb/eXd9cVAJ2qZ0en2xUD8UOmF4hjGQEucTj32HMZAQWiHAtbvxUDQemSD8sXFQEHk+Wx2qsVApe2Qu4KNxUAEYD5sB2vFQOtTv0KcScVAEoAkNnU5xUC7PplAxjDFQNU0aGmyLcVAZGnzMgM0xUAgw5ajwznFQNj5BY4gRsVA2X5eXRZcxUAyHrNg4mLFQKTxSR3oX8VAaDGS1m5/xUD8HcVpY8nFQFA1QTycB8ZAZGXCpJAgxkAcRqta+kDGQMPhApugcMZAgiGY8RyPxkCl9AIoPrTGQL68GnB3/MZAODuuo0RWx0AN1injk7bHQNeQcYDdD8hAdibSy1VdyEDXnUb0oLrIQHd5qafYJMlA3e7lb4+AyUAtY9REXtXJQDCYTzAKOMpAKUxNRYOpykDYUPbYWybLQASxfLStqMtAjXTOPhAjzECtkB4NuJPMQL/NtdxM98xA6aSqHKhVzUAn41bUPcbNQLhGZv+8S85AMnCbn9DgzkDhKqllIYHPQPln+iW/F9BAKRlC9Flw0ECRw1zlD8PQQLGurqBZG9FAqdmqMRB90UD71lYgAeTRQAY+1CwoVNJAiLv+TNPK0kDUSrsYHzfTQPdYPbReltNAA+bX0Zn200BueoRnPVvUQK4RssG7vtRA7nRvE2cl1UAqcuePgnLVQDXtcfmyW9VA/QAVmsXH1EA5IFHVq93TQCjSkmrGxdJAamOJ3GmX0UAVWpSWnmjQQGp7+WOSg85ACYyLL6wezEBRGkyf9prJQLTLQY+AK8dA6zT1UYHUxEDhSS30LH/CQBfIG536RcBABy+LlaylvEDOkl0P4zy5QAW7arhD9rVARqNZsw2mskCE75ugZZGuQCweYMQg/adAByaug+sJokCFs4M7N2+ZQJ7MSr9txI5AkahxNy8UdkBMkvYimddvQJ61Rrz2E4pASZ+33+nHlUD28AULBxmeQB/WZ9Fl96JAXC7FI/xfpkAu4Nm5uWSpQN2hr+hwcKxABtf0PIhxr0Dn3UxL6zGxQNd1Q0a5tLJAcNWTb+/+s0BMfbyhiee0QNtf4ame0bVA2YPnq+f5tkDu+/NfMBa4QEGCTcvv6rhAE4TfbG/euUDm48otqCS7QG/FtPrRXbxAQB/esGdivUDR9ppS7ki+QGW/QzrLG79AbTaWjz3iv0A4JHG23VXAQE9lM9hfwcBA2bSstUA5wUCmhNjEgLPBQLiK2sToCcJAh5VynM8wwkCrhvsyXWjCQBrFmb+B3sJAJXGljEBkw0APGhFQjsXDQGYzgTRhC8RAdrq5FdhYxEDgK0fzTL7EQEIlwifvMcVAwZ8Dqr+vxUD8+cLtJDnGQOSuRFkCr8ZAdE2Mx8vjxkA7mgYqK9vGQIsrfbEH2sZAQ7TPp8n4xkBwiCb56/nGQBFrchNqy8ZAr6j0SwGhxkDhE3sL8oPGQDMZf6U5ZMZAfYj/ZiY/xkAvGU3/JxvGQBc1mLtLB8ZAvzE2ihH6xUBWsykQ3/LFQPboxbVt9cVA0wnO8ev2xUD3cStFJ//FQLzkK4oMEsZAGWVCi5UVxkBkVis4ig3GQJQmijvfJsZAksX+H9VqxkC8ozEtQKPGQOt5qGPItsZAWelEodrSxkBoNtUqkf7GQHodeKDwF8dAZ+E3cY82x0CnIEXqHnjHQJEgNihIy8dAJI3hS4ckyEBKmQi2PXfIQFYfOQBXv8hAhporyygXyUDxU2DMYHrJQLga68sTzslAn4KfriIbykDZzko6d3bKQPh+3VA44MpAgHo/lOVUy0Br+DRVIc/LQBDO79J7QcxAHr7g/uCpzED8JSm6/gTNQJZZUVfQWs1A6miHrcnCzUARddzLJD/OQOZ7bqY7ys5A8V3Ke2Bgz0BN0u+XkQLQQLDJvgeqVtBAHDqfkuWk0EB9njeIYPjQQL3CQeqoVNFAMqFqXbq10UAlbNwGGiDSQPjWFXdokdJABRYAkMb40kA=\",\"dtype\":\"float64\",\"shape\":[256]}}},\"id\":\"38e22b3c-8afe-4e5c-ba34-66b6fca9e904\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"0926c4c5-b132-4cb4-95e1-14c86f16ea04\",\"type\":\"Line\"},{\"attributes\":{\"ticker\":null},\"id\":\"e7565b98-e8ad-4719-b441-a61c777a273f\",\"type\":\"LogTickFormatter\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"367414dd-2d18-45f5-8571-963d99a58213\",\"type\":\"LogTicker\"}},\"id\":\"ff2f501c-daba-4d08-a6e9-1fc286e22329\",\"type\":\"Grid\"},{\"attributes\":{\"plot\":{\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"dca24301-a9b6-4066-87b0-0c759faa70df\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"below\":[{\"id\":\"10707093-d772-4b4d-be01-c15d1b64eab5\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"71290667-3ee9-4de3-8356-7efadc6109b4\",\"type\":\"LogAxis\"}],\"renderers\":[{\"id\":\"10707093-d772-4b4d-be01-c15d1b64eab5\",\"type\":\"LinearAxis\"},{\"id\":\"8929890a-d10d-4b77-a1d4-43398db17f0e\",\"type\":\"Grid\"},{\"id\":\"71290667-3ee9-4de3-8356-7efadc6109b4\",\"type\":\"LogAxis\"},{\"id\":\"ff2f501c-daba-4d08-a6e9-1fc286e22329\",\"type\":\"Grid\"},{\"id\":\"6a670652-d2cb-419e-8792-ec3d4e63677c\",\"type\":\"BoxAnnotation\"},{\"id\":\"c63a28f2-8c65-478a-9f6c-26e8478c18f5\",\"type\":\"GlyphRenderer\"},{\"id\":\"359e8274-578a-46ea-83a9-3ba7a656c76f\",\"type\":\"Span\"}],\"title\":{\"id\":\"d223f98b-1c41-48db-bc42-17c98cd12edc\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"b4dacab8-0232-4471-a19d-fa9326cfbd5a\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"1a84c4fe-8c4a-4fff-a9d4-07c3679dbd66\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"3130c9b2-246b-4e99-ac6f-2e4d5128c847\",\"type\":\"DataRange1d\"},\"y_mapper_type\":\"log\",\"y_range\":{\"id\":\"d61491cf-7d3e-4cfe-96ae-85e5db0efb26\",\"type\":\"DataRange1d\"}},\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"plot\":{\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"330ca6c3-eba1-457b-a892-c09589332080\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"b4dacab8-0232-4471-a19d-fa9326cfbd5a\",\"type\":\"ToolEvents\"},{\"attributes\":{\"overlay\":{\"id\":\"6a670652-d2cb-419e-8792-ec3d4e63677c\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"3779e9fa-9843-4777-bc6a-d238c722fcde\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"95d04ea8-11f8-4882-88cf-d7f0bafb917d\",\"type\":\"Line\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"6a670652-d2cb-419e-8792-ec3d4e63677c\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"formatter\":{\"id\":\"13d8c9d2-5561-4c97-afb5-fd405a10e011\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"c7aa36c9-671d-48a3-81b1-590094abef04\",\"type\":\"BasicTicker\"}},\"id\":\"10707093-d772-4b4d-be01-c15d1b64eab5\",\"type\":\"LinearAxis\"},{\"attributes\":{\"formatter\":{\"id\":\"e7565b98-e8ad-4719-b441-a61c777a273f\",\"type\":\"LogTickFormatter\"},\"plot\":{\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"367414dd-2d18-45f5-8571-963d99a58213\",\"type\":\"LogTicker\"}},\"id\":\"71290667-3ee9-4de3-8356-7efadc6109b4\",\"type\":\"LogAxis\"},{\"attributes\":{\"plot\":{\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"c7aa36c9-671d-48a3-81b1-590094abef04\",\"type\":\"BasicTicker\"}},\"id\":\"8929890a-d10d-4b77-a1d4-43398db17f0e\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"c7aa36c9-671d-48a3-81b1-590094abef04\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"13d8c9d2-5561-4c97-afb5-fd405a10e011\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"num_minor_ticks\":10},\"id\":\"367414dd-2d18-45f5-8571-963d99a58213\",\"type\":\"LogTicker\"},{\"attributes\":{\"plot\":{\"id\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"dc47d16c-1b9d-456c-8c67-3df5325dd364\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null},\"id\":\"d61491cf-7d3e-4cfe-96ae-85e5db0efb26\",\"type\":\"DataRange1d\"},{\"attributes\":{\"dimension\":\"height\",\"line_color\":{\"value\":\"red\"},\"location\":0.004916718557226091,\"plot\":null},\"id\":\"359e8274-578a-46ea-83a9-3ba7a656c76f\",\"type\":\"Span\"},{\"attributes\":{\"data_source\":{\"id\":\"38e22b3c-8afe-4e5c-ba34-66b6fca9e904\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"0926c4c5-b132-4cb4-95e1-14c86f16ea04\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"95d04ea8-11f8-4882-88cf-d7f0bafb917d\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"c63a28f2-8c65-478a-9f6c-26e8478c18f5\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"330ca6c3-eba1-457b-a892-c09589332080\",\"type\":\"PanTool\"},{\"id\":\"dca24301-a9b6-4066-87b0-0c759faa70df\",\"type\":\"WheelZoomTool\"},{\"id\":\"3779e9fa-9843-4777-bc6a-d238c722fcde\",\"type\":\"BoxZoomTool\"},{\"id\":\"dc47d16c-1b9d-456c-8c67-3df5325dd364\",\"type\":\"SaveTool\"},{\"id\":\"fad6aa85-0578-43f1-bdfa-55403a8ff517\",\"type\":\"ResetTool\"},{\"id\":\"1257985f-c39b-41b2-b0b2-a19c68f376be\",\"type\":\"HelpTool\"}]},\"id\":\"1a84c4fe-8c4a-4fff-a9d4-07c3679dbd66\",\"type\":\"Toolbar\"}],\"root_ids\":[\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"e3808a0f-9fcb-492e-94de-f1a9cc9af23d\",\"elementid\":\"d20d6fbd-00fa-42e0-8c9d-0f49e37c57a4\",\"modelid\":\"7740b9c7-b32c-4a0e-9365-1a0611c421a5\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"d20d6fbd-00fa-42e0-8c9d-0f49e37c57a4\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Axis Z: tau=4.9 samples (4.92 ms / -5.315)\n",
"\tgain=4.2 (beta=8.342), bias=27.2\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"14eea595-1213-46a6-9234-81d5db40434f\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"14eea595-1213-46a6-9234-81d5db40434f\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"14eea595-1213-46a6-9234-81d5db40434f\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid '14eea595-1213-46a6-9234-81d5db40434f' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"1821c33e-c0ec-497f-a30f-cbb9ca2bde3a\":{\"roots\":{\"references\":[{\"attributes\":{\"formatter\":{\"id\":\"3a4a52e6-ea91-4945-a4fe-59c1f9d2707d\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"420c2a24-cd49-4604-b132-d4a94ecd3805\",\"type\":\"BasicTicker\"}},\"id\":\"e937350c-772d-4289-ab91-3c3832003c58\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"420c2a24-cd49-4604-b132-d4a94ecd3805\",\"type\":\"BasicTicker\"}},\"id\":\"c7122e37-5995-4657-8b41-bc0a0b5e902e\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"3a4a52e6-ea91-4945-a4fe-59c1f9d2707d\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"41e55e75-0e37-44ef-81c2-3d0b21eb7081\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":null,\"text\":\"Z shifted to line up\"},\"id\":\"7b4836c1-83d5-4044-9d17-68f2e7315925\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"x\",\"y\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"bea53ea1-d3b7-4bd2-ae96-5b72731ad3ad\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null},\"id\":\"eb205ca0-3cdf-4b7a-9d20-ece623e9e3eb\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"54deb6b9-3136-4f90-a38d-43561fef0a16\",\"type\":\"Line\"},{\"attributes\":{\"plot\":{\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"cbd96e5c-7f7b-4bcf-8015-41edbc0bd245\",\"type\":\"ResetTool\"},{\"attributes\":{\"plot\":{\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"bffc75c3-5a87-45b6-8ced-14c64758c1ac\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null},\"id\":\"d5f9e2a9-52a1-40ff-bbf7-ef1694602ade\",\"type\":\"DataRange1d\"},{\"attributes\":{\"plot\":{\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"b8c2d051-8b8f-44af-bc91-f0345b717e5e\",\"type\":\"HelpTool\"},{\"attributes\":{\"overlay\":{\"id\":\"d37a75f7-9fcf-40ed-a4f7-e2b5261e11a9\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"a8cd3ad3-0cbc-48f7-9ed9-d2ef64e4a993\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"ea563b13-d7cf-48a5-92ce-8cf59d2bb554\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"54deb6b9-3136-4f90-a38d-43561fef0a16\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"3821d88a-446c-4b92-8f0d-ac7a3be6dfaa\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"70e5314f-24a9-40b3-9728-9573c9ade9f1\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"bffc75c3-5a87-45b6-8ced-14c64758c1ac\",\"type\":\"PanTool\"},{\"id\":\"82fbabc9-8fc9-45ca-b6ca-a4aa6f6a0038\",\"type\":\"WheelZoomTool\"},{\"id\":\"a8cd3ad3-0cbc-48f7-9ed9-d2ef64e4a993\",\"type\":\"BoxZoomTool\"},{\"id\":\"dbf85796-e73f-4dc6-9e82-77796d2978f8\",\"type\":\"SaveTool\"},{\"id\":\"cbd96e5c-7f7b-4bcf-8015-41edbc0bd245\",\"type\":\"ResetTool\"},{\"id\":\"b8c2d051-8b8f-44af-bc91-f0345b717e5e\",\"type\":\"HelpTool\"}]},\"id\":\"1ed756e1-62d7-42dd-9ae9-2a1682a4e7ae\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"44e9e20d-0e06-4231-a061-807ea84bcb41\",\"type\":\"ToolEvents\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3821d88a-446c-4b92-8f0d-ac7a3be6dfaa\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"f49b82a6-6ed2-4cc7-8eb4-19e9e41ab347\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"ea563b13-d7cf-48a5-92ce-8cf59d2bb554\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"d37a75f7-9fcf-40ed-a4f7-e2b5261e11a9\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"below\":[{\"id\":\"e937350c-772d-4289-ab91-3c3832003c58\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"344a181c-e956-4a52-b7a8-3df6060887f0\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"e937350c-772d-4289-ab91-3c3832003c58\",\"type\":\"LinearAxis\"},{\"id\":\"c7122e37-5995-4657-8b41-bc0a0b5e902e\",\"type\":\"Grid\"},{\"id\":\"344a181c-e956-4a52-b7a8-3df6060887f0\",\"type\":\"LinearAxis\"},{\"id\":\"26838dc7-f675-4beb-a574-0908caca3c87\",\"type\":\"Grid\"},{\"id\":\"d37a75f7-9fcf-40ed-a4f7-e2b5261e11a9\",\"type\":\"BoxAnnotation\"},{\"id\":\"70e5314f-24a9-40b3-9728-9573c9ade9f1\",\"type\":\"GlyphRenderer\"},{\"id\":\"1740a9be-fe0a-425d-84fd-1c59fde1525d\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"7b4836c1-83d5-4044-9d17-68f2e7315925\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"44e9e20d-0e06-4231-a061-807ea84bcb41\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"1ed756e1-62d7-42dd-9ae9-2a1682a4e7ae\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"eb205ca0-3cdf-4b7a-9d20-ece623e9e3eb\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"d5f9e2a9-52a1-40ff-bbf7-ef1694602ade\",\"type\":\"DataRange1d\"}},\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"plot\":{\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"dbf85796-e73f-4dc6-9e82-77796d2978f8\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"420c2a24-cd49-4604-b132-d4a94ecd3805\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":{\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"82fbabc9-8fc9-45ca-b6ca-a4aa6f6a0038\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"41e55e75-0e37-44ef-81c2-3d0b21eb7081\",\"type\":\"BasicTicker\"}},\"id\":\"26838dc7-f675-4beb-a574-0908caca3c87\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"bea53ea1-d3b7-4bd2-ae96-5b72731ad3ad\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"225a6f0f-fcc5-4851-bf1e-a3030102674d\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"a2b8a49b-4d17-4dc4-8677-904e4aeee5f4\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"1740a9be-fe0a-425d-84fd-1c59fde1525d\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"a2b8a49b-4d17-4dc4-8677-904e4aeee5f4\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":{\"value\":\"green\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"225a6f0f-fcc5-4851-bf1e-a3030102674d\",\"type\":\"Line\"},{\"attributes\":{\"formatter\":{\"id\":\"f49b82a6-6ed2-4cc7-8eb4-19e9e41ab347\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"41e55e75-0e37-44ef-81c2-3d0b21eb7081\",\"type\":\"BasicTicker\"}},\"id\":\"344a181c-e956-4a52-b7a8-3df6060887f0\",\"type\":\"LinearAxis\"}],\"root_ids\":[\"7233cdd3-e044-4e73-97b7-7108e6bed38a\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"1821c33e-c0ec-497f-a30f-cbb9ca2bde3a\",\"elementid\":\"14eea595-1213-46a6-9234-81d5db40434f\",\"modelid\":\"7233cdd3-e044-4e73-97b7-7108e6bed38a\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"14eea595-1213-46a6-9234-81d5db40434f\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
" <div class=\"bk-root\">\n",
" <div class=\"bk-plotdiv\" id=\"75c91e25-325a-404d-a8bd-e0ba1d37e060\"></div>\n",
" </div>\n",
"<script type=\"text/javascript\">\n",
" \n",
" (function(global) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
" \n",
" var force = false;\n",
" \n",
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n",
" window._bokeh_onload_callbacks = [];\n",
" window._bokeh_is_loading = undefined;\n",
" }\n",
" \n",
" \n",
" \n",
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n",
" window._bokeh_timeout = Date.now() + 0;\n",
" window._bokeh_failed_load = false;\n",
" }\n",
" \n",
" var NB_LOAD_WARNING = {'data': {'text/html':\n",
" \"<div style='background-color: #fdd'>\\n\"+\n",
" \"<p>\\n\"+\n",
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
" \"</p>\\n\"+\n",
" \"<ul>\\n\"+\n",
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
" \"</ul>\\n\"+\n",
" \"<code>\\n\"+\n",
" \"from bokeh.resources import INLINE\\n\"+\n",
" \"output_notebook(resources=INLINE)\\n\"+\n",
" \"</code>\\n\"+\n",
" \"</div>\"}};\n",
" \n",
" function display_loaded() {\n",
" if (window.Bokeh !== undefined) {\n",
" document.getElementById(\"75c91e25-325a-404d-a8bd-e0ba1d37e060\").textContent = \"BokehJS successfully loaded.\";\n",
" } else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(display_loaded, 100)\n",
" }\n",
" }\n",
" \n",
" function run_callbacks() {\n",
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n",
" delete window._bokeh_onload_callbacks\n",
" console.info(\"Bokeh: all callbacks have finished\");\n",
" }\n",
" \n",
" function load_libs(js_urls, callback) {\n",
" window._bokeh_onload_callbacks.push(callback);\n",
" if (window._bokeh_is_loading > 0) {\n",
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" window._bokeh_is_loading = js_urls.length;\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = false;\n",
" s.onreadystatechange = s.onload = function() {\n",
" window._bokeh_is_loading--;\n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n",
" run_callbacks()\n",
" }\n",
" };\n",
" s.onerror = function() {\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" }\n",
" };var element = document.getElementById(\"75c91e25-325a-404d-a8bd-e0ba1d37e060\");\n",
" if (element == null) {\n",
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid '75c91e25-325a-404d-a8bd-e0ba1d37e060' but no matching script tag was found. \")\n",
" return false;\n",
" }\n",
" \n",
" var js_urls = [];\n",
" \n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" (function() {\n",
" var fn = function() {\n",
" var docs_json = {\"a0cbad6e-c1bc-4b0d-9164-03a3f9e84c9b\":{\"roots\":{\"references\":[{\"attributes\":{\"dimension\":1,\"plot\":{\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"4875142f-7e4d-4b8d-949e-05607ade1429\",\"type\":\"BasicTicker\"}},\"id\":\"fbe769ac-df0d-471b-978e-4c2c7b7afaa9\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"40e7211e-9030-405e-8da2-124b7b637de3\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"140b4d9e-b962-42d0-9a35-8d726482ccdb\",\"type\":\"DataRange1d\"},{\"attributes\":{\"plot\":{\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"32f52b95-42bd-4fa9-ae02-a4c4da77ef68\",\"type\":\"SaveTool\"},{\"attributes\":{\"formatter\":{\"id\":\"523d33d1-256a-480a-abfe-9fb1c13e45ac\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"4875142f-7e4d-4b8d-949e-05607ade1429\",\"type\":\"BasicTicker\"}},\"id\":\"4ec1050c-ca39-4cfe-83c5-eb63b19fc993\",\"type\":\"LinearAxis\"},{\"attributes\":{\"plot\":{\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"5fe7c783-f6c8-45f8-a2b0-374fa6ebbf29\",\"type\":\"HelpTool\"},{\"attributes\":{\"data_source\":{\"id\":\"a3766417-ccdd-4257-8d60-92d14a7db46a\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"803ca8fc-a86c-49df-8b08-6e672e107ad7\",\"type\":\"Line\"},\"hover_glyph\":null,\"nonselection_glyph\":{\"id\":\"40e7211e-9030-405e-8da2-124b7b637de3\",\"type\":\"Line\"},\"selection_glyph\":null},\"id\":\"fc03e46a-2688-47c5-9f22-5b7b12cb209d\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"b3820c7d-0bee-4545-a17b-b3cab5245fd5\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"7a35b380-46d4-4af7-9016-5a89ac9d61e2\",\"type\":\"ToolEvents\"},{\"attributes\":{\"formatter\":{\"id\":\"b3820c7d-0bee-4545-a17b-b3cab5245fd5\",\"type\":\"BasicTickFormatter\"},\"plot\":{\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6dc52cc9-00db-4b91-bb17-a042f45653ed\",\"type\":\"BasicTicker\"}},\"id\":\"c31e6006-b30b-410d-a566-03ed95ee4d6f\",\"type\":\"LinearAxis\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"f3dbd22c-a78a-4e26-91db-f591d68484cc\",\"type\":\"PanTool\"},{\"id\":\"f741b07a-90cb-4da3-b88f-25e72cb33fa9\",\"type\":\"WheelZoomTool\"},{\"id\":\"2143996c-6382-4cf0-814a-27ff5197be84\",\"type\":\"BoxZoomTool\"},{\"id\":\"32f52b95-42bd-4fa9-ae02-a4c4da77ef68\",\"type\":\"SaveTool\"},{\"id\":\"2ca2f730-e6dd-4e4a-a6b3-624ab7605c47\",\"type\":\"ResetTool\"},{\"id\":\"5fe7c783-f6c8-45f8-a2b0-374fa6ebbf29\",\"type\":\"HelpTool\"}]},\"id\":\"122ecc4e-1ec1-43af-9f59-e1af79f7d146\",\"type\":\"Toolbar\"},{\"attributes\":{\"plot\":{\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"2ca2f730-e6dd-4e4a-a6b3-624ab7605c47\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"523d33d1-256a-480a-abfe-9fb1c13e45ac\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":{\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"6dc52cc9-00db-4b91-bb17-a042f45653ed\",\"type\":\"BasicTicker\"}},\"id\":\"dfee285b-4681-46b8-8d61-66e777a59dfb\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"4875142f-7e4d-4b8d-949e-05607ade1429\",\"type\":\"BasicTicker\"},{\"attributes\":{\"plot\":null,\"text\":\"residual Z\"},\"id\":\"e95aff6f-7745-43de-8f45-e07d98b55fc2\",\"type\":\"Title\"},{\"attributes\":{\"plot\":{\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"f3dbd22c-a78a-4e26-91db-f591d68484cc\",\"type\":\"PanTool\"},{\"attributes\":{\"plot\":{\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"f741b07a-90cb-4da3-b88f-25e72cb33fa9\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"803ca8fc-a86c-49df-8b08-6e672e107ad7\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"58844b09-2bb5-4d2f-8fca-17007ff77338\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null,\"column_names\":[\"y\",\"x\"],\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[512]}}},\"id\":\"a3766417-ccdd-4257-8d60-92d14a7db46a\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"below\":[{\"id\":\"c31e6006-b30b-410d-a566-03ed95ee4d6f\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"4ec1050c-ca39-4cfe-83c5-eb63b19fc993\",\"type\":\"LinearAxis\"}],\"renderers\":[{\"id\":\"c31e6006-b30b-410d-a566-03ed95ee4d6f\",\"type\":\"LinearAxis\"},{\"id\":\"dfee285b-4681-46b8-8d61-66e777a59dfb\",\"type\":\"Grid\"},{\"id\":\"4ec1050c-ca39-4cfe-83c5-eb63b19fc993\",\"type\":\"LinearAxis\"},{\"id\":\"fbe769ac-df0d-471b-978e-4c2c7b7afaa9\",\"type\":\"Grid\"},{\"id\":\"ca61c997-556e-49fc-a123-863b69721777\",\"type\":\"BoxAnnotation\"},{\"id\":\"fc03e46a-2688-47c5-9f22-5b7b12cb209d\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"e95aff6f-7745-43de-8f45-e07d98b55fc2\",\"type\":\"Title\"},\"tool_events\":{\"id\":\"7a35b380-46d4-4af7-9016-5a89ac9d61e2\",\"type\":\"ToolEvents\"},\"toolbar\":{\"id\":\"122ecc4e-1ec1-43af-9f59-e1af79f7d146\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"140b4d9e-b962-42d0-9a35-8d726482ccdb\",\"type\":\"DataRange1d\"},\"y_range\":{\"id\":\"58844b09-2bb5-4d2f-8fca-17007ff77338\",\"type\":\"DataRange1d\"}},\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"ca61c997-556e-49fc-a123-863b69721777\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"6dc52cc9-00db-4b91-bb17-a042f45653ed\",\"type\":\"BasicTicker\"},{\"attributes\":{\"overlay\":{\"id\":\"ca61c997-556e-49fc-a123-863b69721777\",\"type\":\"BoxAnnotation\"},\"plot\":{\"id\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\",\"subtype\":\"Figure\",\"type\":\"Plot\"}},\"id\":\"2143996c-6382-4cf0-814a-27ff5197be84\",\"type\":\"BoxZoomTool\"}],\"root_ids\":[\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\"]},\"title\":\"Bokeh Application\",\"version\":\"0.12.4\"}};\n",
" var render_items = [{\"docid\":\"a0cbad6e-c1bc-4b0d-9164-03a3f9e84c9b\",\"elementid\":\"75c91e25-325a-404d-a8bd-e0ba1d37e060\",\"modelid\":\"ed0104d1-7ac2-4027-a479-db5a4e1c5f58\"}];\n",
" \n",
" Bokeh.embed.embed_items(docs_json, render_items);\n",
" };\n",
" if (document.readyState != \"loading\") fn();\n",
" else document.addEventListener(\"DOMContentLoaded\", fn);\n",
" })();\n",
" },\n",
" function(Bokeh) {\n",
" }\n",
" ];\n",
" \n",
" function run_inline_js() {\n",
" \n",
" if ((window.Bokeh !== undefined) || (force === true)) {\n",
" for (var i = 0; i < inline_js.length; i++) {\n",
" inline_js[i](window.Bokeh);\n",
" }if (force === true) {\n",
" display_loaded();\n",
" }} else if (Date.now() < window._bokeh_timeout) {\n",
" setTimeout(run_inline_js, 100);\n",
" } else if (!window._bokeh_failed_load) {\n",
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
" window._bokeh_failed_load = true;\n",
" } else if (force !== true) {\n",
" var cell = $(document.getElementById(\"75c91e25-325a-404d-a8bd-e0ba1d37e060\")).parents('.cell').data().cell;\n",
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
" }\n",
" \n",
" }\n",
" \n",
" if (window._bokeh_is_loading === 0) {\n",
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
" run_inline_js();\n",
" } else {\n",
" load_libs(js_urls, function() {\n",
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n",
" run_inline_js();\n",
" });\n",
" }\n",
" }(this));\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 1781526.03473945]\n",
"[ 68926.52467582]\n",
"[ 4024.30484389]\n",
"[ 1875905.21095382]\n",
"[ 47911.16979852]\n",
"[ 92369.26598027]\n"
]
}
],
"source": [
"def find_real_peak(series):\n",
" p = np.argmax(series)\n",
" \n",
" min_idx = p - 3\n",
" \n",
" if (min_idx < 0):\n",
" min_idx = 0\n",
" \n",
" max_idx = p + 3\n",
" \n",
" if (max_idx >= len(series)):\n",
" max_idx = len(series) - 1\n",
" \n",
" fit = np.polyfit(range(min_idx, max_idx+1), series[min_idx:max_idx+1], 2)\n",
" \n",
" peak = fit[1] / -fit[0] / 2\n",
"\n",
" return fit[1] / -fit[0] / 2\n",
"\n",
"\n",
"\n",
"# For now, we just want to figure the parameters that existing autotune\n",
"# uses, but in a more accurate and more robust way. In the future we'll\n",
"# do much fancier things.\n",
"\n",
"# So, for each of the three axes, let's perform fourier analysis in order to\n",
"# correlate the differentiated, filtered gyros vs. the actuator command.\n",
"# This will tell us the delay, or tau. From \n",
"\n",
"def compute_axis(desired_series, diff_gyro_series, filter_order=3,\n",
" percentile_cutoff=2, plot_tau=True, series_cutoff=2,\n",
" axis_name=\"\"):\n",
" desired_fft = fftpack.fft(desired_series)\n",
" diff_fft = fftpack.fft(diff_gyro_series)\n",
"\n",
" desired_fft_r = -desired_fft.conjugate()\n",
"\n",
" correl = fftpack.ifft(desired_fft_r * diff_fft) \n",
"\n",
" tau_offset = find_real_peak(np.abs(correl[0:len(correl)/series_cutoff]))\n",
" \n",
" if plot_tau:\n",
" p = figure(title=\"%s delay time vs. correlation\"%(axis_name), y_axis_type = \"log\")\n",
" p.line(np.linspace(0,len(correl) / 2 * time_step, len(correl) / 2), np.abs(correl[0:len(correl)/2]))\n",
" tauspan = Span(location=tau_offset * time_step, dimension='height', line_color='red', line_width=1)\n",
" #bogospan = Span(location=.0168, dimension='height', line_color='green', line_width=1)\n",
" #p.renderers.extend([bogospan])\n",
" p.renderers.extend([tauspan])\n",
" show(p)\n",
"\n",
" # half cycles per sample.e\n",
" filter_edge = filter_order / tau_offset / 3.14159 / 1.22\n",
"\n",
" # A nth order filter doesn't result in n* the delay with bessel\n",
" # design technique. 1.22 is a fudge factor for order 3. Not sure where\n",
" # 1.22 comes from :D\n",
" db, da = signal.iirfilter(filter_order, [filter_edge], btype='lowpass', ftype='bessel')\n",
"\n",
" #w, gd = signal.group_delay((db, da))\n",
" #p = figure()\n",
" #p.line(w, gd)\n",
" #show(p)\n",
" \n",
" desired_series = pandas.concat([desired_series, desired_series], ignore_index = True)\n",
" \n",
" delayedact = signal.lfilter(db, da, desired_series)\n",
" \n",
" delayedact = delayedact[len(delayedact)/2:]\n",
" \n",
" # Now compare the response magnitude of the filtered waveform vs. the\n",
" # differentiated gyro series, to compute beta and then the bias.\n",
" span_desired = np.percentile(delayedact, [percentile_cutoff, 100-percentile_cutoff])\n",
"\n",
" span_gyrodiff = np.percentile(diff_gyro_series, [percentile_cutoff, 100-percentile_cutoff])\n",
"\n",
" lin_gain = (span_gyrodiff[1]-span_gyrodiff[0]) / (span_desired[1]-span_desired[0])\n",
" \n",
" bias = delayedact.mean() * lin_gain - diff_gyro_series.mean()\n",
"\n",
" return (tau_offset, lin_gain, bias, delayedact * lin_gain - bias)\n",
" \n",
"def compute_axis_by_name(series_name, do_plots=True, series_cutoff=2):\n",
" desired = df['desired'+series_name]\n",
" deriv_filtered = df['derivfiltered'+series_name]\n",
" \n",
" tau_offset, lin_gain, bias, adjact = compute_axis(desired, deriv_filtered, plot_tau=do_plots,\n",
" series_cutoff=series_cutoff,\n",
" axis_name=series_name)\n",
" \n",
" df['adjdesired' + series_name] = pandas.Series(adjact)\n",
" \n",
" print \"Axis %s: tau=%.1f samples (%0.2f ms / %0.3f)\"%(series_name, tau_offset, tau_offset*time_step*1000, math.log(tau_offset*time_step))\n",
" print \"\\tgain=%0.1f (beta=%0.3f), bias=%0.1f\"%(lin_gain, math.log(lin_gain / time_step), bias)\n",
" \n",
" if (do_plots):\n",
" p = figure(title=\"%s shifted to line up\"%(series_name))\n",
" \n",
" p.line(df.time, deriv_filtered)\n",
" p.line(df.time, adjact, color=\"green\")\n",
"\n",
" show(p)\n",
" \n",
" p = figure(title=\"residual %s\"%(series_name))\n",
" \n",
" p.line(df.time, deriv_filtered - adjact)\n",
" show(p)\n",
"\n",
"compute_axis_by_name(\"X\", series_cutoff=5)\n",
"compute_axis_by_name(\"Y\", series_cutoff=5)\n",
"compute_axis_by_name(\"Z\", series_cutoff=5)\n",
"\n",
"print np.correlate(df.derivfilteredX, df.derivfilteredX)\n",
"print np.correlate(df.derivfilteredX, df.derivfilteredY)\n",
"print np.correlate(df.derivfilteredX, df.derivfilteredZ)\n",
"print np.correlate(df.derivfilteredY, df.derivfilteredY)\n",
"print np.correlate(df.derivfilteredY, df.derivfilteredZ)\n",
"print np.correlate(df.derivfilteredZ, df.derivfilteredZ)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Slideshow",
"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.13"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment