{ "cells": [ { "cell_type": "markdown", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# `MinDriver` steps\n", "\n", "In this tutorial, we show how we can save individual steps during minimisation as well as how we can analyse them. We are going to minimise a simple system object. For details on how to define a system object, please have a look at other tutorials." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import discretisedfield as df\n", "import micromagneticmodel as mm\n", "\n", "import oommfc as mc\n", "\n", "region = df.Region(p1=(-50e-9, -50e-9, 0), p2=(50e-9, 50e-9, 10e-9))\n", "mesh = df.Mesh(region=region, cell=(5e-9, 5e-9, 5e-9))\n", "\n", "system = mm.System(name=\"mindriver_steps\")\n", "\n", "system.energy = mm.Zeeman(H=(0, 0, 1e5))\n", "system.m = df.Field(mesh, nvdim=3, value=(1, 0, 0), norm=1.1e6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now have a system object and we can minimise it using `MinDriver`. By default, `MinDriver` saves only the data of the last step in the relexation. However, if we want to save all individual steps in between, we have to pass `output_step=True` to the `drive` method." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running OOMMF (ExeOOMMFRunner)[2023/10/18 12:39]... (0.4 s)\n" ] } ], "source": [ "md = mc.MinDriver()\n", "md.drive(system, output_step=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we have a look at the table, we can see that multiple steps are saved:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [ "nbval-ignore-output" ] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
max_mxHxmEdelta_Ebracket_countline_min_countconjugate_cycle_countcycle_countcycle_sub_countenergy_calc_countE_zeemaniterationstage_iterationstagemxmymz
01.000000e+050.000000e+000.000000e+000.00.01.01.00.01.00.000000e+000.00.00.01.000000e+000.00.000000
19.999996e+04-1.206285e-20-1.206285e-201.00.01.01.00.02.0-1.206285e-201.01.00.09.999996e-010.00.000873
29.848078e+04-2.400340e-18-2.388277e-182.00.01.01.00.03.0-2.400340e-182.02.00.09.848078e-010.00.173648
39.396926e+04-4.727747e-18-2.327407e-183.00.02.02.00.04.0-4.727747e-183.03.00.09.396926e-010.00.342020
48.660254e+04-6.911504e-18-2.183757e-184.00.03.03.00.05.0-6.911504e-184.04.00.08.660254e-010.00.500000
57.660444e+04-8.885258e-18-1.973754e-185.00.04.04.00.06.0-8.885258e-185.05.00.07.660444e-010.00.642788
66.427876e+04-1.058904e-17-1.703780e-186.00.05.05.00.07.0-1.058904e-176.06.00.06.427876e-010.00.766044
75.000000e+04-1.197108e-17-1.382038e-187.00.06.06.00.08.0-1.197108e-177.07.00.05.000000e-010.00.866025
83.464669e+04-1.296684e-17-9.957653e-198.00.07.07.00.09.0-1.296684e-178.08.00.03.464669e-010.00.938062
93.420201e+04-1.298938e-17-2.253721e-209.00.07.07.00.010.0-1.298938e-179.09.00.03.420201e-010.00.939693
101.981052e+04-1.354905e-17-5.596679e-1910.00.08.08.00.011.0-1.354905e-1710.010.00.01.981052e-010.00.980181
111.736482e+04-1.361301e-17-6.395896e-2011.00.08.08.00.012.0-1.361301e-1711.011.00.01.736482e-010.00.984808
126.305027e+03-1.379550e-17-1.824996e-1912.00.09.09.00.013.0-1.379550e-1712.012.00.06.305027e-020.00.998010
133.143399e-11-1.382301e-17-2.750291e-2013.00.09.09.00.014.0-1.382301e-1713.013.00.03.143399e-160.01.000000
\n", "
" ], "text/plain": [ " max_mxHxm E delta_E bracket_count line_min_count \\\n", "0 1.000000e+05 0.000000e+00 0.000000e+00 0.0 0.0 \n", "1 9.999996e+04 -1.206285e-20 -1.206285e-20 1.0 0.0 \n", "2 9.848078e+04 -2.400340e-18 -2.388277e-18 2.0 0.0 \n", "3 9.396926e+04 -4.727747e-18 -2.327407e-18 3.0 0.0 \n", "4 8.660254e+04 -6.911504e-18 -2.183757e-18 4.0 0.0 \n", "5 7.660444e+04 -8.885258e-18 -1.973754e-18 5.0 0.0 \n", "6 6.427876e+04 -1.058904e-17 -1.703780e-18 6.0 0.0 \n", "7 5.000000e+04 -1.197108e-17 -1.382038e-18 7.0 0.0 \n", "8 3.464669e+04 -1.296684e-17 -9.957653e-19 8.0 0.0 \n", "9 3.420201e+04 -1.298938e-17 -2.253721e-20 9.0 0.0 \n", "10 1.981052e+04 -1.354905e-17 -5.596679e-19 10.0 0.0 \n", "11 1.736482e+04 -1.361301e-17 -6.395896e-20 11.0 0.0 \n", "12 6.305027e+03 -1.379550e-17 -1.824996e-19 12.0 0.0 \n", "13 3.143399e-11 -1.382301e-17 -2.750291e-20 13.0 0.0 \n", "\n", " conjugate_cycle_count cycle_count cycle_sub_count energy_calc_count \\\n", "0 1.0 1.0 0.0 1.0 \n", "1 1.0 1.0 0.0 2.0 \n", "2 1.0 1.0 0.0 3.0 \n", "3 2.0 2.0 0.0 4.0 \n", "4 3.0 3.0 0.0 5.0 \n", "5 4.0 4.0 0.0 6.0 \n", "6 5.0 5.0 0.0 7.0 \n", "7 6.0 6.0 0.0 8.0 \n", "8 7.0 7.0 0.0 9.0 \n", "9 7.0 7.0 0.0 10.0 \n", "10 8.0 8.0 0.0 11.0 \n", "11 8.0 8.0 0.0 12.0 \n", "12 9.0 9.0 0.0 13.0 \n", "13 9.0 9.0 0.0 14.0 \n", "\n", " E_zeeman iteration stage_iteration stage mx my \\\n", "0 0.000000e+00 0.0 0.0 0.0 1.000000e+00 0.0 \n", "1 -1.206285e-20 1.0 1.0 0.0 9.999996e-01 0.0 \n", "2 -2.400340e-18 2.0 2.0 0.0 9.848078e-01 0.0 \n", "3 -4.727747e-18 3.0 3.0 0.0 9.396926e-01 0.0 \n", "4 -6.911504e-18 4.0 4.0 0.0 8.660254e-01 0.0 \n", "5 -8.885258e-18 5.0 5.0 0.0 7.660444e-01 0.0 \n", "6 -1.058904e-17 6.0 6.0 0.0 6.427876e-01 0.0 \n", "7 -1.197108e-17 7.0 7.0 0.0 5.000000e-01 0.0 \n", "8 -1.296684e-17 8.0 8.0 0.0 3.464669e-01 0.0 \n", "9 -1.298938e-17 9.0 9.0 0.0 3.420201e-01 0.0 \n", "10 -1.354905e-17 10.0 10.0 0.0 1.981052e-01 0.0 \n", "11 -1.361301e-17 11.0 11.0 0.0 1.736482e-01 0.0 \n", "12 -1.379550e-17 12.0 12.0 0.0 6.305027e-02 0.0 \n", "13 -1.382301e-17 13.0 13.0 0.0 3.143399e-16 0.0 \n", "\n", " mz \n", "0 0.000000 \n", "1 0.000873 \n", "2 0.173648 \n", "3 0.342020 \n", "4 0.500000 \n", "5 0.642788 \n", "6 0.766044 \n", "7 0.866025 \n", "8 0.938062 \n", "9 0.939693 \n", "10 0.980181 \n", "11 0.984808 \n", "12 0.998010 \n", "13 1.000000 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "system.table.data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using all the utility of the `Table` object, we can analyse the data. For instance, we can plot the energy." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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E4UlvDl/C06Xy+RUIiIitSzDP/30E2PHjuX//u//uOGGGwAYMmQId999N++99x4PPvggf//730lPT6/TsCLivZLbNGJov5YAbNmbw4JV+01OJCIiUssynJWVRdeuXQHKT4twOBzlr19zzTX06dOHF154oQ4iikhDMWpAW1o3CQPgs+93s+eIrisQERFz1aoM+/n5lV80FxwcjMViITs7u8I6559/Pj/++OO5JxSRBsNmtXDXlZ0J8LPicLp4fd5mCotLz7yhiIiIm9SqDLdp04YFCxaUvYHFQnR0NEuXLq2wTmZmJnl5eeeeUEQalMbRwdw4JBGA9GOFzFy03eREIiLiy2pVhocNG8by5cu56667ALjwwgv56quveOyxx1i0aBHvvPMOb7zxBm3btq3TsCLSMFyQ3IR+nRoD8NOmo6zcfNTkRCIi4qtqdWu1W2+9lZ07d1JQUADAvffey48//sjHH3/MnDlzcLlc2Gw27r333joNKyINg2EY3DSkA7sOHSfzeBHvL0gloXkEcZFBZkcTEREfU6syvHfvXqZOnVp+3nDz5s354osv+Oyzzzhw4ACxsbEMGzaMhISEOg0rIg1HcKCNu67szD8/+IUiu4PX523mLzf2xGZ124MxRUREKqlVGR4xYgRdunRh5MiRDB8+nIiICKKjo7n99tvrOp+INGAJzSO46qI2zD15Z4l5K/ZwzcX6S7SIiNSfWh2C6d27N5s2beLJJ5/koosu4r777mP58uU4nc66ziciDdzw81qR1DISgK9X7mPr3uzqNxAREalDtSrDH3zwAcuWLeP++++nbdu2LFiwgLvvvpsBAwYwdepUtm/X1eEiUjMWi8HtIzoREmjDBfxn/hbyCuxmxxIRER9R65PzGjduzO23387nn3/O119/zd13301ISAjvvPMOV111FaNGjeKDDz6oy6wi0kBFhwdya0rZ45qPnbDzztfbcOlxzSIiUg/q5EqVtm3bct9997FgwQI++eQT7rzzTtLT0/nHP/5RF28vIj6gZ2IsA3s0B2D9zky++/WQyYlERMQX1Oll27/++ivz589n4cKFZGZmlj+qWUSkJq67tB3NYkIAmL10JwczTpicSEREGrpzLsMbNmxg6tSpXHLJJYwdO5Z3330Xq9XKlClTWLJkSV1kFBEfEeBn5e4rO2OzWigpdfL6vM3YSxxmxxIRkQasVrdW27JlC9988w3ffPMNhw4dwuVyERMTw80338xVV11Fp06d6jqniPiI+LhQrru0HTMXbedQZj6zv9vJTUM6mB1LREQaqFqV4VGjRgEQGBhISkoKV111Ff3798di0c3yReTcXdqzOZv3ZJedO/zLITq3jqZnYqzZsUREpAGqVRnu168fV199NUOGDCEkJKSuM4mIjzMMg1tTkvjb26tP3l1iK62bhBEdHmh2NBERaWBqdSh3xowZjBw5UkVYRNwmLNifO0Z0wgDyi0p5c/4WnE7dbk1EROqWV5/X4HA4eO211xgyZAjJyclcfPHFTJ06laKiojNue+DAAR566CEGDRpEcnIy/fv35//9v//HoUO6nZOIp+jYOpph57UCYNv+Y3z98z6TE4mISENTq9MkPMVTTz3Fxx9/zKRJk+jbty87duzgmWeeYe/evbz22mun3S4tLY1rrrmG8PBw7r33Xpo3b86ePXt48cUXWblyJV9//TXh4eH1+CcRkdO5+qI2bN2Xw54juXz+wx46tooioXmE2bFERKSB8NojwwcOHGDWrFmMHz+eiRMn0qtXL66//noeeOABli5dytq1a0+77TfffMPx48d5/PHHueqqq+jduzdjxozhgQceICMjg9WrV9fjn0REqmOzWrjryk4E+ltxuly8/sVmCopKzY4lIiINhNeW4SVLluByubjiiisqLB8+fDiGYbB48eLTbuvv7w9AcHBwheWhoaF1H1REzllcVHD57dUyjxfxwcJUPa5ZRETqhNeW4dTUVAzDICEhocLyiIgI4uLi2Lp162m3TUlJoXHjxjz33HPs3buX0tJSdu/ezeuvv06bNm0YMGCAu+OLyFk6P7kJ53duDMDPW9L4adNRkxOJiEhD4LXnDGdlZREaGlp+lPf3oqKiyM7OPu22kZGRfPzxx9x7771cfvnl5cvPO+88Xn/99Srf8/csFgOLpX4eNW21Wip8lbqj2bqPu2Z7S0pHdh3KJf1YITMXbSepVRSNo4PPvGEDoe9Z99Fs3UezdR/Ntm54XBkuKSlh//791a4TFhZGcXHxaUurn58fx48fP+32drudv/zlLxw6dIgnn3yStm3bkpqayrRp03jggQd44403sNlOP5ro6BAMo37K8Cnh4UH1uj9fotm6T13PNgp4aHwfHpz2A0V2B69/uYVnJl2En823Pgj0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Vi8qKqRG63lcGY6Pjyc1NdVt73/ixAn+/ve/c8UVV5CcnEx+ftlNq+12OwBFRUUUFhYSFHT6v2U5nS6cTnfewa8yh8NZ6bYpUjc0W/fRbN1Dc3UfzdZ9NFv30WzPjceVYXfbvHkz6enpfPnll3z55ZeVXh8+fDjNmzdn6dKlJqQTERERkfrkc2W4U6dOzJw5s9LyH374genTp/Piiy/SvHlzE5KJiIiISH3z2jJst9srnU6Rm5vLxo0bAYiKiip/rPLgwYOJiYlh1qxZhIWF0bt370rvd+qiveTkZD2OWURERMRHeG0ZTk9PZ/To0RWWrVixghUrVgAVL7JzOBw4HDV/draIiIiI+AbD5XLV75VgDUBGRl697au6547LudFs3UezdQ/N1X00W/fRbN1Hs61ebGxYjdbTXZpFRERExGepDIuIiIiIz1IZFhERERGfpTIsIiIiIj5LZVhEREREfJbKsIiIiIj4LJVhEREREfFZKsMiIiIi4rP00A0RERER8Vk6MiwiIiIiPktlWERERER8lsqwiIiIiPgslWERERER8VkqwyIiIiLis1SGRURERMRnqQx7sG3btnHnnXfSq1cvunXrxo033sjq1avNjtUg/PTTT9xwww1069aNvn37MnbsWJYvX252rAZlzZo1JCUlcdNNN5kdpUEoKCjg6aefZsCAAXTt2pXhw4cze/Zss2N5PafTySeffMLo0aPp3bs33bp1Y9SoUcyZM8fsaF5n27ZtDB06lA4dOrBr164qX9dnWu2cabb6TDs3KsMeav/+/YwbN46cnByee+45pk+fTmhoKBMmTOC3334zO55XW7p0KbfeeiuhoaFMmzaNZ599loCAAO68806++eYbs+M1CHa7nb/+9a/oNuZ1w+l0cvfddzNnzhwmTpzIm2++SdeuXXnssceYO3eu2fG82nPPPccjjzxC165dmTZtGq+88grt27fn0Ucf5T//+Y/Z8bzGzJkzGTNmDCdOnKjydX2m1d6ZZqvPtDrgEo/00EMPubp16+bKysoqX1ZcXOy6+OKLXePHjzcvWAMwYsQI15AhQ1x2u718WUFBgatv376uG264wcRkDccLL7zgOv/8812jRo1y3XjjjWbH8XpffvmlKzEx0fX1119XWH7zzTe7/vrXv5qUqmHo1auX67rrrquwzOl0ugYNGuS68sorTUrlXVatWuXq0qWLa86cOa6XXnrJlZiY6Nq5c2eFdfSZVjs1ma0+086dzewyLpW5XC4WL17MBRdcQHR0dPlyf39/hgwZwvvvv09ubi7h4eEmpvROLpeLiRMnEh0djZ+fX/nyoKAgWrVqxdGjR01M1zBs376dN998kyeeeILPP//c7DgNwueff06TJk0YOnRoheUzZswwKVHD4e/vT3BwcIVlhmEQGhqqn2zUUGRkJB999BGdOnVi2rRplV7XZ1rt1WS2+kw7dzpNwgMdPnyYvLw82rdvX+m19u3b43Q62b59uwnJvJ9hGKSkpHDeeedVWF5SUsK+ffto2bKlSckaBqfTyWOPPUaPHj245pprzI7TYPz222/07NkTwzDMjtLg3HrrraxcuZJPPvmEwsJCCgoKmDVrFtu2bWP8+PFmx/MKiYmJdOrU6bSv6zOt9s40W32m1Q0dGfZAWVlZAERFRVV67dSyU+tI3Zg2bRrHjh1j7NixZkfxarNmzWLz5s3MmzfP7CgNRm5uLrm5uTRp0oSZM2fy3nvvcejQIeLi4rjxxhsZP348VqvV7Jhe64477iA4OJjHH3+cRx55BCg7qjZ16lSuuuoqk9M1DPpMq3/6TDs7KsMeyG63A2U/QvqjUz8GKSoqqtdMDdlHH33EG2+8wahRoxgyZIjZcbzW0aNH+de//sWdd95J27ZtzY7TYBQUFACwYMECWrRowf/+7//i7+/P/PnzmTp1KpmZmTz44IMmp/Rey5cvZ+rUqQwbNoyrrrqKkpISPv/8cx577DGioqIYMGCA2RG9nj7T6pc+086eyrAHCggIAMp+zPFHp/6nEhQUVK+ZGqqXX36ZadOmccUVV/Dkk0+aHcerPfHEE8TFxXHXXXeZHaVBOXXUt6SkhNdff53AwEAAzj//fNLT05kxYwa33357hXMxpWbsdjuPPPIIPXr04Nlnny1ffskll3DNNdfw97//ncWLF5uYsGHQZ1r90Wda7eicYQ8UGxsLQHZ2dqXXMjMzK6wjtfe3v/2NadOmcfvtt/Pss89is+nvhrW1YMECvvvuO/7yl79QUlJCfn4++fn5OBwOHA4H+fn55R96cnYiIyOxWq107ty5vAifcuGFF1JaWsqOHTtMSufd9u7dS0ZGBhdddFGl1/r27cuBAwf04/s6oM+0+qHPtNrTpDxQkyZNiIqKIjU1tdJrqamp+Pn5kZiYaEKyhuOFF15g9uzZPPLII9x8881mx/F63333HS6XizvvvLPK13v27MmkSZOYPHlyPSfzfn5+frRr167KIuFwOMrXkbN36kfzpaWllV47dRRTf4k7d/pMcz99pp0blWEPdfnllzN37lwyMjLK/8ZcUFDAwoULGTBgACEhISYn9F6LFy9m+vTpPPDAA/qfRh25++67GT16dKXlTz31FACPPvoozZo1q+9YDUZKSgovvvgiO3bsqHBF/vLlywkKCiIpKcnEdN6rXbt2BAYG8uOPP3L33XdXeG316tXExsbSpEkTk9I1LPpMcx99pp07lWEPdc899/Dtt99y9913M3nyZPz8/PjPf/5DYWEhU6ZMMTue1yotLeXpp58mPj6efv36sXHjxkrrdOjQocoLPeT0WrduTevWrSstDwsLA6B37971nKhhufHGG5k7dy633347Dz/8MJGRkXzxxResWrWKyZMnV7pPrtRMcHAwd9xxB9OmTeOhhx5i+PDhuFwu5s6dS2pqKn/72990O7saOHjwIDk5OQCkp6cDsHPnzvKLPzt06KDPtFqqyWz1mXbuDJfuKu6xdu3axbPPPsvq1atxuVx0796dKVOm0KVLF7Ojea2DBw8yaNCgatdZsmQJ8fHx9ZSoYbvpppsAeP/9901O4v0yMjJ47rnnWL58OSdOnKBNmzbcfPPNjBkzxuxoXm/OnDnMnDmT3bt3YxgG7du3Z8KECaSkpJgdzSs8/PDD1T4W/NT/U/WZdvZqMlt9pp07lWERERER8Vm6m4SIiIiI+CyVYRERERHxWSrDIiIiIuKzVIZFRERExGepDIuIiIiIz1IZFhERERGfpTIsIiIiIj5LZVhEREREfJbKsIiIiIj4LJVhERE3efjhh+nQoQOrVq0yO0qNHTx4kA4dOpQ/Srs+HT58mP79+3PzzTezYcMGevTowYMPPljvOUTEt6gMi4i4ybhx43jxxRdp3749AJmZmUybNo3c3FyTk5WpKk+jRo148cUXmTx5cr1msdvtTJo0CYB///vfdO3alccff5x58+bx9ttv12sWEfEtKsMiIm7SpUsXhg4dSnR0NACrVq3i5Zdf9pgyXFWeoKAghg4dSt++fes1y2uvvcbmzZt56KGHyud11VVXMXDgQJ5//nl2795dr3lExHeoDIuI1JP169ebHaECT8mTnp7Om2++SUJCAsOHD6/w2gMPPEBJSQn/+te/TEonIg2dyrCIiJv8/pzhDh068N577wEwaNAgOnTowMGDB8vXXblyJXfccQf9+vUjOTmZAQMG8NBDD7Fnz54K7zlt2jQ6dOjAokWLePLJJ+nduzePPvpo+etbt27lvvvu46KLLqJz58706NGDMWPG8Pnnn1d4n9PlOd05wwUFBbz00ksMHz6cbt260b17d6644gpeffVViouLK6x76aWX0rt3b4qLi3nmmWe45JJLSE5Opn///jz11FOV1p89ezZ2u50JEyZgsVT8WGrfvj19+vRh6dKlHDhw4CymLyJSMzazA4iI+IIXX3yRadOmsXPnTv72t78RHR1No0aNAPj000955JFHSEpK4k9/+hPh4eHs2LGD2bNns3jxYmbOnElSUlKF95s7dy7Z2dk8+uijxMfHA7Br1y6uu+46AgICmDBhAi1atCA7O5vZs2fz0EMPkZ+fz7hx46rNk5WVVSm73W7n5ptvZuPGjQwfPpybbroJl8vFjz/+yIsvvsiqVat45513KhXZ++67j9LSUu6++24cDgezZs3i/fffx8/Pj4ceeqh8veXLl2MYBhdffHGVsxswYABr1qzh22+/5Y477qj9vwQRkSqoDIuI1IOhQ4cyc+ZMoKzcnSqw2dnZPPXUU3Tt2pUPPvgAf3//8m0uu+wybrjhBp555plKF5H99ttvfPvtt4SFhZUvS01NpXv37lx//fWkpKSULx88eDADBw7k3XffLS/Dp8tTlZkzZ7Jx40ZuuummCkehb7jhBu677z6+/fZbvvnmmwqnOOTl5eHv78/06dPLl1100UVcdtllLFiwoLwMHzt2jM2bN5OYmEhsbGyV+7/wwgv517/+xdq1a1WGRaTO6TQJERETLVmyhIKCAlJSUigqKiI3N7f8n4SEBFq3bs3PP/9MUVFRhe0uueSSCkUYICUlhffee6+8CBcUFJCbm0tISAhhYWEcOnSoVhkXLFgAUOXt1q6//noAFi9eXOm1W265pcLvW7RoQaNGjUhLSytftn//fpxOJ23atDnt/tu2bQtQ4bQSEZG6oiPDIiIm2rFjBwD//Oc/+ec//3na9Q4fPlxeCqGsWFZlzpw5zJo1i927d1NYWFgnGXfu3Im/vz+tWrWq9FpCQgJAlXd7aN26daVlgYGBFU7FyM7OBig/ZaQqQUFBBAUFla8rIlKXVIZFREyUn58PwOTJk+nTp89p12vSpEmF34eEhFRa59VXX+XFF1+kadOmTJo0iXbt2hEUFATAPffcw4kTJ2qVsaCggNDQ0CpfO/X+VRXvgICAM773qdu6/fEo9x+FhYWRk5NzxvcTETlbKsMiIiY6VTKjoqLo169frd+ntLSUt956Cz8/P95///0KR44dDgd2u73W7x0SEkJBQQEulwvDMCq8VlBQUL5ObYSHhwNl5xhXJy8v74yFWUSkNnTOsIiIiRITEwFYu3Ztla9XdXeHquTk5HDixAnatGlT6RSKdevWnVMZbt++PSUlJZVu8wZlF+3Bf0+XOFunHrBR3Z+zoKCAwsLC8nVFROqSyrCISD2xWq0AFe6zO2jQIIKCgli0aFGl82537drFwIEDefjhh8/43lFRUdhsNtLT0ysU32PHjvHMM8+UH7n9/YV4VeWpyqm7RLz//vsVlrtcrvI7UgwbNuyMGavSsmVLLBZLlUX7lFOvVXfHCxGR2lIZFhGpJ6eO2E6dOpV33nmHnTt3EhkZyV//+ldKS0sZN24c06dP54svvuCFF15g7Nix2Gw2xo4de8b3ttlsDB06lGPHjjF58mQ+//xz3nrrLUaNGsXgwYPp1asXAP/+97/LnzxXVZ6qXHfddfTu3ZsPP/yQ+++/nzlz5jBz5kzuuOMOli1bxrBhwxg0aFCtZhIZGUnnzp3Zvn07GRkZVa7z448/AtC7d+9a7UNEpDo6Z1hEpJ7ceeedbN26lZ9++omNGzfSuXNnAK655hqaNWvGW2+9xTvvvMOJEyeIioqif//+3HXXXeWnUpzJ3/72N4KDg1m2bBmrV6+mdevWTJ48mZEjR9KnTx927drFzJkzCQgIoHv37lXmadasWaX3tdlsvPXWW/znP//h66+/ZuHChVitVtq2bcujjz5ao7JenYsvvpiNGzeyfPlyRo8eXen177//HovFwtChQ89pPyIiVTFcLpfL7BAiIuK70tPTueyyy2jRogVffvllhSfZ7dixgxEjRjB48GBefvllE1OKSEOl0yRERMRUcXFx3HbbbezcuZOvvvqqwmvPPfccfn5+TJkyxaR0ItLQqQyLiIjpJk6cSOfOnZk6dWr5wzXmzZvHsmXLmDJlSoUHjoiI1CWdJiEiIh7h8OHDXHvttbRt25YHHniA8ePHc9lll/Hss8+aHU1EGjCVYRERERHxWTpNQkRERER8lsqwiIiIiPgslWERERER8VkqwyIiIiLis1SGRURERMRnqQyLiIiIiM9SGRYRERERn6UyLCIiIiI+6/8DTSVG0UfCrpsAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "system.table.mpl(y=[\"E\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By fecault, iteration is showed on the $x$-axis. We can change that by passing `x` variable. For example:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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3KlXXnlFF198sb766ivvFugF/bom6eJzO6iwsIwHNgAAAHiZqedITZo0Sa+//rqSk5ObdL5hGHr00Ud19tlna8SIEV6uDgAAAIHO1FeGL7vssjM6f968edqwYYM+/PBDrVu3zjtFAQAAwDRMHYbPRE5OjmbOnKnbbrtNnTt3Pq0wbLVafDa71maz1vkV5kMPzY8emhv9Mz96aH6B3MOAC8NOp1P79u076TGxsbFKSUk5o/f5y1/+oqSkJN12222nfW5iYrTP59zGxUX69P3gffTQ/OihudE/86OH5heIPQy4MJyTk6PRo0ef9JgJEyboySefbPJ7fPHFF/riiy/05ptvKiws7LTPLygo8+mV4bi4SBUXV8jt5gY6M6KH5kcPzY3+mR89ND9/9NBuj27UcQEXhtPS0pSVldVsr19aWqrHHntMY8eOVe/evVVWViapetawJFVWVqqiokKRkQ3/zcXjMeTx8YMt3G4P0yRMjh6aHz00N/pnfvTQ/AKxhwEXhpvbpk2blJubq48++kgfffRRvf1jxoxRu3bttHTpUj9UBwAAAF8KujDcs2dPzZ07t972FStW6OWXX9azzz6rdu3a+aEyAAAA+Jppw7DD4ai3nKK4uFgbNmyQJNnt9trHKg8bNkxJSUmaN2+eYmNjNXDgwHqvV3PTXu/evQPqccwAAABoPqYNw7m5ubryyivrbFu5cqVWrlwpqe5Ndm63W2632+c1AgAAILBZDMPw7Z1gLcCRIyU+e6+QEKvs9mgex2xi9ND86KG50T/zo4fm548eJifHNuq4wJt8DAAAAPgIYRgAAABBizAMAACAoEUYBgAAQNAiDAMAACBoEYYBAAAQtAjDAAAACFqEYQAAAAQtHroBAACAoMWVYQAAAAQtwjAAAACCFmEYAAAAQYswDAAAgKBFGAYAAEDQIgwDAAAgaBGG/Wjr1q269dZbNWDAAPXr10/XX3+91qxZ02znwfua2otvvvlG11xzjfr166fMzExde+21WrZsmQ8qxs954+vpu+++U48ePfTrX/+6marEyTS1h+Xl5XryySd10UUXqW/fvhozZozeffddH1SM4zWlfx6PR++//76uvPJKDRw4UP369dPEiRP13nvv+ahq/NzWrVs1cuRIde/eXTt37mzUOWvWrNH111+v/v3765xzztGtt96qrVu3NnOl9RGG/WTfvn267rrrVFhYqKefflovv/yyYmJiNHnyZP30009ePw/e19ReLF26VDfddJNiYmI0e/ZsPfXUUwoPD9ett96qTz75xIefAN74enI4HPrDH/4gRrb7R1N76PF4dPvtt+u9997T1KlT9Y9//EN9+/bVH//4Ry1YsMCHnyC4NbV/Tz/9tB555BH17dtXs2fP1gsvvKBu3brp0Ucf1d///ncffgJI0ty5c3XVVVeptLS00ed8//33mjx5siIjI/XCCy/omWeeUXFxsa6//nrt37+/Gas9AQN+8bvf/c7o16+fkZ+fX7utqqrKGDp0qHHjjTd6/Tx4X1N7cdlllxnDhw83HA5H7bby8nIjMzPTuOaaa5qzZPyMN76eZs2aZQwePNiYOHGicf311zdTpWhIU3v40UcfGenp6cbHH39cZ/sNN9xg/OEPf2iucvEzTe3fgAEDjEmTJtXZ5vF4jEsvvdS4/PLLm6tcnMDq1auNPn36GO+9957x3HPPGenp6caOHTtOed71119vDB061Kiqqqrdlp+fb/Tr18/4/e9/35wl18OVYT8wDEOLFy/W+eefr8TExNrtYWFhGj58uFavXq3i4mKvnQfvO5MeTp06VdOnT1doaGjt9sjISHXo0EGHDx/2Sf3wztfTtm3b9I9//EP333+/oqKimrtk/MyZ9PCDDz5Q69atNXLkyDrb33jjDT322GPNWjeqnUn/wsLC6n3NWSwWxcTENGvNqC8hIUHvvPOOrrzyykafc/ToUX333XcaNmyYwsLCarcnJibqggsu0OLFi5uj1AYRhv3g4MGDKikpUbdu3ert69atmzwej7Zt2+a18+B9Te2FxWLR6NGjdd5559XZ7nQ6tXfvXrVv377ZakZdZ/r15PF49Mc//lFnn322rrjiiuYsFQ04kx7+9NNPOuecc2SxWJq7TDTgTPp30003adWqVXr//fdVUVGh8vJyzZs3T1u3btWNN97Y3KXjOOnp6erZs+dpnbNt2zYZhqH09PR6+7p27aqjR4/q0KFD3irxlEJ89k6olZ+fL0my2+319tVsqznGG+fB+7zdi9mzZ+vo0aO69tprvVMgTulMezhv3jxt2rRJCxcubJ4CcUpN7WFxcbGKi4vVunVrzZ07V2+++aYOHDiglJQUXX/99brxxhtls9mat3ic0dfgLbfcoqioKP35z3/WI488Iqn6/7DNmDFD48aNa6aK4S2N7X2bNm18Ug9h2A8cDock1flfAzVq/td5ZWWl186D93mzF++8847mzJmjiRMnavjw4d4rEid1Jj08fPiw/va3v+nWW29V586dm69InFRTe1heXi5J+uyzz3TWWWfp97//vcLCwrRo0SLNmDFDeXl5evDBB5uxckhn9jW4bNkyzZgxQ6NGjdK4cePkdDr1wQcf6I9//KPsdrsuuuii5iscZ6yqqkqS6iwXrOGPPEMY9oPw8HBJ1f9r/OdqvjlERkZ67Tx4n7d68fzzz2v27NkaO3as/vKXv3i3SJzUmfRw+vTpSklJ0W233dZ8BeKUmtrDmqu+TqdTr7zyiiIiIiRJgwcPVm5urt544w1NmTKlzjpWeF9T++dwOPTII4/o7LPP1lNPPVW7/Re/+IWuuOIKPfbYYz5fc4rTU/M1d6Le12zzZZ5hzbAfJCcnS5IKCgrq7cvLy6tzjDfOg/d5oxd/+tOfNHv2bE2ZMkVPPfWUQkL4u6kvNbWHn332mb788ks9/PDDcjqdKisrU1lZmdxut9xut8rKymp/kKN5NbWHCQkJstls6tWrV+0P5RoXXHCBXC6Xtm/f3gwV43hN7d+ePXt05MgRXXjhhfX2ZWZmKjs7myWDAS4pKUmSVFhYWG+fP/IMP339oHXr1rLb7crKyqq3LysrS6GhoSdcVN7U8+B9Z9qLWbNm6d1339UjjzyiG264oTlLRQOa2sMvv/xShmHo1ltvPeHrnnPOObrrrrt09913e71m1NXUHoaGhqpr164nDGFut7v2GDSvpvav5n+fu1yuevtqriryF9LA1r17d9lstgZ7n5ycrJSUFJ/Vw5VhPxkxYoS++eYbHTlypHZbeXm5Pv/8c1100UWKjo726nnwvqb2YvHixXr55Zd1//33E4T9rCk9vP322zV37tx6/2RkZCgjI0Nz585luoQPNfXrcPTo0dqwYUO9K8DLli1TZGSkevTo0ax1o1pT+te1a1dFRETo66+/rrdvzZo1Sk5OVuvWrZu1bpyZ2NhYnX/++fr000/rrA3OycnRqlWrNGrUKN8W5NOpxqh1+PBhIzMz05g4caLx5ZdfGitXrjRuvPFGo3///sb27dsNw6geZJ2RkWG88847p3UefKMpPXQ6ncall15qXHLJJcZPP/1krF+/vt4/xw8gR/Nq6tfhiVx//fU8dMMPmtrDkpISY/jw4cZFF11kfPzxx8Y333xjPPTQQ0Z6eroxe/Zsf32coNPU/s2ePdtIT083HnzwQWPZsmXGV199Zdx7771Genq6MXfuXH99nKCUnZ1d+/Pr0UcfNdLT041PP/20zs+0BQsWGBkZGcaKFStqz9u8ebPRt29fY/LkycbXX39tLF261Bg/frxx/vnnG0eOHPHpZ2CZhJ+kpqbqX//6l5566ilNmzZNhmGof//+evPNN9W1a1dJ1QPJ3W63PB7PaZ0H32hKDw8fPqzs7GxJ0lVXXXXC112yZInS0tJ88yGCXFO/DhE4mtrDmJgYvf3223r66ac1ffp0lZaWqlOnTnr88ccb/NqE9zW1f3fddZdSU1M1d+5cffLJJ7JYLOrWrZtmzZql0aNH++vjBKXnn3++3iPM77nnntrfL1myRB6Pp14PMzIy9Prrr2vmzJm64447ZLPZNHjwYM2aNat2TbGvWAzDMHz6jgAAAECAYM0wAAAAghZhGAAAAEGLMAwAAICgRRgGAABA0CIMAwAAIGgRhgEAABC0CMMAAAAIWoRhAAAABC3CMAAAAIIWYRgAcFpmzZqlnj17asWKFXrggQd09tlna8uWLf4uCwCahMcxAwAa7dNPP9W9996r++67T1OnTlVVVZWuuOIKlZaWauHChYqPj/d3iQBwWgjDAIBGKSgo0MiRI5WUlKSPPvpINptNkrR+/XpdffXVGjdunGbMmOHnKgHg9LBMAgDQKC+++KKKiop055131gZhSerbt69GjBihhQsXslwCgOkQhgHApB566CF1795dW7Zs0Zw5c3TJJZeoT58+Gj58uN577z1J0sqVKzVp0iT1799fF110kR588EGVlpbK4XBo7Nix6t27t7Zv317ndQsKCjRo0CANHjxYeXl5kqSKigq9//77ateunUaNGlWvlmuuuUaGYejNN99s/g8OAF5EGAYAk/v73/+u5cuX6/bbb9c999yjgoICPfroo3r99df10EMP6Ze//KUeeeQRtW3bVgsXLtTf/vY3hYWF6amnnpIkPfroo/J4PLWv98QTT+jo0aN64oknlJSUJElas2aNKioqdOGFF8pqrf+jY8CAAYqOjtbnn38ul8vlmw8OAF5AGAYAk9u+fbtef/11XX311brlllt0yy23SJJmzJihV199VbfccouuuuoqPfvss7JYLPryyy8lST169NB9992ndevW6e2335YkLVu2TIsWLdKkSZN0ySWX1L7HypUrJUlDhgw5YQ2hoaHKzMxUaWkpSyUAmAphGABMbsKECQoJCan9c0ZGhiSpX79+6t69e+321NRUtWrVSkeOHKndNnnyZGVmZmrWrFnavn27pk+fro4dO+qhhx6q8x579uyRJHXq1KnBOjp37ixJ2r9//xl/JgDwFcIwAJhcu3bt6vw5PDz8hNtr9h2/jMFqtWrGjBmy2Wy6+uqrlZOTo6eeekpRUVF1zisoKJAkJSYmNlhHzb6aYwHADAjDAGByYWFhJ9weGhraqPPbtm2rIUOGqLy8XN27d1efPn3qHVNSUiJJio2NbfB14uLi6hwLAGZAGAaAILdy5Up9+umnSk9P16ZNm/TWW2/VO6YmBJ8s6BYXF9c5FgDMgDAMAEGsqKhIDz/8sM466yy98847yszM1NNPP60dO3bUOa4xSyDy8/PrHAsAZkAYBoAg9uc//1lHjhzR448/rujoaD3xxBOyWq164IEH5HA4ao/r2LGjJGn37t0NvlbNvrS0tGatGQC8iTAMAEHqo48+0scff6xrrrlGgwYNkiS1b99e9913n7Zs2aJnnnmm9tiakWo1I9Z+zul0as2aNYqJiamdZgEAZkAYBoAgdPjwYT322GNq166dHnjggTr7brjhBp199tn65z//qdWrV0uSMjMzFRkZqRUrVtR5QEeN77//XmVlZRo+fHidMW8AEOgshmEY/i4CABD4Hn/8cb311luaOXOmxowZU2ffvffeq88++0wLFizgyjAAU+HKMACgUe644w7Fx8frhRdekNvtrt2+fv16ffbZZxo3bhxBGIDpEIYBAI2SmJioxx57TDt37tScOXMkSVVVVXrkkUfUunVr/f73v/dzhQBw+ljYBQBotJEjR+r222/X7Nmz1bt3b3344Yfav3+/5s6dq/j4eH+XBwCnjTXDAAAACFoskwAAAEDQIgwDAAAgaBGGAQAAELQIwwAAAAhahGEAAAAELcIwAAAAghZhGAAAAEGLMAwAAICg9f8Dgh3K5XXm9QYAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "system.table.mpl(x=\"mx\", y=[\"E\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `micromagneticdata` analysis\n", "\n", "Similar to all other drivers, we can use `micromagneticdata` package to analyse the data. We start by creationg the data object:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import micromagneticdata as md\n", "\n", "data = md.Data(name=system.name)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can have a look at all drives we did so far:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "tags": [ "nbval-ignore-output" ] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
drive_numberdatetimedrivertnn_threads
002023-01-1617:35:54MinDriverNaNNaNNaN
112023-01-1617:35:58TimeDriver2.000000e-09200.04.0
222023-01-1617:37:00MinDriverNaNNaNNaN
332023-01-1617:37:04TimeDriver2.000000e-09200.04.0
442023-01-1617:37:28MinDriverNaNNaNNaN
552023-01-1617:38:02MinDriverNaNNaNNaN
662023-01-1617:38:06TimeDriver2.000000e-09200.04.0
772023-10-1016:55:09MinDriverNaNNaNNaN
882023-10-1016:55:13TimeDriver2.000000e-09200.04.0
992023-10-1812:37:23MinDriverNaNNaNNaN
10102023-10-1812:39:38MinDriverNaNNaNNaN
\n", "
" ], "text/plain": [ " drive_number date time driver t n \\\n", "0 0 2023-01-16 17:35:54 MinDriver NaN NaN \n", "1 1 2023-01-16 17:35:58 TimeDriver 2.000000e-09 200.0 \n", "2 2 2023-01-16 17:37:00 MinDriver NaN NaN \n", "3 3 2023-01-16 17:37:04 TimeDriver 2.000000e-09 200.0 \n", "4 4 2023-01-16 17:37:28 MinDriver NaN NaN \n", "5 5 2023-01-16 17:38:02 MinDriver NaN NaN \n", "6 6 2023-01-16 17:38:06 TimeDriver 2.000000e-09 200.0 \n", "7 7 2023-10-10 16:55:09 MinDriver NaN NaN \n", "8 8 2023-10-10 16:55:13 TimeDriver 2.000000e-09 200.0 \n", "9 9 2023-10-18 12:37:23 MinDriver NaN NaN \n", "10 10 2023-10-18 12:39:38 MinDriver NaN NaN \n", "\n", " n_threads \n", "0 NaN \n", "1 4.0 \n", "2 NaN \n", "3 4.0 \n", "4 NaN \n", "5 NaN \n", "6 4.0 \n", "7 NaN \n", "8 4.0 \n", "9 NaN \n", "10 NaN " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.info" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is only one drive and we can get it by passing `0` (ot `-1`) as an index:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "drive = data[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now plot the magnetisation at individual iterations, by indexing it again with the step number and do all usual operations allowed by `discretisedfield.Field` object." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Field\n", "" ], "text/plain": [ "Field(Mesh(Region(pmin=[-5e-08, -5e-08, 0.0], pmax=[5e-08, 5e-08, 1e-08], dims=['x', 'y', 'z'], units=['m', 'm', 'm']), n=[20, 20, 2]), nvdim=3, vdims: (x, y, z), unit=A/m)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drive[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The number of steps in the drive is:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "14" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "drive.n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us now create an interactive plot. For details on how to create custom interactive plots, please have a look at other tutorials." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [ "nbval-ignore-output" ] }, "outputs": [ { "data": { "application/javascript": [ "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", " var py_version = '3.2.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n", " var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n", " var reloading = false;\n", " var Bokeh = root.Bokeh;\n", " var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", "\n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks;\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", " if (js_modules == null) js_modules = [];\n", " if (js_exports == null) js_exports = {};\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", "\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " if (!reloading) {\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " }\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", " window._bokeh_on_load = on_load\n", "\n", " function on_error() {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " var skip = [];\n", " if (window.requirejs) {\n", " window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n", " require([\"jspanel\"], function(jsPanel) {\n", "\twindow.jsPanel = jsPanel\n", "\ton_load()\n", " })\n", " require([\"jspanel-modal\"], function() {\n", "\ton_load()\n", " })\n", " require([\"jspanel-tooltip\"], function() {\n", "\ton_load()\n", " })\n", " require([\"jspanel-hint\"], function() {\n", "\ton_load()\n", " })\n", " require([\"jspanel-layout\"], function() {\n", "\ton_load()\n", " })\n", " require([\"jspanel-contextmenu\"], function() {\n", "\ton_load()\n", " })\n", " require([\"jspanel-dock\"], function() {\n", "\ton_load()\n", " })\n", " require([\"gridstack\"], function(GridStack) {\n", "\twindow.GridStack = GridStack\n", "\ton_load()\n", " })\n", " require([\"notyf\"], function() {\n", "\ton_load()\n", " })\n", " root._bokeh_is_loading = css_urls.length + 9;\n", " } else {\n", " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n", " }\n", "\n", " var existing_stylesheets = []\n", " var links = document.getElementsByTagName('link')\n", " for (var i = 0; i < links.length; i++) {\n", " var link = links[i]\n", " if (link.href != null) {\n", "\texisting_stylesheets.push(link.href)\n", " }\n", " }\n", " for (var i = 0; i < css_urls.length; i++) {\n", " var url = css_urls[i];\n", " if (existing_stylesheets.indexOf(url) !== -1) {\n", "\ton_load()\n", "\tcontinue;\n", " }\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error;\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n", " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", " } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n", " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", " } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n", " var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", " } var existing_scripts = []\n", " var scripts = document.getElementsByTagName('script')\n", " for (var i = 0; i < scripts.length; i++) {\n", " var script = scripts[i]\n", " if (script.src != null) {\n", "\texisting_scripts.push(script.src)\n", " }\n", " }\n", " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", "\tif (!window.requirejs) {\n", "\t on_load();\n", "\t}\n", "\tcontinue;\n", " }\n", " var element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error;\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " for (var i = 0; i < js_modules.length; i++) {\n", " var url = js_modules[i];\n", " if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n", "\tif (!window.requirejs) {\n", "\t on_load();\n", "\t}\n", "\tcontinue;\n", " }\n", " var element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error;\n", " element.async = false;\n", " element.src = url;\n", " element.type = \"module\";\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " for (const name in js_exports) {\n", " var url = js_exports[name];\n", " if (skip.indexOf(url) >= 0 || root[name] != null) {\n", "\tif (!window.requirejs) {\n", "\t on_load();\n", "\t}\n", "\tcontinue;\n", " }\n", " var element = document.createElement('script');\n", " element.onerror = on_error;\n", " element.async = false;\n", " element.type = \"module\";\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " element.textContent = `\n", " import ${name} from \"${url}\"\n", " window.${name} = ${name}\n", " window._bokeh_on_load()\n", " `\n", " document.head.appendChild(element);\n", " }\n", " if (!js_urls.length && !js_modules.length) {\n", " on_load()\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.2.2.min.js\", \"https://cdn.holoviz.org/panel/1.2.3/dist/panel.min.js\"];\n", " var js_modules = [];\n", " var js_exports = {};\n", " var css_urls = [];\n", " var inline_js = [ function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {} // ensure no trailing comma for IE\n", " ];\n", "\n", " function run_inline_js() {\n", " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", " // Cache old bokeh versions\n", " if (Bokeh != undefined && !reloading) {\n", "\tvar NewBokeh = root.Bokeh;\n", "\tif (Bokeh.versions === undefined) {\n", "\t Bokeh.versions = new Map();\n", "\t}\n", "\tif (NewBokeh.version !== Bokeh.version) {\n", "\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n", "\t}\n", "\troot.Bokeh = Bokeh;\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " }\n", " root._bokeh_is_initializing = false\n", " }\n", "\n", " function load_or_wait() {\n", " // Implement a backoff loop that tries to ensure we do not load multiple\n", " // versions of Bokeh and its dependencies at the same time.\n", " // In recent versions we use the root._bokeh_is_initializing flag\n", " // to determine whether there is an ongoing attempt to initialize\n", " // bokeh, however for backward compatibility we also try to ensure\n", " // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n", " // before older versions are fully initialized.\n", " if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n", " root._bokeh_is_initializing = false;\n", " root._bokeh_onload_callbacks = undefined;\n", " console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n", " load_or_wait();\n", " } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n", " setTimeout(load_or_wait, 100);\n", " } else {\n", " Bokeh = root.Bokeh;\n", " bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n", " root._bokeh_is_initializing = true\n", " root._bokeh_onload_callbacks = []\n", " if (!reloading && (!bokeh_loaded || is_dev)) {\n", "\troot.Bokeh = undefined;\n", " }\n", " load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n", "\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", "\trun_inline_js();\n", " });\n", " }\n", " }\n", " // Give older versions of the autoload script a head-start to ensure\n", " // they initialize before we start loading newer version.\n", " setTimeout(load_or_wait, 100)\n", "}(window));" ], "application/vnd.holoviews_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.2.2'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var is_dev = py_version.indexOf(\"+\") !== -1 || py_version.indexOf(\"-\") !== -1;\n var reloading = false;\n var Bokeh = root.Bokeh;\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks;\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'jspanel': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/jspanel', 'jspanel-modal': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal', 'jspanel-tooltip': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip', 'jspanel-hint': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint', 'jspanel-layout': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout', 'jspanel-contextmenu': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu', 'jspanel-dock': 'https://cdn.jsdelivr.net/npm/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock', 'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@7.2.3/dist/gridstack-all', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'jspanel': {'exports': 'jsPanel'}, 'gridstack': {'exports': 'GridStack'}}});\n require([\"jspanel\"], function(jsPanel) {\n\twindow.jsPanel = jsPanel\n\ton_load()\n })\n require([\"jspanel-modal\"], function() {\n\ton_load()\n })\n require([\"jspanel-tooltip\"], function() {\n\ton_load()\n })\n require([\"jspanel-hint\"], function() {\n\ton_load()\n })\n require([\"jspanel-layout\"], function() {\n\ton_load()\n })\n require([\"jspanel-contextmenu\"], function() {\n\ton_load()\n })\n require([\"jspanel-dock\"], function() {\n\ton_load()\n })\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 9;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n } if (((window['jsPanel'] !== undefined) && (!(window['jsPanel'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/jspanel.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/modal/jspanel.modal.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/tooltip/jspanel.tooltip.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/hint/jspanel.hint.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/layout/jspanel.layout.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/contextmenu/jspanel.contextmenu.js', 'https://cdn.holoviz.org/panel/1.2.3/dist/bundled/floatpanel/jspanel4@4.12.0/dist/extensions/dock/jspanel.dock.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/gridstack/gridstack@7.2.3/dist/gridstack-all.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/1.2.3/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.2.2.min.js\", \"https://cdn.holoviz.org/panel/1.2.3/dist/panel.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = Bokeh;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n Bokeh = root.Bokeh;\n bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n if (!reloading && (!bokeh_loaded || is_dev)) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\n}(window));" }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "if ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n", " window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n", "}\n", "\n", "\n", " function JupyterCommManager() {\n", " }\n", "\n", " JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n", " if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", " comm_manager.register_target(comm_id, function(comm) {\n", " comm.on_msg(msg_handler);\n", " });\n", " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", " window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n", " comm.onMsg = msg_handler;\n", " });\n", " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", " google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n", " var messages = comm.messages[Symbol.asyncIterator]();\n", " function processIteratorResult(result) {\n", " var message = result.value;\n", " console.log(message)\n", " var content = {data: message.data, comm_id};\n", " var buffers = []\n", " for (var buffer of message.buffers || []) {\n", " buffers.push(new DataView(buffer))\n", " }\n", " var metadata = message.metadata || {};\n", " var msg = {content, buffers, metadata}\n", " msg_handler(msg);\n", " return messages.next().then(processIteratorResult);\n", " }\n", " return messages.next().then(processIteratorResult);\n", " })\n", " }\n", " }\n", "\n", " JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n", " if (comm_id in window.PyViz.comms) {\n", " return window.PyViz.comms[comm_id];\n", " } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", " var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n", " if (msg_handler) {\n", " comm.on_msg(msg_handler);\n", " }\n", " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", " var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n", " comm.open();\n", " if (msg_handler) {\n", " comm.onMsg = msg_handler;\n", " }\n", " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", " var comm_promise = google.colab.kernel.comms.open(comm_id)\n", " comm_promise.then((comm) => {\n", " window.PyViz.comms[comm_id] = comm;\n", " if (msg_handler) {\n", " var messages = comm.messages[Symbol.asyncIterator]();\n", " function processIteratorResult(result) {\n", " var message = result.value;\n", " var content = {data: message.data};\n", " var metadata = message.metadata || {comm_id};\n", " var msg = {content, metadata}\n", " msg_handler(msg);\n", " return messages.next().then(processIteratorResult);\n", " }\n", " return messages.next().then(processIteratorResult);\n", " }\n", " }) \n", " var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n", " return comm_promise.then((comm) => {\n", " comm.send(data, metadata, buffers, disposeOnDone);\n", " });\n", " };\n", " var comm = {\n", " send: sendClosure\n", " };\n", " }\n", " window.PyViz.comms[comm_id] = comm;\n", " return comm;\n", " }\n", " window.PyViz.comm_manager = new JupyterCommManager();\n", " \n", "\n", "\n", "var JS_MIME_TYPE = 'application/javascript';\n", "var HTML_MIME_TYPE = 'text/html';\n", "var EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\n", "var CLASS_NAME = 'output';\n", "\n", "/**\n", " * Render data to the DOM node\n", " */\n", "function render(props, node) {\n", " var div = document.createElement(\"div\");\n", " var script = document.createElement(\"script\");\n", " node.appendChild(div);\n", " node.appendChild(script);\n", "}\n", "\n", "/**\n", " * Handle when a new output is added\n", " */\n", "function handle_add_output(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", " if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", " var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", " if (id !== undefined) {\n", " var nchildren = toinsert.length;\n", " var html_node = toinsert[nchildren-1].children[0];\n", " html_node.innerHTML = output.data[HTML_MIME_TYPE];\n", " var scripts = [];\n", " var nodelist = html_node.querySelectorAll(\"script\");\n", " for (var i in nodelist) {\n", " if (nodelist.hasOwnProperty(i)) {\n", " scripts.push(nodelist[i])\n", " }\n", " }\n", "\n", " scripts.forEach( function (oldScript) {\n", " var newScript = document.createElement(\"script\");\n", " var attrs = [];\n", " var nodemap = oldScript.attributes;\n", " for (var j in nodemap) {\n", " if (nodemap.hasOwnProperty(j)) {\n", " attrs.push(nodemap[j])\n", " }\n", " }\n", " attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n", " newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n", " oldScript.parentNode.replaceChild(newScript, oldScript);\n", " });\n", " if (JS_MIME_TYPE in output.data) {\n", " toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n", " }\n", " output_area._hv_plot_id = id;\n", " if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n", " window.PyViz.plot_index[id] = Bokeh.index[id];\n", " } else {\n", " window.PyViz.plot_index[id] = null;\n", " }\n", " } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", "}\n", "\n", "/**\n", " * Handle when an output is cleared or removed\n", " */\n", "function handle_clear_output(event, handle) {\n", " var id = handle.cell.output_area._hv_plot_id;\n", " var server_id = handle.cell.output_area._bokeh_server_id;\n", " if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n", " var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n", " if (server_id !== null) {\n", " comm.send({event_type: 'server_delete', 'id': server_id});\n", " return;\n", " } else if (comm !== null) {\n", " comm.send({event_type: 'delete', 'id': id});\n", " }\n", " delete PyViz.plot_index[id];\n", " if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n", " var doc = window.Bokeh.index[id].model.document\n", " doc.clear();\n", " const i = window.Bokeh.documents.indexOf(doc);\n", " if (i > -1) {\n", " window.Bokeh.documents.splice(i, 1);\n", " }\n", " }\n", "}\n", "\n", "/**\n", " * Handle kernel restart event\n", " */\n", "function handle_kernel_cleanup(event, handle) {\n", " delete PyViz.comms[\"hv-extension-comm\"];\n", " window.PyViz.plot_index = {}\n", "}\n", "\n", "/**\n", " * Handle update_display_data messages\n", " */\n", "function handle_update_output(event, handle) {\n", " handle_clear_output(event, {cell: {output_area: handle.output_area}})\n", " handle_add_output(event, handle)\n", "}\n", "\n", "function register_renderer(events, OutputArea) {\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[0]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " events.on('output_added.OutputArea', handle_add_output);\n", " events.on('output_updated.OutputArea', handle_update_output);\n", " events.on('clear_output.CodeCell', handle_clear_output);\n", " events.on('delete.Cell', handle_clear_output);\n", " events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n", "\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " safe: true,\n", " index: 0\n", " });\n", "}\n", "\n", "if (window.Jupyter !== undefined) {\n", " try {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " } catch(err) {\n", " }\n", "}\n" ], "application/vnd.holoviews_load.v0+json": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n console.log(message)\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n comm.open();\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n }) \n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ ":DynamicMap [iteration]\n", " :Overlay\n", " .Image.I :Image [x,z] (field)\n", " .VectorField.I :VectorField [x,z] (angle,mag)" ] }, "execution_count": 11, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "p1002" } }, "output_type": "execute_result" } ], "source": [ "drive.register_callback(lambda f: f.sel(\"y\")).hv(kdims=[\"x\", \"z\"]).opts(frame_width=800)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "450b8cc4a5fb4b788b1c8c901cf93abc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "" } }, "5a2cad65fee747e3a6cfebeff2e18d2b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "71f51c70826d428d8e07e73234b8b213": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "layout": "IPY_MODEL_c37c4af837a74af49d38eef3691a26be", "outputs": [ { "data": { "image/png": "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hx9+iMOHD+Ojjz7yatletviJiIgkbu7cuYiNjUVubi6CgoIAAG+99RYSEhLw5ptvelUXEz8REUkSu/qv2b17N/79738LZvMHBwfj+eefR15enld1saufiIikiV39DiaTCUql0qm8qqrKad3+G2GLn4iIJErm563puPvuu7Fs2TJBkr969SoyMjLQp08fr+pqlMR/+PBhwfaHer0e48aNwx133IGBAwdi7dq1jXFaREREkvTyyy9j//79GDBgACorKzF+/HgMHDgQv/76K1588UWv6rqpXf02mw3r16/H3LlzERAQ4Ch/9dVXodFosGvXLpw4cQLPPPMMYmNjkZiYeDNPj4iIpIRd/Q7t27fHpk2bsHnzZhw7dgxKpRIxMTFITU11TPbzlNeJ/+rVq5DJZE7bAnri/fffx5dffon09HQsW7YMAFBRUYHt27fj66+/RlBQEHr27ImUlBRs3LiRiZ+IqDlj4hdQq9UYPny43/XcMPGXl5dj7dq12LlzJw4dOgSz2QwAUKlUuP3223HvvffioYce8uiHwN/+9jekp6djz549jrKzZ89CoVCgc+fOjrLIyEhs27bNl/dDRERNRRObme+PS5cuITMzE3l5eaiqqnJ6/Ouvv/a4LreJ32q1YunSpVi2bBnCw8MxcOBADB8+HLfccgssFguuXLmC/Px8rF27FosWLcLTTz+NZ555BgqF+98Sbdu2dSozGAxQqVSCMpVKBZPJ5LaeyEULPHlvRER0k+gmPN/gdXKt/mv+85//ID8/H3/9618REhLiV11us/SIESOg1Wrx2WefITo62uUxDz30EADg+PHj+OijjzBixAhs2LDBqxNQq9WorKwUlJlMJmg0Gq/qISIiaqpyc3Px4Ycfonfv3n7X5Tbxz5071+MlAHv06IE5c+bg1KlTXp9AREQEzGYzCgsLER4eDgDQ6XReLT9IRERNEFv8DiEhIQgNDW2QutxezudL4o2NjfX6OcHBwRg8eDAWLFgAo9GIw4cPY/PmzRg6dKjXdRERURNik/l3a0JGjhyJzMxMGI1Gv+vyaFa/2WzG+vXrcerUKZeTCmbNmuXXScyaNQvTp09HcnIyNBoNpkyZ4th3mIiImicZW/wOBw4cwO7du3HnnXeiTZs2gqV7gQaa3FfXiy++iG3btiEuLs7pekGZzPtfVX369MHu3bsd91u1aoVF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\n", "text/plain": "
" }, "metadata": {}, "output_type": "display_data" } ] } }, "a549661baa1441e4955bd15b88d4aa5c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c37c4af837a74af49d38eef3691a26be": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f055afb58dd7475bafc7c78bbe7a772e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "IntSliderModel", "state": { "continuous_update": false, "description": "step", "layout": "IPY_MODEL_5a2cad65fee747e3a6cfebeff2e18d2b", "max": 13, "style": "IPY_MODEL_450b8cc4a5fb4b788b1c8c901cf93abc" } }, "f1a3ed7946fd4711a432ed4f9c134b99": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "_dom_classes": [ "widget-interact" ], "children": [ "IPY_MODEL_f055afb58dd7475bafc7c78bbe7a772e", "IPY_MODEL_71f51c70826d428d8e07e73234b8b213" ], "layout": "IPY_MODEL_a549661baa1441e4955bd15b88d4aa5c" } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }