From 02bac4e8b5907b73f0c1049f2c6f2ea85e589336 Mon Sep 17 00:00:00 2001 From: Iaphetes Date: Tue, 9 Sep 2025 13:08:49 +0200 Subject: [PATCH] added nix flake --- .gitignore | 2 + flake.lock | 79 + flake.nix | 44 + notebook.ipynb | 6816 ++++++++++++++++++++++++------------------------ 4 files changed, 3539 insertions(+), 3402 deletions(-) create mode 100644 .gitignore create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..146f39d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.venv +.ipynb_checkpoints diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..d104456 --- /dev/null +++ b/flake.lock @@ -0,0 +1,79 @@ +{ + "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1757034884, + "narHash": "sha256-PgLSZDBEWUHpfTRfFyklmiiLBE1i1aGCtz4eRA3POao=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ca77296380960cd497a765102eeb1356eb80fed0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-python": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1755249745, + "narHash": "sha256-lDIbUfJ8xK62ekG+qojTlA1raHpKdScBTx8IFlQYx9U=", + "owner": "cachix", + "repo": "nixpkgs-python", + "rev": "b6632af2db9f47c79dac8f4466388c7b1b6c3071", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "nixpkgs-python", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1753345091, + "narHash": "sha256-CdX2Rtvp5I8HGu9swBmYuq+ILwRxpXdJwlpg8jvN4tU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3ff0e34b1383648053bba8ed03f201d3466f90c9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs", + "nixpkgs-python": "nixpkgs-python" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..f51690f --- /dev/null +++ b/flake.nix @@ -0,0 +1,44 @@ +{ + description = "Python development environment"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + nixpkgs-python.url = "github:cachix/nixpkgs-python"; + }; + + outputs = { self, nixpkgs, nixpkgs-python }: + let + system = "x86_64-linux"; + # system = "x86_64-rwin"; + + pythonVersion = "3.10.1"; + + + pkgs = import nixpkgs { inherit system; }; + myPython = nixpkgs-python.packages.${system}.${pythonVersion}; + in + { + devShells.${system}.default = pkgs.mkShell { + buildInputs = with pkgs; [ + zlib + libgcc + stdenv.cc.cc.lib + (python3.withPackages(ps: with ps; [ + ipython + jupyter + numpy + pandas + plotly + ])) + ]; + packages = [ + myPython + ]; + shellHook = '' + python --version + exec fish + . ./.venv/bin/activate.fish + ''; + }; + }; +} diff --git a/notebook.ipynb b/notebook.ipynb index 4c16f72..3263648 100644 --- a/notebook.ipynb +++ b/notebook.ipynb @@ -18,6 +18,7 @@ }, { "cell_type": "code", + "execution_count": 1, "id": "fbc121e30a2defb3", "metadata": { "ExecuteTime": { @@ -25,6 +26,19 @@ "start_time": "2025-09-03T06:31:10.268012Z" } }, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'plotly'", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mModuleNotFoundError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m 2\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mcsv\u001b[39;00m\n\u001b[32m 3\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mmath\u001b[39;00m\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mplotly\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mgraph_objects\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mgo\u001b[39;00m\n\u001b[32m 5\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mnumpy\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mnp\u001b[39;00m\n\u001b[32m 6\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mjupyter_client\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mconnect\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m channel_socket_types\n", + "\u001b[31mModuleNotFoundError\u001b[39m: No module named 'plotly'" + ] + } + ], "source": [ "# import matplotlib.pyplot as plt\n", "import csv\n", @@ -36,12 +50,11 @@ "import pandas as pd\n", "\n", "# plt.rcParams['figure.figsize'] = [25, 15]" - ], - "outputs": [], - "execution_count": 2 + ] }, { "cell_type": "code", + "execution_count": 3, "id": "a96ea0301fc7692a", "metadata": { "ExecuteTime": { @@ -49,6 +62,7 @@ "start_time": "2025-09-03T06:31:10.701492Z" } }, + "outputs": [], "source": [ "with open('./lut_channnel_sweep.csv') as csvfile:\n", " spamreader = csv.reader(csvfile, delimiter=',', quotechar='|')\n", @@ -71,12 +85,11 @@ " channel_cf = [int(row[0]) for row in rows[1:]]\n", " filters_cf = [int(row[1]) for row in rows[1:]]\n", " channel_filter_meas = [float(row[2]) for row in rows[1:]]\n" - ], - "outputs": [], - "execution_count": 3 + ] }, { "cell_type": "code", + "execution_count": 4, "id": "79eaf4a295ca7143", "metadata": { "ExecuteTime": { @@ -84,6 +97,7 @@ "start_time": "2025-09-03T06:31:10.755455Z" } }, + "outputs": [], "source": [ "def calc_upper(c: int, m: float, b: float) -> float:\n", " return np.floor(c / 32) * 32 * m + b\n", @@ -96,12 +110,11 @@ " return calc_upper(c, m_u, b_u)\n", " else:\n", " return calc_lower(c, m_l, b_l)\n" - ], - "outputs": [], - "execution_count": 4 + ] }, { "cell_type": "code", + "execution_count": 5, "id": "b098c375bdbc1389", "metadata": { "ExecuteTime": { @@ -109,30 +122,30 @@ "start_time": "2025-09-03T06:31:10.814983Z" } }, + "outputs": [], "source": [ "def lin_interpol(x0:float, x1:float, y0:float, y1:float) -> (float, float):\n", " m = (y1 - y0) / (x1 - x0)\n", " b = y1 - m * x1\n", " return m, b" - ], - "outputs": [], - "execution_count": 5 + ] }, { + "cell_type": "code", + "execution_count": null, + "id": "c7abf7a2802a93b8", "metadata": { "ExecuteTime": { "end_time": "2025-09-03T06:31:10.871331Z", "start_time": "2025-09-03T06:31:10.869196Z" } }, - "cell_type": "code", - "source": "", - "id": "c7abf7a2802a93b8", "outputs": [], - "execution_count": null + "source": [] }, { "cell_type": "code", + "execution_count": 6, "id": "e93f7a254e1da4d9", "metadata": { "ExecuteTime": { @@ -140,72 +153,6 @@ "start_time": "2025-09-03T06:31:10.923106Z" } }, - "source": [ - "first_order_approx = []\n", - "second_order_approx = []\n", - "pol_approx = []\n", - "\n", - "\n", - "\n", - "# upper_sampled_channels = [1, 3, 5, 9, 15, 33, 65, 129, 257, 513, 993]\n", - "upper_sampled_channels = [7, 993]\n", - "lower_sampled_channels = [1, 991]\n", - "# upper_sampled_channels = [7, 515]\n", - "# lower_sampled_channels = [1, 529]\n", - "# # print(len(upper_sampled_channels))\n", - "\n", - "upper_sampled_channel_meas = [channel_meas[channels.index(c)] for c in upper_sampled_channels]\n", - "lower_sampled_channel_meas = [channel_meas[channels.index(c)] for c in lower_sampled_channels]\n", - "\n", - "upper_m, upper_b = lin_interpol( upper_sampled_channels[0], upper_sampled_channels[1], upper_sampled_channel_meas[0], upper_sampled_channel_meas[1])\n", - "lower_m, lower_b = lin_interpol(lower_sampled_channels[0], lower_sampled_channels[1], lower_sampled_channel_meas[0], lower_sampled_channel_meas[1])\n", - "\n", - "\n", - "# r_c = [c / 10 for c in range(1, 10240)]\n", - "r_c = channels\n", - "\n", - "r_v_upper = [calc_upper(c, upper_m, upper_b) for c in r_c]\n", - "r_v_lower = [calc_lower(c, lower_m, lower_b) for c in r_c]\n", - "r_v_mean = [calc_mean(c,upper_m, upper_b, lower_m, lower_b) for c in r_c]\n", - "r_v_rect = [calc_rect(c, upper_m, upper_b, lower_m, lower_b) for c in r_c]\n", - "\n", - "err_upper = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_upper, channel_meas)]\n", - "err_lower = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_lower, channel_meas)]\n", - "err_mean = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_mean, channel_meas)]\n", - "err_rect = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_rect, channel_meas)]\n", - "\n", - "# print(np.mean(err_sine))\n", - "print(np.mean(err_rect))\n", - "\n", - "fig = go.Figure()\n", - "fig.add_trace(go.Scatter(x=channels, y=channel_meas, name=\"Channel Measurements\", mode=\"markers\"))\n", - "fig.add_trace(go.Scatter(x=filters, y=filter_meas, name=\"Filter Measurements\", mode=\"markers\"))\n", - "\n", - "fig.add_trace(go.Scatter(x=list(range(1024)), y=[c * upper_m + upper_b for c in range(1024)], name=\"Upper Sampled Channels\"))\n", - "fig.add_trace(go.Scatter(x=list(range(1024)), y=[c * lower_m + lower_b for c in range(1024)], name=\"Lower Sampled Channels\"))\n", - "# fig.add_trace(go.Scatter(x=r_c, y=r_v_upper, name=\"Upper_steps\", mode=\"markers\"))\n", - "# fig.add_trace(go.Scatter(x=r_c, y=r_v_lower, name=\"Lower_steps\", mode=\"markers\"))\n", - "fig.add_trace(go.Scatter(x=r_c, y=r_v_mean, name=\"Mean Steps\"))\n", - "fig.add_trace(go.Scatter(x=r_c, y=r_v_rect, name=\"Rect Steps\"))\n", - "\n", - "# fig.add_trace(go.Scatter(x=r_c, y=err_upper, name=\"Upper Errors\"))\n", - "# fig.add_trace(go.Scatter(x=r_c, y=err_lower, name=\"Lower Errors\"))\n", - "# fig.add_trace(go.Scatter(x=r_c, y=err_mean, name=\"Mean Errors\"))\n", - "fig.add_trace(go.Scatter(x=r_c, y=err_rect, name=\"Rect Errors\", mode=\"markers\"))\n", - "\n", - "fig.update_layout(\n", - " autosize=False,\n", - " width=2000,\n", - " height=1000,\n", - " # margin=dict(\n", - " # l=50,\n", - " # r=50,\n", - " # b=100,\n", - " # t=100,\n", - " # pad=4\n", - " # ),\n", - ")\n" - ], "outputs": [ { "name": "stdout", @@ -217,10 +164,14 @@ { "data": { "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, "data": [ { "mode": "markers", "name": "Channel Measurements", + "type": "scatter", "x": [ 1, 2, @@ -2322,12 +2273,12 @@ 33.58163809776306, 33.583977699279785, 37.376403427124025 - ], - "type": "scatter" + ] }, { "mode": "markers", "name": "Filter Measurements", + "type": "scatter", "x": [ 1, 2, @@ -3389,11 +3340,11 @@ 57.654523086547854, 57.65220522880554, 57.73559130155123 - ], - "type": "scatter" + ] }, { "name": "Upper Sampled Channels", + "type": "scatter", "x": [ 0, 1, @@ -5445,11 +5396,11 @@ 37.06599842131017, 37.10085802843758, 37.13571763556499 - ], - "type": "scatter" + ] }, { "name": "Lower Sampled Channels", + "type": "scatter", "x": [ 0, 1, @@ -7501,11 +7452,11 @@ 32.30203446548011, 32.33297487103222, 32.36391527658432 - ], - "type": "scatter" + ] }, { "name": "Mean Steps", + "type": "scatter", "x": [ 1, 2, @@ -9607,11 +9558,11 @@ 35.27776295124813, 35.27776295124813, 35.27776295124813 - ], - "type": "scatter" + ] }, { "name": "Rect Steps", + "type": "scatter", "x": [ 1, 2, @@ -11713,12 +11664,12 @@ 33.38494865980386, 33.38494865980386, 37.170577242692396 - ], - "type": "scatter" + ] }, { "mode": "markers", "name": "Rect Errors", + "type": "scatter", "x": [ 1, 2, @@ -13131,9 +13082,9 @@ 0.007123596472838354, 0.006937039950135544, 0.007008147760345144, - 7.412217008585014E-4, - 8.618460398520075E-4, - 9.384078046173857E-4, + 0.0007412217008585014, + 0.0008618460398520075, + 0.0009384078046173857, 0.0011282448169823624, 0.007325836630194285, 0.007238176580010305, @@ -13163,10 +13114,10 @@ 0.006244907634816605, 0.0060430203655553105, 0.00612648552036906, - 2.2735296731465378E-4, - 6.304393514731021E-4, - 4.432963496837407E-4, - 3.630587579871265E-4, + 0.00022735296731465378, + 0.0006304393514731021, + 0.0004432963496837407, + 0.0003630587579871265, 0.0065782528927554335, 0.006392348709075315, 0.006580176984393912, @@ -13195,17 +13146,17 @@ 0.005828279003223052, 0.005681913556858254, 0.005546114652492112, - 3.594164012675773E-4, - 3.6188997587484583E-4, - 5.946126464090165E-4, - 5.10437720977126E-4, + 0.0003594164012675773, + 0.00036188997587484583, + 0.0005946126464090165, + 0.000510437720977126, 0.0063861800464808695, 0.006284670957720509, 0.006471256153557792, 0.006000369641998879, - 9.986491719126869E-4, + 0.0009986491719126869, 0.00106865357738881, - 9.798016322420321E-4, + 0.0009798016322420321, 0.001203250693741935, 0.005183130890161499, 0.005096398206702448, @@ -13219,26 +13170,26 @@ 0.008334243906520445, 0.008229288222873082, 0.008205005265816011, - 8.576823561045521E-4, - 8.776847861229998E-4, - 8.637264882231811E-4, + 0.0008576823561045521, + 0.0008776847861229998, + 0.0008637264882231811, 0.0011492649755065142, 0.005301181990081824, 0.005128526756549269, 0.005336717894677448, 0.005451963661352359, - 6.276284018286275E-4, - 5.7861744522874E-4, - 5.809197585010758E-4, - 4.6905987469495706E-4, + 0.0006276284018286275, + 0.00057861744522874, + 0.0005809197585010758, + 0.00046905987469495706, 0.006183953338651123, 0.0057858987517329435, 0.006125148384481761, 0.005959719441776227, 0.0010346518244463742, - 8.761158878094182E-4, - 9.301072936986651E-4, - 8.894364587140899E-4, + 0.0008761158878094182, + 0.0009301072936986651, + 0.0008894364587140899, 0.004749156207523156, 0.004696013404949756, 0.004914623542975065, @@ -13267,10 +13218,10 @@ 0.005879040441858708, 0.005880914609124706, 0.005819009207398745, - 2.15123294328114E-4, - 1.2176697078664909E-4, - 3.428009786415854E-4, - 1.8382442691983224E-4, + 0.000215123294328114, + 0.00012176697078664909, + 0.0003428009786415854, + 0.00018382442691983224, 0.00452147837080677, 0.0042675772219617405, 0.004673959560200546, @@ -13283,10 +13234,10 @@ 0.007377851831726237, 0.007368994772614688, 0.007528337120766139, - 1.7909630835349997E-4, - 5.189058188130435E-4, - 6.668225362970092E-4, - 2.3517778861398034E-4, + 0.00017909630835349997, + 0.0005189058188130435, + 0.0006668225362970092, + 0.00023517778861398034, 0.004690616928042345, 0.004864940506262765, 0.004690829360486452, @@ -13299,10 +13250,10 @@ 0.0058048756046339516, 0.0059022292279487425, 0.005768260616253014, - 7.37374987845902E-4, - 6.5496643749257E-4, - 6.528858422114645E-4, - 5.737159837053625E-4, + 0.000737374987845902, + 0.00065496643749257, + 0.0006528858422114645, + 0.0005737159837053625, 0.004208468530308232, 0.004133876125350553, 0.0042208852290923846, @@ -13315,10 +13266,10 @@ 0.007035331658447158, 0.007171313574638152, 0.007283161799901666, - 3.315138853912177E-4, - 2.4907752767526394E-4, - 2.1354227113126983E-4, - 9.390108054921486E-5, + 0.0003315138853912177, + 0.00024907752767526394, + 0.00021354227113126983, + 9.390108054921486e-05, 0.004269659861572023, 0.004238536212813842, 0.004425977125957901, @@ -13347,10 +13298,10 @@ 0.006988377466604157, 0.006779233582271864, 0.0069917438507121074, - 4.703207614196875E-4, - 3.3348350074476264E-4, - 5.955908734260873E-4, - 3.506715943982983E-4, + 0.0004703207614196875, + 0.00033348350074476264, + 0.0005955908734260873, + 0.0003506715943982983, 0.0038530432423988866, 0.0039869105380437725, 0.003985685758845432, @@ -13379,10 +13330,10 @@ 0.006845229155546607, 0.006569635316908039, 0.006493663876111174, - 2.5118335430105603E-4, - 4.8558982165449165E-4, - 2.330390802672946E-4, - 2.4737822837346573E-4, + 0.00025118335430105603, + 0.00048558982165449165, + 0.0002330390802672946, + 0.00024737822837346573, 0.0037981532900004666, 0.0037284701148267117, 0.003749364470844867, @@ -13411,10 +13362,10 @@ 0.006210943586814112, 0.006283994992261345, 0.006500198719553265, - 7.177520450284094E-4, - 6.100406606882573E-4, - 6.135843168196416E-4, - 7.973242634174337E-4, + 0.0007177520450284094, + 0.0006100406606882573, + 0.0006135843168196416, + 0.0007973242634174337, 0.0028762729885362655, 0.0028330758124818205, 0.0029742272664122172, @@ -13443,10 +13394,10 @@ 0.005926078866225199, 0.005932460306309638, 0.00610837071075213, - 5.875371974132452E-4, - 8.385944261781799E-4, - 8.684421157797546E-4, - 8.105603941499144E-4, + 0.0005875371974132452, + 0.0008385944261781799, + 0.0008684421157797546, + 0.0008105603941499144, 0.0028913019831959975, 0.0029371869278530154, 0.003019292692133642, @@ -13507,10 +13458,10 @@ 0.005534933996135181, 0.005435095041187444, 0.005385328462137015, - 9.306082466111345E-4, - 9.488536717723094E-4, + 0.0009306082466111345, + 0.0009488536717723094, 0.0010460129499286043, - 9.464672760491098E-4, + 0.0009464672760491098, 0.002203643490625838, 0.0022299473844385395, 0.0024143706006156725, @@ -13571,8 +13522,8 @@ 0.005207718550198147, 0.005365505623219196, 0.00523291671358515, - 5.451704698271809E-4, - 8.657388532328998E-4, + 0.0005451704698271809, + 0.0008657388532328998, 0.0011996867763934165, 0.0012318845486937854, 0.0012822885094559298, @@ -13592,9 +13543,9 @@ 0.003620458627028676, 0.00317126138744016, 0.001016377537918894, - 7.964705829069677E-4, - 9.440449457314109E-4, - 5.424586190514299E-4, + 0.0007964705829069677, + 0.0009440449457314109, + 0.0005424586190514299, 0.00245603534272909, 0.0029211224971874023, 0.002382760986587165, @@ -13609,8 +13560,8 @@ 0.0010934390593461967, 0.0010928092527461692, 0.001036486637860784, - 9.703419861195375E-4, - 3.287804070978429E-4, + 0.0009703419861195375, + 0.0003287804070978429, 0.004724090890369745, 0.004339636213587516, 0.004786032224603239, @@ -13623,10 +13574,10 @@ 0.0029741451284604, 0.003405091614867319, 0.0030542020365725503, - 5.856323270720039E-4, - 2.691963479306013E-4, - 5.72964795348122E-4, - 1.9304820451811048E-4, + 0.0005856323270720039, + 0.0002691963479306013, + 0.000572964795348122, + 0.00019304820451811048, 0.002657185616588458, 0.003112326785637731, 0.002695259523835135, @@ -13636,13 +13587,13 @@ 0.004432104548275395, 0.004505688996101528, 0.0011921473897337617, - 7.326640967195565E-4, - 8.885046232078072E-4, + 0.0007326640967195565, + 0.0008885046232078072, 0.0010329583447534403, - 5.848072008393378E-4, - 1.2581441589979895E-4, - 4.3041145530211655E-4, - 3.6734978018207324E-4, + 0.0005848072008393378, + 0.00012581441589979895, + 0.00043041145530211655, + 0.00036734978018207324, 0.004006192314644363, 0.004003358565136159, 0.0038459250776481666, @@ -13655,10 +13606,10 @@ 0.003154635528424176, 0.0033995618906798477, 0.0033169766228089283, - 4.969629267017818E-4, - 5.779629336706995E-4, - 6.458204908347889E-4, - 5.022308937306432E-4, + 0.0004969629267017818, + 0.0005779629336706995, + 0.0006458204908347889, + 0.0005022308937306432, 0.0030175595639933815, 0.002743009909712622, 0.0028805110302106527, @@ -13667,12 +13618,12 @@ 0.0043091411484331545, 0.004210013871124933, 0.004299352036733917, - 7.698705135877954E-4, - 6.278342849597213E-4, - 5.660384260666215E-4, - 5.868860558672133E-4, + 0.0007698705135877954, + 0.0006278342849597213, + 0.0005660384260666215, + 0.0005868860558672133, 0.0014413740295706975, - 9.567378511011049E-4, + 0.0009567378511011049, 0.001252126925687001, 0.001154001667426712, 0.0033443322560852825, @@ -13699,10 +13650,10 @@ 0.0028489781228564683, 0.0036124234947316025, 0.0029584468719045867, - 9.224759288074953E-4, - 9.678727965131942E-4, - 9.166609367247722E-4, - 8.29942452267697E-4, + 0.0009224759288074953, + 0.0009678727965131942, + 0.0009166609367247722, + 0.000829942452267697, 0.002749918394294612, 0.0022138173130625462, 0.0023230830691128553, @@ -13713,12 +13664,12 @@ 0.0024535446482648274, 0.0017270439886699818, 0.001121220596727299, - 9.318760021157887E-4, + 0.0009318760021157887, 0.001220552900628022, 0.0012363208020945192, 0.0012965729858077201, - 9.214243248879385E-4, - 9.193412510720775E-4, + 0.0009214243248879385, + 0.0009193412510720775, 0.0032916851043978145, 0.0036389204695537083, 0.0037642041974635596, @@ -13743,14 +13694,14 @@ 0.001452998736183295, 0.001573246779976685, 0.001625139799145735, - 2.8134784729405457E-4, - 1.4092231861966806E-4, - 3.0734227207505243E-4, - 2.761916620055845E-4, - 8.910432794393651E-5, - 6.345447817545308E-4, - 2.730288406301324E-4, - 6.586891612946336E-4, + 0.00028134784729405457, + 0.00014092231861966806, + 0.00030734227207505243, + 0.0002761916620055845, + 8.910432794393651e-05, + 0.0006345447817545308, + 0.0002730288406301324, + 0.0006586891612946336, 0.00443706509723847, 0.004471192346745343, 0.004257440287983345, @@ -13759,11 +13710,11 @@ 0.005368070965572966, 0.005700845209425788, 0.005148525128972011, - 7.596711519998541E-4, + 0.0007596711519998541, 0.0011676972078448057, - 9.861854018716955E-4, - 9.612834715658078E-4, - 9.659095400282835E-4, + 0.0009861854018716955, + 0.0009612834715658078, + 0.0009659095400282835, 0.0017373160338337713, 0.0011373983526079738, 0.0018800561205365455, @@ -13775,14 +13726,14 @@ 0.0013410522656243616, 0.0012373565844275433, 0.0013197008061659283, - 5.875000548157366E-4, - 4.486139553719152E-4, - 6.163215007375018E-4, - 5.894107343798484E-4, - 5.669346710729286E-4, - 4.7809589835840096E-4, - 3.4340618048213806E-4, - 4.26773625194136E-4, + 0.0005875000548157366, + 0.0004486139553719152, + 0.0006163215007375018, + 0.0005894107343798484, + 0.0005669346710729286, + 0.00047809589835840096, + 0.00034340618048213806, + 0.000426773625194136, 0.0053344590353486925, 0.0052064229208463155, 0.005233370512050958, @@ -13791,10 +13742,10 @@ 0.004932928463032489, 0.005158396331046462, 0.005079541008251051, - 1.54458992260587E-4, - 8.7371605699786E-5, + 0.000154458992260587, + 8.7371605699786e-05, 0.001301786151554503, - 1.1348145845149594E-4, + 0.00011348145845149594, 0.0015088472764420886, 0.001635210570672367, 0.0014730451205905836, @@ -13807,340 +13758,27 @@ 0.0014037163553121607, 0.0014080645378652568, 0.0014539479315627026, - 6.465519397858426E-4, - 6.923582874806365E-4, - 7.022036206669359E-4, - 6.566434119922028E-4, - 5.311550727916903E-4, - 3.8135932826347565E-4, - 3.867611616783387E-4, - 3.307182150317522E-4, + 0.0006465519397858426, + 0.0006923582874806365, + 0.0007022036206669359, + 0.0006566434119922028, + 0.0005311550727916903, + 0.00038135932826347565, + 0.0003867611616783387, + 0.0003307182150317522, 0.005711190447459831, 0.005673917058486169, 0.0058570531129719505, 0.005926309303147031, 0.005506848320303105 - ], - "type": "scatter" + ] } ], "layout": { + "autosize": false, + "height": 1000, "template": { "data": { - "histogram2dcontour": [ - { - "type": "histogram2dcontour", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "choropleth": [ - { - "type": "choropleth", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "histogram2d": [ - { - "type": "histogram2d", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "heatmap": [ - { - "type": "heatmap", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "contourcarpet": [ - { - "type": "contourcarpet", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "contour": [ - { - "type": "contour", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "surface": [ - { - "type": "surface", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "mesh3d": [ - { - "type": "mesh3d", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "scatter": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scatter" - } - ], - "parcoords": [ - { - "type": "parcoords", - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterpolargl": [ - { - "type": "scatterpolargl", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], "bar": [ { "error_x": { @@ -14163,109 +13801,20 @@ "type": "bar" } ], - "scattergeo": [ - { - "type": "scattergeo", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterpolar": [ - { - "type": "scatterpolar", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "histogram": [ + "barpolar": [ { "marker": { + "line": { + "color": "rgb(17,17,17)", + "width": 0.5 + }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, - "type": "histogram" - } - ], - "scattergl": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scattergl" - } - ], - "scatter3d": [ - { - "type": "scatter3d", - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattermap": [ - { - "type": "scattermap", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattermapbox": [ - { - "type": "scattermapbox", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterternary": [ - { - "type": "scatterternary", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattercarpet": [ - { - "type": "scattercarpet", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } + "type": "barpolar" } ], "carpet": [ @@ -14287,6 +13836,431 @@ "type": "carpet" } ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "line": { + "color": "#283442" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "line": { + "color": "#283442" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], "table": [ { "cells": { @@ -14307,84 +14281,15 @@ }, "type": "table" } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "rgb(17,17,17)", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } ] }, "layout": { + "annotationdefaults": { + "arrowcolor": "#f2f5fa", + "arrowhead": 0, + "arrowwidth": 1 + }, "autotypenumbers": "strict", - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#f2f5fa" - }, - "hovermode": "closest", - "hoverlabel": { - "align": "left" - }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", - "polar": { - "bgcolor": "rgb(17,17,17)", - "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, - "ternary": { - "bgcolor": "rgb(17,17,17)", - "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, "coloraxis": { "colorbar": { "outlinewidth": 0, @@ -14392,90 +14297,6 @@ } }, "colorscale": { - "sequential": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], "diverging": [ [ 0, @@ -14521,57 +14342,164 @@ 1, "#276419" ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] ] }, - "xaxis": { - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "#283442", - "automargin": true, - "zerolinewidth": 2 + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#f2f5fa" }, - "yaxis": { - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 + "geo": { + "bgcolor": "rgb(17,17,17)", + "lakecolor": "rgb(17,17,17)", + "landcolor": "rgb(17,17,17)", + "showlakes": true, + "showland": true, + "subunitcolor": "#506784" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "dark" + }, + "paper_bgcolor": "rgb(17,17,17)", + "plot_bgcolor": "rgb(17,17,17)", + "polar": { + "angularaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" }, - "zerolinecolor": "#283442", - "automargin": true, - "zerolinewidth": 2 + "bgcolor": "rgb(17,17,17)", + "radialaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + } }, "scene": { "xaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" }, "yaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" }, "zaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" } }, "shapedefaults": { @@ -14579,18 +14507,29 @@ "color": "#f2f5fa" } }, - "annotationdefaults": { - "arrowcolor": "#f2f5fa", - "arrowhead": 0, - "arrowwidth": 1 + "sliderdefaults": { + "bgcolor": "#C8D4E3", + "bordercolor": "rgb(17,17,17)", + "borderwidth": 1, + "tickwidth": 0 }, - "geo": { + "ternary": { + "aaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + }, + "baxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + }, "bgcolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", - "subunitcolor": "#506784", - "showland": true, - "showlakes": true, - "lakecolor": "rgb(17,17,17)" + "caxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + } }, "title": { "x": 0.05 @@ -14599,23 +14538,31 @@ "bgcolor": "#506784", "borderwidth": 0 }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "borderwidth": 1, - "bordercolor": "rgb(17,17,17)", - "tickwidth": 0 + "xaxis": { + "automargin": true, + "gridcolor": "#283442", + "linecolor": "#506784", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#283442", + "zerolinewidth": 2 }, - "mapbox": { - "style": "dark" + "yaxis": { + "automargin": true, + "gridcolor": "#283442", + "linecolor": "#506784", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#283442", + "zerolinewidth": 2 } } }, - "autosize": false, - "width": 2000, - "height": 1000 - }, - "config": { - "plotlyServerURL": "https://plot.ly" + "width": 2000 } } }, @@ -14623,24 +14570,58 @@ "output_type": "display_data" } ], - "execution_count": 6 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2025-09-03T06:31:12.380075Z", - "start_time": "2025-09-03T06:31:12.344866Z" - } - }, - "cell_type": "code", "source": [ - "with open('./lut_filter_sweep.csv') as csvfile:\n", - " spamreader = csv.reader(csvfile, delimiter=',', quotechar='|')\n", - " rows = list(spamreader)\n", - " filters = [int(row[0]) for row in rows]\n", - " filter_meas = [float(row[1]) for row in rows]\n", + "first_order_approx = []\n", + "second_order_approx = []\n", + "pol_approx = []\n", + "\n", + "\n", + "\n", + "# upper_sampled_channels = [1, 3, 5, 9, 15, 33, 65, 129, 257, 513, 993]\n", + "upper_sampled_channels = [7, 993]\n", + "lower_sampled_channels = [1, 991]\n", + "# upper_sampled_channels = [7, 515]\n", + "# lower_sampled_channels = [1, 529]\n", + "# # print(len(upper_sampled_channels))\n", + "\n", + "upper_sampled_channel_meas = [channel_meas[channels.index(c)] for c in upper_sampled_channels]\n", + "lower_sampled_channel_meas = [channel_meas[channels.index(c)] for c in lower_sampled_channels]\n", + "\n", + "upper_m, upper_b = lin_interpol( upper_sampled_channels[0], upper_sampled_channels[1], upper_sampled_channel_meas[0], upper_sampled_channel_meas[1])\n", + "lower_m, lower_b = lin_interpol(lower_sampled_channels[0], lower_sampled_channels[1], lower_sampled_channel_meas[0], lower_sampled_channel_meas[1])\n", + "\n", + "\n", + "# r_c = [c / 10 for c in range(1, 10240)]\n", + "r_c = channels\n", + "\n", + "r_v_upper = [calc_upper(c, upper_m, upper_b) for c in r_c]\n", + "r_v_lower = [calc_lower(c, lower_m, lower_b) for c in r_c]\n", + "r_v_mean = [calc_mean(c,upper_m, upper_b, lower_m, lower_b) for c in r_c]\n", + "r_v_rect = [calc_rect(c, upper_m, upper_b, lower_m, lower_b) for c in r_c]\n", + "\n", + "err_upper = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_upper, channel_meas)]\n", + "err_lower = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_lower, channel_meas)]\n", + "err_mean = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_mean, channel_meas)]\n", + "err_rect = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_rect, channel_meas)]\n", + "\n", + "# print(np.mean(err_sine))\n", + "print(np.mean(err_rect))\n", + "\n", "fig = go.Figure()\n", - "fig.add_trace(go.Scatter(x=filters, y=filter_meas, name=\"Filter Measurements\"))\n", + "fig.add_trace(go.Scatter(x=channels, y=channel_meas, name=\"Channel Measurements\", mode=\"markers\"))\n", + "fig.add_trace(go.Scatter(x=filters, y=filter_meas, name=\"Filter Measurements\", mode=\"markers\"))\n", + "\n", + "fig.add_trace(go.Scatter(x=list(range(1024)), y=[c * upper_m + upper_b for c in range(1024)], name=\"Upper Sampled Channels\"))\n", + "fig.add_trace(go.Scatter(x=list(range(1024)), y=[c * lower_m + lower_b for c in range(1024)], name=\"Lower Sampled Channels\"))\n", + "# fig.add_trace(go.Scatter(x=r_c, y=r_v_upper, name=\"Upper_steps\", mode=\"markers\"))\n", + "# fig.add_trace(go.Scatter(x=r_c, y=r_v_lower, name=\"Lower_steps\", mode=\"markers\"))\n", + "fig.add_trace(go.Scatter(x=r_c, y=r_v_mean, name=\"Mean Steps\"))\n", + "fig.add_trace(go.Scatter(x=r_c, y=r_v_rect, name=\"Rect Steps\"))\n", + "\n", + "# fig.add_trace(go.Scatter(x=r_c, y=err_upper, name=\"Upper Errors\"))\n", + "# fig.add_trace(go.Scatter(x=r_c, y=err_lower, name=\"Lower Errors\"))\n", + "# fig.add_trace(go.Scatter(x=r_c, y=err_mean, name=\"Mean Errors\"))\n", + "fig.add_trace(go.Scatter(x=r_c, y=err_rect, name=\"Rect Errors\", mode=\"markers\"))\n", "\n", "fig.update_layout(\n", " autosize=False,\n", @@ -14653,16 +14634,30 @@ " # t=100,\n", " # pad=4\n", " # ),\n", - ")" - ], + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, "id": "9a653659b7f067cf", + "metadata": { + "ExecuteTime": { + "end_time": "2025-09-03T06:31:12.380075Z", + "start_time": "2025-09-03T06:31:12.344866Z" + } + }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, "data": [ { "name": "Filter Measurements", + "type": "scatter", "x": [ 1, 2, @@ -15724,327 +15719,14 @@ 57.654523086547854, 57.65220522880554, 57.73559130155123 - ], - "type": "scatter" + ] } ], "layout": { + "autosize": false, + "height": 1000, "template": { "data": { - "histogram2dcontour": [ - { - "type": "histogram2dcontour", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "choropleth": [ - { - "type": "choropleth", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "histogram2d": [ - { - "type": "histogram2d", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "heatmap": [ - { - "type": "heatmap", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "contourcarpet": [ - { - "type": "contourcarpet", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "contour": [ - { - "type": "contour", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "surface": [ - { - "type": "surface", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "mesh3d": [ - { - "type": "mesh3d", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "scatter": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scatter" - } - ], - "parcoords": [ - { - "type": "parcoords", - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterpolargl": [ - { - "type": "scatterpolargl", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], "bar": [ { "error_x": { @@ -16067,109 +15749,20 @@ "type": "bar" } ], - "scattergeo": [ - { - "type": "scattergeo", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterpolar": [ - { - "type": "scatterpolar", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "histogram": [ + "barpolar": [ { "marker": { + "line": { + "color": "rgb(17,17,17)", + "width": 0.5 + }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, - "type": "histogram" - } - ], - "scattergl": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scattergl" - } - ], - "scatter3d": [ - { - "type": "scatter3d", - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattermap": [ - { - "type": "scattermap", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattermapbox": [ - { - "type": "scattermapbox", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterternary": [ - { - "type": "scatterternary", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattercarpet": [ - { - "type": "scattercarpet", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } + "type": "barpolar" } ], "carpet": [ @@ -16191,6 +15784,431 @@ "type": "carpet" } ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "line": { + "color": "#283442" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "line": { + "color": "#283442" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], "table": [ { "cells": { @@ -16211,84 +16229,15 @@ }, "type": "table" } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "rgb(17,17,17)", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } ] }, "layout": { + "annotationdefaults": { + "arrowcolor": "#f2f5fa", + "arrowhead": 0, + "arrowwidth": 1 + }, "autotypenumbers": "strict", - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#f2f5fa" - }, - "hovermode": "closest", - "hoverlabel": { - "align": "left" - }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", - "polar": { - "bgcolor": "rgb(17,17,17)", - "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, - "ternary": { - "bgcolor": "rgb(17,17,17)", - "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, "coloraxis": { "colorbar": { "outlinewidth": 0, @@ -16296,90 +16245,6 @@ } }, "colorscale": { - "sequential": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], "diverging": [ [ 0, @@ -16425,57 +16290,164 @@ 1, "#276419" ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] ] }, - "xaxis": { - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "#283442", - "automargin": true, - "zerolinewidth": 2 + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#f2f5fa" }, - "yaxis": { - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 + "geo": { + "bgcolor": "rgb(17,17,17)", + "lakecolor": "rgb(17,17,17)", + "landcolor": "rgb(17,17,17)", + "showlakes": true, + "showland": true, + "subunitcolor": "#506784" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "dark" + }, + "paper_bgcolor": "rgb(17,17,17)", + "plot_bgcolor": "rgb(17,17,17)", + "polar": { + "angularaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" }, - "zerolinecolor": "#283442", - "automargin": true, - "zerolinewidth": 2 + "bgcolor": "rgb(17,17,17)", + "radialaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + } }, "scene": { "xaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" }, "yaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" }, "zaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" } }, "shapedefaults": { @@ -16483,18 +16455,29 @@ "color": "#f2f5fa" } }, - "annotationdefaults": { - "arrowcolor": "#f2f5fa", - "arrowhead": 0, - "arrowwidth": 1 + "sliderdefaults": { + "bgcolor": "#C8D4E3", + "bordercolor": "rgb(17,17,17)", + "borderwidth": 1, + "tickwidth": 0 }, - "geo": { + "ternary": { + "aaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + }, + "baxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + }, "bgcolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", - "subunitcolor": "#506784", - "showland": true, - "showlakes": true, - "lakecolor": "rgb(17,17,17)" + "caxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + } }, "title": { "x": 0.05 @@ -16503,23 +16486,31 @@ "bgcolor": "#506784", "borderwidth": 0 }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "borderwidth": 1, - "bordercolor": "rgb(17,17,17)", - "tickwidth": 0 + "xaxis": { + "automargin": true, + "gridcolor": "#283442", + "linecolor": "#506784", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#283442", + "zerolinewidth": 2 }, - "mapbox": { - "style": "dark" + "yaxis": { + "automargin": true, + "gridcolor": "#283442", + "linecolor": "#506784", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#283442", + "zerolinewidth": 2 } } }, - "autosize": false, - "width": 2000, - "height": 1000 - }, - "config": { - "plotlyServerURL": "https://plot.ly" + "width": 2000 } } }, @@ -16527,18 +16518,8 @@ "output_type": "display_data" } ], - "execution_count": 7 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2025-09-03T06:31:12.475438Z", - "start_time": "2025-09-03T06:31:12.442204Z" - } - }, - "cell_type": "code", "source": [ - "with open('./consuming_channnel_sweep.csv') as csvfile:\n", + "with open('./lut_filter_sweep.csv') as csvfile:\n", " spamreader = csv.reader(csvfile, delimiter=',', quotechar='|')\n", " rows = list(spamreader)\n", " filters = [int(row[0]) for row in rows]\n", @@ -16558,15 +16539,29 @@ " # pad=4\n", " # ),\n", ")" - ], + ] + }, + { + "cell_type": "code", + "execution_count": 8, "id": "361ee9ff66d1b6e5", + "metadata": { + "ExecuteTime": { + "end_time": "2025-09-03T06:31:12.475438Z", + "start_time": "2025-09-03T06:31:12.442204Z" + } + }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, "data": [ { "name": "Filter Measurements", + "type": "scatter", "x": [ 1, 2, @@ -18668,327 +18663,14 @@ 8.513465642929077, 8.51736478805542, 8.514734115600586 - ], - "type": "scatter" + ] } ], "layout": { + "autosize": false, + "height": 1000, "template": { "data": { - "histogram2dcontour": [ - { - "type": "histogram2dcontour", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "choropleth": [ - { - "type": "choropleth", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "histogram2d": [ - { - "type": "histogram2d", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "heatmap": [ - { - "type": "heatmap", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "contourcarpet": [ - { - "type": "contourcarpet", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "contour": [ - { - "type": "contour", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "surface": [ - { - "type": "surface", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "mesh3d": [ - { - "type": "mesh3d", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "scatter": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scatter" - } - ], - "parcoords": [ - { - "type": "parcoords", - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterpolargl": [ - { - "type": "scatterpolargl", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], "bar": [ { "error_x": { @@ -19011,109 +18693,20 @@ "type": "bar" } ], - "scattergeo": [ - { - "type": "scattergeo", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterpolar": [ - { - "type": "scatterpolar", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "histogram": [ + "barpolar": [ { "marker": { + "line": { + "color": "rgb(17,17,17)", + "width": 0.5 + }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, - "type": "histogram" - } - ], - "scattergl": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scattergl" - } - ], - "scatter3d": [ - { - "type": "scatter3d", - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattermap": [ - { - "type": "scattermap", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattermapbox": [ - { - "type": "scattermapbox", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterternary": [ - { - "type": "scatterternary", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattercarpet": [ - { - "type": "scattercarpet", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } + "type": "barpolar" } ], "carpet": [ @@ -19135,6 +18728,431 @@ "type": "carpet" } ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "line": { + "color": "#283442" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "line": { + "color": "#283442" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], "table": [ { "cells": { @@ -19155,84 +19173,15 @@ }, "type": "table" } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "rgb(17,17,17)", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } ] }, "layout": { + "annotationdefaults": { + "arrowcolor": "#f2f5fa", + "arrowhead": 0, + "arrowwidth": 1 + }, "autotypenumbers": "strict", - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#f2f5fa" - }, - "hovermode": "closest", - "hoverlabel": { - "align": "left" - }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", - "polar": { - "bgcolor": "rgb(17,17,17)", - "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, - "ternary": { - "bgcolor": "rgb(17,17,17)", - "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, "coloraxis": { "colorbar": { "outlinewidth": 0, @@ -19240,90 +19189,6 @@ } }, "colorscale": { - "sequential": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], "diverging": [ [ 0, @@ -19369,57 +19234,164 @@ 1, "#276419" ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] ] }, - "xaxis": { - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "#283442", - "automargin": true, - "zerolinewidth": 2 + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#f2f5fa" }, - "yaxis": { - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 + "geo": { + "bgcolor": "rgb(17,17,17)", + "lakecolor": "rgb(17,17,17)", + "landcolor": "rgb(17,17,17)", + "showlakes": true, + "showland": true, + "subunitcolor": "#506784" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "dark" + }, + "paper_bgcolor": "rgb(17,17,17)", + "plot_bgcolor": "rgb(17,17,17)", + "polar": { + "angularaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" }, - "zerolinecolor": "#283442", - "automargin": true, - "zerolinewidth": 2 + "bgcolor": "rgb(17,17,17)", + "radialaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + } }, "scene": { "xaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" }, "yaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" }, "zaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" } }, "shapedefaults": { @@ -19427,18 +19399,29 @@ "color": "#f2f5fa" } }, - "annotationdefaults": { - "arrowcolor": "#f2f5fa", - "arrowhead": 0, - "arrowwidth": 1 + "sliderdefaults": { + "bgcolor": "#C8D4E3", + "bordercolor": "rgb(17,17,17)", + "borderwidth": 1, + "tickwidth": 0 }, - "geo": { + "ternary": { + "aaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + }, + "baxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + }, "bgcolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", - "subunitcolor": "#506784", - "showland": true, - "showlakes": true, - "lakecolor": "rgb(17,17,17)" + "caxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + } }, "title": { "x": 0.05 @@ -19447,23 +19430,31 @@ "bgcolor": "#506784", "borderwidth": 0 }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "borderwidth": 1, - "bordercolor": "rgb(17,17,17)", - "tickwidth": 0 + "xaxis": { + "automargin": true, + "gridcolor": "#283442", + "linecolor": "#506784", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#283442", + "zerolinewidth": 2 }, - "mapbox": { - "style": "dark" + "yaxis": { + "automargin": true, + "gridcolor": "#283442", + "linecolor": "#506784", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#283442", + "zerolinewidth": 2 } } }, - "autosize": false, - "width": 2000, - "height": 1000 - }, - "config": { - "plotlyServerURL": "https://plot.ly" + "width": 2000 } } }, @@ -19471,143 +19462,46 @@ "output_type": "display_data" } ], - "execution_count": 8 + "source": [ + "with open('./consuming_channnel_sweep.csv') as csvfile:\n", + " spamreader = csv.reader(csvfile, delimiter=',', quotechar='|')\n", + " rows = list(spamreader)\n", + " filters = [int(row[0]) for row in rows]\n", + " filter_meas = [float(row[1]) for row in rows]\n", + "fig = go.Figure()\n", + "fig.add_trace(go.Scatter(x=filters, y=filter_meas, name=\"Filter Measurements\"))\n", + "\n", + "fig.update_layout(\n", + " autosize=False,\n", + " width=2000,\n", + " height=1000,\n", + " # margin=dict(\n", + " # l=50,\n", + " # r=50,\n", + " # b=100,\n", + " # t=100,\n", + " # pad=4\n", + " # ),\n", + ")" + ] }, { + "cell_type": "code", + "execution_count": 9, + "id": "51ca081aacbae203", "metadata": { "ExecuteTime": { "end_time": "2025-09-03T06:31:12.940623Z", "start_time": "2025-09-03T06:31:12.584628Z" } }, - "cell_type": "code", - "source": [ - "\n", - "\n", - "# Read data from a csv\n", - "df = pd.read_csv('./lut_channel_filter_sweep.csv', usecols=[\"channels\", \"filters\", \"ms\"])\n", - "split_df = df.groupby('channels')\n", - "fig = go.Figure()\n", - "#\n", - "# for category, category_df in split_df:\n", - "# fig.add_trace(go.Scatter(\n", - "# # x=category_df['channels'],\n", - "# x=category_df['filters'],\n", - "# y=category_df['ms'],\n", - "# # mode='markers',\n", - "# marker=dict(size=7),\n", - "# name=f\"channel {category}\",\n", - "# mode='markers+lines',\n", - "# line=dict(\n", - "# dash='dash',\n", - "# width=.5\n", - "# )\n", - "# ))\n", - "#\n", - "# # Customize the plot\n", - "# fig.update_layout(\n", - "# scene=dict(\n", - "# xaxis_title='channels',\n", - "# yaxis_title='filters',\n", - "# zaxis_title='ms'\n", - "# ),\n", - "# width=1600,\n", - "# height=1200,\n", - "# template='plotly_white',\n", - "# )\n", - "# fig.layout.scene.camera.projection.type = \"orthographic\"\n", - "# # Display the plot\n", - "# fig.show()\n", - "# fig = go.Figure()\n", - "# split_df = df.groupby('filters')\n", - "#\n", - "# for category, category_df in split_df:\n", - "# fig.add_trace(go.Scatter(\n", - "# # x=category_df['channels'],\n", - "# x=category_df['channels'],\n", - "# y=category_df['ms'],\n", - "# # mode='markers',\n", - "# marker=dict(size=7),\n", - "# name=f\"filter {category}\",\n", - "# mode='markers+lines',\n", - "# line=dict(\n", - "# dash='dash',\n", - "# width=.5\n", - "# )\n", - "# ))\n", - "#\n", - "# # Customize the plot\n", - "# fig.update_layout(\n", - "# scene=dict(\n", - "# xaxis_title='channels',\n", - "# yaxis_title='filters',\n", - "# zaxis_title='ms'\n", - "# ),\n", - "# width=1600,\n", - "# height=1200,\n", - "# template='plotly_white',\n", - "# )\n", - "# fig.layout.scene.camera.projection.type = \"orthographic\"\n", - "# # Display the plot\n", - "# fig.show()\n", - "# fig = go.Figure()\n", - "\n", - "# for category, category_df in split_df:\n", - "# df.sort_values()\n", - "# x=df['channels']\n", - "# y=df['filters']\n", - "# z=df['ms']\n", - "\n", - "x_unique = list(set(df[\"channels\"]))\n", - "x_unique.sort()\n", - "y_unique = list(set(df[\"filters\"]))\n", - "y_unique.sort()\n", - "# print(y_unique)\n", - "z = []\n", - "for y in y_unique:\n", - " z.append([])\n", - " for x in x_unique:\n", - " z[-1].append(df.loc[df[\"channels\"] == x].loc[df[\"filters\"] == y][\"ms\"].values[0])\n", - "# np.reshape([x.shape[0], y.shape[0]])\n", - "# print(z)\n", - "fig.add_trace(go.Scatter3d(\n", - " x=df['channels'],\n", - " y=df['filters'],\n", - " z=df['ms'],\n", - " mode='markers',\n", - " marker=dict(size=7),\n", - " # name=f\"channel {category}\",\n", - " # mode='markers+lines',\n", - " line=dict(\n", - " dash='dash',\n", - " width=.5\n", - " )\n", - "))\n", - "fig.add_trace(go.Surface(\n", - " x=x_unique,\n", - " y=y_unique,\n", - " z=z,\n", - "))\n", - "# Customize the plot\n", - "fig.update_layout(\n", - " scene=dict(\n", - " xaxis_title='channels',\n", - " yaxis_title='filters',\n", - " zaxis_title='ms'\n", - " ),\n", - " width=1600,\n", - " height=1200,\n", - " template='plotly_white',\n", - ")\n", - "fig.layout.scene.camera.projection.type = \"orthographic\"\n", - "# Display the plot\n", - "fig.show()\n" - ], - "id": "51ca081aacbae203", "outputs": [ { "data": { "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, "data": [ { "line": { @@ -19618,21 +19512,22 @@ "size": 7 }, "mode": "markers", + "type": "scatter3d", "x": { - "dtype": "i2", - "bdata": "eAB4AHgAeAB4AHgAeAB4AHgAeAB7AHsAewB7AHsAewB7AHsAewB7AH4AfgB+AH4AfgB+AH4AfgB+AH4AgQCBAIEAgQCBAIEAgQCBAIEAgQCEAIQAhACEAIQAhACEAIQAhACEAIcAhwCHAIcAhwCHAIcAhwCHAIcAigCKAIoAigCKAIoAigCKAIoAigCNAI0AjQCNAI0AjQCNAI0AjQCNAJAAkACQAJAAkACQAJAAkACQAJAAkwCTAJMAkwCTAJMAkwCTAJMAkwCWAJYAlgCWAJYAlgCWAJYAlgCWAJkAmQCZAJkAmQCZAJkAmQCZAJkAnACcAJwAnACcAJwAnACcAJwAnACfAJ8AnwCfAJ8AnwCfAJ8AnwCfAKIAogCiAKIAogCiAKIAogCiAKIApQClAKUApQClAKUApQClAKUApQCoAKgAqACoAKgAqACoAKgAqACoAKsAqwCrAKsAqwCrAKsAqwCrAKsArgCuAK4ArgCuAK4ArgCuAK4ArgCxALEAsQCxALEAsQCxALEAsQCxALQAtAC0ALQAtAC0ALQAtAC0ALQAtwC3ALcAtwC3ALcAtwC3ALcAtwC6ALoAugC6ALoAugC6ALoAugC6AL0AvQC9AL0AvQC9AL0AvQC9AL0AwADAAMAAwADAAMAAwADAAMAAwADDAMMAwwDDAMMAwwDDAMMAwwDDAMYAxgDGAMYAxgDGAMYAxgDGAMYAyQDJAMkAyQDJAMkAyQDJAMkAyQDMAMwAzADMAMwAzADMAMwAzADMAM8AzwDPAM8AzwDPAM8AzwDPAM8A0gDSANIA0gDSANIA0gDSANIA0gDVANUA1QDVANUA1QDVANUA1QDVANgA2ADYANgA2ADYANgA2ADYANgA2wDbANsA2wDbANsA2wDbANsA2wA=" + "bdata": "eAB4AHgAeAB4AHgAeAB4AHgAeAB7AHsAewB7AHsAewB7AHsAewB7AH4AfgB+AH4AfgB+AH4AfgB+AH4AgQCBAIEAgQCBAIEAgQCBAIEAgQCEAIQAhACEAIQAhACEAIQAhACEAIcAhwCHAIcAhwCHAIcAhwCHAIcAigCKAIoAigCKAIoAigCKAIoAigCNAI0AjQCNAI0AjQCNAI0AjQCNAJAAkACQAJAAkACQAJAAkACQAJAAkwCTAJMAkwCTAJMAkwCTAJMAkwCWAJYAlgCWAJYAlgCWAJYAlgCWAJkAmQCZAJkAmQCZAJkAmQCZAJkAnACcAJwAnACcAJwAnACcAJwAnACfAJ8AnwCfAJ8AnwCfAJ8AnwCfAKIAogCiAKIAogCiAKIAogCiAKIApQClAKUApQClAKUApQClAKUApQCoAKgAqACoAKgAqACoAKgAqACoAKsAqwCrAKsAqwCrAKsAqwCrAKsArgCuAK4ArgCuAK4ArgCuAK4ArgCxALEAsQCxALEAsQCxALEAsQCxALQAtAC0ALQAtAC0ALQAtAC0ALQAtwC3ALcAtwC3ALcAtwC3ALcAtwC6ALoAugC6ALoAugC6ALoAugC6AL0AvQC9AL0AvQC9AL0AvQC9AL0AwADAAMAAwADAAMAAwADAAMAAwADDAMMAwwDDAMMAwwDDAMMAwwDDAMYAxgDGAMYAxgDGAMYAxgDGAMYAyQDJAMkAyQDJAMkAyQDJAMkAyQDMAMwAzADMAMwAzADMAMwAzADMAM8AzwDPAM8AzwDPAM8AzwDPAM8A0gDSANIA0gDSANIA0gDSANIA0gDVANUA1QDVANUA1QDVANUA1QDVANgA2ADYANgA2ADYANgA2ADYANgA2wDbANsA2wDbANsA2wDbANsA2wA=", + "dtype": "i2" }, "y": { - "dtype": "i2", - "bdata": "ZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9AA=" + "bdata": "ZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9ABkAHQAhACUAKQAtADEANQA5AD0AGQAdACEAJQApAC0AMQA1ADkAPQAZAB0AIQAlACkALQAxADUAOQA9AA=", + "dtype": "i2" }, "z": { - "dtype": "f8", - "bdata": "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" - }, - "type": "scatter3d" + "bdata": "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", + "dtype": "f8" + } }, { + "type": "surface", "x": [ 120, 123, @@ -20042,29 +19937,35 @@ 40.03554706573486, 44.2560287475586 ] - ], - "type": "surface" + ] } ], "layout": { + "height": 1200, + "scene": { + "camera": { + "projection": { + "type": "orthographic" + } + }, + "xaxis": { + "title": { + "text": "channels" + } + }, + "yaxis": { + "title": { + "text": "filters" + } + }, + "zaxis": { + "title": { + "text": "ms" + } + } + }, "template": { "data": { - "barpolar": [ - { - "marker": { - "line": { - "color": "white", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], "bar": [ { "error_x": { @@ -20087,6 +19988,22 @@ "type": "bar" } ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], "carpet": [ { "aaxis": { @@ -20115,15 +20032,6 @@ "type": "choropleth" } ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], "contour": [ { "colorbar": { @@ -20132,7 +20040,7 @@ }, "colorscale": [ [ - 0.0, + 0, "#0d0887" ], [ @@ -20168,13 +20076,22 @@ "#fdca26" ], [ - 1.0, + 1, "#f0f921" ] ], "type": "contour" } ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], "heatmap": [ { "colorbar": { @@ -20183,7 +20100,7 @@ }, "colorscale": [ [ - 0.0, + 0, "#0d0887" ], [ @@ -20219,115 +20136,13 @@ "#fdca26" ], [ - 1.0, + 1, "#f0f921" ] ], "type": "heatmap" } ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], "histogram": [ { "marker": { @@ -20340,6 +20155,108 @@ "type": "histogram" } ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], "mesh3d": [ { "colorbar": { @@ -20366,6 +20283,16 @@ "type": "pie" } ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], "scatter3d": [ { "line": { @@ -20416,17 +20343,6 @@ "type": "scattergl" } ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], "scattermap": [ { "marker": { @@ -20438,7 +20354,7 @@ "type": "scattermap" } ], - "scatterpolargl": [ + "scattermapbox": [ { "marker": { "colorbar": { @@ -20446,7 +20362,7 @@ "ticks": "" } }, - "type": "scatterpolargl" + "type": "scattermapbox" } ], "scatterpolar": [ @@ -20460,14 +20376,15 @@ "type": "scatterpolar" } ], - "scatter": [ + "scatterpolargl": [ { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } }, - "type": "scatter" + "type": "scatterpolargl" } ], "scatterternary": [ @@ -20489,7 +20406,7 @@ }, "colorscale": [ [ - 0.0, + 0, "#0d0887" ], [ @@ -20525,7 +20442,7 @@ "#fdca26" ], [ - 1.0, + 1, "#f0f921" ] ], @@ -20616,7 +20533,7 @@ ], "sequential": [ [ - 0.0, + 0, "#0d0887" ], [ @@ -20652,13 +20569,13 @@ "#fdca26" ], [ - 1.0, + 1, "#f0f921" ] ], "sequentialminus": [ [ - 0.0, + 0, "#0d0887" ], [ @@ -20694,7 +20611,7 @@ "#fdca26" ], [ - 1.0, + 1, "#f0f921" ] ] @@ -20823,33 +20740,7 @@ } } }, - "scene": { - "xaxis": { - "title": { - "text": "channels" - } - }, - "yaxis": { - "title": { - "text": "filters" - } - }, - "zaxis": { - "title": { - "text": "ms" - } - }, - "camera": { - "projection": { - "type": "orthographic" - } - } - }, - "width": 1600, - "height": 1200 - }, - "config": { - "plotlyServerURL": "https://plot.ly" + "width": 1600 } } }, @@ -20857,92 +20748,114 @@ "output_type": "display_data" } ], - "execution_count": 9 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2025-09-03T06:31:13.003106Z", - "start_time": "2025-09-03T06:31:12.950080Z" - } - }, - "cell_type": "code", "source": [ + "\n", + "\n", + "# Read data from a csv\n", + "df = pd.read_csv('./lut_channel_filter_sweep.csv', usecols=[\"channels\", \"filters\", \"ms\"])\n", + "split_df = df.groupby('channels')\n", "fig = go.Figure()\n", - "split_df = df.groupby('filters')\n", - "first = True\n", - "for category, category_df in split_df:\n", - " # if not first:\n", - " # continue\n", - " upper_right = 195\n", - " upper_left = 129\n", - " lower_right = 192\n", - " lower_left = 126\n", - " # upper_m, upper_b = lin_interpol( upper_sampled_channels[0], upper_sampled_channels[1], upper_sampled_channel_meas[0], upper_sampled_channel_meas[1])\n", + "#\n", + "# for category, category_df in split_df:\n", + "# fig.add_trace(go.Scatter(\n", + "# # x=category_df['channels'],\n", + "# x=category_df['filters'],\n", + "# y=category_df['ms'],\n", + "# # mode='markers',\n", + "# marker=dict(size=7),\n", + "# name=f\"channel {category}\",\n", + "# mode='markers+lines',\n", + "# line=dict(\n", + "# dash='dash',\n", + "# width=.5\n", + "# )\n", + "# ))\n", + "#\n", + "# # Customize the plot\n", + "# fig.update_layout(\n", + "# scene=dict(\n", + "# xaxis_title='channels',\n", + "# yaxis_title='filters',\n", + "# zaxis_title='ms'\n", + "# ),\n", + "# width=1600,\n", + "# height=1200,\n", + "# template='plotly_white',\n", + "# )\n", + "# fig.layout.scene.camera.projection.type = \"orthographic\"\n", + "# # Display the plot\n", + "# fig.show()\n", + "# fig = go.Figure()\n", + "# split_df = df.groupby('filters')\n", + "#\n", + "# for category, category_df in split_df:\n", + "# fig.add_trace(go.Scatter(\n", + "# # x=category_df['channels'],\n", + "# x=category_df['channels'],\n", + "# y=category_df['ms'],\n", + "# # mode='markers',\n", + "# marker=dict(size=7),\n", + "# name=f\"filter {category}\",\n", + "# mode='markers+lines',\n", + "# line=dict(\n", + "# dash='dash',\n", + "# width=.5\n", + "# )\n", + "# ))\n", + "#\n", + "# # Customize the plot\n", + "# fig.update_layout(\n", + "# scene=dict(\n", + "# xaxis_title='channels',\n", + "# yaxis_title='filters',\n", + "# zaxis_title='ms'\n", + "# ),\n", + "# width=1600,\n", + "# height=1200,\n", + "# template='plotly_white',\n", + "# )\n", + "# fig.layout.scene.camera.projection.type = \"orthographic\"\n", + "# # Display the plot\n", + "# fig.show()\n", + "# fig = go.Figure()\n", "\n", - " upper_right_meas = category_df.loc[category_df[\"channels\"] == upper_right][\"ms\"].values[0]\n", - " upper_left_meas = category_df.loc[category_df[\"channels\"] == upper_left][\"ms\"].values[0]\n", + "# for category, category_df in split_df:\n", + "# df.sort_values()\n", + "# x=df['channels']\n", + "# y=df['filters']\n", + "# z=df['ms']\n", "\n", - " lower_right_meas = category_df.loc[category_df[\"channels\"] == lower_right][\"ms\"].values[0]\n", - " lower_left_meas = category_df.loc[category_df[\"channels\"] == lower_left][\"ms\"].values[0]\n", - "\n", - " print(upper_right_meas)\n", - " print(upper_left_meas)\n", - "\n", - " upper_m, upper_b = lin_interpol(upper_left - 3, upper_right - 3, upper_left_meas, upper_right_meas)\n", - " lower_m, lower_b = lin_interpol(lower_left, lower_right, lower_left_meas, lower_right_meas)\n", - " # print(list(category_df['channels']))\n", - " # print(list(range(category_df['channels'][0], list(category_df['channels'])[-1])))\n", - " start = list(category_df['channels'])[0]\n", - " end = list(category_df['channels'])[-1]\n", - " r_c = list(range(start, end))\n", - "\n", - " r_v_upper = [calc_upper(c, upper_m, upper_b) for c in r_c]\n", - " r_v_lower = [calc_lower(c, lower_m, lower_b) for c in r_c]\n", - "\n", - " # fig.add_trace(go.Scatter(x=r_c, y=[c * upper_m + upper_b for c in r_c], name=\"Upper Sampled Channels\"))\n", - " # fig.add_trace(go.Scatter(x=r_c, y=[c * lower_m + lower_b for c in r_c], name=\"Lower Sampled Channels\"))\n", - " r_v_rect = [calc_rect(c, upper_m, upper_b, lower_m, lower_b) for c in r_c]\n", - "\n", - " fig.add_trace(go.Scatter(\n", - " # x=category_df['channels'],\n", - " x=category_df['channels'],\n", - " y=category_df['ms'],\n", - " # mode='markers',\n", - " marker=dict(size=7),\n", - " name=f\"filter {category}\",\n", - " mode='markers+lines',\n", - " line=dict(\n", - " dash='dash',\n", - " width=.5\n", - " )\n", - " ))\n", - " # fig.add_trace(go.Scatter(\n", - " # x=r_c,\n", - " # y=r_v_upper,\n", - " # name=f\"Upper filter {category}\",\n", - " # mode='lines',\n", - " # ))\n", - " #\n", - " # fig.add_trace(go.Scatter(\n", - " # x=r_c,\n", - " # y=r_v_lower,\n", - " # name=f\"Lower filter {category}\",\n", - " # mode='lines',\n", - " # ))\n", - " fig.add_trace(go.Scatter(\n", - " # x=category_df['channels'],\n", - " x=r_c,\n", - " y=r_v_rect,\n", - " # mode='markers',\n", - "\n", - " name=f\"Approximation filter {category}\",\n", - " mode='lines',\n", - "\n", - " ))\n", - "\n", - "\n", - " first = False\n", + "x_unique = list(set(df[\"channels\"]))\n", + "x_unique.sort()\n", + "y_unique = list(set(df[\"filters\"]))\n", + "y_unique.sort()\n", + "# print(y_unique)\n", + "z = []\n", + "for y in y_unique:\n", + " z.append([])\n", + " for x in x_unique:\n", + " z[-1].append(df.loc[df[\"channels\"] == x].loc[df[\"filters\"] == y][\"ms\"].values[0])\n", + "# np.reshape([x.shape[0], y.shape[0]])\n", + "# print(z)\n", + "fig.add_trace(go.Scatter3d(\n", + " x=df['channels'],\n", + " y=df['filters'],\n", + " z=df['ms'],\n", + " mode='markers',\n", + " marker=dict(size=7),\n", + " # name=f\"channel {category}\",\n", + " # mode='markers+lines',\n", + " line=dict(\n", + " dash='dash',\n", + " width=.5\n", + " )\n", + "))\n", + "fig.add_trace(go.Surface(\n", + " x=x_unique,\n", + " y=y_unique,\n", + " z=z,\n", + "))\n", + "# Customize the plot\n", "fig.update_layout(\n", " scene=dict(\n", " xaxis_title='channels',\n", @@ -20953,9 +20866,21 @@ " height=1200,\n", " template='plotly_white',\n", ")\n", - "fig.show()" - ], + "fig.layout.scene.camera.projection.type = \"orthographic\"\n", + "# Display the plot\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, "id": "c9f108c1b000a586", + "metadata": { + "ExecuteTime": { + "end_time": "2025-09-03T06:31:13.003106Z", + "start_time": "2025-09-03T06:31:12.950080Z" + } + }, "outputs": [ { "name": "stdout", @@ -20986,6 +20911,9 @@ { "data": { "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, "data": [ { "line": { @@ -20997,19 +20925,20 @@ }, "mode": "markers+lines", "name": "filter 100", + "type": "scatter", "x": { - "dtype": "i2", - "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=" + "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=", + "dtype": "i2" }, "y": { - "dtype": "f8", - "bdata": "L7roArdlJ0BeTsHrioQpQLlkCHaqKSdAEhER0Q0WL0CrqqpKQRMvQM3MzLSb2SxAxU7sxOM5L0DNzMwM6dwsQGdmZo5m2yxAnnWDyVJXL0DOzMwcE+wsQDMzMwNFoi9AZmZmhmWiL0BlZmaWcq0sQImIiJh9ljJAMzMzGz8vMUCamZmBpC0xQAAAADCEqDJAAAAAKO8tMUAzMzMb8LkyQM7MzEwBujJAAAAAAAc3MUCZmZlhudsyQJqZmUkfGjFAmpmZsbIYMUAAAABYmKM1QFZVVcth7zNAAQAAUPaxNUDOzMycrbI1QDE1sP9k7TNAAQAAKNLCNUABAADISfczQGVmZt6f9zNAZmZmNtblNUA=" - }, - "type": "scatter" + "bdata": "L7roArdlJ0BeTsHrioQpQLlkCHaqKSdAEhER0Q0WL0CrqqpKQRMvQM3MzLSb2SxAxU7sxOM5L0DNzMwM6dwsQGdmZo5m2yxAnnWDyVJXL0DOzMwcE+wsQDMzMwNFoi9AZmZmhmWiL0BlZmaWcq0sQImIiJh9ljJAMzMzGz8vMUCamZmBpC0xQAAAADCEqDJAAAAAKO8tMUAzMzMb8LkyQM7MzEwBujJAAAAAAAc3MUCZmZlhudsyQJqZmUkfGjFAmpmZsbIYMUAAAABYmKM1QFZVVcth7zNAAQAAUPaxNUDOzMycrbI1QDE1sP9k7TNAAQAAKNLCNUABAADISfczQGVmZt6f9zNAZmZmNtblNUA=", + "dtype": "f8" + } }, { "mode": "lines", "name": "Approximation filter 100", + "type": "scatter", "x": [ 120, 121, @@ -21211,8 +21140,7 @@ 19.770463564427885, 21.63904333114624, 21.63904333114624 - ], - "type": "scatter" + ] }, { "line": { @@ -21224,19 +21152,20 @@ }, "mode": "markers+lines", "name": "filter 116", + "type": "scatter", "x": { - "dtype": "i2", - "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=" + "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=", + "dtype": "i2" }, "y": { - "dtype": "f8", - "bdata": "chzHUbd4J0Cp+/IIccMpQM7MzKy4OCdA////DxxQL0AXhmH4m1AvQAAAABXF6yxAep7nmYl2L0DYiZ0oPessQM3MzCRW6yxAmpmZ0dieL0CZmZnRa/0sQB5xRwzt7S9AAAAAAGDtL0AzMzNTjrgsQOvETswsujJAMzMzG4w4MUDNzMy86jcxQNKb3nQoyzJAVVVVffYzMUAmSZJEKeIyQGdmZg4V4zJAzczM1LRBMUBmZmYOYAUzQJqZmVH2IDFAAAAAkCQkMUAzMzNTLM01QGZmZnak+jNA8xrKCxPcNUDOzMysCNw1QGZmZoYy9DNAm5mZUQ/xNUBmZmaGRQA0QHue5ymzADRAZ2ZmziUVNkA=" - }, - "type": "scatter" + "bdata": "chzHUbd4J0Cp+/IIccMpQM7MzKy4OCdA////DxxQL0AXhmH4m1AvQAAAABXF6yxAep7nmYl2L0DYiZ0oPessQM3MzCRW6yxAmpmZ0dieL0CZmZnRa/0sQB5xRwzt7S9AAAAAAGDtL0AzMzNTjrgsQOvETswsujJAMzMzG4w4MUDNzMy86jcxQNKb3nQoyzJAVVVVffYzMUAmSZJEKeIyQGdmZg4V4zJAzczM1LRBMUBmZmYOYAUzQJqZmVH2IDFAAAAAkCQkMUAzMzNTLM01QGZmZnak+jNA8xrKCxPcNUDOzMysCNw1QGZmZoYy9DNAm5mZUQ/xNUBmZmaGRQA0QHue5ymzADRAZ2ZmziUVNkA=", + "dtype": "f8" + } }, { "mode": "lines", "name": "Approximation filter 116", + "type": "scatter", "x": [ 120, 121, @@ -21438,8 +21367,7 @@ 19.822588446646026, 21.801457595825195, 21.801457595825195 - ], - "type": "scatter" + ] }, { "line": { @@ -21451,19 +21379,20 @@ }, "mode": "markers+lines", "name": "filter 132", + "type": "scatter", "x": { - "dtype": "i2", - "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=" + "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=", + "dtype": "i2" }, "y": { - "dtype": "f8", - "bdata": "NDMzA5ScNkAzMzNj/WY4QM3MzOTIADVAip3Y6Rb0PUDNzMyMYPU9QJtssulLwztAdNFF12MZPkDctm1bkgU7QDMzM2MkBTtAJ3ZiF44sPkCbmZnx/9k7QAtZyGJ8Pz5Afg6paUg+PkC6N6AMQvs5QAAAACBH4kFAJUmSBGmDQECNsNwT7YJAQNC6wZRm90FA2WSTjZsJQEDNzMwUzP5BQAAAANDs/0FAuuiiW9qRQEAzMzMrzAdCQAAAAOwz9z5A27Ztq2j1PkAmtJcQGdBEQLSX0H5dJENAZmZm/sbhREAAAACQWOBEQIwuujh7ikJAZmZmJlroREAzMzOjlCdDQKEO6oDKKUNAMzMzq6fvREA=" - }, - "type": "scatter" + "bdata": "NDMzA5ScNkAzMzNj/WY4QM3MzOTIADVAip3Y6Rb0PUDNzMyMYPU9QJtssulLwztAdNFF12MZPkDctm1bkgU7QDMzM2MkBTtAJ3ZiF44sPkCbmZnx/9k7QAtZyGJ8Pz5Afg6paUg+PkC6N6AMQvs5QAAAACBH4kFAJUmSBGmDQECNsNwT7YJAQNC6wZRm90FA2WSTjZsJQEDNzMwUzP5BQAAAANDs/0FAuuiiW9qRQEAzMzMrzAdCQAAAAOwz9z5A27Ztq2j1PkAmtJcQGdBEQLSX0H5dJENAZmZm/sbhREAAAACQWOBEQIwuujh7ikJAZmZmJlroREAzMzOjlCdDQKEO6oDKKUNAMzMzq6fvREA=", + "dtype": "f8" + } }, { "mode": "lines", "name": "Approximation filter 132", + "type": "scatter", "x": [ 120, 121, @@ -21665,8 +21594,7 @@ 35.78556801189076, 41.6257649174443, 41.6257649174443 - ], - "type": "scatter" + ] }, { "line": { @@ -21678,19 +21606,20 @@ }, "mode": "markers+lines", "name": "filter 148", + "type": "scatter", "x": { - "dtype": "i2", - "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=" + "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=", + "dtype": "i2" }, "y": { - "dtype": "f8", - "bdata": "hmEY5vCnNkAzMzNTaps4QMfgfAwQBjVAAAAASLU0PkC96U2f2TI+QJuZmeG23TtAZmZmVotZPkBtpe8Vmwo7QAEAAAhODDtAAAAAoEFnPkAAAAA4j+w7QJqZmcFefD5AzczMbFV8PkAAAAC4JQM6QAAAANBMBUJAzczM7OCLQEB7FK7n145AQAAAAPCyG0JANcJyD3YOQEAtZCHrSSFCQAAAAMjFI0JAzczMLOCZQEAAAAAovzBCQGZmZq4f+z5AmpmZyab3PkDNzMykfv1EQAAAAJDnLkNAzczMnPINRUDNzMxEzwxFQFVVVe1JjUJAWO5p5EQVRUCamZnxkTNDQNiJnfgoNENA8vDw8OEfRUA=" - }, - "type": "scatter" + "bdata": "hmEY5vCnNkAzMzNTaps4QMfgfAwQBjVAAAAASLU0PkC96U2f2TI+QJuZmeG23TtAZmZmVotZPkBtpe8Vmwo7QAEAAAhODDtAAAAAoEFnPkAAAAA4j+w7QJqZmcFefD5AzczMbFV8PkAAAAC4JQM6QAAAANBMBUJAzczM7OCLQEB7FK7n145AQAAAAPCyG0JANcJyD3YOQEAtZCHrSSFCQAAAAMjFI0JAzczMLOCZQEAAAAAovzBCQGZmZq4f+z5AmpmZyab3PkDNzMykfv1EQAAAAJDnLkNAzczMnPINRUDNzMxEzwxFQFVVVe1JjUJAWO5p5EQVRUCamZnxkTNDQNiJnfgoNENA8vDw8OEfRUA=", + "dtype": "f8" + } }, { "mode": "lines", "name": "Approximation filter 148", + "type": "scatter", "x": [ 120, 121, @@ -21892,8 +21821,7 @@ 35.78857967816542, 41.98042736053467, 41.98042736053467 - ], - "type": "scatter" + ] }, { "line": { @@ -21905,19 +21833,20 @@ }, "mode": "markers+lines", "name": "filter 164", + "type": "scatter", "x": { - "dtype": "i2", - "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=" + "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=", + "dtype": "i2" }, "y": { - "dtype": "f8", - "bdata": "mpmZGTfENkCZmZmhj+M4QJqZmbm5GDVAAAAAsPmCPkBoaWmpwIQ+QKuqqlIH9jtAAAAAgKynPkAAAACANR07QJqZmdmgHDtAOL3pzRe3PkCZmZnBihM8QAAAACjF2D5ANcJyryLVPkDNzMyEIhE6QDMzMzvGN0JAzczMBBCiQEB6nuc53qBAQJqZmSE4TkJAzczMfFkUQECamZkB9lZCQM3MzBzHVUJAAAAAcCiuQEAAAADQDWdCQDMzM7uvCj9AMzMzM78JP0AzMzNjKzlFQM3MzMQGRkNAZmZmntRIRUAUrkdhPUlFQKuqqsbUlEJAMzMze4VRRUDHcRxnNUpDQM/zPA+QSUNAPc/znClkRUA=" - }, - "type": "scatter" + "bdata": "mpmZGTfENkCZmZmhj+M4QJqZmbm5GDVAAAAAsPmCPkBoaWmpwIQ+QKuqqlIH9jtAAAAAgKynPkAAAACANR07QJqZmdmgHDtAOL3pzRe3PkCZmZnBihM8QAAAACjF2D5ANcJyryLVPkDNzMyEIhE6QDMzMzvGN0JAzczMBBCiQEB6nuc53qBAQJqZmSE4TkJAzczMfFkUQECamZkB9lZCQM3MzBzHVUJAAAAAcCiuQEAAAADQDWdCQDMzM7uvCj9AMzMzM78JP0AzMzNjKzlFQM3MzMQGRkNAZmZmntRIRUAUrkdhPUlFQKuqqsbUlEJAMzMze4VRRUDHcRxnNUpDQM/zPA+QSUNAPc/znClkRUA=", + "dtype": "f8" + } }, { "mode": "lines", "name": "Approximation filter 164", + "type": "scatter", "x": [ 120, 121, @@ -22119,8 +22048,7 @@ 35.85818999319366, 42.4466365814209, 42.4466365814209 - ], - "type": "scatter" + ] }, { "line": { @@ -22132,19 +22060,20 @@ }, "mode": "markers+lines", "name": "filter 180", + "type": "scatter", "x": { - "dtype": "i2", - "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=" + "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=", + "dtype": "i2" }, "y": { - "dtype": "f8", - "bdata": "MzMzU7PnNkA0MzPTnyk5QJqZmYlnKTVAZmZmPnfMPkCbmZnZl8w+QJqZmXEVHzxAAAAA8ObvPkAzMzPziy07QAAAADiOMztAmZmZaQkDP0BwPgZnvzM8QDMzMwtAMj9Aep7nSaAwP0AvW7bMHiU6QAAAAMSsZUJAw/Uo/Eu1QECamZlRFrVAQGZmZtYHfEJACtejEGkhQEDtxE6cyYZCQDMzM3sQh0JAmpmZMffAQECamZmZHJ1CQJqZmXnZGz9AAQAAKJIZP0CamZmhtHBFQDIzM1NxWUNAZmZmfguBRUAzMzO3AoFFQAAAAGCqokJASZIkqR6MRUBz0UWXrGBDQGZmZoYhYkNAjC66aO2jRUA=" - }, - "type": "scatter" + "bdata": "MzMzU7PnNkA0MzPTnyk5QJqZmYlnKTVAZmZmPnfMPkCbmZnZl8w+QJqZmXEVHzxAAAAA8ObvPkAzMzPziy07QAAAADiOMztAmZmZaQkDP0BwPgZnvzM8QDMzMwtAMj9Aep7nSaAwP0AvW7bMHiU6QAAAAMSsZUJAw/Uo/Eu1QECamZlRFrVAQGZmZtYHfEJACtejEGkhQEDtxE6cyYZCQDMzM3sQh0JAmpmZMffAQECamZmZHJ1CQJqZmXnZGz9AAQAAKJIZP0CamZmhtHBFQDIzM1NxWUNAZmZmfguBRUAzMzO3AoFFQAAAAGCqokJASZIkqR6MRUBz0UWXrGBDQGZmZoYhYkNAjC66aO2jRUA=", + "dtype": "f8" + } }, { "mode": "lines", "name": "Approximation filter 180", + "type": "scatter", "x": [ 120, 121, @@ -22346,8 +22275,7 @@ 35.91838353763927, 42.880512428283694, 42.880512428283694 - ], - "type": "scatter" + ] }, { "line": { @@ -22359,19 +22287,20 @@ }, "mode": "markers+lines", "name": "filter 196", + "type": "scatter", "x": { - "dtype": "i2", - "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=" + "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=", + "dtype": "i2" }, "y": { - "dtype": "f8", - "bdata": "x3EcF6JmN0BifWjs1HU5QP///8dYGTdAZmZmThMCP0DNzMwEUwM/QGZmZkZE2DxAAAAAYDIoP0AAAADApdc8QJqZmbm+2TxACB98kJxMP0Duvfd+eOk8QG960ztKkD9Aiy66cJ+JP0BDFrLwpp88QHTRRcfeiUJAZmZm3h4uQUAAAAAQIC5BQJqZmfn7m0JAhmEYpoEyQUABAABw2a5CQFVVVQXvrkJAmpmZKTM2QUAhhBBimc9CQFVVVVkUE0FAzczMVAATQUCuR+FaW5NFQDMzM9P78ENAmpmZibKiRUCamZm5FKNFQC+66BLr60NAmpmZeTS0RUCamZkJ4vZDQLETO5Eu90NAmpmZSevURUA=" - }, - "type": "scatter" + "bdata": "x3EcF6JmN0BifWjs1HU5QP///8dYGTdAZmZmThMCP0DNzMwEUwM/QGZmZkZE2DxAAAAAYDIoP0AAAADApdc8QJqZmbm+2TxACB98kJxMP0Duvfd+eOk8QG960ztKkD9Aiy66cJ+JP0BDFrLwpp88QHTRRcfeiUJAZmZm3h4uQUAAAAAQIC5BQJqZmfn7m0JAhmEYpoEyQUABAABw2a5CQFVVVQXvrkJAmpmZKTM2QUAhhBBimc9CQFVVVVkUE0FAzczMVAATQUCuR+FaW5NFQDMzM9P78ENAmpmZibKiRUCamZm5FKNFQC+66BLr60NAmpmZeTS0RUCamZkJ4vZDQLETO5Eu90NAmpmZSevURUA=", + "dtype": "f8" + } }, { "mode": "lines", "name": "Approximation filter 196", + "type": "scatter", "x": [ 120, 121, @@ -22573,8 +22502,7 @@ 39.5057502341993, 43.15122543334961, 43.15122543334961 - ], - "type": "scatter" + ] }, { "line": { @@ -22586,19 +22514,20 @@ }, "mode": "markers+lines", "name": "filter 212", + "type": "scatter", "x": { - "dtype": "i2", - "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=" + "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=", + "dtype": "i2" }, "y": { - "dtype": "f8", - "bdata": "tbS0tEZrN0AAAADYxZQ5QAEAAKDFHDdAmpmZUQQiP0A9CtcjJSQ/QLht27Yz4TxAmpmZ+UBIP0AzMzNzad88QM3MzDTj4zxAAAAA0JNwP0CamZkxLfE8QKuqqsrosj9AZmZmVrm0P0B0zjmnl6I8QM3MzMzEm0JAH4XrcYAyQUCrqqqimjJBQG9601tOsEJAZmZmRoYwQUDNzMyET8NCQL+E9vIuxEJAZmZm1jg6QUCxEzsRBOVCQAAAAPjeFEFAFrKQJdcVQUCuR+HakKhFQDMzMytx80NAZmZmZs+5RUD2KFzvXrlFQEYXXfST8ENAMzMzA7vLRUAAAADg3vpDQJuZmQGS+kNAZmZmZrztRUA=" - }, - "type": "scatter" + "bdata": "tbS0tEZrN0AAAADYxZQ5QAEAAKDFHDdAmpmZUQQiP0A9CtcjJSQ/QLht27Yz4TxAmpmZ+UBIP0AzMzNzad88QM3MzDTj4zxAAAAA0JNwP0CamZkxLfE8QKuqqsrosj9AZmZmVrm0P0B0zjmnl6I8QM3MzMzEm0JAH4XrcYAyQUCrqqqimjJBQG9601tOsEJAZmZmRoYwQUDNzMyET8NCQL+E9vIuxEJAZmZm1jg6QUCxEzsRBOVCQAAAAPjeFEFAFrKQJdcVQUCuR+HakKhFQDMzMytx80NAZmZmZs+5RUD2KFzvXrlFQEYXXfST8ENAMzMzA7vLRUAAAADg3vpDQJuZmQGS+kNAZmZmZrztRUA=", + "dtype": "f8" + } }, { "mode": "lines", "name": "Approximation filter 212", + "type": "scatter", "x": [ 120, 121, @@ -22800,8 +22729,7 @@ 39.53219807038037, 43.316920623779296, 43.316920623779296 - ], - "type": "scatter" + ] }, { "line": { @@ -22813,19 +22741,20 @@ }, "mode": "markers+lines", "name": "filter 228", + "type": "scatter", "x": { - "dtype": "i2", - "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=" + "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=", + "dtype": "i2" }, "y": { - "dtype": "f8", - "bdata": "q6qqduF3N0DNzMyUOLc5QDMzM3N+JTdAAAAAsLlDP0ASlnsaWEU/QAAAAPhO7DxAzczMRFhtP0DOzMx8n+o8QIfyGqo/6jxAVlVV7QSYP0CWWqnVPv08QM7MzNym3z9AsKG8Rn3hP0BPb3ozWK08QBiGYTjHsEJAnN70Jr03QUAAAACgSzhBQM3MzCRJxUJAmpmZSXE2QUBu27ZNfttCQGZmZr4c3EJA6Hmep1JAQUDNzMysXv5CQIqd2FlIF0FAAAAASNkXQUAAAACs98FFQGZmZvYv+kNAwzAMQ2/SRUAgC1kILtJFQJqZmRl59ENAspCFLB7nRUAzMzPbxwBEQDMzM0svAERA6aKL/mYJRkA=" - }, - "type": "scatter" + "bdata": "q6qqduF3N0DNzMyUOLc5QDMzM3N+JTdAAAAAsLlDP0ASlnsaWEU/QAAAAPhO7DxAzczMRFhtP0DOzMx8n+o8QIfyGqo/6jxAVlVV7QSYP0CWWqnVPv08QM7MzNym3z9AsKG8Rn3hP0BPb3ozWK08QBiGYTjHsEJAnN70Jr03QUAAAACgSzhBQM3MzCRJxUJAmpmZSXE2QUBu27ZNfttCQGZmZr4c3EJA6Hmep1JAQUDNzMysXv5CQIqd2FlIF0FAAAAASNkXQUAAAACs98FFQGZmZvYv+kNAwzAMQ2/SRUAgC1kILtJFQJqZmRl59ENAspCFLB7nRUAzMzPbxwBEQDMzM0svAERA6aKL/mYJRkA=", + "dtype": "f8" + } }, { "mode": "lines", "name": "Approximation filter 228", + "type": "scatter", "x": [ 120, 121, @@ -23027,8 +22956,7 @@ 39.53897666353168, 43.51537084579468, 43.51537084579468 - ], - "type": "scatter" + ] }, { "line": { @@ -23040,19 +22968,20 @@ }, "mode": "markers+lines", "name": "filter 244", + "type": "scatter", "x": { - "dtype": "i2", - "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=" + "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=", + "dtype": "i2" }, "y": { - "dtype": "f8", - "bdata": "zczMjHWAN0BnZma+lds5QJqZmWmOLDdAlqhdaRRdP0Dbtm3DvGM/QNiJnRhu9DxAlNdQ/v+OP0CamZlJJvE8QJqZmaGl8jxAmpmZUfq9P0CamZkZRgY9QJqZmanQAUBAetObDkQAQECamZlJn7E8QDMzM4vfw0JAep7nGYk8QUAzMzP7XD1BQCVJkoR/2EJAj8L1aAc5QUAzMzOzte9CQAAAAEBR8EJAnud5Hs9EQUDNzMwcfRBDQGZmZrZyGkFAZmZmBvcZQUA8Ctcj5tZFQDMzMzNr/kNAYid2AtXoRUDNzMyM5uhFQG7btg1h+ENAAAAAwA/+RUBmZmbuSAVEQGZmZs6MBERAzszMjMUgRkA=" - }, - "type": "scatter" + "bdata": "zczMjHWAN0BnZma+lds5QJqZmWmOLDdAlqhdaRRdP0Dbtm3DvGM/QNiJnRhu9DxAlNdQ/v+OP0CamZlJJvE8QJqZmaGl8jxAmpmZUfq9P0CamZkZRgY9QJqZmanQAUBAetObDkQAQECamZlJn7E8QDMzM4vfw0JAep7nGYk8QUAzMzP7XD1BQCVJkoR/2EJAj8L1aAc5QUAzMzOzte9CQAAAAEBR8EJAnud5Hs9EQUDNzMwcfRBDQGZmZrZyGkFAZmZmBvcZQUA8Ctcj5tZFQDMzMzNr/kNAYid2AtXoRUDNzMyM5uhFQG7btg1h+ENAAAAAwA/+RUBmZmbuSAVEQGZmZs6MBERAzszMjMUgRkA=", + "dtype": "f8" + } }, { "mode": "lines", "name": "Approximation filter 244", + "type": "scatter", "x": [ 120, 121, @@ -23254,29 +23183,30 @@ 39.55014955925218, 43.67889831542968, 43.67889831542968 - ], - "type": "scatter" + ] } ], "layout": { + "height": 1200, + "scene": { + "xaxis": { + "title": { + "text": "channels" + } + }, + "yaxis": { + "title": { + "text": "filters" + } + }, + "zaxis": { + "title": { + "text": "ms" + } + } + }, "template": { "data": { - "barpolar": [ - { - "marker": { - "line": { - "color": "white", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], "bar": [ { "error_x": { @@ -23299,6 +23229,22 @@ "type": "bar" } ], + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], "carpet": [ { "aaxis": { @@ -23327,15 +23273,6 @@ "type": "choropleth" } ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], "contour": [ { "colorbar": { @@ -23344,7 +23281,7 @@ }, "colorscale": [ [ - 0.0, + 0, "#0d0887" ], [ @@ -23380,13 +23317,22 @@ "#fdca26" ], [ - 1.0, + 1, "#f0f921" ] ], "type": "contour" } ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], "heatmap": [ { "colorbar": { @@ -23395,7 +23341,7 @@ }, "colorscale": [ [ - 0.0, + 0, "#0d0887" ], [ @@ -23431,115 +23377,13 @@ "#fdca26" ], [ - 1.0, + 1, "#f0f921" ] ], "type": "heatmap" } ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], "histogram": [ { "marker": { @@ -23552,6 +23396,108 @@ "type": "histogram" } ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], "mesh3d": [ { "colorbar": { @@ -23578,6 +23524,16 @@ "type": "pie" } ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], "scatter3d": [ { "line": { @@ -23628,17 +23584,6 @@ "type": "scattergl" } ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], "scattermap": [ { "marker": { @@ -23650,7 +23595,7 @@ "type": "scattermap" } ], - "scatterpolargl": [ + "scattermapbox": [ { "marker": { "colorbar": { @@ -23658,7 +23603,7 @@ "ticks": "" } }, - "type": "scatterpolargl" + "type": "scattermapbox" } ], "scatterpolar": [ @@ -23672,14 +23617,15 @@ "type": "scatterpolar" } ], - "scatter": [ + "scatterpolargl": [ { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } }, - "type": "scatter" + "type": "scatterpolargl" } ], "scatterternary": [ @@ -23701,7 +23647,7 @@ }, "colorscale": [ [ - 0.0, + 0, "#0d0887" ], [ @@ -23737,7 +23683,7 @@ "#fdca26" ], [ - 1.0, + 1, "#f0f921" ] ], @@ -23828,7 +23774,7 @@ ], "sequential": [ [ - 0.0, + 0, "#0d0887" ], [ @@ -23864,13 +23810,13 @@ "#fdca26" ], [ - 1.0, + 1, "#f0f921" ] ], "sequentialminus": [ [ - 0.0, + 0, "#0d0887" ], [ @@ -23906,7 +23852,7 @@ "#fdca26" ], [ - 1.0, + 1, "#f0f921" ] ] @@ -24035,28 +23981,7 @@ } } }, - "scene": { - "xaxis": { - "title": { - "text": "channels" - } - }, - "yaxis": { - "title": { - "text": "filters" - } - }, - "zaxis": { - "title": { - "text": "ms" - } - } - }, - "width": 1600, - "height": 1200 - }, - "config": { - "plotlyServerURL": "https://plot.ly" + "width": 1600 } } }, @@ -24064,42 +23989,116 @@ "output_type": "display_data" } ], - "execution_count": 10 + "source": [ + "fig = go.Figure()\n", + "split_df = df.groupby('filters')\n", + "first = True\n", + "for category, category_df in split_df:\n", + " # if not first:\n", + " # continue\n", + " upper_right = 195\n", + " upper_left = 129\n", + " lower_right = 192\n", + " lower_left = 126\n", + " # upper_m, upper_b = lin_interpol( upper_sampled_channels[0], upper_sampled_channels[1], upper_sampled_channel_meas[0], upper_sampled_channel_meas[1])\n", + "\n", + " upper_right_meas = category_df.loc[category_df[\"channels\"] == upper_right][\"ms\"].values[0]\n", + " upper_left_meas = category_df.loc[category_df[\"channels\"] == upper_left][\"ms\"].values[0]\n", + "\n", + " lower_right_meas = category_df.loc[category_df[\"channels\"] == lower_right][\"ms\"].values[0]\n", + " lower_left_meas = category_df.loc[category_df[\"channels\"] == lower_left][\"ms\"].values[0]\n", + "\n", + " print(upper_right_meas)\n", + " print(upper_left_meas)\n", + "\n", + " upper_m, upper_b = lin_interpol(upper_left - 3, upper_right - 3, upper_left_meas, upper_right_meas)\n", + " lower_m, lower_b = lin_interpol(lower_left, lower_right, lower_left_meas, lower_right_meas)\n", + " # print(list(category_df['channels']))\n", + " # print(list(range(category_df['channels'][0], list(category_df['channels'])[-1])))\n", + " start = list(category_df['channels'])[0]\n", + " end = list(category_df['channels'])[-1]\n", + " r_c = list(range(start, end))\n", + "\n", + " r_v_upper = [calc_upper(c, upper_m, upper_b) for c in r_c]\n", + " r_v_lower = [calc_lower(c, lower_m, lower_b) for c in r_c]\n", + "\n", + " # fig.add_trace(go.Scatter(x=r_c, y=[c * upper_m + upper_b for c in r_c], name=\"Upper Sampled Channels\"))\n", + " # fig.add_trace(go.Scatter(x=r_c, y=[c * lower_m + lower_b for c in r_c], name=\"Lower Sampled Channels\"))\n", + " r_v_rect = [calc_rect(c, upper_m, upper_b, lower_m, lower_b) for c in r_c]\n", + "\n", + " fig.add_trace(go.Scatter(\n", + " # x=category_df['channels'],\n", + " x=category_df['channels'],\n", + " y=category_df['ms'],\n", + " # mode='markers',\n", + " marker=dict(size=7),\n", + " name=f\"filter {category}\",\n", + " mode='markers+lines',\n", + " line=dict(\n", + " dash='dash',\n", + " width=.5\n", + " )\n", + " ))\n", + " # fig.add_trace(go.Scatter(\n", + " # x=r_c,\n", + " # y=r_v_upper,\n", + " # name=f\"Upper filter {category}\",\n", + " # mode='lines',\n", + " # ))\n", + " #\n", + " # fig.add_trace(go.Scatter(\n", + " # x=r_c,\n", + " # y=r_v_lower,\n", + " # name=f\"Lower filter {category}\",\n", + " # mode='lines',\n", + " # ))\n", + " fig.add_trace(go.Scatter(\n", + " # x=category_df['channels'],\n", + " x=r_c,\n", + " y=r_v_rect,\n", + " # mode='markers',\n", + "\n", + " name=f\"Approximation filter {category}\",\n", + " mode='lines',\n", + "\n", + " ))\n", + "\n", + "\n", + " first = False\n", + "fig.update_layout(\n", + " scene=dict(\n", + " xaxis_title='channels',\n", + " yaxis_title='filters',\n", + " zaxis_title='ms'\n", + " ),\n", + " width=1600,\n", + " height=1200,\n", + " template='plotly_white',\n", + ")\n", + "fig.show()" + ] }, { + "cell_type": "code", + "execution_count": 12, + "id": "c958d465066f3b1d", "metadata": { "ExecuteTime": { "end_time": "2025-09-03T06:37:15.288722Z", "start_time": "2025-09-03T06:37:15.273866Z" } }, - "cell_type": "code", - "source": [ - "\n", - "fig = go.Figure()\n", - "fig.add_trace(go.Scatter(x=[input**2 for input in inputs], y=input_meas, name=\"Input Measurements\"))\n", - "\n", - "fig.update_layout(\n", - " autosize=False,\n", - " width=2000,\n", - " height=1000,\n", - " # margin=dict(\n", - " # l=50,\n", - " # r=50,\n", - " # b=100,\n", - " # t=100,\n", - " # pad=4\n", - " # ),\n", - ")" - ], - "id": "c958d465066f3b1d", "outputs": [ { "data": { "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, "data": [ { "name": "Input Measurements", + "type": "scatter", "x": [ 4, 9, @@ -25123,327 +25122,14 @@ 10.032735967636109, 10.082419300079346, 10.60575041770935 - ], - "type": "scatter" + ] } ], "layout": { + "autosize": false, + "height": 1000, "template": { "data": { - "histogram2dcontour": [ - { - "type": "histogram2dcontour", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "choropleth": [ - { - "type": "choropleth", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "histogram2d": [ - { - "type": "histogram2d", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "heatmap": [ - { - "type": "heatmap", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "contourcarpet": [ - { - "type": "contourcarpet", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "contour": [ - { - "type": "contour", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "surface": [ - { - "type": "surface", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "mesh3d": [ - { - "type": "mesh3d", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "scatter": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scatter" - } - ], - "parcoords": [ - { - "type": "parcoords", - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterpolargl": [ - { - "type": "scatterpolargl", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], "bar": [ { "error_x": { @@ -25466,109 +25152,20 @@ "type": "bar" } ], - "scattergeo": [ - { - "type": "scattergeo", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterpolar": [ - { - "type": "scatterpolar", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "histogram": [ + "barpolar": [ { "marker": { + "line": { + "color": "rgb(17,17,17)", + "width": 0.5 + }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, - "type": "histogram" - } - ], - "scattergl": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scattergl" - } - ], - "scatter3d": [ - { - "type": "scatter3d", - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattermap": [ - { - "type": "scattermap", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattermapbox": [ - { - "type": "scattermapbox", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterternary": [ - { - "type": "scatterternary", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattercarpet": [ - { - "type": "scattercarpet", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } + "type": "barpolar" } ], "carpet": [ @@ -25590,6 +25187,431 @@ "type": "carpet" } ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "line": { + "color": "#283442" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "line": { + "color": "#283442" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], "table": [ { "cells": { @@ -25610,84 +25632,15 @@ }, "type": "table" } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "rgb(17,17,17)", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } ] }, "layout": { + "annotationdefaults": { + "arrowcolor": "#f2f5fa", + "arrowhead": 0, + "arrowwidth": 1 + }, "autotypenumbers": "strict", - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#f2f5fa" - }, - "hovermode": "closest", - "hoverlabel": { - "align": "left" - }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", - "polar": { - "bgcolor": "rgb(17,17,17)", - "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, - "ternary": { - "bgcolor": "rgb(17,17,17)", - "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, "coloraxis": { "colorbar": { "outlinewidth": 0, @@ -25695,90 +25648,6 @@ } }, "colorscale": { - "sequential": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], "diverging": [ [ 0, @@ -25824,57 +25693,164 @@ 1, "#276419" ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] ] }, - "xaxis": { - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "#283442", - "automargin": true, - "zerolinewidth": 2 + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#f2f5fa" }, - "yaxis": { - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 + "geo": { + "bgcolor": "rgb(17,17,17)", + "lakecolor": "rgb(17,17,17)", + "landcolor": "rgb(17,17,17)", + "showlakes": true, + "showland": true, + "subunitcolor": "#506784" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "dark" + }, + "paper_bgcolor": "rgb(17,17,17)", + "plot_bgcolor": "rgb(17,17,17)", + "polar": { + "angularaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" }, - "zerolinecolor": "#283442", - "automargin": true, - "zerolinewidth": 2 + "bgcolor": "rgb(17,17,17)", + "radialaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + } }, "scene": { "xaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" }, "yaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" }, "zaxis": { "backgroundcolor": "rgb(17,17,17)", "gridcolor": "#506784", + "gridwidth": 2, "linecolor": "#506784", "showbackground": true, "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 + "zerolinecolor": "#C8D4E3" } }, "shapedefaults": { @@ -25882,18 +25858,29 @@ "color": "#f2f5fa" } }, - "annotationdefaults": { - "arrowcolor": "#f2f5fa", - "arrowhead": 0, - "arrowwidth": 1 + "sliderdefaults": { + "bgcolor": "#C8D4E3", + "bordercolor": "rgb(17,17,17)", + "borderwidth": 1, + "tickwidth": 0 }, - "geo": { + "ternary": { + "aaxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + }, + "baxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + }, "bgcolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", - "subunitcolor": "#506784", - "showland": true, - "showlakes": true, - "lakecolor": "rgb(17,17,17)" + "caxis": { + "gridcolor": "#506784", + "linecolor": "#506784", + "ticks": "" + } }, "title": { "x": 0.05 @@ -25902,23 +25889,31 @@ "bgcolor": "#506784", "borderwidth": 0 }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "borderwidth": 1, - "bordercolor": "rgb(17,17,17)", - "tickwidth": 0 + "xaxis": { + "automargin": true, + "gridcolor": "#283442", + "linecolor": "#506784", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#283442", + "zerolinewidth": 2 }, - "mapbox": { - "style": "dark" + "yaxis": { + "automargin": true, + "gridcolor": "#283442", + "linecolor": "#506784", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#283442", + "zerolinewidth": 2 } } }, - "autosize": false, - "width": 2000, - "height": 1000 - }, - "config": { - "plotlyServerURL": "https://plot.ly" + "width": 2000 } } }, @@ -25926,25 +25921,42 @@ "output_type": "display_data" } ], - "execution_count": 12 + "source": [ + "\n", + "fig = go.Figure()\n", + "fig.add_trace(go.Scatter(x=[input**2 for input in inputs], y=input_meas, name=\"Input Measurements\"))\n", + "\n", + "fig.update_layout(\n", + " autosize=False,\n", + " width=2000,\n", + " height=1000,\n", + " # margin=dict(\n", + " # l=50,\n", + " # r=50,\n", + " # b=100,\n", + " # t=100,\n", + " # pad=4\n", + " # ),\n", + ")" + ] }, { + "cell_type": "code", + "execution_count": null, + "id": "e266a562cbc80021", "metadata": { "ExecuteTime": { "end_time": "2025-09-03T06:31:13.095579Z", "start_time": "2025-09-03T06:31:13.092612Z" } }, - "cell_type": "code", - "source": "", - "id": "e266a562cbc80021", "outputs": [], - "execution_count": null + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -25958,7 +25970,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.11" + "version": "3.13.6" } }, "nbformat": 4,