From 4f5eaad7ea069f9947031febe335e011405d5a1b Mon Sep 17 00:00:00 2001 From: Robert Haase Date: Fri, 23 Dec 2022 11:22:45 +0100 Subject: [PATCH 1/6] added insight as shortcut to jupyter_displayable_output --- README.md | 31 ++ docs/images/insight_demo.png | Bin 0 -> 75573 bytes docs/images/jupyter_displayable_output.png | Bin 0 -> 47244 bytes docs/images/labels_demo.png | Bin 0 -> 21908 bytes docs/insight.ipynb | 491 +++++++++++++++++++++ stackview/__init__.py | 2 +- stackview/_static_view.py | 12 +- 7 files changed, 534 insertions(+), 2 deletions(-) create mode 100644 docs/images/insight_demo.png create mode 100644 docs/images/jupyter_displayable_output.png create mode 100644 docs/images/labels_demo.png create mode 100644 docs/insight.ipynb diff --git a/README.md b/README.md index 615b624..3683c65 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,37 @@ stackview.interact(gaussian, context=globals(), continuous_update=True) ![](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/demo_interact4.gif) +### Static views + +The `insight` function turns a numpy-array into a numpy-compatible array that has an image-display in jupyter notebooks. + +```python +insight(image[60]) +``` + +![img.png](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/insight_demo.png) + +Images of 32-bit and 64-bit type integer are displayed as labels. + +```python +blobs = imread('data/blobs.tif') +labels = label(blobs > 120) + +insight(labels) +``` + +![img.png](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/labels_demo.png) + +```python +@jupyter_displayable_output +def my_gaussian(image, sigma): + return gaussian(image, sigma) + +my_gaussian(image[60], 2) +``` + +![img.png](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/jupyter_displayable_output.png) + ## Contributing Contributions, bug-reports and ideas for further development are very welcome. diff --git a/docs/images/insight_demo.png b/docs/images/insight_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..ffdf0b299c92d9148e92827b5c85cfd2e5f0683d GIT binary patch literal 75573 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 literal 0 HcmV?d00001 diff --git a/docs/images/jupyter_displayable_output.png b/docs/images/jupyter_displayable_output.png new file mode 100644 index 0000000000000000000000000000000000000000..67a588a4a08bc82966a9acc177be73e2208312ae GIT binary patch literal 47244 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⋘#Xe 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 b!Y1Sy{~4p@>fK)<;6>bTyRX2){qp|;jy8A* literal 0 HcmV?d00001 diff --git a/docs/images/labels_demo.png b/docs/images/labels_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc950603adca95950c13c0373660380047dd859 GIT binary patch literal 21908 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\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
shape(160, 160)
dtypeuint16
size50.0 kB
min0
max65535
\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "StackViewNDArray([[ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 381, 1450, ..., 1373, 992, 687],\n", + " [ 0, 381, 1755, ..., 1297, 305, 916],\n", + " ...,\n", + " [ 0, 0, 0, ..., 610, 687, 1984],\n", + " [ 0, 0, 0, ..., 839, 458, 1526],\n", + " [ 0, 0, 0, ..., 839, 916, 992]], dtype=uint16)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "insight(image[60])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e60c8fee-b432-46fc-903f-8b551911a9b4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
shape(254, 256)
dtypeint32
size254.0 kB
min0
max64
\n", + "\n", + "
" + ], + "text/plain": [ + "StackViewNDArray([[0, 0, 0, ..., 5, 5, 5],\n", + " [0, 0, 0, ..., 5, 5, 5],\n", + " [0, 0, 0, ..., 5, 5, 5],\n", + " ...,\n", + " [0, 0, 0, ..., 0, 0, 0],\n", + " [0, 0, 0, ..., 0, 0, 0],\n", + " [0, 0, 0, ..., 0, 0, 0]])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "blobs = imread('data/blobs.tif')\n", + "labels = label(blobs > 120)\n", + "\n", + "insight(labels)" + ] + }, + { + "cell_type": "markdown", + "id": "3dba1473-5920-4e9e-b5a7-26225932d92d", + "metadata": {}, + "source": [ + "The function `insight` returns a variable that can be post-processed using common libraries, it aims to be just a numpy-array with some extras." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "98d442c1-4400-4c85-97a6-df1ee4f1f2bf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "stackview._static_view.StackViewNDArray" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sv_image = insight(image[60])\n", + "type(sv_image)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "3d8d0e6d-660e-49fc-82d4-5328964543b6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
shape(160, 160)
dtypeuint16
size50.0 kB
min0
max65535
\n", + "\n", + "
" + ], + "text/plain": [ + "StackViewNDArray([[ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 381, 1450, ..., 1373, 992, 687],\n", + " [ 0, 381, 1755, ..., 1297, 305, 916],\n", + " ...,\n", + " [ 0, 0, 0, ..., 610, 687, 1984],\n", + " [ 0, 0, 0, ..., 839, 458, 1526],\n", + " [ 0, 0, 0, ..., 839, 916, 992]], dtype=uint16)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sv_image" + ] + }, + { + "cell_type": "markdown", + "id": "983290f0-d018-4356-997d-4fc6da0dd438", + "metadata": {}, + "source": [ + "After processing the `insight` generated image, e.g. using the `gaussian` function from scikit-image, the result must be converted again to have the display." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "00eb5b0a-32d4-4714-8e72-32c6c0b4727d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.ndarray" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result = gaussian(sv_image, sigma=6)\n", + "type(result)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "417cb291-0d93-4ad1-81d2-b10f2ed99b86", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
shape(160, 160)
dtypefloat64
size200.0 kB
min0.0032266908735059745
max0.5743035671972324
\n", + "\n", + "
" + ], + "text/plain": [ + "StackViewNDArray([[0.00370651, 0.00426108, 0.00481234, ..., 0.00710816,\n", + " 0.00697263, 0.00685315],\n", + " [0.0042273 , 0.00485844, 0.00548581, ..., 0.00816649,\n", + " 0.00801763, 0.00788711],\n", + " [0.00473856, 0.00544452, 0.00614624, ..., 0.00923175,\n", + " 0.00907213, 0.00893312],\n", + " ...,\n", + " [0.00463481, 0.00552068, 0.00645748, ..., 0.01694976,\n", + " 0.01634085, 0.01584955],\n", + " [0.00390661, 0.00465442, 0.00544576, ..., 0.01716718,\n", + " 0.01655641, 0.01606671],\n", + " [0.00322669, 0.0038455 , 0.00450086, ..., 0.01736883,\n", + " 0.01675237, 0.01626037]])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "insight(result)" + ] + }, + { + "cell_type": "markdown", + "id": "bc02abc0-f11a-49e8-97ef-28c54150deea", + "metadata": {}, + "source": [ + "## Custom functions\n", + "When implementing custom image processing functions, those can be annotated so that the result becomes an `insight` image automatically." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1a7d2c86-df68-4b36-ac06-deffd0aa2fae", + "metadata": {}, + "outputs": [], + "source": [ + "@jupyter_displayable_output\n", + "def my_gaussian(image, sigma):\n", + " return gaussian(image, sigma)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "2bccfc33-62de-443f-8a10-f9281145500e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
shape(160, 160)
dtypefloat64
size200.0 kB
min0.00010141543975253962
max0.8699153742799944
\n", + "\n", + "
" + ], + "text/plain": [ + "StackViewNDArray([[0.00212939, 0.00344053, 0.00476471, ..., 0.00583083,\n", + " 0.00560638, 0.00537486],\n", + " [0.00327628, 0.00530667, 0.00735382, ..., 0.00866562,\n", + " 0.00837849, 0.00809373],\n", + " [0.00437608, 0.00708168, 0.00979352, ..., 0.0110469 ,\n", + " 0.0107322 , 0.01043783],\n", + " ...,\n", + " [0.00063916, 0.0014103 , 0.00256736, ..., 0.01399779,\n", + " 0.01456949, 0.01554148],\n", + " [0.00028084, 0.00062272, 0.00114119, ..., 0.01403081,\n", + " 0.01471743, 0.01585427],\n", + " [0.00010142, 0.00022578, 0.00041603, ..., 0.01400911,\n", + " 0.01458054, 0.01561444]])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_gaussian(image[60], 2)" + ] + }, + { + "cell_type": "markdown", + "id": "6f778f54-6527-4e95-bfde-7318d8872ea3", + "metadata": {}, + "source": [ + "It is recommended to add a library name of your library and a link to the documentation so that users can click the link right in the `insight` display." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "243e794b-94f2-4662-a8b3-6ec0173edd12", + "metadata": {}, + "outputs": [], + "source": [ + "@jupyter_displayable_output(library_name=\"clesperanto\", help_url=\"https://github.com/clesperanto\")\n", + "def cle_gaussian(image, sigma):\n", + " import pyclesperanto_prototype as cle\n", + " return cle.gaussian_blur(image, sigma_x=sigma, sigma_y=sigma)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "ed8a30c7-3d70-4c43-a8f7-aa607f9857d3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + "\n", + "clesperanto made image
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
shape(160, 160)
dtypefloat32
size100.0 kB
min0.000925589
max62310.082
\n", + "\n", + "
" + ], + "text/plain": [ + "StackViewNDArray([[5.27978058e+01, 1.64570343e+02, 2.61079163e+02, ...,\n", + " 3.16405029e+02, 2.84286743e+02, 2.40542450e+02],\n", + " [1.24606766e+02, 3.96521637e+02, 6.54013428e+02, ...,\n", + " 7.18867004e+02, 6.43725464e+02, 5.69837952e+02],\n", + " [1.65524872e+02, 5.44341736e+02, 9.49922180e+02, ...,\n", + " 9.70090820e+02, 8.74096619e+02, 8.09579529e+02],\n", + " ...,\n", + " [4.06006604e-01, 5.16509247e+00, 2.62547874e+01, ...,\n", + " 7.71678833e+02, 9.35180176e+02, 1.20644006e+03],\n", + " [3.15837264e-02, 4.01614636e-01, 2.04012704e+00, ...,\n", + " 7.70590942e+02, 9.28915710e+02, 1.20594690e+03],\n", + " [9.25589004e-04, 1.17663806e-02, 5.97464181e-02, ...,\n", + " 7.89296997e+02, 9.06250427e+02, 1.05993542e+03]],\n", + " dtype=float32)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cle_gaussian(image[60], 1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c74ba588-8a45-41a8-909f-da76c513e68f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.9.15" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "f568f82b165e4428ad1f31b18beb961a": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasManagerModel", + "state": { + "_model_module_version": "^0.13", + "_view_module": null, + "_view_module_version": "" + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/stackview/__init__.py b/stackview/__init__.py index 87f66a7..6ff4387 100644 --- a/stackview/__init__.py +++ b/stackview/__init__.py @@ -1,7 +1,7 @@ __version__ = "0.3.7" import warnings -from ._static_view import jupyter_displayable_output +from ._static_view import jupyter_displayable_output, insight from ._utilities import merge_rgb from ._context import nop diff --git a/stackview/_static_view.py b/stackview/_static_view.py index 4740c4e..1199a94 100644 --- a/stackview/_static_view.py +++ b/stackview/_static_view.py @@ -5,6 +5,12 @@ from functools import wraps from toolz import curry +def insight(image, library_name=None, help_url=None): + """ + Converts a numpy-array-like image to numpy-compatible array with a convenient display in Jupyter notebooks + including shape, min/max intensity, histogram and viewing 32-bit and 64-bit integer images as coloured labels. + """ + return StackViewNDArray(image, library_name, help_url) @curry def jupyter_displayable_output( @@ -109,8 +115,12 @@ def _repr_html_(self): min_max = "" + help_text = "" if self.library_name is not None and len(self.library_name) > 0: self.library_name = self.library_name + " made " + if self.help_url is not None: + help_text = "" + self.library_name + "image
" + all = [ "", "", @@ -118,7 +128,7 @@ def _repr_html_(self): image, "", "
", - "" + self.library_name + "image
", + help_text, "", "", "", From 16740c512da36d4319a7bf5552703ae97c5df4ef Mon Sep 17 00:00:00 2001 From: Robert Haase Date: Fri, 23 Dec 2022 12:14:51 +0100 Subject: [PATCH 2/6] added zoom --- docs/zoom.ipynb | 1093 ++++++++++++++++++++++++++++++++++++ stackview/__init__.py | 60 +- stackview/_image_widget.py | 34 +- 3 files changed, 1160 insertions(+), 27 deletions(-) create mode 100644 docs/zoom.ipynb diff --git a/docs/zoom.ipynb b/docs/zoom.ipynb new file mode 100644 index 0000000..a7b7a5f --- /dev/null +++ b/docs/zoom.ipynb @@ -0,0 +1,1093 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ac2511d6-7689-4480-b482-36dc719ec489", + "metadata": {}, + "source": [ + "# Zoom" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "12452471-61c6-4d32-828b-e3dc90622fe6", + "metadata": {}, + "outputs": [], + "source": [ + "import stackview\n", + "from skimage.io import imread, imshow" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "dd7bcdad-a20b-4fe2-94c0-b588e644b2f9", + "metadata": {}, + "outputs": [], + "source": [ + "image = imread('data/Haase_MRT_tfl3d1.tif')[:,80:120]" + ] + }, + { + "cell_type": "markdown", + "id": "0a14f513-7bfc-40e9-b472-5ba295aa5ffd", + "metadata": {}, + "source": [ + "When working with small images, the view may be suboptimal." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "31531f57-4f87-4eea-83cd-f38b8b1404f2", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "c108754f30734dda9b1cb1cf1f2f0284", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=160, width=40),)),)), IntSlider(value=60, cont…" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stackview.slice(image)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f64d7620-56c7-41b5-ab9b-b8c520e9fecb", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b0996d45-e1a5-40f6-a085-62018fc087e1", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "913fe9f74629412182619083ab28847d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=1600, width=400),)),)), IntSlider(value=60, co…" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stackview.slice(image, zoom_factor=10)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "21d8e810-54bf-4f9f-af10-bf07c83317b7", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2f1e959f7d4a40aab60a79d8885b72bd", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=1600, width=400),)),)), IntSlider(value=60, co…" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stackview.picker(image, zoom_factor=10)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4d8610ce-9d8f-4daf-8cc7-13f48892a0d1", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ed62630cbd294aaeb4f22474189c3e06", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=1600, width=400),)),)), IntSlider(value=60, co…" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stackview.picker(image, zoom_factor=10, zoom_spline_order=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "971ca2de-af40-4ee5-8aa6-86bb7d7c60eb", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b8cd42de19d24ca98dd322ec061bb578", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=400, width=1600),)),)), IntSlider(value=60, de…" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stackview.curtain(image, 256-image, zoom_factor=10, continuous_update=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9c4874b1-a382-427a-8c2d-5273b802a037", + "metadata": {}, + "outputs": [], + "source": [ + "from skimage.filters import gaussian, threshold_otsu, sobel\n", + "from skimage.measure import label\n", + "\n", + "def my_custom_code(image, sigma:float = 1, show_labels: bool = True):\n", + " sigma = abs(sigma)\n", + " blurred_image = gaussian(image, sigma=sigma)\n", + " binary_image = blurred_image > threshold_otsu(blurred_image)\n", + " edge_image = sobel(binary_image)\n", + " \n", + " if show_labels:\n", + " return label(binary_image)\n", + " else:\n", + " return edge_image * 255 + image \n", + "\n", + "stackview.interact(my_custom_code, image, zoom_factor=10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c8272f9-cec6-4ebb-9570-0d659e4af652", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.9.15" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "0bdfc810124546c0ab58f633f7c8c72a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_477500302bac4e62ad094942d1c00ceb", + "max": 119, + "style": "IPY_MODEL_f1072ded716d4113b399c1998b6a0c8a", + "value": 60 + } + }, + "0d6c103a17704d388688b35e2a17fff4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "0ddd14ea19904df8b5649b5066e7b2b1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_c4a585fd003440b8ac62671b5fb8c6e7" + ], + "layout": "IPY_MODEL_0d6c103a17704d388688b35e2a17fff4" + } + }, + "0fd022492d104c74b3247bd6d3f02ddd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_172109086b1a4a65ada29cea6d9ae27f", + "style": "IPY_MODEL_858a9f4fefe0454994e2e7844fc62a09", + "value": "[]:" + } + }, + "12cbc8a8e1a94a85b1021bdf05b8d63e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "172109086b1a4a65ada29cea6d9ae27f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "17db8e1bb7224baea677a41b4d2bb12b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "1956cbd17a1145beba470e76be90d3de": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "257585f47a4340379a76665c90b5508d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "2f1e959f7d4a40aab60a79d8885b72bd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_0ddd14ea19904df8b5649b5066e7b2b1", + "IPY_MODEL_dee48952367744b8a9bd27f801d0b02a", + "IPY_MODEL_0fd022492d104c74b3247bd6d3f02ddd" + ], + "layout": "IPY_MODEL_4effd12b25f34d158ba83cb93d851e01" + } + }, + "307536236e854849887c15515d430b88": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelStyleModel", + "state": { + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null + } + }, + "3405901baa9f442c9cfe33a3f3ec3665": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_49f4e8e367354002add65a82cfecad01" + ], + "layout": "IPY_MODEL_17db8e1bb7224baea677a41b4d2bb12b" + } + }, + "389905871b84446699de3fa4bb4dd2a6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "CheckboxStyleModel", + "state": { + "description_width": "" + } + }, + "38d9a66203824e8286713098e96d3423": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "3d80999e32b145ddaedce5f12c39976a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "412329650fbc4c4f904f2a490040a4e8": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "layout": "IPY_MODEL_cf84a1da98114d379cc02044abfe7e48", + "msg_id": "4d51ac4f-dce3-4a9d-9360-201af3281fc1" + } + }, + "4652b415c0ff4bd48c2c3ae861a5636d": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasManagerModel", + "state": { + "_model_module_version": "^0.13", + "_view_module": null, + "_view_module_version": "" + } + }, + "477500302bac4e62ad094942d1c00ceb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "48f70a0f927b40dda876c66375a13ff8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "description": "Curtain", + "layout": "IPY_MODEL_ef0a177df0d94af6827f5fe37c18c66e", + "max": 160, + "style": "IPY_MODEL_5c91ee08c1764ce59bea39efed86b086", + "value": 80 + } + }, + "49f4e8e367354002add65a82cfecad01": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 160, + "layout": "IPY_MODEL_f1f8ba64c8e94a3ca313d7edcf9fe4ef", + "width": 40 + } + }, + "4effd12b25f34d158ba83cb93d851e01": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "55c96d5f9fdb41dc9124f2414fa20db1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "577d2d6e60964b06ae28e5f0e08f270e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "591f4d1af7c34cbe96098b77b1ff25ba": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "5c91ee08c1764ce59bea39efed86b086": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "5dad013e54ec44429b114245ac17fba6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "5f276878b50348a2a238a23b16a506be": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "5f56fb8ee7c14c358ba06cb462118b4a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_ad9df3351e8f4466a7065bee7b9d18c9", + "max": 119, + "style": "IPY_MODEL_a5e8b8b7c4cc43c58cca458bf1dc4d7c", + "value": 60 + } + }, + "603f48392a9047029b7869d847cd30d1": { + "model_module": "ipyevents", + "model_module_version": "2.0.1", + "model_name": "EventModel", + "state": { + "_supported_key_events": [ + "keydown", + "keyup" + ], + "_supported_mouse_events": [ + "click", + "auxclick", + "dblclick", + "mouseenter", + "mouseleave", + "mousedown", + "mouseup", + "mousemove", + "wheel", + "contextmenu", + "dragstart", + "drag", + "dragend", + "dragenter", + "dragover", + "dragleave", + "drop" + ], + "_supported_touch_events": [ + "touchstart", + "touchend", + "touchmove", + "touchcancel" + ], + "_view_module": "@jupyter-widgets/controls", + "source": "IPY_MODEL_8cef038abf5444bc880e57a7dc09ca67", + "throttle_or_debounce": "", + "watched_events": [ + "mousemove" + ], + "xy_coordinate_system": "" + } + }, + "72d64a1d2e7844219063aa8b72dccb0e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "7318bf3d403143ce9a8e00c9cd1be909": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelStyleModel", + "state": { + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null + } + }, + "733a63345d174f7ebe0a0749524491c7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "73a2ff33db8547bc95d8052f480ce123": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "75cc2591dbdc43729e6201e25142e9e5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "777778fb4904496da8e42718dc4f6f9b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "7800208c5d7c407fae3051038bd10e59": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "7bf64041f014499597b1ab1ceaaaef4b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "7e596a70986e4687970eec5d0041bbeb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "84a5c274e0194e2293123492816d9db9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_55c96d5f9fdb41dc9124f2414fa20db1", + "max": 119, + "style": "IPY_MODEL_5f276878b50348a2a238a23b16a506be", + "value": 60 + } + }, + "858a9f4fefe0454994e2e7844fc62a09": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelStyleModel", + "state": { + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null + } + }, + "898ddff2d8f248018ac56d1730ac653c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "description": "Slice", + "layout": "IPY_MODEL_73a2ff33db8547bc95d8052f480ce123", + "max": 119, + "style": "IPY_MODEL_b87d54abdc4d4041a4e0159d6ef7de92", + "value": 60 + } + }, + "89967b7538b9423681707dc587bb6fc4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "CheckboxModel", + "state": { + "description": "show_labels", + "disabled": false, + "layout": "IPY_MODEL_3d80999e32b145ddaedce5f12c39976a", + "style": "IPY_MODEL_389905871b84446699de3fa4bb4dd2a6", + "value": true + } + }, + "8cef038abf5444bc880e57a7dc09ca67": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", + "_model_module_version": "^0.13", + "_view_count": 1, + "_view_module_version": "^0.13", + "height": 1600, + "layout": "IPY_MODEL_a2a4bf61cc514188aea0d0ed4cac67fe", + "width": 400 + } + }, + "8f355e4e3b884c9eacf5dafff94ec17b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "913fe9f74629412182619083ab28847d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_fba669955f0346cc8182003b5a3d5d1c", + "IPY_MODEL_0bdfc810124546c0ab58f633f7c8c72a" + ], + "layout": "IPY_MODEL_d64e6198111e4d398e0c78ad738b6534" + } + }, + "98150260af0b45eeabf313481dbee6a9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_3405901baa9f442c9cfe33a3f3ec3665" + ], + "layout": "IPY_MODEL_ef96896f395c4884908448c17362c69a" + } + }, + "9d2a3ab6e8be41aab1d2dba872b5321e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "a2a4bf61cc514188aea0d0ed4cac67fe": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "a4d2193c0156419a9c2b19b34b700dee": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatSliderModel", + "state": { + "behavior": "drag-tap", + "continuous_update": false, + "description": "sigma", + "layout": "IPY_MODEL_e5cb6fc782bf41a39bbdea4c75db3456", + "max": 10, + "style": "IPY_MODEL_e0fb3b86588245a19a0f82e69c18ba97", + "value": 1 + } + }, + "a5e8b8b7c4cc43c58cca458bf1dc4d7c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "a7bcc90945d647c388c5d21e6cd7ab97": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "_dom_classes": [ + "widget-interact" + ], + "children": [ + "IPY_MODEL_a4d2193c0156419a9c2b19b34b700dee", + "IPY_MODEL_89967b7538b9423681707dc587bb6fc4", + "IPY_MODEL_412329650fbc4c4f904f2a490040a4e8" + ], + "layout": "IPY_MODEL_7bf64041f014499597b1ab1ceaaaef4b" + } + }, + "ad9df3351e8f4466a7065bee7b9d18c9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "b017090f06dd444aa6c574dc80960d29": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 1600, + "layout": "IPY_MODEL_75cc2591dbdc43729e6201e25142e9e5", + "width": 400 + } + }, + "b01a8014607a42cf997e780cfec6e286": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 1600, + "layout": "IPY_MODEL_577d2d6e60964b06ae28e5f0e08f270e", + "width": 400 + } + }, + "b27d0291daf642a8996e09efcc74549c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_c551f491a7944dac9d435c69757bcae9", + "style": "IPY_MODEL_7318bf3d403143ce9a8e00c9cd1be909", + "value": "[]:" + } + }, + "b87d54abdc4d4041a4e0159d6ef7de92": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "b8cd42de19d24ca98dd322ec061bb578": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_e41cb371ba784b7fa5d94114dc8b5514", + "IPY_MODEL_898ddff2d8f248018ac56d1730ac653c", + "IPY_MODEL_48f70a0f927b40dda876c66375a13ff8" + ], + "layout": "IPY_MODEL_1956cbd17a1145beba470e76be90d3de" + } + }, + "bfafaa43b80c4e98b3bcabe90bb38f6d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "c05dd577eda24105a83b37900cce6e82": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_8cef038abf5444bc880e57a7dc09ca67" + ], + "layout": "IPY_MODEL_7800208c5d7c407fae3051038bd10e59" + } + }, + "c108754f30734dda9b1cb1cf1f2f0284": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_98150260af0b45eeabf313481dbee6a9", + "IPY_MODEL_84a5c274e0194e2293123492816d9db9" + ], + "layout": "IPY_MODEL_ede3fb102b634dd8b0a839265f31b85d" + } + }, + "c4a585fd003440b8ac62671b5fb8c6e7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_ef9efda7dc044bc39e8f429ff0a969df" + ], + "layout": "IPY_MODEL_72d64a1d2e7844219063aa8b72dccb0e" + } + }, + "c551f491a7944dac9d435c69757bcae9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "c9e544e999884a8ca78cf9e9e3c66738": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_c05dd577eda24105a83b37900cce6e82" + ], + "layout": "IPY_MODEL_d8c20717faab467b84bb6d4bdc174638" + } + }, + "ca734d1960f44ddca617aa5f7068adfd": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 400, + "layout": "IPY_MODEL_777778fb4904496da8e42718dc4f6f9b", + "width": 1600 + } + }, + "cddf0b394eac49a2a3b23d9b340c4177": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_ca734d1960f44ddca617aa5f7068adfd" + ], + "layout": "IPY_MODEL_d6a51864dce543ee88b944b085ecef73" + } + }, + "cf84a1da98114d379cc02044abfe7e48": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "d5e20c26719a42e8acf39ab9276a3d10": { + "model_module": "ipyevents", + "model_module_version": "2.0.1", + "model_name": "EventModel", + "state": { + "_supported_key_events": [ + "keydown", + "keyup" + ], + "_supported_mouse_events": [ + "click", + "auxclick", + "dblclick", + "mouseenter", + "mouseleave", + "mousedown", + "mouseup", + "mousemove", + "wheel", + "contextmenu", + "dragstart", + "drag", + "dragend", + "dragenter", + "dragover", + "dragleave", + "drop" + ], + "_supported_touch_events": [ + "touchstart", + "touchend", + "touchmove", + "touchcancel" + ], + "_view_module": "@jupyter-widgets/controls", + "source": "IPY_MODEL_ef9efda7dc044bc39e8f429ff0a969df", + "throttle_or_debounce": "", + "watched_events": [ + "mousemove" + ], + "xy_coordinate_system": "" + } + }, + "d64e6198111e4d398e0c78ad738b6534": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "d6a51864dce543ee88b944b085ecef73": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "d8c20717faab467b84bb6d4bdc174638": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "dee48952367744b8a9bd27f801d0b02a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_38d9a66203824e8286713098e96d3423", + "max": 119, + "style": "IPY_MODEL_bfafaa43b80c4e98b3bcabe90bb38f6d", + "value": 60 + } + }, + "e0fb3b86588245a19a0f82e69c18ba97": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "e41cb371ba784b7fa5d94114dc8b5514": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_cddf0b394eac49a2a3b23d9b340c4177" + ], + "layout": "IPY_MODEL_8f355e4e3b884c9eacf5dafff94ec17b" + } + }, + "e5cb6fc782bf41a39bbdea4c75db3456": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "ed62630cbd294aaeb4f22474189c3e06": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_c9e544e999884a8ca78cf9e9e3c66738", + "IPY_MODEL_fa4460f49a65428a96f5d87113f855bb", + "IPY_MODEL_b27d0291daf642a8996e09efcc74549c" + ], + "layout": "IPY_MODEL_591f4d1af7c34cbe96098b77b1ff25ba" + } + }, + "ede3fb102b634dd8b0a839265f31b85d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "ef0a177df0d94af6827f5fe37c18c66e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "ef96896f395c4884908448c17362c69a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "ef9efda7dc044bc39e8f429ff0a969df": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", + "_model_module_version": "^0.13", + "_view_count": 1, + "_view_module_version": "^0.13", + "height": 1600, + "layout": "IPY_MODEL_733a63345d174f7ebe0a0749524491c7", + "width": 400 + } + }, + "f1072ded716d4113b399c1998b6a0c8a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "f1f8ba64c8e94a3ca313d7edcf9fe4ef": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "f8a146f7f5c546d38e7f13b20b9f0fbb": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_b017090f06dd444aa6c574dc80960d29" + ], + "layout": "IPY_MODEL_5dad013e54ec44429b114245ac17fba6" + } + }, + "fa4460f49a65428a96f5d87113f855bb": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_7e596a70986e4687970eec5d0041bbeb", + "max": 119, + "style": "IPY_MODEL_9d2a3ab6e8be41aab1d2dba872b5321e", + "value": 60 + } + }, + "fba669955f0346cc8182003b5a3d5d1c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_f8a146f7f5c546d38e7f13b20b9f0fbb" + ], + "layout": "IPY_MODEL_257585f47a4340379a76665c90b5508d" + } + }, + "fdcaff237e654479bb033d2fdcbb6b5f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_12cbc8a8e1a94a85b1021bdf05b8d63e", + "style": "IPY_MODEL_307536236e854849887c15515d430b88", + "value": "my_custom_code(..., sigma=1.0, show_labels=True)" + } + } + }, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/stackview/__init__.py b/stackview/__init__.py index 6ff4387..d1f6f88 100644 --- a/stackview/__init__.py +++ b/stackview/__init__.py @@ -13,7 +13,9 @@ def __init__(self, display_width: int = None, display_height: int = None, continuous_update: bool = False, - slider_text: str = "Slice" + slider_text: str = "Slice", + zoom_factor:float = 1.0, + zoom_spline_order:int = 0 ): import ipywidgets from ._image_widget import ImageWidget @@ -25,9 +27,9 @@ def __init__(self, slice_number = int(image.shape[axis] / 2) if len(image.shape) <= 2: - self.view = ImageWidget(image) + self.view = ImageWidget(image, zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order) else: - self.view = ImageWidget(np.take(image, slice_number, axis=axis)) + self.view = ImageWidget(np.take(image, slice_number, axis=axis), zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order) if display_width is not None: self.view.width = display_width if display_height is not None: @@ -68,7 +70,9 @@ def slice( display_width : int = None, display_height : int = None, continuous_update:bool=False, - slider_text:str="Slice" + slider_text:str="Slice", + zoom_factor:float = 1.0, + zoom_spline_order:int = 0 ): """Shows an image with a slider to go through a stack. @@ -99,7 +103,9 @@ def slice( display_width, display_height, continuous_update, - slider_text + slider_text, + zoom_factor=zoom_factor, + zoom_spline_order=zoom_spline_order ) view = viewer.view slice_slider = viewer.slice_slider @@ -118,7 +124,9 @@ def curtain( display_width: int = None, display_height: int = None, continuous_update: bool = False, - alpha: float = 1 + alpha: float = 1, + zoom_factor:float = 1.0, + zoom_spline_order:int = 0 ): """Show two images and allow with a slider to show either the one or the other image. @@ -175,9 +183,9 @@ def curtain( ) if len(image.shape) <= 2: - view = ImageWidget(image) + view = ImageWidget(image, zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order) else: - view = ImageWidget(np.take(image, slice_number, axis=axis)) + view = ImageWidget(np.take(image, slice_number, axis=axis), zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order) if display_width is not None: view.width = display_width if display_height is not None: @@ -217,7 +225,9 @@ def orthogonal( image, display_width : int = None, display_height : int = None, - continuous_update:bool=False + continuous_update:bool=False, + zoom_factor:float = 1.0, + zoom_spline_order:int = 0 ): """Show three viewers slicing the image stack in Z,Y and X. @@ -243,9 +253,9 @@ def orthogonal( import ipywidgets return ipywidgets.HBox([ - slice(image, axis=0, slider_text="Z", display_width=display_width, display_height=display_height, continuous_update=continuous_update), - slice(image, axis=1, slider_text="Y", display_width=display_width, display_height=display_height, continuous_update=continuous_update), - slice(image, axis=2, slider_text="X", display_width=display_width, display_height=display_height, continuous_update=continuous_update), + slice(image, axis=0, slider_text="Z", display_width=display_width, display_height=display_height, continuous_update=continuous_update, zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order), + slice(image, axis=1, slider_text="Y", display_width=display_width, display_height=display_height, continuous_update=continuous_update, zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order), + slice(image, axis=2, slider_text="X", display_width=display_width, display_height=display_height, continuous_update=continuous_update, zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order), ]) @@ -257,7 +267,9 @@ def side_by_side( display_width: int = None, display_height: int = None, continuous_update: bool = False, - slider_text: str = "Slice" + slider_text: str = "Slice", + zoom_factor:float = 1.0, + zoom_spline_order:int = 0 ): """Shows two images in magenta and green plus a third with their colocalization / overlap view and a slider to go through a stack. @@ -297,9 +309,9 @@ def side_by_side( slice_image = np.take(image1, slice_number, axis=axis) zeros_image = np.zeros(slice_image.shape) - view1 = ImageWidget(slice_image) - view2 = ImageWidget(slice_image) - view3 = ImageWidget(slice_image) + view1 = ImageWidget(slice_image, zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order) + view2 = ImageWidget(slice_image, zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order) + view3 = ImageWidget(slice_image, zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order) if display_width is not None: view1.display = display_width @@ -378,6 +390,8 @@ def interact(func, *args, continuous_update: bool = False, context:dict = None, + zoom_factor:float = 1.0, + zoom_spline_order:int = 0, **kwargs): """Takes a function which has an image as first parameter and additional parameters. It will build a user interface consisting of sliders for numeric parameters and parameters @@ -453,7 +467,7 @@ def interact(func, default_value = kwargs[key] exposable_parameters.append(inspect.Parameter(key, inspect.Parameter.KEYWORD_ONLY, default=default_value)) - viewer = _SliceViewer(image) + viewer = _SliceViewer(image, zoom_factor=zoom_factor, zoom_spline_order=zoom_spline_order) if viewer.slice_slider is not None: viewer.slice_slider.continuous_update=continuous_update command_label = ipywidgets.Label(value=func.__name__ + "()") @@ -531,7 +545,9 @@ def picker( display_width: int = None, display_height: int = None, continuous_update: bool = False, - slider_text: str = "Slice" + slider_text: str = "Slice", + zoom_factor:float = 1.0, + zoom_spline_order:int = 0 ): """Shows an image with a slider to go through a stack plus a label with the current mouse position and intensity at that position. @@ -559,7 +575,9 @@ def picker( display_width=display_width, display_height=display_height, continuous_update=continuous_update, - slider_text=slider_text + slider_text=slider_text, + zoom_factor=zoom_factor, + zoom_spline_order=zoom_spline_order ) view = viewer.view slice_slider = viewer.slice_slider @@ -569,8 +587,8 @@ def picker( event_handler = Event(source=view, watched_events=['mousemove']) def update_display(event): - relative_position_x = event['relativeX'] - relative_position_y = event['relativeY'] + relative_position_x = event['relativeX'] / zoom_factor + relative_position_y = event['relativeY'] / zoom_factor absolute_position_x = int(relative_position_x) absolute_position_y = int(relative_position_y) diff --git a/stackview/_image_widget.py b/stackview/_image_widget.py index e0d466b..214b43e 100644 --- a/stackview/_image_widget.py +++ b/stackview/_image_widget.py @@ -3,20 +3,21 @@ from functools import lru_cache class ImageWidget(Canvas): - def __init__(self, image): + def __init__(self, image, zoom_factor:float=1.0, zoom_spline_order:int=0): if not ((len(image.shape) == 2) or (len(image.shape) == 3 and image.shape[-1] == 3)): raise NotImplementedError("Only 2D images are supported" + str(image.shape)) width = image.shape[1] height = image.shape[0] - super().__init__(width=width, height=height) + self.zoom_factor = zoom_factor + self.zoom_spline_order = zoom_spline_order + super().__init__(width=width * zoom_factor, height=height * zoom_factor) self.fill_style = "red" self.stroke_style = "blue" self.stroke_rect(0, 0, width=width, height=height) self.data = np.asarray(image) self.layout.stretch = False - @property def data(self): """Image data as numpy array @@ -32,11 +33,32 @@ def data(self, new_data): self._data = np.asarray(new_data).swapaxes(0, 1) self._update_image() - self.width = self._data.shape[1] - self.height = self._data.shape[0] + self.width = self._data.shape[1] * self.zoom_factor + self.height = self._data.shape[0] * self.zoom_factor def _update_image(self): - self.put_image_data(_img_to_rgb(self._data), 0, 0) + if self.zoom_factor == 1.0: + self.put_image_data(_img_to_rgb(self._data), 0, 0) + else: + zoomed = self._zoom(self._data) + self.put_image_data(_img_to_rgb(zoomed), 0, 0) + + def _zoom(self, data): + if len(data.shape) == 3: + # handle RGB images + return np.asarray([self._zoom(data[:,:,i]) for i in range(data.shape[2])]).swapaxes(0, 2).swapaxes(1, 0) + + from scipy.ndimage import affine_transform + matrix = np.asarray([[1.0 / self.zoom_factor, 0, -0.5], + [0, 1.0 / self.zoom_factor, -0.5], + [0, 0, 1], + ]) + zoomed = affine_transform(data, + matrix, + output_shape=np.asarray(data.shape) * self.zoom_factor, + order=self.zoom_spline_order, + mode='nearest') + return zoomed def _is_label_image(image): From 6153a523777e6d29efe62770b06b4b01db677559 Mon Sep 17 00:00:00 2001 From: Robert Haase Date: Fri, 23 Dec 2022 12:34:51 +0100 Subject: [PATCH 3/6] bugfix: zoom < 1 didn't work --- docs/zoom.ipynb | 1411 +++++++++++++++++++++++++----------- stackview/_image_widget.py | 8 +- 2 files changed, 981 insertions(+), 438 deletions(-) diff --git a/docs/zoom.ipynb b/docs/zoom.ipynb index a7b7a5f..6a00bef 100644 --- a/docs/zoom.ipynb +++ b/docs/zoom.ipynb @@ -16,7 +16,9 @@ "outputs": [], "source": [ "import stackview\n", - "from skimage.io import imread, imshow" + "from skimage.io import imread, imshow\n", + "from skimage.filters import gaussian, threshold_otsu, sobel\n", + "from skimage.measure import label" ] }, { @@ -26,7 +28,96 @@ "metadata": {}, "outputs": [], "source": [ - "image = imread('data/Haase_MRT_tfl3d1.tif')[:,80:120]" + "image = imread('data/Haase_MRT_tfl3d1.tif')[:,80:120,:40]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "edc6b6be-9381-4f84-827a-7a7844740f2a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
shape" + str(self.shape).replace(" ", " ") + "
dtype" + str(self.dtype) + "
\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
shape(120, 40, 40)
dtypeuint16
size375.0 kB
min0
max65535
\n", + "\n", + "
" + ], + "text/plain": [ + "StackViewNDArray([[[ 0, 1297, 458, ..., 992, 1221, 1755],\n", + " [ 0, 839, 534, ..., 2441, 1679, 1297],\n", + " [ 0, 2060, 2060, ..., 839, 610, 687],\n", + " ...,\n", + " [ 0, 0, 992, ..., 1221, 1526, 2289],\n", + " [ 0, 0, 1297, ..., 1297, 1144, 2213],\n", + " [ 0, 0, 1068, ..., 1679, 1831, 1679]],\n", + "\n", + " [[ 0, 916, 763, ..., 763, 1144, 1984],\n", + " [ 0, 1221, 992, ..., 1679, 916, 1450],\n", + " [ 0, 916, 992, ..., 1144, 992, 1679],\n", + " ...,\n", + " [ 0, 0, 2060, ..., 1984, 1831, 687],\n", + " [ 0, 0, 1907, ..., 992, 2060, 916],\n", + " [ 0, 0, 1755, ..., 1144, 2670, 1068]],\n", + "\n", + " [[ 0, 763, 916, ..., 1450, 839, 1221],\n", + " [ 0, 1679, 992, ..., 534, 610, 763],\n", + " [ 0, 305, 1602, ..., 839, 3052, 1907],\n", + " ...,\n", + " [ 0, 0, 305, ..., 1831, 2213, 2213],\n", + " [ 0, 0, 916, ..., 763, 1068, 2289],\n", + " [ 0, 0, 1221, ..., 1450, 610, 2823]],\n", + "\n", + " ...,\n", + "\n", + " [[ 0, 763, 1373, ..., 1526, 2899, 1297],\n", + " [ 0, 763, 992, ..., 1297, 763, 1602],\n", + " [ 0, 992, 534, ..., 1679, 534, 2289],\n", + " ...,\n", + " [ 0, 0, 1221, ..., 839, 534, 687],\n", + " [ 0, 0, 305, ..., 916, 1907, 839],\n", + " [ 0, 0, 992, ..., 1221, 1144, 1907]],\n", + "\n", + " [[ 0, 458, 763, ..., 2747, 1602, 763],\n", + " [ 0, 458, 1068, ..., 763, 763, 1984],\n", + " [ 0, 763, 1602, ..., 1297, 1450, 1221],\n", + " ...,\n", + " [ 0, 0, 992, ..., 534, 1907, 1144],\n", + " [ 0, 0, 839, ..., 1373, 1984, 1373],\n", + " [ 0, 0, 839, ..., 1526, 1221, 1373]],\n", + "\n", + " [[ 0, 458, 1297, ..., 992, 2365, 2136],\n", + " [ 0, 381, 1068, ..., 687, 1526, 1373],\n", + " [ 0, 534, 1068, ..., 1907, 1373, 305],\n", + " ...,\n", + " [ 0, 0, 1602, ..., 916, 458, 534],\n", + " [ 0, 0, 1602, ..., 1144, 1526, 534],\n", + " [ 0, 0, 839, ..., 1068, 1907, 1144]]],\n", + " dtype=uint16)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stackview.insight(image)" ] }, { @@ -39,22 +130,22 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "31531f57-4f87-4eea-83cd-f38b8b1404f2", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "c108754f30734dda9b1cb1cf1f2f0284", + "model_id": "8fa062dfe2414c17b3144858fb6ed4f0", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=160, width=40),)),)), IntSlider(value=60, cont…" + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=40, width=40),)),)), IntSlider(value=60, conti…" ] }, - "execution_count": 3, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -64,31 +155,31 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "id": "f64d7620-56c7-41b5-ab9b-b8c520e9fecb", + "cell_type": "markdown", + "id": "878ea5a6-4f35-42da-bd78-2b6b4420442c", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "Thus, you can provide a `zoom_factor`." + ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "b0996d45-e1a5-40f6-a085-62018fc087e1", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "913fe9f74629412182619083ab28847d", + "model_id": "a444aad4584449ffb8674ecf95d764ba", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=1600, width=400),)),)), IntSlider(value=60, co…" + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=400, width=400),)),)), IntSlider(value=60, con…" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -97,24 +188,32 @@ "stackview.slice(image, zoom_factor=10)" ] }, + { + "cell_type": "markdown", + "id": "16fe74de-38a4-4e58-812d-51cbe6c56c0d", + "metadata": {}, + "source": [ + "This also works with other tools such as the `picker`." + ] + }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "21d8e810-54bf-4f9f-af10-bf07c83317b7", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "2f1e959f7d4a40aab60a79d8885b72bd", + "model_id": "29a2e95de2d7462195cda8095e7f45b5", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=1600, width=400),)),)), IntSlider(value=60, co…" + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=400, width=400),)),)), IntSlider(value=60, con…" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -123,24 +222,32 @@ "stackview.picker(image, zoom_factor=10)" ] }, + { + "cell_type": "markdown", + "id": "6c6de978-81d7-43de-ae30-14aa417edda6", + "metadata": {}, + "source": [ + "If you don't like the neareast-neighbor interpolation, you can also specify a higher order of the spline-interpolation used under the hood." + ] + }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "4d8610ce-9d8f-4daf-8cc7-13f48892a0d1", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ed62630cbd294aaeb4f22474189c3e06", + "model_id": "68eb8505f368426ba025f96d5001ffd9", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=1600, width=400),)),)), IntSlider(value=60, co…" + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=400, width=400),)),)), IntSlider(value=60, con…" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -149,24 +256,32 @@ "stackview.picker(image, zoom_factor=10, zoom_spline_order=3)" ] }, + { + "cell_type": "markdown", + "id": "1b31f251-ce03-4625-9058-8c1fcb781308", + "metadata": {}, + "source": [ + "Some more zoomed views to check if `stackview` tools work." + ] + }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "971ca2de-af40-4ee5-8aa6-86bb7d7c60eb", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "b8cd42de19d24ca98dd322ec061bb578", + "model_id": "2012207a339c4a16aa460e524980444f", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=400, width=1600),)),)), IntSlider(value=60, de…" + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=400, width=400),)),)), IntSlider(value=60, des…" ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -177,14 +292,95 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "9c4874b1-a382-427a-8c2d-5273b802a037", + "execution_count": 9, + "id": "f4bc53f9-a4a7-4db3-9235-b3cd0b2be8c4", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4c738e87ec5c43fba7a71380c74f479b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=512, width=508),)),)), Label(value='[]:')))" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "from skimage.filters import gaussian, threshold_otsu, sobel\n", - "from skimage.measure import label\n", + "blobs = imread('data/blobs.tif')\n", "\n", + "stackview.picker(label(blobs > 120), zoom_factor=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "02acd2fa-1262-45bd-bb42-562aeb443a93", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8d43d456470a4bceac5fe22a0a44b286", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(HBox(children=(VBox(children=(ImageWidget(height=127, width=128),)),)), HBox(children=(VBox(chi…" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stackview.side_by_side(blobs, label(blobs > 120), zoom_factor=0.5, continuous_update=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "9c4874b1-a382-427a-8c2d-5273b802a037", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d57ec57bab534a7b82726c755ba4abbc", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=1.0, continuous_update=False, description='sigma', max=10.0, step=1.0)…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "891a589c0c5449c6a9ed55d300d40f7e", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=2560, width=2540),)),)), Label(value='my_custo…" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ "def my_custom_code(image, sigma:float = 1, show_labels: bool = True):\n", " sigma = abs(sigma)\n", " blurred_image = gaussian(image, sigma=sigma)\n", @@ -194,9 +390,9 @@ " if show_labels:\n", " return label(binary_image)\n", " else:\n", - " return edge_image * 255 + image \n", + " return edge_image * image.max() + image \n", "\n", - "stackview.interact(my_custom_code, image, zoom_factor=10)" + "stackview.interact(my_custom_code, blobs, zoom_factor=10)" ] }, { @@ -229,7 +425,19 @@ "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { - "0bdfc810124546c0ab58f633f7c8c72a": { + "08f805750607429491a4b7153fc18181": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "0e915458232c4ec99324d1a05c050e3c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "0ed60cf09bda45558cd285a0e11cb5f6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", @@ -237,84 +445,352 @@ "behavior": "drag-tap", "continuous_update": false, "description": "Slice", - "layout": "IPY_MODEL_477500302bac4e62ad094942d1c00ceb", + "layout": "IPY_MODEL_4b7a6c829e5346c2af544553ee003913", + "max": 119, + "style": "IPY_MODEL_b3b2ef8e3e3b49c6903e2a6430f4f5d6", + "value": 60 + } + }, + "107bdb13dd664e02a7b72e8be997751e": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 127, + "layout": "IPY_MODEL_f2e7d846b1ee477ca2c6e14be0289a0e", + "width": 128 + } + }, + "16cf91f015ea418da751fdbafaf3f705": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_63e3e19b4e294436af5dfe36c38975da" + ], + "layout": "IPY_MODEL_9b63a80c8cfd445b9c5921e416ee64ef" + } + }, + "1be37cc230f44f4db850c5bd56ed7a29": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "description": "Slice", + "layout": "IPY_MODEL_de909ad365674977b83a38b23a8aead7", "max": 119, - "style": "IPY_MODEL_f1072ded716d4113b399c1998b6a0c8a", + "style": "IPY_MODEL_a816ff867c3342d7aaaed3ee46228c02", "value": 60 } }, - "0d6c103a17704d388688b35e2a17fff4": { + "1c9616ec01e44cd2a2fbeacc90537643": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "description": "Curtain", + "layout": "IPY_MODEL_3c7fff60392a48a5ae5dc664c53f6983", + "max": 40, + "style": "IPY_MODEL_f0fc2c5ca1774629a5de45754e41fc66", + "value": 20 + } + }, + "2012207a339c4a16aa460e524980444f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_29c3c76757b14d0e8f3988a79bea1915", + "IPY_MODEL_1be37cc230f44f4db850c5bd56ed7a29", + "IPY_MODEL_1c9616ec01e44cd2a2fbeacc90537643" + ], + "layout": "IPY_MODEL_7a275ed4887145e6bf0e23cb13dacdac" + } + }, + "23726342de69481fb1c1fddb25e3901b": { + "model_module": "ipyevents", + "model_module_version": "2.0.1", + "model_name": "EventModel", + "state": { + "_supported_key_events": [ + "keydown", + "keyup" + ], + "_supported_mouse_events": [ + "click", + "auxclick", + "dblclick", + "mouseenter", + "mouseleave", + "mousedown", + "mouseup", + "mousemove", + "wheel", + "contextmenu", + "dragstart", + "drag", + "dragend", + "dragenter", + "dragover", + "dragleave", + "drop" + ], + "_supported_touch_events": [ + "touchstart", + "touchend", + "touchmove", + "touchcancel" + ], + "_view_module": "@jupyter-widgets/controls", + "source": "IPY_MODEL_f45dc60ca5ee4458b1244c8a39ea1baf", + "throttle_or_debounce": "", + "watched_events": [ + "mousemove" + ], + "xy_coordinate_system": "" + } + }, + "281cd8b2e0e54371a842586e8f6115d3": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 40, + "layout": "IPY_MODEL_9a33e259a797495e89a4cb1fe1416f62", + "width": 40 + } + }, + "290f435a07674756b77709f5df59de3f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "0ddd14ea19904df8b5649b5066e7b2b1": { + "29a2e95de2d7462195cda8095e7f45b5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_c4a585fd003440b8ac62671b5fb8c6e7" + "IPY_MODEL_ed2699b64ae54d31ab3faec7f0b21e7c", + "IPY_MODEL_0ed60cf09bda45558cd285a0e11cb5f6", + "IPY_MODEL_c4b8671b9e68430fb1f3feff08ca1c41" ], - "layout": "IPY_MODEL_0d6c103a17704d388688b35e2a17fff4" + "layout": "IPY_MODEL_de66bfc3ec684a7d8e1cff0e634d97ba" } }, - "0fd022492d104c74b3247bd6d3f02ddd": { + "29c3c76757b14d0e8f3988a79bea1915": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LabelModel", + "model_name": "HBoxModel", "state": { - "layout": "IPY_MODEL_172109086b1a4a65ada29cea6d9ae27f", - "style": "IPY_MODEL_858a9f4fefe0454994e2e7844fc62a09", - "value": "[]:" + "children": [ + "IPY_MODEL_54ca9991651d4acda0f525c30a522f96" + ], + "layout": "IPY_MODEL_9f3ec6f15aa14000a441bfc1a9e84fd6" } }, - "12cbc8a8e1a94a85b1021bdf05b8d63e": { + "29f5646baba3423ba2225a47f3d0fafc": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "172109086b1a4a65ada29cea6d9ae27f": { + "2cb42a7657ea48209072dfe9c6c0bf44": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelStyleModel", + "state": { + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null + } + }, + "3415f3784f154dc6ab4a51c74fa77188": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "17db8e1bb7224baea677a41b4d2bb12b": { + "36ebacb58448483ebb6e89737c0e44ab": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "1956cbd17a1145beba470e76be90d3de": { + "38b36a5905494bbf92842d71010295a1": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "257585f47a4340379a76665c90b5508d": { + "3c7fff60392a48a5ae5dc664c53f6983": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "2f1e959f7d4a40aab60a79d8885b72bd": { + "3edb0a6f250143e48ce5d6e47637a64e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_0ddd14ea19904df8b5649b5066e7b2b1", - "IPY_MODEL_dee48952367744b8a9bd27f801d0b02a", - "IPY_MODEL_0fd022492d104c74b3247bd6d3f02ddd" + "IPY_MODEL_d5f384d33f714b40afa412e05d743ae6" ], - "layout": "IPY_MODEL_4effd12b25f34d158ba83cb93d851e01" + "layout": "IPY_MODEL_bffee614436a4f4590e875b6540e0356" } }, - "307536236e854849887c15515d430b88": { - "model_module": "@jupyter-widgets/controls", + "3f942ea2353a4c90ad220ac1627486a7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "40ee1bb387184511978fe9dde0822bb8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_57f59a29915f451d9f0aa80765727832", + "style": "IPY_MODEL_f709fe6b3b4c47e8be497189a4cf6c56", + "value": "my_custom_code(..., sigma=1.0, show_labels=True)" + } + }, + "436c3d4a9fb44f32bf95723e74818073": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "4435d43acb9a4aceb07b0b41273b76f2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "450f8f1afe094724b5a93637c1315e56": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "layout": "IPY_MODEL_afe226e0d7fc4367869babf2db334214" + } + }, + "46f43b1e2a9a4d93897d209c5eb3c2c7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_a690f7fcfea848b2a9fa2c7688bd47b5" + ], + "layout": "IPY_MODEL_a8055a8a9b854a14bd4e473fe6a29d0b" + } + }, + "474ae46ea4cf41ba8a9a932e7292c829": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "483fad63d9924e829431f19f8a344b51": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "4b15781027224f82a3f5b8f84195eecb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "4b7a6c829e5346c2af544553ee003913": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "4c738e87ec5c43fba7a71380c74f479b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_caf31c235f2d47eca11719ebb50f2d50", + "IPY_MODEL_736f3510869e4e13ab6be09f21de0460" + ], + "layout": "IPY_MODEL_9238a29bcbbf4b16b83a3a5511620ce5" + } + }, + "4ddc02e3880c452cba15a98bed106e2e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "507b53b194504ce9b4b133582bb375d9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "5159137beebd4b528af4c6f18d02fc15": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 400, + "layout": "IPY_MODEL_dc05020ea0ea4fd9820d1d784f4e27d0", + "width": 400 + } + }, + "54ca9991651d4acda0f525c30a522f96": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_bbf39c90bb704e56b1fc55fecaf8c354" + ], + "layout": "IPY_MODEL_29f5646baba3423ba2225a47f3d0fafc" + } + }, + "555d6f160dcf4fbdbe590a30f469af36": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "57f59a29915f451d9f0aa80765727832": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "5851e0d245ab4758a0ded4a2ffb0e68a": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "LabelStyleModel", "state": { @@ -328,18 +804,21 @@ "text_decoration": null } }, - "3405901baa9f442c9cfe33a3f3ec3665": { + "5b15f4cbcf8148fea3fdaf6073287d90": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "IntSliderModel", "state": { - "children": [ - "IPY_MODEL_49f4e8e367354002add65a82cfecad01" - ], - "layout": "IPY_MODEL_17db8e1bb7224baea677a41b4d2bb12b" + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_ece4354e6eed460d84d54669ee475514", + "max": 119, + "style": "IPY_MODEL_834f7de84e0a4f8cb29e3036859b43e0", + "value": 60 } }, - "389905871b84446699de3fa4bb4dd2a6": { + "5ce814236d284fb1a433e4475cfda4b9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "CheckboxStyleModel", @@ -347,108 +826,151 @@ "description_width": "" } }, - "38d9a66203824e8286713098e96d3423": { + "5ea65783df2a47d1bbe8784e718b0963": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "3d80999e32b145ddaedce5f12c39976a": { + "610a058cceb1421189b644e1ff032487": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_7406b226fd90424f9e56506620038b91" + ], + "layout": "IPY_MODEL_4435d43acb9a4aceb07b0b41273b76f2" + } + }, + "636771fa56674dbdb7e2b1bd9d0b54d3": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "412329650fbc4c4f904f2a490040a4e8": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", - "state": { - "layout": "IPY_MODEL_cf84a1da98114d379cc02044abfe7e48", - "msg_id": "4d51ac4f-dce3-4a9d-9360-201af3281fc1" - } - }, - "4652b415c0ff4bd48c2c3ae861a5636d": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasManagerModel", + "63e3e19b4e294436af5dfe36c38975da": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", "state": { - "_model_module_version": "^0.13", - "_view_module": null, - "_view_module_version": "" + "children": [ + "IPY_MODEL_6e009fe6a66c4726a5aa7e0274db897b" + ], + "layout": "IPY_MODEL_c8b0d540f6b841aca0628e428b8a17c9" } }, - "477500302bac4e62ad094942d1c00ceb": { + "684c5a2f7c184082b44f84bf660cd287": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "48f70a0f927b40dda876c66375a13ff8": { + "68eb8505f368426ba025f96d5001ffd9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "model_name": "VBoxModel", "state": { - "behavior": "drag-tap", - "description": "Curtain", - "layout": "IPY_MODEL_ef0a177df0d94af6827f5fe37c18c66e", - "max": 160, - "style": "IPY_MODEL_5c91ee08c1764ce59bea39efed86b086", - "value": 80 + "children": [ + "IPY_MODEL_bb106cdcd1eb426bb84e569182e41b30", + "IPY_MODEL_d8333c92a733464a91ede259ec845797", + "IPY_MODEL_793b13bf254444a68cf8b0d8d34c598e" + ], + "layout": "IPY_MODEL_bfe0aa355b2e429daad40695e03ab0ec" + } + }, + "6c6e6e41ef484a68b116fe3c69c853c7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_f45dc60ca5ee4458b1244c8a39ea1baf" + ], + "layout": "IPY_MODEL_aee6af5d05c343e180426ed1428892b0" } }, - "49f4e8e367354002add65a82cfecad01": { + "6e009fe6a66c4726a5aa7e0274db897b": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", + "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", "_model_module_version": "^0.13", "_view_module_version": "^0.13", - "height": 160, - "layout": "IPY_MODEL_f1f8ba64c8e94a3ca313d7edcf9fe4ef", - "width": 40 + "height": 127, + "layout": "IPY_MODEL_08f805750607429491a4b7153fc18181", + "width": 128 } }, - "4effd12b25f34d158ba83cb93d851e01": { + "736f3510869e4e13ab6be09f21de0460": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_afe597d02542445bbd635d4415ab4033", + "style": "IPY_MODEL_a83d21969dc54a35b50e18318ca67d85", + "value": "[]:" + } + }, + "7406b226fd90424f9e56506620038b91": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_107bdb13dd664e02a7b72e8be997751e" + ], + "layout": "IPY_MODEL_db4ec158f2aa4453bb841d5f321b6d0a" + } + }, + "793b13bf254444a68cf8b0d8d34c598e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_5ea65783df2a47d1bbe8784e718b0963", + "style": "IPY_MODEL_5851e0d245ab4758a0ded4a2ffb0e68a", + "value": "[]:" + } + }, + "7a275ed4887145e6bf0e23cb13dacdac": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "55c96d5f9fdb41dc9124f2414fa20db1": { + "7b0bc2ed36234d3fa96448f239496239": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "577d2d6e60964b06ae28e5f0e08f270e": { + "7d2b58cd7fa34f2d8b466f5c5083dad4": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "591f4d1af7c34cbe96098b77b1ff25ba": { + "7ec1d6c5812a47a1bc2e2efa93a51498": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "5c91ee08c1764ce59bea39efed86b086": { - "model_module": "@jupyter-widgets/controls", + "7ec4b4c5eead46f3aca318d2a4c05625": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "description_width": "" - } + "model_name": "LayoutModel", + "state": {} }, - "5dad013e54ec44429b114245ac17fba6": { + "81d06a252b744d48a5c407866951bbc0": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "5f276878b50348a2a238a23b16a506be": { + "834f7de84e0a4f8cb29e3036859b43e0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "SliderStyleModel", @@ -456,21 +978,24 @@ "description_width": "" } }, - "5f56fb8ee7c14c358ba06cb462118b4a": { + "84b95f07d9ca4eda8edfe9ebe155288f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "model_name": "VBoxModel", "state": { - "behavior": "drag-tap", - "continuous_update": false, - "description": "Slice", - "layout": "IPY_MODEL_ad9df3351e8f4466a7065bee7b9d18c9", - "max": 119, - "style": "IPY_MODEL_a5e8b8b7c4cc43c58cca458bf1dc4d7c", - "value": 60 + "children": [ + "IPY_MODEL_281cd8b2e0e54371a842586e8f6115d3" + ], + "layout": "IPY_MODEL_0e915458232c4ec99324d1a05c050e3c" } }, - "603f48392a9047029b7869d847cd30d1": { + "84ef3a8640144da9b06357a1d2b8d801": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "857fac6e324b40b584510b0119c6e4ce": { "model_module": "ipyevents", "model_module_version": "2.0.1", "model_name": "EventModel", @@ -505,7 +1030,7 @@ "touchcancel" ], "_view_module": "@jupyter-widgets/controls", - "source": "IPY_MODEL_8cef038abf5444bc880e57a7dc09ca67", + "source": "IPY_MODEL_d5f384d33f714b40afa412e05d743ae6", "throttle_or_debounce": "", "watched_events": [ "mousemove" @@ -513,84 +1038,184 @@ "xy_coordinate_system": "" } }, - "72d64a1d2e7844219063aa8b72dccb0e": { + "860528427cc2484ea5def58a696b1a03": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "7318bf3d403143ce9a8e00c9cd1be909": { + "891a589c0c5449c6a9ed55d300d40f7e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LabelStyleModel", + "model_name": "VBoxModel", "state": { - "description_width": "", - "font_family": null, - "font_size": null, - "font_style": null, - "font_variant": null, - "font_weight": null, - "text_color": null, - "text_decoration": null + "children": [ + "IPY_MODEL_c6fd230a4a2c44d7a2b1b84e27eb301a", + "IPY_MODEL_40ee1bb387184511978fe9dde0822bb8" + ], + "layout": "IPY_MODEL_636771fa56674dbdb7e2b1bd9d0b54d3" } }, - "733a63345d174f7ebe0a0749524491c7": { - "model_module": "@jupyter-widgets/base", + "8aa455ac80494ef495673b6c21e6398a": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "8d43d456470a4bceac5fe22a0a44b286": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_b01ce584037344e5bc86d9a5ac63a4d5", + "IPY_MODEL_16cf91f015ea418da751fdbafaf3f705", + "IPY_MODEL_610a058cceb1421189b644e1ff032487" + ], + "layout": "IPY_MODEL_81d06a252b744d48a5c407866951bbc0" + } + }, + "8fa062dfe2414c17b3144858fb6ed4f0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_e4753f58e14844f79f6d800415546334", + "IPY_MODEL_f885fa6ccc754d5c8e1db91df621a5f2" + ], + "layout": "IPY_MODEL_474ae46ea4cf41ba8a9a932e7292c829" + } }, - "73a2ff33db8547bc95d8052f480ce123": { + "9238a29bcbbf4b16b83a3a5511620ce5": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "75cc2591dbdc43729e6201e25142e9e5": { + "9a33e259a797495e89a4cb1fe1416f62": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "777778fb4904496da8e42718dc4f6f9b": { + "9b63a80c8cfd445b9c5921e416ee64ef": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "7800208c5d7c407fae3051038bd10e59": { + "9db6aa0c91284f798098851790454852": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", + "_model_module_version": "^0.13", + "_view_count": 1, + "_view_module_version": "^0.13", + "height": 400, + "layout": "IPY_MODEL_af0cce7a02ed4a4e8d689c22bc6cddba", + "width": 400 + } + }, + "9f3ec6f15aa14000a441bfc1a9e84fd6": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "7bf64041f014499597b1ab1ceaaaef4b": { + "a12717ea12364f0f91177085e5f79123": { + "model_module": "ipyevents", + "model_module_version": "2.0.1", + "model_name": "EventModel", + "state": { + "_supported_key_events": [ + "keydown", + "keyup" + ], + "_supported_mouse_events": [ + "click", + "auxclick", + "dblclick", + "mouseenter", + "mouseleave", + "mousedown", + "mouseup", + "mousemove", + "wheel", + "contextmenu", + "dragstart", + "drag", + "dragend", + "dragenter", + "dragover", + "dragleave", + "drop" + ], + "_supported_touch_events": [ + "touchstart", + "touchend", + "touchmove", + "touchcancel" + ], + "_view_module": "@jupyter-widgets/controls", + "source": "IPY_MODEL_9db6aa0c91284f798098851790454852", + "throttle_or_debounce": "", + "watched_events": [ + "mousemove" + ], + "xy_coordinate_system": "" + } + }, + "a444aad4584449ffb8674ecf95d764ba": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_aea432c7231e4d9ca202fa48d3567b64", + "IPY_MODEL_5b15f4cbcf8148fea3fdaf6073287d90" + ], + "layout": "IPY_MODEL_ba2881f0f1d54e86b1ce739dc1e03949" + } + }, + "a649767cf4344ff388a1b1fca20788d7": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "7e596a70986e4687970eec5d0041bbeb": { + "a690f7fcfea848b2a9fa2c7688bd47b5": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 2560, + "layout": "IPY_MODEL_290f435a07674756b77709f5df59de3f", + "width": 2540 + } + }, + "a8055a8a9b854a14bd4e473fe6a29d0b": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "84a5c274e0194e2293123492816d9db9": { + "a816ff867c3342d7aaaed3ee46228c02": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "model_name": "SliderStyleModel", "state": { - "behavior": "drag-tap", - "continuous_update": false, - "description": "Slice", - "layout": "IPY_MODEL_55c96d5f9fdb41dc9124f2414fa20db1", - "max": 119, - "style": "IPY_MODEL_5f276878b50348a2a238a23b16a506be", - "value": 60 + "description_width": "" } }, - "858a9f4fefe0454994e2e7844fc62a09": { + "a83d21969dc54a35b50e18318ca67d85": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "LabelStyleModel", @@ -605,103 +1230,61 @@ "text_decoration": null } }, - "898ddff2d8f248018ac56d1730ac653c": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "IntSliderModel", - "state": { - "behavior": "drag-tap", - "description": "Slice", - "layout": "IPY_MODEL_73a2ff33db8547bc95d8052f480ce123", - "max": 119, - "style": "IPY_MODEL_b87d54abdc4d4041a4e0159d6ef7de92", - "value": 60 - } - }, - "89967b7538b9423681707dc587bb6fc4": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "CheckboxModel", - "state": { - "description": "show_labels", - "disabled": false, - "layout": "IPY_MODEL_3d80999e32b145ddaedce5f12c39976a", - "style": "IPY_MODEL_389905871b84446699de3fa4bb4dd2a6", - "value": true - } - }, - "8cef038abf5444bc880e57a7dc09ca67": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", - "state": { - "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", - "_model_module_version": "^0.13", - "_view_count": 1, - "_view_module_version": "^0.13", - "height": 1600, - "layout": "IPY_MODEL_a2a4bf61cc514188aea0d0ed4cac67fe", - "width": 400 - } - }, - "8f355e4e3b884c9eacf5dafff94ec17b": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "913fe9f74629412182619083ab28847d": { + "aabda667f6a9412b98589de90d1fd9fc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "SliderStyleModel", "state": { - "children": [ - "IPY_MODEL_fba669955f0346cc8182003b5a3d5d1c", - "IPY_MODEL_0bdfc810124546c0ab58f633f7c8c72a" - ], - "layout": "IPY_MODEL_d64e6198111e4d398e0c78ad738b6534" + "description_width": "" } }, - "98150260af0b45eeabf313481dbee6a9": { + "aea432c7231e4d9ca202fa48d3567b64": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_3405901baa9f442c9cfe33a3f3ec3665" + "IPY_MODEL_baa3532b3ed14ae7a9a2bdf5f5b24ab0" ], - "layout": "IPY_MODEL_ef96896f395c4884908448c17362c69a" + "layout": "IPY_MODEL_de6e936fdee2429388928d109262b737" } }, - "9d2a3ab6e8be41aab1d2dba872b5321e": { - "model_module": "@jupyter-widgets/controls", + "aee6af5d05c343e180426ed1428892b0": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "description_width": "" - } + "model_name": "LayoutModel", + "state": {} + }, + "af0cce7a02ed4a4e8d689c22bc6cddba": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "afe226e0d7fc4367869babf2db334214": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} }, - "a2a4bf61cc514188aea0d0ed4cac67fe": { + "afe597d02542445bbd635d4415ab4033": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "a4d2193c0156419a9c2b19b34b700dee": { + "b01ce584037344e5bc86d9a5ac63a4d5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", + "model_name": "HBoxModel", "state": { - "behavior": "drag-tap", - "continuous_update": false, - "description": "sigma", - "layout": "IPY_MODEL_e5cb6fc782bf41a39bbdea4c75db3456", - "max": 10, - "style": "IPY_MODEL_e0fb3b86588245a19a0f82e69c18ba97", - "value": 1 + "children": [ + "IPY_MODEL_f7e257328396497787aac4b673b1b60f" + ], + "layout": "IPY_MODEL_7ec4b4c5eead46f3aca318d2a4c05625" } }, - "a5e8b8b7c4cc43c58cca458bf1dc4d7c": { + "b3b2ef8e3e3b49c6903e2a6430f4f5d6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "SliderStyleModel", @@ -709,345 +1292,320 @@ "description_width": "" } }, - "a7bcc90945d647c388c5d21e6cd7ab97": { + "ba2881f0f1d54e86b1ce739dc1e03949": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "ba8cb19e295a4367b5930638e85c618a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "baa3532b3ed14ae7a9a2bdf5f5b24ab0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { - "_dom_classes": [ - "widget-interact" - ], "children": [ - "IPY_MODEL_a4d2193c0156419a9c2b19b34b700dee", - "IPY_MODEL_89967b7538b9423681707dc587bb6fc4", - "IPY_MODEL_412329650fbc4c4f904f2a490040a4e8" + "IPY_MODEL_5159137beebd4b528af4c6f18d02fc15" ], - "layout": "IPY_MODEL_7bf64041f014499597b1ab1ceaaaef4b" + "layout": "IPY_MODEL_7b0bc2ed36234d3fa96448f239496239" } }, - "ad9df3351e8f4466a7065bee7b9d18c9": { - "model_module": "@jupyter-widgets/base", + "bb106cdcd1eb426bb84e569182e41b30": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "b017090f06dd444aa6c574dc80960d29": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "model_name": "HBoxModel", "state": { - "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 1600, - "layout": "IPY_MODEL_75cc2591dbdc43729e6201e25142e9e5", - "width": 400 + "children": [ + "IPY_MODEL_6c6e6e41ef484a68b116fe3c69c853c7" + ], + "layout": "IPY_MODEL_84ef3a8640144da9b06357a1d2b8d801" } }, - "b01a8014607a42cf997e780cfec6e286": { + "bbf39c90bb704e56b1fc55fecaf8c354": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", + "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", "_model_module_version": "^0.13", "_view_module_version": "^0.13", - "height": 1600, - "layout": "IPY_MODEL_577d2d6e60964b06ae28e5f0e08f270e", + "height": 400, + "layout": "IPY_MODEL_3f942ea2353a4c90ad220ac1627486a7", "width": 400 } }, - "b27d0291daf642a8996e09efcc74549c": { - "model_module": "@jupyter-widgets/controls", + "bfe0aa355b2e429daad40695e03ab0ec": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "LabelModel", - "state": { - "layout": "IPY_MODEL_c551f491a7944dac9d435c69757bcae9", - "style": "IPY_MODEL_7318bf3d403143ce9a8e00c9cd1be909", - "value": "[]:" - } + "model_name": "LayoutModel", + "state": {} + }, + "bffee614436a4f4590e875b6540e0356": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} }, - "b87d54abdc4d4041a4e0159d6ef7de92": { + "c4b8671b9e68430fb1f3feff08ca1c41": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "LabelModel", "state": { - "description_width": "" + "layout": "IPY_MODEL_436c3d4a9fb44f32bf95723e74818073", + "style": "IPY_MODEL_2cb42a7657ea48209072dfe9c6c0bf44", + "value": "[]:" } }, - "b8cd42de19d24ca98dd322ec061bb578": { + "c6fd230a4a2c44d7a2b1b84e27eb301a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_e41cb371ba784b7fa5d94114dc8b5514", - "IPY_MODEL_898ddff2d8f248018ac56d1730ac653c", - "IPY_MODEL_48f70a0f927b40dda876c66375a13ff8" + "IPY_MODEL_46f43b1e2a9a4d93897d209c5eb3c2c7" ], - "layout": "IPY_MODEL_1956cbd17a1145beba470e76be90d3de" + "layout": "IPY_MODEL_483fad63d9924e829431f19f8a344b51" } }, - "bfafaa43b80c4e98b3bcabe90bb38f6d": { + "c7b1c43a86984397965daa0fd7186c52": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "FloatSliderModel", "state": { - "description_width": "" + "behavior": "drag-tap", + "continuous_update": false, + "description": "sigma", + "layout": "IPY_MODEL_4b15781027224f82a3f5b8f84195eecb", + "max": 10, + "style": "IPY_MODEL_8aa455ac80494ef495673b6c21e6398a", + "value": 1 } }, - "c05dd577eda24105a83b37900cce6e82": { - "model_module": "@jupyter-widgets/controls", + "c8b0d540f6b841aca0628e428b8a17c9": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_8cef038abf5444bc880e57a7dc09ca67" - ], - "layout": "IPY_MODEL_7800208c5d7c407fae3051038bd10e59" - } + "model_name": "LayoutModel", + "state": {} }, - "c108754f30734dda9b1cb1cf1f2f0284": { + "caf31c235f2d47eca11719ebb50f2d50": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_98150260af0b45eeabf313481dbee6a9", - "IPY_MODEL_84a5c274e0194e2293123492816d9db9" + "IPY_MODEL_3edb0a6f250143e48ce5d6e47637a64e" ], - "layout": "IPY_MODEL_ede3fb102b634dd8b0a839265f31b85d" + "layout": "IPY_MODEL_3415f3784f154dc6ab4a51c74fa77188" } }, - "c4a585fd003440b8ac62671b5fb8c6e7": { + "d57ec57bab534a7b82726c755ba4abbc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { - "children": [ - "IPY_MODEL_ef9efda7dc044bc39e8f429ff0a969df" + "_dom_classes": [ + "widget-interact" ], - "layout": "IPY_MODEL_72d64a1d2e7844219063aa8b72dccb0e" - } - }, - "c551f491a7944dac9d435c69757bcae9": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "c9e544e999884a8ca78cf9e9e3c66738": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "HBoxModel", - "state": { "children": [ - "IPY_MODEL_c05dd577eda24105a83b37900cce6e82" + "IPY_MODEL_c7b1c43a86984397965daa0fd7186c52", + "IPY_MODEL_e2e2880a7e9041dfa5fe2c0eb570b7ad", + "IPY_MODEL_450f8f1afe094724b5a93637c1315e56" ], - "layout": "IPY_MODEL_d8c20717faab467b84bb6d4bdc174638" + "layout": "IPY_MODEL_4ddc02e3880c452cba15a98bed106e2e" } }, - "ca734d1960f44ddca617aa5f7068adfd": { + "d5f384d33f714b40afa412e05d743ae6": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", + "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", "_model_module_version": "^0.13", + "_view_count": 1, "_view_module_version": "^0.13", - "height": 400, - "layout": "IPY_MODEL_777778fb4904496da8e42718dc4f6f9b", - "width": 1600 + "height": 512, + "layout": "IPY_MODEL_ffa9018179184b64a1831eccd9f7c491", + "width": 508 } }, - "cddf0b394eac49a2a3b23d9b340c4177": { + "d8333c92a733464a91ede259ec845797": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "IntSliderModel", "state": { - "children": [ - "IPY_MODEL_ca734d1960f44ddca617aa5f7068adfd" - ], - "layout": "IPY_MODEL_d6a51864dce543ee88b944b085ecef73" + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_ba8cb19e295a4367b5930638e85c618a", + "max": 119, + "style": "IPY_MODEL_555d6f160dcf4fbdbe590a30f469af36", + "value": 60 } }, - "cf84a1da98114d379cc02044abfe7e48": { + "da9ec0e3f2b440ccaa13617f03d8012d": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasManagerModel", + "state": { + "_model_module_version": "^0.13", + "_view_module": null, + "_view_module_version": "" + } + }, + "db4ec158f2aa4453bb841d5f321b6d0a": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "d5e20c26719a42e8acf39ab9276a3d10": { - "model_module": "ipyevents", - "model_module_version": "2.0.1", - "model_name": "EventModel", - "state": { - "_supported_key_events": [ - "keydown", - "keyup" - ], - "_supported_mouse_events": [ - "click", - "auxclick", - "dblclick", - "mouseenter", - "mouseleave", - "mousedown", - "mouseup", - "mousemove", - "wheel", - "contextmenu", - "dragstart", - "drag", - "dragend", - "dragenter", - "dragover", - "dragleave", - "drop" - ], - "_supported_touch_events": [ - "touchstart", - "touchend", - "touchmove", - "touchcancel" - ], - "_view_module": "@jupyter-widgets/controls", - "source": "IPY_MODEL_ef9efda7dc044bc39e8f429ff0a969df", - "throttle_or_debounce": "", - "watched_events": [ - "mousemove" - ], - "xy_coordinate_system": "" - } - }, - "d64e6198111e4d398e0c78ad738b6534": { + "dc05020ea0ea4fd9820d1d784f4e27d0": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "d6a51864dce543ee88b944b085ecef73": { + "de66bfc3ec684a7d8e1cff0e634d97ba": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "d8c20717faab467b84bb6d4bdc174638": { + "de6e936fdee2429388928d109262b737": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "dee48952367744b8a9bd27f801d0b02a": { - "model_module": "@jupyter-widgets/controls", + "de909ad365674977b83a38b23a8aead7": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", - "state": { - "behavior": "drag-tap", - "continuous_update": false, - "description": "Slice", - "layout": "IPY_MODEL_38d9a66203824e8286713098e96d3423", - "max": 119, - "style": "IPY_MODEL_bfafaa43b80c4e98b3bcabe90bb38f6d", - "value": 60 - } + "model_name": "LayoutModel", + "state": {} }, - "e0fb3b86588245a19a0f82e69c18ba97": { + "e2e2880a7e9041dfa5fe2c0eb570b7ad": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "CheckboxModel", "state": { - "description_width": "" + "description": "show_labels", + "disabled": false, + "layout": "IPY_MODEL_507b53b194504ce9b4b133582bb375d9", + "style": "IPY_MODEL_5ce814236d284fb1a433e4475cfda4b9", + "value": true } }, - "e41cb371ba784b7fa5d94114dc8b5514": { + "e4753f58e14844f79f6d800415546334": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_cddf0b394eac49a2a3b23d9b340c4177" + "IPY_MODEL_84b95f07d9ca4eda8edfe9ebe155288f" ], - "layout": "IPY_MODEL_8f355e4e3b884c9eacf5dafff94ec17b" + "layout": "IPY_MODEL_684c5a2f7c184082b44f84bf660cd287" + } + }, + "ec19167993ef4e7a840f0b7712acd11d": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 127, + "layout": "IPY_MODEL_7ec1d6c5812a47a1bc2e2efa93a51498", + "width": 128 } }, - "e5cb6fc782bf41a39bbdea4c75db3456": { + "ece4354e6eed460d84d54669ee475514": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "ed62630cbd294aaeb4f22474189c3e06": { + "ed2699b64ae54d31ab3faec7f0b21e7c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_c9e544e999884a8ca78cf9e9e3c66738", - "IPY_MODEL_fa4460f49a65428a96f5d87113f855bb", - "IPY_MODEL_b27d0291daf642a8996e09efcc74549c" + "IPY_MODEL_f641b8c5a50341dc9ab821c927997a6d" ], - "layout": "IPY_MODEL_591f4d1af7c34cbe96098b77b1ff25ba" + "layout": "IPY_MODEL_36ebacb58448483ebb6e89737c0e44ab" } }, - "ede3fb102b634dd8b0a839265f31b85d": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "ef0a177df0d94af6827f5fe37c18c66e": { - "model_module": "@jupyter-widgets/base", + "f0fc2c5ca1774629a5de45754e41fc66": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } }, - "ef96896f395c4884908448c17362c69a": { + "f2e7d846b1ee477ca2c6e14be0289a0e": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "ef9efda7dc044bc39e8f429ff0a969df": { + "f45dc60ca5ee4458b1244c8a39ea1baf": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_4652b415c0ff4bd48c2c3ae861a5636d", + "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", "_model_module_version": "^0.13", "_view_count": 1, "_view_module_version": "^0.13", - "height": 1600, - "layout": "IPY_MODEL_733a63345d174f7ebe0a0749524491c7", + "height": 400, + "layout": "IPY_MODEL_7d2b58cd7fa34f2d8b466f5c5083dad4", "width": 400 } }, - "f1072ded716d4113b399c1998b6a0c8a": { + "f641b8c5a50341dc9ab821c927997a6d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "VBoxModel", "state": { - "description_width": "" + "children": [ + "IPY_MODEL_9db6aa0c91284f798098851790454852" + ], + "layout": "IPY_MODEL_a649767cf4344ff388a1b1fca20788d7" } }, - "f1f8ba64c8e94a3ca313d7edcf9fe4ef": { - "model_module": "@jupyter-widgets/base", + "f709fe6b3b4c47e8be497189a4cf6c56": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "LabelStyleModel", + "state": { + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null + } }, - "f8a146f7f5c546d38e7f13b20b9f0fbb": { + "f7e257328396497787aac4b673b1b60f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_b017090f06dd444aa6c574dc80960d29" + "IPY_MODEL_ec19167993ef4e7a840f0b7712acd11d" ], - "layout": "IPY_MODEL_5dad013e54ec44429b114245ac17fba6" + "layout": "IPY_MODEL_38b36a5905494bbf92842d71010295a1" } }, - "fa4460f49a65428a96f5d87113f855bb": { + "f885fa6ccc754d5c8e1db91df621a5f2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", @@ -1055,32 +1613,17 @@ "behavior": "drag-tap", "continuous_update": false, "description": "Slice", - "layout": "IPY_MODEL_7e596a70986e4687970eec5d0041bbeb", + "layout": "IPY_MODEL_860528427cc2484ea5def58a696b1a03", "max": 119, - "style": "IPY_MODEL_9d2a3ab6e8be41aab1d2dba872b5321e", + "style": "IPY_MODEL_aabda667f6a9412b98589de90d1fd9fc", "value": 60 } }, - "fba669955f0346cc8182003b5a3d5d1c": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "HBoxModel", - "state": { - "children": [ - "IPY_MODEL_f8a146f7f5c546d38e7f13b20b9f0fbb" - ], - "layout": "IPY_MODEL_257585f47a4340379a76665c90b5508d" - } - }, - "fdcaff237e654479bb033d2fdcbb6b5f": { - "model_module": "@jupyter-widgets/controls", + "ffa9018179184b64a1831eccd9f7c491": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "LabelModel", - "state": { - "layout": "IPY_MODEL_12cbc8a8e1a94a85b1021bdf05b8d63e", - "style": "IPY_MODEL_307536236e854849887c15515d430b88", - "value": "my_custom_code(..., sigma=1.0, show_labels=True)" - } + "model_name": "LayoutModel", + "state": {} } }, "version_major": 2, diff --git a/stackview/_image_widget.py b/stackview/_image_widget.py index 214b43e..89c2e89 100644 --- a/stackview/_image_widget.py +++ b/stackview/_image_widget.py @@ -6,9 +6,8 @@ class ImageWidget(Canvas): def __init__(self, image, zoom_factor:float=1.0, zoom_spline_order:int=0): if not ((len(image.shape) == 2) or (len(image.shape) == 3 and image.shape[-1] == 3)): raise NotImplementedError("Only 2D images are supported" + str(image.shape)) - - width = image.shape[1] - height = image.shape[0] + width = image.shape[1] * zoom_factor + height = image.shape[0] * zoom_factor self.zoom_factor = zoom_factor self.zoom_spline_order = zoom_spline_order super().__init__(width=width * zoom_factor, height=height * zoom_factor) @@ -53,9 +52,10 @@ def _zoom(self, data): [0, 1.0 / self.zoom_factor, -0.5], [0, 0, 1], ]) + zoomed_shape = (np.asarray(data.shape) * self.zoom_factor).astype(int) zoomed = affine_transform(data, matrix, - output_shape=np.asarray(data.shape) * self.zoom_factor, + output_shape=zoomed_shape, order=self.zoom_spline_order, mode='nearest') return zoomed From 0111e5b40982884c1fa77ccdbfc39b0cbb6c9671 Mon Sep 17 00:00:00 2001 From: Robert Haase Date: Fri, 23 Dec 2022 12:40:43 +0100 Subject: [PATCH 4/6] documentation --- README.md | 3 +- docs/zoom.ipynb | 1260 ++++++++++++++++++++--------------------- stackview/__init__.py | 52 +- 3 files changed, 672 insertions(+), 643 deletions(-) diff --git a/README.md b/README.md index 3683c65..b4f8d2d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# stackview +# stackview 🧊👀 Interactive image stack viewing in jupyter notebooks based on [ipycanvas](https://ipycanvas.readthedocs.io/) and [ipywidgets](https://ipywidgets.readthedocs.io/en/latest/). @@ -166,6 +166,7 @@ If you encounter any problems, please create a thread on [image.sc] along with a ## See also There are other libraries doing similar stuff +* [ipyannotations](https://github.com/janfreyberg/ipyannotations) * [napari](https://github.com/napari/napari) * [JNI's Volume Viewer based on Matplotlib](https://github.com/jni/mpl-volume-viewer) * [Holoviz hvPlot](https://hvplot.holoviz.org/user_guide/Gridded_Data.html#n-d-plots) diff --git a/docs/zoom.ipynb b/docs/zoom.ipynb index 6a00bef..6936ced 100644 --- a/docs/zoom.ipynb +++ b/docs/zoom.ipynb @@ -137,7 +137,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "8fa062dfe2414c17b3144858fb6ed4f0", + "model_id": "b688f10543e241da89e3f581bba9f0ee", "version_major": 2, "version_minor": 0 }, @@ -171,7 +171,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "a444aad4584449ffb8674ecf95d764ba", + "model_id": "7e719a34f194498bb740fd76d68b7fba", "version_major": 2, "version_minor": 0 }, @@ -205,7 +205,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "29a2e95de2d7462195cda8095e7f45b5", + "model_id": "d45a4760181a4d50859a9fdc9b78913e", "version_major": 2, "version_minor": 0 }, @@ -239,7 +239,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "68eb8505f368426ba025f96d5001ffd9", + "model_id": "d8a127407a3d4080be1990c14e8bf068", "version_major": 2, "version_minor": 0 }, @@ -273,7 +273,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "2012207a339c4a16aa460e524980444f", + "model_id": "f09d8823232e44e198ea4c54c72296b1", "version_major": 2, "version_minor": 0 }, @@ -299,7 +299,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "4c738e87ec5c43fba7a71380c74f479b", + "model_id": "60ccf5d8854141a5a8f0b301308c430d", "version_major": 2, "version_minor": 0 }, @@ -327,7 +327,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "8d43d456470a4bceac5fe22a0a44b286", + "model_id": "d1dd5d62e2a74ec6954a6aebab6989b0", "version_major": 2, "version_minor": 0 }, @@ -353,7 +353,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d57ec57bab534a7b82726c755ba4abbc", + "model_id": "744b224f85da418c8dcb0daf11a1ad5a", "version_major": 2, "version_minor": 0 }, @@ -367,12 +367,12 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "891a589c0c5449c6a9ed55d300d40f7e", + "model_id": "8e7aa96dc6874cdd82754ce0a092f840", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=2560, width=2540),)),)), Label(value='my_custo…" + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=512, width=508),)),)), Label(value='my_custom_…" ] }, "execution_count": 11, @@ -392,7 +392,7 @@ " else:\n", " return edge_image * image.max() + image \n", "\n", - "stackview.interact(my_custom_code, blobs, zoom_factor=10)" + "stackview.interact(my_custom_code, blobs, zoom_factor=2)" ] }, { @@ -425,188 +425,128 @@ "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { - "08f805750607429491a4b7153fc18181": { - "model_module": "@jupyter-widgets/base", + "06f589a0e01047828c680f2f321ac349": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } }, - "0e915458232c4ec99324d1a05c050e3c": { + "08dd879de4cc4bada37b4076362e1ca7": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "0ed60cf09bda45558cd285a0e11cb5f6": { + "095ed94a499d4a67ab5d51f8e26ff7ae": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", - "state": { - "behavior": "drag-tap", - "continuous_update": false, - "description": "Slice", - "layout": "IPY_MODEL_4b7a6c829e5346c2af544553ee003913", - "max": 119, - "style": "IPY_MODEL_b3b2ef8e3e3b49c6903e2a6430f4f5d6", - "value": 60 - } - }, - "107bdb13dd664e02a7b72e8be997751e": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "model_name": "SliderStyleModel", "state": { - "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 127, - "layout": "IPY_MODEL_f2e7d846b1ee477ca2c6e14be0289a0e", - "width": 128 + "description_width": "" } }, - "16cf91f015ea418da751fdbafaf3f705": { + "09dc557d622a451ab14d26886861f7c5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_63e3e19b4e294436af5dfe36c38975da" + "IPY_MODEL_f03772e182dd4088b6172800d0dcd172" ], - "layout": "IPY_MODEL_9b63a80c8cfd445b9c5921e416ee64ef" + "layout": "IPY_MODEL_a933dd3855054db58dd0695f0feb6df8" } }, - "1be37cc230f44f4db850c5bd56ed7a29": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "IntSliderModel", - "state": { - "behavior": "drag-tap", - "description": "Slice", - "layout": "IPY_MODEL_de909ad365674977b83a38b23a8aead7", - "max": 119, - "style": "IPY_MODEL_a816ff867c3342d7aaaed3ee46228c02", - "value": 60 - } - }, - "1c9616ec01e44cd2a2fbeacc90537643": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "0b131756ece848808557478cddf2ec2b": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", "state": { - "behavior": "drag-tap", - "description": "Curtain", - "layout": "IPY_MODEL_3c7fff60392a48a5ae5dc664c53f6983", - "max": 40, - "style": "IPY_MODEL_f0fc2c5ca1774629a5de45754e41fc66", - "value": 20 + "_canvas_manager": "IPY_MODEL_367acbf2db5c4b1986803b0835a9c8e7", + "_model_module_version": "^0.13", + "_view_count": 1, + "_view_module_version": "^0.13", + "height": 400, + "layout": "IPY_MODEL_d91e812781344355b6911661e58c2701", + "width": 400 } }, - "2012207a339c4a16aa460e524980444f": { + "0be35c492aa142a687056652b46b7bb1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_29c3c76757b14d0e8f3988a79bea1915", - "IPY_MODEL_1be37cc230f44f4db850c5bd56ed7a29", - "IPY_MODEL_1c9616ec01e44cd2a2fbeacc90537643" + "IPY_MODEL_3007323c54f246178f8fabeefb5ab5a1" ], - "layout": "IPY_MODEL_7a275ed4887145e6bf0e23cb13dacdac" + "layout": "IPY_MODEL_3a63cb8d10ff4c8cb46b5c00ff71b490" } }, - "23726342de69481fb1c1fddb25e3901b": { - "model_module": "ipyevents", - "model_module_version": "2.0.1", - "model_name": "EventModel", - "state": { - "_supported_key_events": [ - "keydown", - "keyup" - ], - "_supported_mouse_events": [ - "click", - "auxclick", - "dblclick", - "mouseenter", - "mouseleave", - "mousedown", - "mouseup", - "mousemove", - "wheel", - "contextmenu", - "dragstart", - "drag", - "dragend", - "dragenter", - "dragover", - "dragleave", - "drop" - ], - "_supported_touch_events": [ - "touchstart", - "touchend", - "touchmove", - "touchcancel" - ], - "_view_module": "@jupyter-widgets/controls", - "source": "IPY_MODEL_f45dc60ca5ee4458b1244c8a39ea1baf", - "throttle_or_debounce": "", - "watched_events": [ - "mousemove" - ], - "xy_coordinate_system": "" - } + "0c7754bc12a5406988467453057b8c8f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} }, - "281cd8b2e0e54371a842586e8f6115d3": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", - "state": { - "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 40, - "layout": "IPY_MODEL_9a33e259a797495e89a4cb1fe1416f62", - "width": 40 - } + "0f59fa5cfae24cc9b208b72ba22e4c60": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} }, - "290f435a07674756b77709f5df59de3f": { + "0fce2ac1571b411f88be4d2b1322f70d": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "29a2e95de2d7462195cda8095e7f45b5": { + "103397bb55794f80b7b05d7e41d347e0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_3f76da6d4b6e4813bba620dad76d0543", + "style": "IPY_MODEL_da1053be8b9240ac8bd0898e61d4d3c4", + "value": "my_custom_code(..., sigma=1.0, show_labels=True)" + } + }, + "11d5e5573bb444c59db963f8cc154460": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_ed2699b64ae54d31ab3faec7f0b21e7c", - "IPY_MODEL_0ed60cf09bda45558cd285a0e11cb5f6", - "IPY_MODEL_c4b8671b9e68430fb1f3feff08ca1c41" + "IPY_MODEL_f0221b5b91b54a07992d93fd9e0e64df" ], - "layout": "IPY_MODEL_de66bfc3ec684a7d8e1cff0e634d97ba" + "layout": "IPY_MODEL_4a178fb33a8a43269c6dc89774b1d354" } }, - "29c3c76757b14d0e8f3988a79bea1915": { + "146d633a8d114be0810b2b7612e69633": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_54ca9991651d4acda0f525c30a522f96" + "IPY_MODEL_09dc557d622a451ab14d26886861f7c5" ], - "layout": "IPY_MODEL_9f3ec6f15aa14000a441bfc1a9e84fd6" + "layout": "IPY_MODEL_cde16ca40a7e401a9f85e3702f4b56c8" } }, - "29f5646baba3423ba2225a47f3d0fafc": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "15fe152816d84465adb5361d67d2cf92": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_367acbf2db5c4b1986803b0835a9c8e7", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 512, + "layout": "IPY_MODEL_08dd879de4cc4bada37b4076362e1ca7", + "width": 508 + } }, - "2cb42a7657ea48209072dfe9c6c0bf44": { + "16c47819dd634e4e882b01118eaaf6bb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "LabelStyleModel", @@ -621,175 +561,221 @@ "text_decoration": null } }, - "3415f3784f154dc6ab4a51c74fa77188": { + "19c2c78fe6eb46e799ee4cfacb5477c6": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "36ebacb58448483ebb6e89737c0e44ab": { + "1a35dd4770864b22a995f35d9c702040": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "38b36a5905494bbf92842d71010295a1": { + "1d088ac06e7a499bb94a4812be97a152": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "3c7fff60392a48a5ae5dc664c53f6983": { + "224e96501c944f9c8119572fe37e7d3f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "3edb0a6f250143e48ce5d6e47637a64e": { - "model_module": "@jupyter-widgets/controls", + "29e21a0197234d738cfbb09712b156af": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "LayoutModel", + "state": {} + }, + "3007323c54f246178f8fabeefb5ab5a1": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", "state": { - "children": [ - "IPY_MODEL_d5f384d33f714b40afa412e05d743ae6" - ], - "layout": "IPY_MODEL_bffee614436a4f4590e875b6540e0356" + "_canvas_manager": "IPY_MODEL_367acbf2db5c4b1986803b0835a9c8e7", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 127, + "layout": "IPY_MODEL_6b8056ea0fd04c6183aab133d753aeab", + "width": 128 } }, - "3f942ea2353a4c90ad220ac1627486a7": { + "319595c5a1a64534b14f8a806d564471": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "40ee1bb387184511978fe9dde0822bb8": { + "3434e2648acc420abe4f782a2d3c5b98": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LabelModel", + "model_name": "IntSliderModel", "state": { - "layout": "IPY_MODEL_57f59a29915f451d9f0aa80765727832", - "style": "IPY_MODEL_f709fe6b3b4c47e8be497189a4cf6c56", - "value": "my_custom_code(..., sigma=1.0, show_labels=True)" + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_0f59fa5cfae24cc9b208b72ba22e4c60", + "max": 119, + "style": "IPY_MODEL_eed911b8a1514995b46370a383ecbe50", + "value": 60 } }, - "436c3d4a9fb44f32bf95723e74818073": { + "34a167bbc8ef4aca910d0a7ae758a950": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "4435d43acb9a4aceb07b0b41273b76f2": { + "367acbf2db5c4b1986803b0835a9c8e7": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasManagerModel", + "state": { + "_model_module_version": "^0.13", + "_view_module": null, + "_view_module_version": "" + } + }, + "3a63cb8d10ff4c8cb46b5c00ff71b490": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "450f8f1afe094724b5a93637c1315e56": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", - "state": { - "layout": "IPY_MODEL_afe226e0d7fc4367869babf2db334214" - } - }, - "46f43b1e2a9a4d93897d209c5eb3c2c7": { + "3b388514c95843cead2d1ed6d22f7628": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_a690f7fcfea848b2a9fa2c7688bd47b5" + "IPY_MODEL_82aaacbba13345239e9b7dc9863ae51a" ], - "layout": "IPY_MODEL_a8055a8a9b854a14bd4e473fe6a29d0b" + "layout": "IPY_MODEL_b5c4281974ec4a99bc9a8252e006de68" } }, - "474ae46ea4cf41ba8a9a932e7292c829": { + "3dd1eab78d8742d881b8795055686013": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "483fad63d9924e829431f19f8a344b51": { + "3f76da6d4b6e4813bba620dad76d0543": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "4b15781027224f82a3f5b8f84195eecb": { + "41f401e26dad441dbe66ee94b483be41": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "4b7a6c829e5346c2af544553ee003913": { + "42d871b1b3a34434b4c1419f6cd586a4": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "4c738e87ec5c43fba7a71380c74f479b": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "498c01e3ba0349b59734bbd3c3e3b3d6": { + "model_module": "ipyevents", + "model_module_version": "2.0.1", + "model_name": "EventModel", "state": { - "children": [ - "IPY_MODEL_caf31c235f2d47eca11719ebb50f2d50", - "IPY_MODEL_736f3510869e4e13ab6be09f21de0460" + "_supported_key_events": [ + "keydown", + "keyup" ], - "layout": "IPY_MODEL_9238a29bcbbf4b16b83a3a5511620ce5" + "_supported_mouse_events": [ + "click", + "auxclick", + "dblclick", + "mouseenter", + "mouseleave", + "mousedown", + "mouseup", + "mousemove", + "wheel", + "contextmenu", + "dragstart", + "drag", + "dragend", + "dragenter", + "dragover", + "dragleave", + "drop" + ], + "_supported_touch_events": [ + "touchstart", + "touchend", + "touchmove", + "touchcancel" + ], + "_view_module": "@jupyter-widgets/controls", + "source": "IPY_MODEL_eaf36bc14f124033b786e022da08e97b", + "throttle_or_debounce": "", + "watched_events": [ + "mousemove" + ], + "xy_coordinate_system": "" } }, - "4ddc02e3880c452cba15a98bed106e2e": { + "4a178fb33a8a43269c6dc89774b1d354": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "507b53b194504ce9b4b133582bb375d9": { + "4c3ccd4cb1f64e78a68a7b7eb66b024d": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "5159137beebd4b528af4c6f18d02fc15": { + "52156da382f4413d937b4ad67f73b987": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", + "_canvas_manager": "IPY_MODEL_367acbf2db5c4b1986803b0835a9c8e7", "_model_module_version": "^0.13", "_view_module_version": "^0.13", "height": 400, - "layout": "IPY_MODEL_dc05020ea0ea4fd9820d1d784f4e27d0", + "layout": "IPY_MODEL_e6763ae14a7447d692a90c73f45e2c5b", "width": 400 } }, - "54ca9991651d4acda0f525c30a522f96": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_bbf39c90bb704e56b1fc55fecaf8c354" - ], - "layout": "IPY_MODEL_29f5646baba3423ba2225a47f3d0fafc" - } - }, - "555d6f160dcf4fbdbe590a30f469af36": { - "model_module": "@jupyter-widgets/controls", + "554344ba3b6746a7a731e61c44fd631d": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "description_width": "" - } + "model_name": "LayoutModel", + "state": {} }, - "57f59a29915f451d9f0aa80765727832": { + "59f959127d3b45bd8c63cb828cb6fc48": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "5851e0d245ab4758a0ded4a2ffb0e68a": { + "5c62f620ac02475eb9e274d3e91a7b14": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_a06772ce399e4b989af900a2294387c8", + "max": 119, + "style": "IPY_MODEL_c646a8812ce14836a3ea2b7f59c2a858", + "value": 60 + } + }, + "5cbacee5c4e84c6d9a2496675a2dd980": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "LabelStyleModel", @@ -804,198 +790,186 @@ "text_decoration": null } }, - "5b15f4cbcf8148fea3fdaf6073287d90": { + "60ccf5d8854141a5a8f0b301308c430d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "model_name": "VBoxModel", "state": { - "behavior": "drag-tap", - "continuous_update": false, - "description": "Slice", - "layout": "IPY_MODEL_ece4354e6eed460d84d54669ee475514", - "max": 119, - "style": "IPY_MODEL_834f7de84e0a4f8cb29e3036859b43e0", - "value": 60 + "children": [ + "IPY_MODEL_146d633a8d114be0810b2b7612e69633", + "IPY_MODEL_7bb68317908f4439ace0bce408453a0a" + ], + "layout": "IPY_MODEL_f370bb61bbdc4b688a68c376c471984e" } }, - "5ce814236d284fb1a433e4475cfda4b9": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "CheckboxStyleModel", + "648691d5c7664ff1ae62b7db469d0bb4": { + "model_module": "ipyevents", + "model_module_version": "2.0.1", + "model_name": "EventModel", "state": { - "description_width": "" + "_supported_key_events": [ + "keydown", + "keyup" + ], + "_supported_mouse_events": [ + "click", + "auxclick", + "dblclick", + "mouseenter", + "mouseleave", + "mousedown", + "mouseup", + "mousemove", + "wheel", + "contextmenu", + "dragstart", + "drag", + "dragend", + "dragenter", + "dragover", + "dragleave", + "drop" + ], + "_supported_touch_events": [ + "touchstart", + "touchend", + "touchmove", + "touchcancel" + ], + "_view_module": "@jupyter-widgets/controls", + "source": "IPY_MODEL_f03772e182dd4088b6172800d0dcd172", + "throttle_or_debounce": "", + "watched_events": [ + "mousemove" + ], + "xy_coordinate_system": "" } }, - "5ea65783df2a47d1bbe8784e718b0963": { + "6b8056ea0fd04c6183aab133d753aeab": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "6c96eee01d134de2ba447335a9e6ed7c": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "610a058cceb1421189b644e1ff032487": { + "7027d391f3364986963d71064a300a36": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_7406b226fd90424f9e56506620038b91" + "IPY_MODEL_9ea8010db60f422289f92591f95caeee" ], - "layout": "IPY_MODEL_4435d43acb9a4aceb07b0b41273b76f2" + "layout": "IPY_MODEL_0c7754bc12a5406988467453057b8c8f" } }, - "636771fa56674dbdb7e2b1bd9d0b54d3": { + "715c606d74dc465d9c207f8bebace77b": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "63e3e19b4e294436af5dfe36c38975da": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_6e009fe6a66c4726a5aa7e0274db897b" - ], - "layout": "IPY_MODEL_c8b0d540f6b841aca0628e428b8a17c9" - } - }, - "684c5a2f7c184082b44f84bf660cd287": { + "72e2c6ca1b46459a820536e710469027": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "68eb8505f368426ba025f96d5001ffd9": { + "744b224f85da418c8dcb0daf11a1ad5a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { + "_dom_classes": [ + "widget-interact" + ], "children": [ - "IPY_MODEL_bb106cdcd1eb426bb84e569182e41b30", - "IPY_MODEL_d8333c92a733464a91ede259ec845797", - "IPY_MODEL_793b13bf254444a68cf8b0d8d34c598e" + "IPY_MODEL_cb9aa6fe67364f8ca809ee7083b2fe73", + "IPY_MODEL_bff127e60627450bb34feae5f55a8193", + "IPY_MODEL_f6ac019f4ecf46e4a2bfd2df47267b0d" ], - "layout": "IPY_MODEL_bfe0aa355b2e429daad40695e03ab0ec" + "layout": "IPY_MODEL_89943c988371477186561771baa085d3" } }, - "6c6e6e41ef484a68b116fe3c69c853c7": { + "750d60c7e6b1444591503f172d69d1cd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_f45dc60ca5ee4458b1244c8a39ea1baf" + "IPY_MODEL_15fe152816d84465adb5361d67d2cf92" ], - "layout": "IPY_MODEL_aee6af5d05c343e180426ed1428892b0" + "layout": "IPY_MODEL_41f401e26dad441dbe66ee94b483be41" } }, - "6e009fe6a66c4726a5aa7e0274db897b": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", - "state": { - "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 127, - "layout": "IPY_MODEL_08f805750607429491a4b7153fc18181", - "width": 128 - } - }, - "736f3510869e4e13ab6be09f21de0460": { - "model_module": "@jupyter-widgets/controls", + "78fe115170794defbf1ec9ee9bd3bc9d": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "LabelModel", - "state": { - "layout": "IPY_MODEL_afe597d02542445bbd635d4415ab4033", - "style": "IPY_MODEL_a83d21969dc54a35b50e18318ca67d85", - "value": "[]:" - } + "model_name": "LayoutModel", + "state": {} }, - "7406b226fd90424f9e56506620038b91": { + "79c95d1cbd0c40c29d557542eba84a29": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_107bdb13dd664e02a7b72e8be997751e" + "IPY_MODEL_e13ed8a686784e4e8f9838f3241b8409" ], - "layout": "IPY_MODEL_db4ec158f2aa4453bb841d5f321b6d0a" + "layout": "IPY_MODEL_42d871b1b3a34434b4c1419f6cd586a4" } }, - "793b13bf254444a68cf8b0d8d34c598e": { + "7bb68317908f4439ace0bce408453a0a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "LabelModel", "state": { - "layout": "IPY_MODEL_5ea65783df2a47d1bbe8784e718b0963", - "style": "IPY_MODEL_5851e0d245ab4758a0ded4a2ffb0e68a", - "value": "[]:" + "layout": "IPY_MODEL_78fe115170794defbf1ec9ee9bd3bc9d", + "style": "IPY_MODEL_8a7287cc6107426995acb12ea6023f8c", + "value": "[y=8, x=117] = 3" } }, - "7a275ed4887145e6bf0e23cb13dacdac": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "7b0bc2ed36234d3fa96448f239496239": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "7d2b58cd7fa34f2d8b466f5c5083dad4": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "7ec1d6c5812a47a1bc2e2efa93a51498": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "7ec4b4c5eead46f3aca318d2a4c05625": { - "model_module": "@jupyter-widgets/base", + "7e719a34f194498bb740fd76d68b7fba": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_79c95d1cbd0c40c29d557542eba84a29", + "IPY_MODEL_3434e2648acc420abe4f782a2d3c5b98" + ], + "layout": "IPY_MODEL_d9d44ae7563a4758a7a812ba7a8201a2" + } }, - "81d06a252b744d48a5c407866951bbc0": { + "81117c52fbb24598b054db26f56f0875": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "834f7de84e0a4f8cb29e3036859b43e0": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "description_width": "" - } - }, - "84b95f07d9ca4eda8edfe9ebe155288f": { + "82aaacbba13345239e9b7dc9863ae51a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_281cd8b2e0e54371a842586e8f6115d3" + "IPY_MODEL_af0b82280c1d4114b16fab42df67bd7e" ], - "layout": "IPY_MODEL_0e915458232c4ec99324d1a05c050e3c" + "layout": "IPY_MODEL_59f959127d3b45bd8c63cb828cb6fc48" } }, - "84ef3a8640144da9b06357a1d2b8d801": { + "836aef3982fa4e37b0f44e46798a1acb": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "857fac6e324b40b584510b0119c6e4ce": { + "83ce190a747d4032b9543b697fa96fa9": { "model_module": "ipyevents", "model_module_version": "2.0.1", "model_name": "EventModel", @@ -1030,7 +1004,7 @@ "touchcancel" ], "_view_module": "@jupyter-widgets/controls", - "source": "IPY_MODEL_d5f384d33f714b40afa412e05d743ae6", + "source": "IPY_MODEL_0b131756ece848808557478cddf2ec2b", "throttle_or_debounce": "", "watched_events": [ "mousemove" @@ -1038,199 +1012,194 @@ "xy_coordinate_system": "" } }, - "860528427cc2484ea5def58a696b1a03": { + "867bee726ded4427bbefdc89f106e903": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "8691c41b007640bba0bd366e0103a17b": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "891a589c0c5449c6a9ed55d300d40f7e": { - "model_module": "@jupyter-widgets/controls", + "89943c988371477186561771baa085d3": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_c6fd230a4a2c44d7a2b1b84e27eb301a", - "IPY_MODEL_40ee1bb387184511978fe9dde0822bb8" - ], - "layout": "IPY_MODEL_636771fa56674dbdb7e2b1bd9d0b54d3" - } + "model_name": "LayoutModel", + "state": {} }, - "8aa455ac80494ef495673b6c21e6398a": { + "8a7287cc6107426995acb12ea6023f8c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "LabelStyleModel", "state": { - "description_width": "" + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null } }, - "8d43d456470a4bceac5fe22a0a44b286": { + "8e7aa96dc6874cdd82754ce0a092f840": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_b01ce584037344e5bc86d9a5ac63a4d5", - "IPY_MODEL_16cf91f015ea418da751fdbafaf3f705", - "IPY_MODEL_610a058cceb1421189b644e1ff032487" + "IPY_MODEL_cd92110950a24b47a9ee2169f0ed1e53", + "IPY_MODEL_103397bb55794f80b7b05d7e41d347e0" ], - "layout": "IPY_MODEL_81d06a252b744d48a5c407866951bbc0" + "layout": "IPY_MODEL_a947086434694c97afb962ae257c525c" } }, - "8fa062dfe2414c17b3144858fb6ed4f0": { + "8ec7e3c6999649feaad94dc7c9ee0070": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "8f41b4f9956c461cbd52d82c99e7057c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "CheckboxStyleModel", "state": { - "children": [ - "IPY_MODEL_e4753f58e14844f79f6d800415546334", - "IPY_MODEL_f885fa6ccc754d5c8e1db91df621a5f2" - ], - "layout": "IPY_MODEL_474ae46ea4cf41ba8a9a932e7292c829" + "description_width": "" } }, - "9238a29bcbbf4b16b83a3a5511620ce5": { + "90ece0bc81be41298716823ce4fcb68f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "9a33e259a797495e89a4cb1fe1416f62": { - "model_module": "@jupyter-widgets/base", + "9167e556e7764b1691a196895438c077": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_f83f6b33cd6541afae4356d5a0768912", + "max": 119, + "style": "IPY_MODEL_9b5b32d2a3d34e75913bb704b8aae56e", + "value": 60 + } }, - "9b63a80c8cfd445b9c5921e416ee64ef": { + "91bb9742180c4dc6800e83242203d6e2": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "9db6aa0c91284f798098851790454852": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "99d3cc7827d1412c9aa9c65bacf4d8fb": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", "state": { - "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", - "_model_module_version": "^0.13", - "_view_count": 1, - "_view_module_version": "^0.13", - "height": 400, - "layout": "IPY_MODEL_af0cce7a02ed4a4e8d689c22bc6cddba", - "width": 400 + "children": [ + "IPY_MODEL_caf20196bbd84236ad3a7f43d5c5a474" + ], + "layout": "IPY_MODEL_6c96eee01d134de2ba447335a9e6ed7c" } }, - "9f3ec6f15aa14000a441bfc1a9e84fd6": { + "9b5b32d2a3d34e75913bb704b8aae56e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "9d86ef8654de423dae99d18aeaf1a185": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "a12717ea12364f0f91177085e5f79123": { - "model_module": "ipyevents", - "model_module_version": "2.0.1", - "model_name": "EventModel", + "9e75a82f34104074b1f1cc00d4ab1df7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", "state": { - "_supported_key_events": [ - "keydown", - "keyup" - ], - "_supported_mouse_events": [ - "click", - "auxclick", - "dblclick", - "mouseenter", - "mouseleave", - "mousedown", - "mouseup", - "mousemove", - "wheel", - "contextmenu", - "dragstart", - "drag", - "dragend", - "dragenter", - "dragover", - "dragleave", - "drop" - ], - "_supported_touch_events": [ - "touchstart", - "touchend", - "touchmove", - "touchcancel" - ], - "_view_module": "@jupyter-widgets/controls", - "source": "IPY_MODEL_9db6aa0c91284f798098851790454852", - "throttle_or_debounce": "", - "watched_events": [ - "mousemove" - ], - "xy_coordinate_system": "" + "behavior": "drag-tap", + "continuous_update": false, + "description": "Slice", + "layout": "IPY_MODEL_81117c52fbb24598b054db26f56f0875", + "max": 119, + "style": "IPY_MODEL_06f589a0e01047828c680f2f321ac349", + "value": 60 } }, - "a444aad4584449ffb8674ecf95d764ba": { + "9ea8010db60f422289f92591f95caeee": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_aea432c7231e4d9ca202fa48d3567b64", - "IPY_MODEL_5b15f4cbcf8148fea3fdaf6073287d90" + "IPY_MODEL_eaf36bc14f124033b786e022da08e97b" ], - "layout": "IPY_MODEL_ba2881f0f1d54e86b1ce739dc1e03949" + "layout": "IPY_MODEL_91bb9742180c4dc6800e83242203d6e2" } }, - "a649767cf4344ff388a1b1fca20788d7": { + "a06772ce399e4b989af900a2294387c8": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "a690f7fcfea848b2a9fa2c7688bd47b5": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "a47e02c7070d448e9d7904fd44e2567c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", "state": { - "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 2560, - "layout": "IPY_MODEL_290f435a07674756b77709f5df59de3f", - "width": 2540 + "children": [ + "IPY_MODEL_f97eb9527a1143378fff65dc3174e2e6" + ], + "layout": "IPY_MODEL_4c3ccd4cb1f64e78a68a7b7eb66b024d" } }, - "a8055a8a9b854a14bd4e473fe6a29d0b": { + "a933dd3855054db58dd0695f0feb6df8": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "a816ff867c3342d7aaaed3ee46228c02": { + "a947086434694c97afb962ae257c525c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "a9bc3ebbd39a4502b6ed24205e07fb93": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "LabelModel", "state": { - "description_width": "" + "layout": "IPY_MODEL_f66a84f451eb4f449ebbb411fee42702", + "style": "IPY_MODEL_16c47819dd634e4e882b01118eaaf6bb", + "value": "[]:" } }, - "a83d21969dc54a35b50e18318ca67d85": { + "ab287f483e4c4d2aaccfb08cfe2c4d05": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LabelStyleModel", + "model_name": "HBoxModel", "state": { - "description_width": "", - "font_family": null, - "font_size": null, - "font_style": null, - "font_variant": null, - "font_weight": null, - "text_color": null, - "text_decoration": null + "children": [ + "IPY_MODEL_99d3cc7827d1412c9aa9c65bacf4d8fb" + ], + "layout": "IPY_MODEL_f8a18beeb202454ea2d52ea33358b35c" } }, - "aabda667f6a9412b98589de90d1fd9fc": { + "aba15c83ca484c4aba730dca747b851b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "SliderStyleModel", @@ -1238,141 +1207,143 @@ "description_width": "" } }, - "aea432c7231e4d9ca202fa48d3567b64": { + "ad45a540ee1549b5b9e0279b8f675832": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_baa3532b3ed14ae7a9a2bdf5f5b24ab0" + "IPY_MODEL_0be35c492aa142a687056652b46b7bb1" ], - "layout": "IPY_MODEL_de6e936fdee2429388928d109262b737" + "layout": "IPY_MODEL_34a167bbc8ef4aca910d0a7ae758a950" } }, - "aee6af5d05c343e180426ed1428892b0": { + "adab7fa708dd4bd6901509af33868a4f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "af0cce7a02ed4a4e8d689c22bc6cddba": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "af0b82280c1d4114b16fab42df67bd7e": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_367acbf2db5c4b1986803b0835a9c8e7", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 40, + "layout": "IPY_MODEL_1a35dd4770864b22a995f35d9c702040", + "width": 40 + } }, - "afe226e0d7fc4367869babf2db334214": { - "model_module": "@jupyter-widgets/base", + "b140c9b160174ce3ae0da8e944d2c648": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_a47e02c7070d448e9d7904fd44e2567c" + ], + "layout": "IPY_MODEL_90ece0bc81be41298716823ce4fcb68f" + } }, - "afe597d02542445bbd635d4415ab4033": { + "b5c4281974ec4a99bc9a8252e006de68": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "b01ce584037344e5bc86d9a5ac63a4d5": { + "b688f10543e241da89e3f581bba9f0ee": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_f7e257328396497787aac4b673b1b60f" + "IPY_MODEL_3b388514c95843cead2d1ed6d22f7628", + "IPY_MODEL_5c62f620ac02475eb9e274d3e91a7b14" ], - "layout": "IPY_MODEL_7ec4b4c5eead46f3aca318d2a4c05625" + "layout": "IPY_MODEL_eb22cdcfcf814e588813e5299ba5ae8f" } }, - "b3b2ef8e3e3b49c6903e2a6430f4f5d6": { + "bff127e60627450bb34feae5f55a8193": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "CheckboxModel", "state": { - "description_width": "" + "description": "show_labels", + "disabled": false, + "layout": "IPY_MODEL_29e21a0197234d738cfbb09712b156af", + "style": "IPY_MODEL_8f41b4f9956c461cbd52d82c99e7057c", + "value": true } }, - "ba2881f0f1d54e86b1ce739dc1e03949": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "ba8cb19e295a4367b5930638e85c618a": { - "model_module": "@jupyter-widgets/base", + "c4b5c03982bf487ca539a874963e0979": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_319595c5a1a64534b14f8a806d564471", + "style": "IPY_MODEL_5cbacee5c4e84c6d9a2496675a2dd980", + "value": "[]:" + } }, - "baa3532b3ed14ae7a9a2bdf5f5b24ab0": { + "c57ab911f0a94d64877f9279068533d1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_5159137beebd4b528af4c6f18d02fc15" + "IPY_MODEL_0b131756ece848808557478cddf2ec2b" ], - "layout": "IPY_MODEL_7b0bc2ed36234d3fa96448f239496239" + "layout": "IPY_MODEL_836aef3982fa4e37b0f44e46798a1acb" } }, - "bb106cdcd1eb426bb84e569182e41b30": { + "c646a8812ce14836a3ea2b7f59c2a858": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "SliderStyleModel", "state": { - "children": [ - "IPY_MODEL_6c6e6e41ef484a68b116fe3c69c853c7" - ], - "layout": "IPY_MODEL_84ef3a8640144da9b06357a1d2b8d801" + "description_width": "" } }, - "bbf39c90bb704e56b1fc55fecaf8c354": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "c6a1a4140c864b3caecf490df68854b8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", "state": { - "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 400, - "layout": "IPY_MODEL_3f942ea2353a4c90ad220ac1627486a7", - "width": 400 + "children": [ + "IPY_MODEL_11d5e5573bb444c59db963f8cc154460" + ], + "layout": "IPY_MODEL_adab7fa708dd4bd6901509af33868a4f" } }, - "bfe0aa355b2e429daad40695e03ab0ec": { + "c6d7ef25a0294af094eeb93a77b996a3": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "bffee614436a4f4590e875b6540e0356": { + "c8881c0c6b3e4000a26dc8ee55251b70": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "c4b8671b9e68430fb1f3feff08ca1c41": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "LabelModel", - "state": { - "layout": "IPY_MODEL_436c3d4a9fb44f32bf95723e74818073", - "style": "IPY_MODEL_2cb42a7657ea48209072dfe9c6c0bf44", - "value": "[]:" - } - }, - "c6fd230a4a2c44d7a2b1b84e27eb301a": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "caf20196bbd84236ad3a7f43d5c5a474": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", "state": { - "children": [ - "IPY_MODEL_46f43b1e2a9a4d93897d209c5eb3c2c7" - ], - "layout": "IPY_MODEL_483fad63d9924e829431f19f8a344b51" + "_canvas_manager": "IPY_MODEL_367acbf2db5c4b1986803b0835a9c8e7", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 127, + "layout": "IPY_MODEL_8691c41b007640bba0bd366e0103a17b", + "width": 128 } }, - "c7b1c43a86984397965daa0fd7186c52": { + "cb9aa6fe67364f8ca809ee7083b2fe73": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatSliderModel", @@ -1380,167 +1351,150 @@ "behavior": "drag-tap", "continuous_update": false, "description": "sigma", - "layout": "IPY_MODEL_4b15781027224f82a3f5b8f84195eecb", + "layout": "IPY_MODEL_c6d7ef25a0294af094eeb93a77b996a3", "max": 10, - "style": "IPY_MODEL_8aa455ac80494ef495673b6c21e6398a", + "style": "IPY_MODEL_095ed94a499d4a67ab5d51f8e26ff7ae", "value": 1 } }, - "c8b0d540f6b841aca0628e428b8a17c9": { + "cd92110950a24b47a9ee2169f0ed1e53": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_750d60c7e6b1444591503f172d69d1cd" + ], + "layout": "IPY_MODEL_c8881c0c6b3e4000a26dc8ee55251b70" + } + }, + "cde16ca40a7e401a9f85e3702f4b56c8": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "caf31c235f2d47eca11719ebb50f2d50": { + "d1dd5d62e2a74ec6954a6aebab6989b0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_3edb0a6f250143e48ce5d6e47637a64e" + "IPY_MODEL_ad45a540ee1549b5b9e0279b8f675832", + "IPY_MODEL_ab287f483e4c4d2aaccfb08cfe2c4d05", + "IPY_MODEL_b140c9b160174ce3ae0da8e944d2c648" ], - "layout": "IPY_MODEL_3415f3784f154dc6ab4a51c74fa77188" + "layout": "IPY_MODEL_1d088ac06e7a499bb94a4812be97a152" } }, - "d57ec57bab534a7b82726c755ba4abbc": { + "d45a4760181a4d50859a9fdc9b78913e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { - "_dom_classes": [ - "widget-interact" - ], "children": [ - "IPY_MODEL_c7b1c43a86984397965daa0fd7186c52", - "IPY_MODEL_e2e2880a7e9041dfa5fe2c0eb570b7ad", - "IPY_MODEL_450f8f1afe094724b5a93637c1315e56" + "IPY_MODEL_e7ea1dd8a6ed4c6198420fc107ca2dfd", + "IPY_MODEL_9e75a82f34104074b1f1cc00d4ab1df7", + "IPY_MODEL_c4b5c03982bf487ca539a874963e0979" ], - "layout": "IPY_MODEL_4ddc02e3880c452cba15a98bed106e2e" - } - }, - "d5f384d33f714b40afa412e05d743ae6": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", - "state": { - "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", - "_model_module_version": "^0.13", - "_view_count": 1, - "_view_module_version": "^0.13", - "height": 512, - "layout": "IPY_MODEL_ffa9018179184b64a1831eccd9f7c491", - "width": 508 + "layout": "IPY_MODEL_ebf99a1ba3e542de9abadee2d353f38f" } }, - "d8333c92a733464a91ede259ec845797": { + "d8a127407a3d4080be1990c14e8bf068": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", - "state": { - "behavior": "drag-tap", - "continuous_update": false, - "description": "Slice", - "layout": "IPY_MODEL_ba8cb19e295a4367b5930638e85c618a", - "max": 119, - "style": "IPY_MODEL_555d6f160dcf4fbdbe590a30f469af36", - "value": 60 - } - }, - "da9ec0e3f2b440ccaa13617f03d8012d": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasManagerModel", + "model_name": "VBoxModel", "state": { - "_model_module_version": "^0.13", - "_view_module": null, - "_view_module_version": "" + "children": [ + "IPY_MODEL_7027d391f3364986963d71064a300a36", + "IPY_MODEL_9167e556e7764b1691a196895438c077", + "IPY_MODEL_a9bc3ebbd39a4502b6ed24205e07fb93" + ], + "layout": "IPY_MODEL_19c2c78fe6eb46e799ee4cfacb5477c6" } }, - "db4ec158f2aa4453bb841d5f321b6d0a": { + "d91e812781344355b6911661e58c2701": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "dc05020ea0ea4fd9820d1d784f4e27d0": { + "d9d44ae7563a4758a7a812ba7a8201a2": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "de66bfc3ec684a7d8e1cff0e634d97ba": { - "model_module": "@jupyter-widgets/base", + "da1053be8b9240ac8bd0898e61d4d3c4": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "LabelStyleModel", + "state": { + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null + } }, - "de6e936fdee2429388928d109262b737": { - "model_module": "@jupyter-widgets/base", + "e13ed8a686784e4e8f9838f3241b8409": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_52156da382f4413d937b4ad67f73b987" + ], + "layout": "IPY_MODEL_0fce2ac1571b411f88be4d2b1322f70d" + } }, - "de909ad365674977b83a38b23a8aead7": { + "e6763ae14a7447d692a90c73f45e2c5b": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "e2e2880a7e9041dfa5fe2c0eb570b7ad": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "CheckboxModel", - "state": { - "description": "show_labels", - "disabled": false, - "layout": "IPY_MODEL_507b53b194504ce9b4b133582bb375d9", - "style": "IPY_MODEL_5ce814236d284fb1a433e4475cfda4b9", - "value": true - } - }, - "e4753f58e14844f79f6d800415546334": { + "e7ea1dd8a6ed4c6198420fc107ca2dfd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_84b95f07d9ca4eda8edfe9ebe155288f" + "IPY_MODEL_c57ab911f0a94d64877f9279068533d1" ], - "layout": "IPY_MODEL_684c5a2f7c184082b44f84bf660cd287" + "layout": "IPY_MODEL_ffec1f02b3834eab9dfd512562dbb016" } }, - "ec19167993ef4e7a840f0b7712acd11d": { + "eaf36bc14f124033b786e022da08e97b": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", + "_canvas_manager": "IPY_MODEL_367acbf2db5c4b1986803b0835a9c8e7", "_model_module_version": "^0.13", + "_view_count": 1, "_view_module_version": "^0.13", - "height": 127, - "layout": "IPY_MODEL_7ec1d6c5812a47a1bc2e2efa93a51498", - "width": 128 + "height": 400, + "layout": "IPY_MODEL_554344ba3b6746a7a731e61c44fd631d", + "width": 400 } }, - "ece4354e6eed460d84d54669ee475514": { + "eb22cdcfcf814e588813e5299ba5ae8f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "ed2699b64ae54d31ab3faec7f0b21e7c": { - "model_module": "@jupyter-widgets/controls", + "ebf99a1ba3e542de9abadee2d353f38f": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "HBoxModel", - "state": { - "children": [ - "IPY_MODEL_f641b8c5a50341dc9ab821c927997a6d" - ], - "layout": "IPY_MODEL_36ebacb58448483ebb6e89737c0e44ab" - } + "model_name": "LayoutModel", + "state": {} }, - "f0fc2c5ca1774629a5de45754e41fc66": { + "eed911b8a1514995b46370a383ecbe50": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "SliderStyleModel", @@ -1548,78 +1502,124 @@ "description_width": "" } }, - "f2e7d846b1ee477ca2c6e14be0289a0e": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "f45dc60ca5ee4458b1244c8a39ea1baf": { + "f0221b5b91b54a07992d93fd9e0e64df": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_da9ec0e3f2b440ccaa13617f03d8012d", + "_canvas_manager": "IPY_MODEL_367acbf2db5c4b1986803b0835a9c8e7", "_model_module_version": "^0.13", - "_view_count": 1, "_view_module_version": "^0.13", "height": 400, - "layout": "IPY_MODEL_7d2b58cd7fa34f2d8b466f5c5083dad4", + "layout": "IPY_MODEL_3dd1eab78d8742d881b8795055686013", "width": 400 } }, - "f641b8c5a50341dc9ab821c927997a6d": { + "f03772e182dd4088b6172800d0dcd172": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_367acbf2db5c4b1986803b0835a9c8e7", + "_model_module_version": "^0.13", + "_view_count": 1, + "_view_module_version": "^0.13", + "height": 512, + "layout": "IPY_MODEL_9d86ef8654de423dae99d18aeaf1a185", + "width": 508 + } + }, + "f09d8823232e44e198ea4c54c72296b1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_9db6aa0c91284f798098851790454852" + "IPY_MODEL_c6a1a4140c864b3caecf490df68854b8", + "IPY_MODEL_f4f80cf663b14766a11149eaf6d45894", + "IPY_MODEL_fce97b1ba2e04ee594c989ac3858ab95" ], - "layout": "IPY_MODEL_a649767cf4344ff388a1b1fca20788d7" + "layout": "IPY_MODEL_8ec7e3c6999649feaad94dc7c9ee0070" } }, - "f709fe6b3b4c47e8be497189a4cf6c56": { + "f370bb61bbdc4b688a68c376c471984e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "f4f80cf663b14766a11149eaf6d45894": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LabelStyleModel", + "model_name": "IntSliderModel", "state": { - "description_width": "", - "font_family": null, - "font_size": null, - "font_style": null, - "font_variant": null, - "font_weight": null, - "text_color": null, - "text_decoration": null + "behavior": "drag-tap", + "description": "Slice", + "layout": "IPY_MODEL_715c606d74dc465d9c207f8bebace77b", + "max": 119, + "style": "IPY_MODEL_867bee726ded4427bbefdc89f106e903", + "value": 60 } }, - "f7e257328396497787aac4b673b1b60f": { - "model_module": "@jupyter-widgets/controls", + "f66a84f451eb4f449ebbb411fee42702": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "LayoutModel", + "state": {} + }, + "f6ac019f4ecf46e4a2bfd2df47267b0d": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { - "children": [ - "IPY_MODEL_ec19167993ef4e7a840f0b7712acd11d" - ], - "layout": "IPY_MODEL_38b36a5905494bbf92842d71010295a1" + "layout": "IPY_MODEL_224e96501c944f9c8119572fe37e7d3f" } }, - "f885fa6ccc754d5c8e1db91df621a5f2": { + "f83f6b33cd6541afae4356d5a0768912": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "f8a18beeb202454ea2d52ea33358b35c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "f97eb9527a1143378fff65dc3174e2e6": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_367acbf2db5c4b1986803b0835a9c8e7", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 127, + "layout": "IPY_MODEL_72e2c6ca1b46459a820536e710469027", + "width": 128 + } + }, + "fc2a5f59dfde4bedbb1abb8cded595d9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "fce97b1ba2e04ee594c989ac3858ab95": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", "state": { "behavior": "drag-tap", - "continuous_update": false, - "description": "Slice", - "layout": "IPY_MODEL_860528427cc2484ea5def58a696b1a03", - "max": 119, - "style": "IPY_MODEL_aabda667f6a9412b98589de90d1fd9fc", - "value": 60 + "description": "Curtain", + "layout": "IPY_MODEL_fc2a5f59dfde4bedbb1abb8cded595d9", + "max": 40, + "style": "IPY_MODEL_aba15c83ca484c4aba730dca747b851b", + "value": 20 } }, - "ffa9018179184b64a1831eccd9f7c491": { + "ffec1f02b3834eab9dfd512562dbb016": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", diff --git a/stackview/__init__.py b/stackview/__init__.py index d1f6f88..6652ea0 100644 --- a/stackview/__init__.py +++ b/stackview/__init__.py @@ -85,11 +85,15 @@ def slice( axis : int, optional Axis in case we are slicing a stack display_width : int, optional - Size of the displayed image in pixels + This parameter is obsolete. Use zoom_factor instead display_height : int, optional - Size of the displayed image in pixels + This parameter is obsolete. Use zoom_factor instead continuous_update : bool, optional Update the image while dragging the mouse, default: False + zoom_factor: float, optional + Allows showing the image larger (> 1) or smaller (<1) + zoom_spline_order: int, optional + Spline order used for interpolation (default=0, nearest-neighbor) Returns ------- @@ -141,13 +145,17 @@ def curtain( axis : int, optional Axis in case we are slicing a stack display_width : int, optional - Size of the displayed image in pixels + This parameter is obsolete. Use zoom_factor instead display_height : int, optional - Size of the displayed image in pixels + This parameter is obsolete. Use zoom_factor instead continuous_update : bool, optional Update the image while dragging the mouse, default: False alpha: float, optional sets the transperancy of the curtain + zoom_factor: float, optional + Allows showing the image larger (> 1) or smaller (<1) + zoom_spline_order: int, optional + Spline order used for interpolation (default=0, nearest-neighbor) Returns ------- @@ -236,11 +244,15 @@ def orthogonal( image : image Image to be displayed display_width : int, optional - Size of the displayed image in pixels + This parameter is obsolete. Use zoom_factor instead display_height : int, optional - Size of the displayed image in pixels + This parameter is obsolete. Use zoom_factor instead continuous_update : bool, optional Update the image while dragging the mouse, default: False + zoom_factor: float, optional + Allows showing the image larger (> 1) or smaller (<1) + zoom_spline_order: int, optional + Spline order used for interpolation (default=0, nearest-neighbor) Returns ------- @@ -285,11 +297,15 @@ def side_by_side( axis : int, optional Axis in case we are slicing a stack display_width : int, optional - Size of the displayed image in pixels + This parameter is obsolete. Use zoom_factor instead display_height : int, optional - Size of the displayed image in pixels + This parameter is obsolete. Use zoom_factor instead continuous_update : bool, optional Update the image while dragging the mouse, default: False + zoom_factor: float, optional + Allows showing the image larger (> 1) or smaller (<1) + zoom_spline_order: int, optional + Spline order used for interpolation (default=0, nearest-neighbor) Returns ------- @@ -400,9 +416,17 @@ def interact(func, Parameters ---------- func : function - image : Image + image : Image, optional + If not provided, context must be provided instead. args - continuous_update : bool + continuous_update : bool, optioonal + Update the image while dragging the mouse, default: False + context:dict, optional + A dictionary of (name:image), allows showing a pulldown of available images. + zoom_factor: float, optional + Allows showing the image larger (> 1) or smaller (<1) + zoom_spline_order: int, optional + Spline order used for interpolation (default=0, nearest-neighbor) context:dict dictionary of name, value pairs that can be selected from pulldowns, e.g.: globals() kwargs @@ -558,11 +582,15 @@ def picker( slice_number : int, optional Slice-position in the stack display_width : int, optional - Size of the displayed image in pixels + This parameter is obsolete. Use zoom_factor instead display_height : int, optional - Size of the displayed image in pixels + This parameter is obsolete. Use zoom_factor instead continuous_update : bool, optional Update the image while dragging the mouse, default: False + zoom_factor: float, optional + Allows showing the image larger (> 1) or smaller (<1) + zoom_spline_order: int, optional + Spline order used for interpolation (default=0, nearest-neighbor) Returns ------- From be2c97a4a0a8bdbff1b9c226670e5f16b5280956 Mon Sep 17 00:00:00 2001 From: Robert Haase Date: Fri, 23 Dec 2022 12:47:10 +0100 Subject: [PATCH 5/6] documentation --- README.md | 56 +- docs/demo.ipynb | 2855 ++++++++++++++++++++++++++--------------------- 2 files changed, 1601 insertions(+), 1310 deletions(-) diff --git a/README.md b/README.md index b4f8d2d..c5cd846 100644 --- a/README.md +++ b/README.md @@ -28,12 +28,16 @@ If you run the installation from within a notebook, you need to restart Jupyter You can use `stackview` from within jupyter notebooks as shown below. Also check out the demo in [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/haesleinhuepf/stackview/HEAD?filepath=docs%2Fdemo.ipynb) +There are also example notebooks in [this folder](https://github.com/haesleinhuepf/stackview/tree/main/docs). + Starting point is a 3D image dataset provided as numpy array. ```python from skimage.io import imread image = imread('data/Haase_MRT_tfl3d1.tif', plugin='tifffile') ``` +### Slice view + You can then view it slice-by-slice: ```python import stackview @@ -41,18 +45,45 @@ stackview.slice(image, continuous_update=True) ``` ![](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/demo_slice.gif) +### Static insight views + +The `insight` function turns a numpy-array into a numpy-compatible array that has an image-display in jupyter notebooks. + +```python +insight(image[60]) +``` + +![img.png](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/insight_demo.png) + +Images of 32-bit and 64-bit type integer are displayed as labels. + +```python +blobs = imread('data/blobs.tif') +labels = label(blobs > 120) + +insight(labels) +``` + +![img.png](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/labels_demo.png) + +### Pick intensities + To read the intensity of pixels where the mouse is moving, use the picker. ```python stackview.picker(image, continuous_update=True) ``` ![](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/demo_picker.gif) +### Orthogonal view + Orthogonal views are also available: ```python stackview.orthogonal(image, continuous_update=True) ``` ![](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/demo_orthogonal.gif) +### Curtain + Furthermore, to visualize an original image in combination with a processed version, a curtain view may be helpful: ```python stackview.curtain(image, modified_image * 65537, continuous_update=True) @@ -77,6 +108,8 @@ stackview.curtain(slice_image, labels, continuous_update=True) ![](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/demo_curtain3.gif) +### Side-by-side view + A side-by-side view for colocalization visualization is also available. If you're working with time-lapse data, you can also use this view for visualizing differences between timepoints: ```python @@ -84,6 +117,8 @@ stackview.side_by_side(image_stack[1:], image_stack[:-1], continuous_update=True ``` ![](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/demo_side_by_side.gif) +### Interact + Exploration of the parameter space of image processing functions is available using `interact`: ```python from skimage.filters.rank import maximum @@ -120,26 +155,7 @@ stackview.interact(gaussian, context=globals(), continuous_update=True) ![](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/demo_interact4.gif) -### Static views - -The `insight` function turns a numpy-array into a numpy-compatible array that has an image-display in jupyter notebooks. - -```python -insight(image[60]) -``` - -![img.png](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/insight_demo.png) - -Images of 32-bit and 64-bit type integer are displayed as labels. - -```python -blobs = imread('data/blobs.tif') -labels = label(blobs > 120) - -insight(labels) -``` - -![img.png](https://raw.githubusercontent.com/haesleinhuepf/stackview/main/docs/images/labels_demo.png) +To add an `insight`-view automatically to results of functions, you can add this. ```python @jupyter_displayable_output diff --git a/docs/demo.ipynb b/docs/demo.ipynb index b3fc93a..e484ecb 100644 --- a/docs/demo.ipynb +++ b/docs/demo.ipynb @@ -66,7 +66,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "4d8e9f5a3d6a4f708e648436765f3a26", + "model_id": "408f9f987e0d4eaca0a2e9795a36d179", "version_major": 2, "version_minor": 0 }, @@ -83,6 +83,104 @@ "stackview.slice(image, continuous_update=True)" ] }, + { + "cell_type": "markdown", + "id": "39843d28-d31e-46a7-bc33-5cf3d8cabd6e", + "metadata": {}, + "source": [ + "# Insight\n", + "You can also get a static view using a maximum-intensity projection with additional information." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "be919845-f8fc-4dd6-8b0b-6e729c9d0fc2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
shape(120, 160, 160)
dtypeuint16
size5.9 MB
min0
max65535
\n", + "\n", + "
" + ], + "text/plain": [ + "StackViewNDArray([[[ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 992, ..., 1221, 1297, 0],\n", + " [ 0, 0, 1526, ..., 1144, 2213, 0],\n", + " ...,\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0]],\n", + "\n", + " [[ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 2213, ..., 916, 610, 0],\n", + " [ 0, 0, 2365, ..., 1297, 1068, 0],\n", + " ...,\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0]],\n", + "\n", + " [[ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 1068, ..., 153, 381, 0],\n", + " [ 0, 0, 1526, ..., 305, 458, 0],\n", + " ...,\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0]],\n", + "\n", + " ...,\n", + "\n", + " [[ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 610, ..., 763, 1068, 534],\n", + " [ 0, 0, 305, ..., 1221, 381, 610],\n", + " ...,\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0]],\n", + "\n", + " [[ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 229, ..., 763, 916, 0],\n", + " [ 0, 0, 458, ..., 839, 992, 0],\n", + " ...,\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0]],\n", + "\n", + " [[ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 1144, ..., 687, 1450, 0],\n", + " [ 0, 0, 381, ..., 1068, 763, 0],\n", + " ...,\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0],\n", + " [ 0, 0, 0, ..., 0, 0, 0]]],\n", + " dtype=uint16)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stackview.insight(image)" + ] + }, { "cell_type": "markdown", "id": "df4bb7be", @@ -94,14 +192,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "64731189", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ee760612909d4167aeecdcae934374e6", + "model_id": "3837d3075e974a978eb97dbb94d71585", "version_major": 2, "version_minor": 0 }, @@ -109,7 +207,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=160, width=160),)),)), IntSlider(value=60, des…" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -129,14 +227,14 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "42dd2614", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "7378e4e0bda2417b8f3992356dbb1ee4", + "model_id": "c4ac17e596bb448cad4aec4a0eef53a6", "version_major": 2, "version_minor": 0 }, @@ -144,7 +242,7 @@ "HBox(children=(VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=160, width=160),)),)), IntSlide…" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -164,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "d4ee961e", "metadata": {}, "outputs": [], @@ -174,14 +272,14 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "ab1dc868", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "da7923c587f442f59edfaef60b0a2864", + "model_id": "0b7888ebaed6427a9818c164fe284324", "version_major": 2, "version_minor": 0 }, @@ -189,7 +287,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=160, width=160),)),)), IntSlider(value=60, des…" ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -208,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "e421b46f-f738-4048-9a77-09dc54070715", "metadata": {}, "outputs": [], @@ -218,14 +316,14 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "24f8a418-b261-4a6e-97de-025046326a13", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "3c3826254cfa40878bf2403f200c74e6", + "model_id": "fbdc4ab569b44fa4b89d6484cb922ab7", "version_major": 2, "version_minor": 0 }, @@ -233,7 +331,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=160, width=160),)),)), IntSlider(value=60, des…" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -252,14 +350,14 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "91a89968-9f2c-48bb-abfa-d6e123dcf51d", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "23ee280c9a27482b87ac78fd5c2dbe03", + "model_id": "44ce91766bdd44c4b802bd8b1315b8ab", "version_major": 2, "version_minor": 0 }, @@ -267,7 +365,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=160, width=160),)),)), IntSlider(value=60, des…" ] }, - "execution_count": 10, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -286,7 +384,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "2f21ee1d", "metadata": {}, "outputs": [], @@ -296,7 +394,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "bd7d1317", "metadata": {}, "outputs": [], @@ -307,14 +405,14 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "6b5dd31a", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "14517c8ca11f476d9bdb8009cca955eb", + "model_id": "61adacd158af4260b86b30106be3810c", "version_major": 2, "version_minor": 0 }, @@ -322,7 +420,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=254, width=256),)),)), IntSlider(value=128, de…" ] }, - "execution_count": 13, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -341,7 +439,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "id": "f39bacd7-6ca3-4c28-bb4f-25d2251b0c9a", "metadata": {}, "outputs": [], @@ -352,14 +450,14 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "id": "1ad031f5-ab80-473c-95c5-12bd08256d56", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d584eeb9583f47159fe5e947d8fd2e1c", + "model_id": "d83ac969bee4460fa668013fd2d7bf2e", "version_major": 2, "version_minor": 0 }, @@ -367,7 +465,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=254, width=256),)),)), IntSlider(value=128, de…" ] }, - "execution_count": 15, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -387,7 +485,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "id": "7bf91429", "metadata": {}, "outputs": [], @@ -397,14 +495,14 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "id": "5ad9ebf9", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "01fbf48aa34940e3adcaaea741a10afd", + "model_id": "5575982f5b7c46a9af09192f8c4a8d06", "version_major": 2, "version_minor": 0 }, @@ -412,7 +510,7 @@ "VBox(children=(HBox(children=(HBox(children=(VBox(children=(ImageWidget(height=389, width=235),)),)), HBox(chi…" ] }, - "execution_count": 17, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -423,7 +521,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "id": "97a16fec-21a0-4aa6-8dee-660ce345238e", "metadata": {}, "outputs": [], @@ -433,14 +531,14 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "id": "b948942f-b1c1-474f-a8cb-cf3f104b65bf", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "84af62e04b2c42479691072792fdd2ff", + "model_id": "95a23fa2acb44dcc8e466e016d18ef91", "version_major": 2, "version_minor": 0 }, @@ -448,7 +546,7 @@ "VBox(children=(HBox(children=(HBox(children=(VBox(children=(ImageWidget(height=389, width=235),)),)), HBox(chi…" ] }, - "execution_count": 19, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -468,14 +566,14 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "id": "41b75598", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "4f5889b807e44ec5a4047ff611fbd41e", + "model_id": "8d766afb15ec4b5788b8c0d2b5128315", "version_major": 2, "version_minor": 0 }, @@ -489,7 +587,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "0394f0b330c94538b4c1c26d96807bfa", + "model_id": "13e6c14f92964901bb6e0ba8e0056f60", "version_major": 2, "version_minor": 0 }, @@ -497,7 +595,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=256, width=254),)),)), Label(value='maximum(..…" ] }, - "execution_count": 20, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -509,14 +607,14 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "id": "ba9bfc67", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d4bd2d3334f94874973b127f18c3ed23", + "model_id": "4c52b9342fba46cdbb85157556b28dd6", "version_major": 2, "version_minor": 0 }, @@ -530,7 +628,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "16a643867c49460c96cc1cd761c7a965", + "model_id": "8c54de2a11774bdcabcf19d240ba3485", "version_major": 2, "version_minor": 0 }, @@ -538,7 +636,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=256, width=254),)),)), Label(value='gaussian(.…" ] }, - "execution_count": 21, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -558,14 +656,14 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "id": "11f6e31e", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "1471f682ae414d47b3db4652918590ce", + "model_id": "568b0ed1f26d4dbba367a08603c4e081", "version_major": 2, "version_minor": 0 }, @@ -579,7 +677,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "4195bb3f20984176b1c76b13888cf34a", + "model_id": "8f21f1a11d0745c8a7667d83a5512274", "version_major": 2, "version_minor": 0 }, @@ -587,7 +685,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=256, width=254),)),)), Label(value='my_custom_…" ] }, - "execution_count": 22, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -618,7 +716,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "id": "8abc8e06", "metadata": { "tags": [] @@ -627,7 +725,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "cab41d7e4fa44ddbae8e09a59ab246df", + "model_id": "d7586a3908474f13b36a8ede3bc7f2c6", "version_major": 2, "version_minor": 0 }, @@ -641,7 +739,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "a1f5e14ba6de412788ccb8b4b53d7e2f", + "model_id": "5dc4b3f007e84311a142ed21934bc419", "version_major": 2, "version_minor": 0 }, @@ -649,7 +747,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=256, width=254),)),)), Label(value='gaussian(.…" ] }, - "execution_count": 23, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -670,7 +768,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "id": "9cd2f2e5", "metadata": { "tags": [] @@ -679,7 +777,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "7fff7cad7a254f31a4c2217e1a77d53a", + "model_id": "55827b001ea546588d2ca0da67c7514b", "version_major": 2, "version_minor": 0 }, @@ -687,7 +785,7 @@ "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=100, width=100),)),)), Label(value='[]:')))" ] }, - "execution_count": 24, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -703,9 +801,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "id": "c1c350b5", "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8db60ea54af84bb6878415732d43bd52", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(VBox(children=(ImageWidget(height=60, width=60),)),)), Label(value='[]:')))" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "silly_image = np.zeros((3, 3))\n", + "silly_image[:,1:] = 1\n", + "silly_image[1:] = silly_image[1:] + 2\n", + "\n", + "stackview.picker(silly_image.astype(np.uint32), zoom_factor=20)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d8a7a29d-0fe9-445b-99f7-41974cf61ea9", + "metadata": {}, "outputs": [], "source": [] } @@ -731,181 +859,158 @@ "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { - "00093cfc136b49e5b6ec8b2de621e324": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", - "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_count": 1, - "_view_module_version": "^0.13", - "height": 100, - "layout": "IPY_MODEL_3189f40f59604cc4b98574e50f982990", - "width": 100 - } - }, - "0043e61dd3b04a8f8b68b2ec5f966b49": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", - "state": { - "layout": "IPY_MODEL_5861762be7d84ec9b9e64e2d3224931b" - } + "008a498348974ec8acf115e100625aee": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} }, - "01fbf48aa34940e3adcaaea741a10afd": { - "model_module": "@jupyter-widgets/controls", + "009a9cbc20424975bdb5920d5e39f740": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_b297ad65ebc74215bd11c12b4d2d2cc7", - "IPY_MODEL_e10c29ecfb3d41c1b93b0b2212519476" - ], - "layout": "IPY_MODEL_de419a9179184facb46af2e21129e4b2" - } + "model_name": "LayoutModel", + "state": {} }, - "025cdd9e416f46159400137e016c5c59": { + "00b7cf50fe4446299b47ab2d7e3e86a4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "LabelModel", "state": { - "description_width": "" + "layout": "IPY_MODEL_bc6b0b722516470d812901fdc41d1072", + "style": "IPY_MODEL_27a9495b87564db7a9caf250089df7c7", + "value": "gaussian(..., sigma=1.0)" } }, - "0394f0b330c94538b4c1c26d96807bfa": { - "model_module": "@jupyter-widgets/controls", + "0150f928913c493681bcdb7ca629fb5f": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_1508f7cd23164e5e887d7213b496beab", - "IPY_MODEL_fe7484d4af2d46e0b34903508ba44ab0" - ], - "layout": "IPY_MODEL_73447f3d8f87461e9b8b04ebf0a38282" - } + "model_name": "LayoutModel", + "state": {} }, - "044cb46ae9e74cf2b1f1da68e2fbeefe": { + "01b8e1518f344381b4b56c39c5e0390c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", "state": { "behavior": "drag-tap", - "continuous_update": false, - "description": "footprint", - "layout": "IPY_MODEL_a4bdfe1b75e44a378ccb918e25885960", - "style": "IPY_MODEL_e680e335e2c54c7f9db71716edab73f6" + "description": "Curtain", + "layout": "IPY_MODEL_68b21936c00c462088bcb37a69894aeb", + "max": 256, + "style": "IPY_MODEL_738418a8326a408d85d13c057c2d7ebc", + "value": 128 } }, - "0500d5df9f18493d95ec6472ee104c7c": { + "0389d4d1fe0f4b358763db8b801c4390": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "05cc1ff819d04856954597daa0bf8304": { - "model_module": "@jupyter-widgets/controls", + "0533a6d08eca4f4db63443b28a5e7f9f": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_1428f92e5c434e17a04987209b5b72b1" - ], - "layout": "IPY_MODEL_09eb375babc14b47af49e57d047056d5" - } + "model_name": "LayoutModel", + "state": {} }, - "0924b8234a274612b6abbbe6f3923d51": { - "model_module": "@jupyter-widgets/controls", + "06c7c509230b44ac86d66e3339c06845": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_164f5abf043347eeb093fcffc22c8303" - ], - "layout": "IPY_MODEL_e3871f86bff84aadac40918a0d0713e2" - } + "model_name": "LayoutModel", + "state": {} }, - "09eb375babc14b47af49e57d047056d5": { + "089b7c9ed7d54503915e125de3b1e288": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "0a38908645694f69ad44d711ada6e01a": { + "0995b2b5e7114739b846ca75a9a4feef": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "0af179b7c7934387b624ba6edc170ee2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "model_name": "FloatSliderModel", "state": { "behavior": "drag-tap", - "description": "Slice", - "layout": "IPY_MODEL_49725ea39d8c45d39323fc8ef454ee60", - "max": 119, - "style": "IPY_MODEL_9c6337be6b194358954f150f712d4bb7", - "value": 60 + "continuous_update": false, + "layout": "IPY_MODEL_c71a3dc82e274a59bf458b9b9e286897", + "max": 10, + "style": "IPY_MODEL_8f5427a8b5914b76bc5f3e7c22010e83", + "value": 1 } }, - "0a6541b3b4bc48f6b3171a64c2275d26": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "0b50e94847424804a84544a5a0e0222d": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", "state": { - "behavior": "drag-tap", - "description": "Z", - "layout": "IPY_MODEL_bc78525fd440495aba929854956a745a", - "max": 119, - "style": "IPY_MODEL_46729a4e0ce2418084b151134d982fcc", - "value": 60 + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 256, + "layout": "IPY_MODEL_4e33de8d20114ed8849e17a7abe04548", + "width": 254 } }, - "0b1447c5d5b540c3b5ecba3fc1440e92": { + "0b7888ebaed6427a9818c164fe284324": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "model_name": "VBoxModel", "state": { - "behavior": "drag-tap", - "description": "Slice", - "layout": "IPY_MODEL_b7ae5c9f75734166b65f03ac5d496e13", - "max": 119, - "style": "IPY_MODEL_3fdca7d8be514c74aa45b0a326e9080e", - "value": 60 + "children": [ + "IPY_MODEL_534135e710544eb9931f8da87b70a084", + "IPY_MODEL_df5d9373a4904c38af6413087c3a87a9", + "IPY_MODEL_5e0b5855c1014f75a5de6f2572d3e094" + ], + "layout": "IPY_MODEL_77f991a5c1fe437ab6b4fd6b8e8d8329" } }, - "0b8cc01661ff431499da123e089f2702": { + "0bc8db4dc1ca4ee981fe49d1aaef21d3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", "state": { "behavior": "drag-tap", - "description": "Curtain", - "layout": "IPY_MODEL_4008af73e49c49eca84833a3475db2f7", - "max": 160, - "style": "IPY_MODEL_6c71ea37d1c24fd9bd659d9dc6312d28", - "value": 80 + "description": "Slice", + "layout": "IPY_MODEL_4b00fec1e87f47ae866eaf7a99212da0", + "max": 119, + "style": "IPY_MODEL_5764e397a52845c89531ff78b6e2f29f", + "value": 60 } }, - "0c11fe48b90946c3a99b6fe0d433c6f7": { + "0dcb59a9d6a7454c9db5dab61aa41f4a": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "0c74bcca58204e378811254ea48f639a": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "0e11671cff254c80af67662acd7d1a80": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "layout": "IPY_MODEL_740481c259714ef2bea55b8d96c30b3b" + } }, - "0c8fa479f2f54fffa5e248147134788a": { + "0ff1cb748a024776b3d9ecedc9a838ee": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LabelModel", + "model_name": "SliderStyleModel", "state": { - "layout": "IPY_MODEL_fc63275c6f6c4924aad93a0f6aa14476", - "style": "IPY_MODEL_6fbd1660e00e4231be64a7b75a572e7d", - "value": "my_custom_code(..., sigma=1.0, show_labels=True)" + "description_width": "" } }, - "0e01520ea3af4e86a50409bc99e762ea": { + "11510c73d0e34a139b6312404b2e0ea4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "11d8a62201274d8f9c45bb950af6fad2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "LabelStyleModel", @@ -920,190 +1025,119 @@ "text_decoration": null } }, - "0e29881147a043b184b73ffb1f3873b3": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "description_width": "" - } - }, - "0e5ec8706be14e9bbaee82d8083d770d": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "0eff0bdefbf8479ca23c8ddf3239f0ea": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "0f723ea678bf4f1fbb62c2fdaa8c8e19": { + "121439ebe8694a98805ce0fea08bd447": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "103e88947e5145cdb429188319338f1c": { + "1274ef41c8ac4f4599cbcb9d3fcece23": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", "_model_module_version": "^0.13", + "_view_count": 1, "_view_module_version": "^0.13", - "height": 389, - "layout": "IPY_MODEL_978bc79b96174a32bdcc158b858cfbd5", - "width": 235 + "height": 100, + "layout": "IPY_MODEL_c33a3fb5ed864c599e7ff5d709e4674d", + "width": 100 } }, - "114088d310904eb8b76ea1c8859e1cf4": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "1208ec418fa244289f9408993a6a1f8f": { - "model_module": "@jupyter-widgets/base", + "13129e6ad30d4eed9c1dcbb0292d136e": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "130c9850625a41bb97b0971aed230776": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "model_name": "HBoxModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 254, - "layout": "IPY_MODEL_1490e1803aee40bea42fd24fe9d4fef0", - "width": 256 + "children": [ + "IPY_MODEL_cee6f85b89d6414b96c435134b79aa81" + ], + "layout": "IPY_MODEL_cdf4b9140cf34b0e8b8d6a144caee02c" } }, - "1340f7dcdf034b42b1e08c22e097f868": { + "13e6c14f92964901bb6e0ba8e0056f60": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_d14ae9a387e04bdc9dd8f7eb86a78dca" + "IPY_MODEL_ab798c8fc3794cb6a62856c55ea4c334", + "IPY_MODEL_45251943cb214bd0b98a378f72174994" ], - "layout": "IPY_MODEL_7af48ba64e65414ea19654e88037d310" + "layout": "IPY_MODEL_5f11cc976f3f4bb79650233cb6d968d4" } }, - "13ade12a2f5846269ec01a71dbd56cf9": { + "14096d171ea44380ba59744cc8b3c865": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "1428f92e5c434e17a04987209b5b72b1": { + "14a9419daa014312b934bf7f068ec484": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", "_model_module_version": "^0.13", "_view_module_version": "^0.13", "height": 256, - "layout": "IPY_MODEL_e4138fbed76940a09a411ce07778e06c", + "layout": "IPY_MODEL_5359deb1a807424aaa0a9c156cf2d70c", "width": 254 } }, - "14517c8ca11f476d9bdb8009cca955eb": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "1880b13365d14927ae63ec515a59dfb5": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { - "children": [ - "IPY_MODEL_b435bfefab124b878112b11dd0b41bc8", - "IPY_MODEL_b183345d38d84db8891fb07d94719d3f" - ], - "layout": "IPY_MODEL_8b595f649f654d128fba8268f8f97139" + "layout": "IPY_MODEL_1ec8c1ba3e214ca3bf3aed70a27b4b10" } }, - "1471f682ae414d47b3db4652918590ce": { - "model_module": "@jupyter-widgets/controls", + "1a0f33ef56b749629f4b1437611e9ca6": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "_dom_classes": [ - "widget-interact" - ], - "children": [ - "IPY_MODEL_361f5acd819d40f2b35b040c02099bb4", - "IPY_MODEL_cdf89cbdc17b48b4aa27a2b58027734b", - "IPY_MODEL_0043e61dd3b04a8f8b68b2ec5f966b49" - ], - "layout": "IPY_MODEL_a0b6653dd0d84d6286c06799c03c96f6" - } + "model_name": "LayoutModel", + "state": {} }, - "1490e1803aee40bea42fd24fe9d4fef0": { + "1a2198fcbafc4265a6ba6deb27b664ea": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "1503ec12c8fc4ff788aee721107efae5": { + "1b9250af70df4eeea55e96fe07f9674c": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "1508f7cd23164e5e887d7213b496beab": { + "1c626d14801542d3ab4f09bafdf112ad": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_1340f7dcdf034b42b1e08c22e097f868" + "IPY_MODEL_45e9fbf91b4c41c59660f6d5e19a14cc" ], - "layout": "IPY_MODEL_0e5ec8706be14e9bbaee82d8083d770d" + "layout": "IPY_MODEL_43fbf851bb6f490480948a35647eb372" } }, - "1633cd16690d45a2bf1425e7ce1ce85c": { + "1e2f7ba4e3b34c658a67113dba5d7b72": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", "state": { "behavior": "drag-tap", - "description": "Y", - "layout": "IPY_MODEL_45a4a8813d1247d9bc20f3083a7dbe33", + "description": "X", + "layout": "IPY_MODEL_34174dbda8d64722aab1fcf3e20684ba", "max": 159, - "style": "IPY_MODEL_b35246ba68d24ac1ae733cb9010bf5ba", + "style": "IPY_MODEL_8bee55a4225f46cf92771643c582bf84", "value": 80 } }, - "164f5abf043347eeb093fcffc22c8303": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", - "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 389, - "layout": "IPY_MODEL_18c41a2db51e459f8c4945de24e64701", - "width": 235 - } - }, - "16a643867c49460c96cc1cd761c7a965": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_2fef29e99da34d098e93dff53788a9b8", - "IPY_MODEL_4e04089732d448b39ea8bf7ff113440e" - ], - "layout": "IPY_MODEL_9a494b86135c4bae9bcfdfb2c38190c3" - } - }, - "1795fc875294482db64c9de49a02ffbd": { + "1e65f700fbce428c84852031db1c90c9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "SliderStyleModel", @@ -1111,102 +1145,115 @@ "description_width": "" } }, - "181023488df24173a8d73a7c8551f7b1": { + "1ec8c1ba3e214ca3bf3aed70a27b4b10": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "18c41a2db51e459f8c4945de24e64701": { + "20531b989ba843ae81917bc68f8e5995": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_f5ab9e676d7e4963a71e663eda5f5ec9", + "style": "IPY_MODEL_b87cd369ad964b50b0c0b0b7c3a83201", + "value": "[]:" + } + }, + "209a56f9d2a54b23bb4e4d742a22c70f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "19e3cdc64f2e401a8f3a809ce12e42f8": { + "213655c97fde4b9b8706a7d428ff79ba": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "1ddba3590bcd4519aaba5fde681040c5": { + "21c8f5de81714729964ac44bcc799369": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "2383d96ac6714d43a017b5de7c1a1588": { + "231fcb8b322b448e9c5b81b386a931a7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_67e8a348baf74afba67d23f15ba15a89" + "IPY_MODEL_67f083a4fc6e45fe8c3ecdddb9170108" ], - "layout": "IPY_MODEL_2973139d0c3f41cf8f92b47a3f91ca01" + "layout": "IPY_MODEL_9f050940f2364a00ada900a49c1b1c52" } }, - "23ee280c9a27482b87ac78fd5c2dbe03": { + "2402b0da6fd84f998637cd1fa1448b26": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "SliderStyleModel", "state": { - "children": [ - "IPY_MODEL_2a6850c3276c4db199df68ffd86ce246", - "IPY_MODEL_3e64387bf3dc4b95b3b4d07c85f7986c", - "IPY_MODEL_6479848ac1d3438cbe9dd12dbe46ee45" - ], - "layout": "IPY_MODEL_8ce5e12428624cc0b731d67b149f6f63" + "description_width": "" } }, - "26c979dfd42444bca5cd29c23886716c": { + "24132bf0393542358ec4b89d96c3f657": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "241bb7cb1d3f44b5a46de716944febd6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", "state": { "behavior": "drag-tap", - "description": "X", - "layout": "IPY_MODEL_552edd9022e447968b4c0464fc2027b1", - "max": 159, - "style": "IPY_MODEL_40366dd913ab413f9172c16c50db04c2", - "value": 80 + "continuous_update": false, + "description": "footprint", + "layout": "IPY_MODEL_209a56f9d2a54b23bb4e4d742a22c70f", + "style": "IPY_MODEL_0ff1cb748a024776b3d9ecedc9a838ee" } }, - "27f0a54336224b9c81f353e6a5a35901": { + "256c113163d143f3b19d0e43a60f56b1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_eb935b3b8883442aa15eb8ce3c321c17" + "IPY_MODEL_3e355c667fc54530b5186c7e37fcde48" ], - "layout": "IPY_MODEL_b0cda1f3162c4e00a561eb8f01edad8a" + "layout": "IPY_MODEL_e0107b987312473dbd8315f47855c1fc" } }, - "284d99603c33494cbcf01b71eb53e227": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "2973139d0c3f41cf8f92b47a3f91ca01": { - "model_module": "@jupyter-widgets/base", + "27a9495b87564db7a9caf250089df7c7": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "LabelStyleModel", + "state": { + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null + } }, - "298bc410389b484890248f21fe95f0a6": { + "28f14b4031ea463b87f47c3cb10b0ba9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_57a4db7519a74e299fe3c940a017b347" + "IPY_MODEL_2eee3e780b184d9b863f16eb06c904a2" ], - "layout": "IPY_MODEL_8b00a8064dda465bb0564a884b17fad1" + "layout": "IPY_MODEL_7a2b0efc6e3f438ea8a6b7cf543fc4fd" } }, - "29943e5fee0d462b9a8ed15eb79238b7": { + "29d06d44d6a649d8b9237971e7995bd2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "SliderStyleModel", @@ -1214,273 +1261,204 @@ "description_width": "" } }, - "2a6850c3276c4db199df68ffd86ce246": { + "2a08a396ff4f401e9e38c8af1fd13de1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_e61157b490da4e45bdf2a5db296e12f3" + "IPY_MODEL_bb51d1065bc94d2c99b49351275c5fb3" ], - "layout": "IPY_MODEL_2b5df4cb56344e6e8fb42f138edd3686" + "layout": "IPY_MODEL_5795db113eea46019b0adf0b6dea897c" } }, - "2b097badf14d43b7bb1239d12eaf33e8": { - "model_module": "@jupyter-widgets/controls", + "2b4b73d2adf745d0aa7adda5b2d98c6a": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_88d8e57e7346460b923673de069915df" - ], - "layout": "IPY_MODEL_fa1bff7437fb406b8ca726532ace518d" - } + "model_name": "LayoutModel", + "state": {} }, - "2b5df4cb56344e6e8fb42f138edd3686": { + "2bd2ad7eca284d29bc0c084d075d7f90": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "2b63c23f38734f1893bce8e5cdd14e79": { + "2be15a4d808f4bdfb014084051974580": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "VBoxModel", "state": { - "description_width": "" + "children": [ + "IPY_MODEL_bc206fbed77947e59bb5c243be6c0d61", + "IPY_MODEL_43d51868ade24852ae997a7e6ebdaa03" + ], + "layout": "IPY_MODEL_508a003e88094d35a20a39a369f9e804" } }, - "2e95d7947726444fbad5ab09f25ad24d": { - "model_module": "@jupyter-widgets/controls", + "2be2e8be9401400c9a35ed238a95f832": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "description_width": "" - } - }, - "2f243f24062349ea9b2815606a522c84": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", - "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 256, - "layout": "IPY_MODEL_4799c2f2711349b3bda9d1b9613e173e", - "width": 254 - } + "model_name": "LayoutModel", + "state": {} }, - "2fef29e99da34d098e93dff53788a9b8": { - "model_module": "@jupyter-widgets/controls", + "2c527de4423844ffafa66fc71a7d20cd": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "HBoxModel", - "state": { - "children": [ - "IPY_MODEL_62552b6ff0434b0b84f542bbd2ee2dc2" - ], - "layout": "IPY_MODEL_edeea92014de48b7a95343f4c1e09955" - } + "model_name": "LayoutModel", + "state": {} }, - "30e5800591ee4ccfb53ad18bcf7f3e8e": { - "model_module": "@jupyter-widgets/controls", + "2c6e971a34064919badb845d93946ae7": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", - "state": { - "behavior": "drag-tap", - "continuous_update": false, - "layout": "IPY_MODEL_56cf6b2675bd4007882d42605151ee5a", - "max": 10, - "style": "IPY_MODEL_6c29203a97484d2e8df4509ec7436e6f", - "value": 1 - } + "model_name": "LayoutModel", + "state": {} }, - "3189f40f59604cc4b98574e50f982990": { + "2e19d4028fc5451ebc87c6055d965746": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "31a54ef70be842c9a31c2c7d2c033b36": { + "2eee3e780b184d9b863f16eb06c904a2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_298bc410389b484890248f21fe95f0a6" + "IPY_MODEL_f66777f86e5b4cb48bae74ef0d0b7f31" ], - "layout": "IPY_MODEL_c9210c7defe74b7ab245f627d86347b4" + "layout": "IPY_MODEL_2bd2ad7eca284d29bc0c084d075d7f90" } }, - "31b114b7f64445f7b6a7a009bf57e6f8": { + "2fd529a8d1804022b242b6acf7fb3de4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "31d7d1fccd8d4cde860917271fb818a8": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", "_model_module_version": "^0.13", "_view_module_version": "^0.13", "height": 160, - "layout": "IPY_MODEL_0eff0bdefbf8479ca23c8ddf3239f0ea", + "layout": "IPY_MODEL_0533a6d08eca4f4db63443b28a5e7f9f", "width": 160 } }, - "32486595091449f8b67dd802f118b246": { + "32304f69a869448db4b8582bdc5ce62a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_eb1d05a7d3e14ace96da0316d0f5d714" + "IPY_MODEL_60ba1a1802134cf08b6d9a36b757ab46" ], - "layout": "IPY_MODEL_0c74bcca58204e378811254ea48f639a" - } - }, - "32c2f002f9264f76a68e5330883d15a4": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", - "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 160, - "layout": "IPY_MODEL_d2d98eb58eae4bd4a3e3adf385236072", - "width": 160 + "layout": "IPY_MODEL_11510c73d0e34a139b6312404b2e0ea4" } }, - "332fa3570d3547dfb20c23ca8f0c2359": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "34604f588a464126a1d80f79646730cb": { + "34174dbda8d64722aab1fcf3e20684ba": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "346d261a098046a59650394759f27600": { + "342b3c29ed7142a698acfab17ac5b47b": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "361f5acd819d40f2b35b040c02099bb4": { + "3700a9c4f3f04768aa3be7264b45b302": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", + "model_name": "SliderStyleModel", "state": { - "behavior": "drag-tap", - "continuous_update": false, - "description": "sigma", - "layout": "IPY_MODEL_862fe7c40b2b43c087b757ef6e2ea59b", - "max": 10, - "style": "IPY_MODEL_65872763e35946089c61734c88585db9", - "value": 1 + "description_width": "" } }, - "363ae02f00bb4be78fcca8e7d3b96e6a": { + "3837d3075e974a978eb97dbb94d71585": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "model_name": "VBoxModel", "state": { - "behavior": "drag-tap", - "description": "Slice", - "layout": "IPY_MODEL_dd6b8a226f104870bca9adb2852f15f0", - "max": 119, - "style": "IPY_MODEL_fea1b1fab9794487af89e7bd80e6c321", - "value": 60 + "children": [ + "IPY_MODEL_2a08a396ff4f401e9e38c8af1fd13de1", + "IPY_MODEL_eb922b726f0b42d4943c066af1ec2e97", + "IPY_MODEL_20531b989ba843ae81917bc68f8e5995" + ], + "layout": "IPY_MODEL_d6fac055b4c94056b2c898d2bedc3507" } }, - "36703aee438a447fbb5e0c59c0c7ef1e": { + "3a085dfa2ea1483780119e27f5f5d17e": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", "_model_module_version": "^0.13", + "_view_count": 1, "_view_module_version": "^0.13", - "height": 389, - "layout": "IPY_MODEL_8bd1322b51e44b5a90093ef66d45d1fd", - "width": 235 + "height": 60, + "layout": "IPY_MODEL_704f729ca70e43ecb09d1409035a632d", + "width": 60 } }, - "374131ed0261421fbe5dcabd7f0acf35": { + "3d907c9d9f7c4f4197339f30dd080fdd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LabelStyleModel", + "model_name": "VBoxModel", "state": { - "description_width": "", - "font_family": null, - "font_size": null, - "font_style": null, - "font_variant": null, - "font_weight": null, - "text_color": null, - "text_decoration": null + "children": [ + "IPY_MODEL_c1139defae94496abf58cc64caf71db4" + ], + "layout": "IPY_MODEL_7b7ecfe179d5405eba9a4abbf3ce4c2a" } }, - "3a97bc6637a045c28bc21c7fe808a7c9": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "3c3826254cfa40878bf2403f200c74e6": { + "3e355c667fc54530b5186c7e37fcde48": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_aa677b28fc114b539361d4628f170a6b", - "IPY_MODEL_363ae02f00bb4be78fcca8e7d3b96e6a", - "IPY_MODEL_aa9269c4b7d34523a1d05c913735e61e" + "IPY_MODEL_6a4f4a60f4af4c07ad28aa2ffba59772" ], - "layout": "IPY_MODEL_bd4d57367ddf42fb814003275eee16a8" + "layout": "IPY_MODEL_78846cd826764c888b9004c0481f72be" } }, - "3cbb8a3272264cb6998b2f2abb6b9a4d": { + "3eae203f3d2343f99ef2f17502c97431": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "3e64387bf3dc4b95b3b4d07c85f7986c": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "3f0e92a85efd41c4b2a212d100836260": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { - "behavior": "drag-tap", - "description": "Slice", - "layout": "IPY_MODEL_346d261a098046a59650394759f27600", - "max": 119, - "style": "IPY_MODEL_b5d527aad281432c8f323d29090f1f7d", - "value": 60 + "layout": "IPY_MODEL_ab9b1ae5771e429896d2d9792b8a1b9f" } }, - "3ee1bfa1e6f240b99c4cd5bfef399989": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "3fdca7d8be514c74aa45b0a326e9080e": { + "3f385b60de9d45cfb82c141ea106d130": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "FloatSliderModel", "state": { - "description_width": "" + "behavior": "drag-tap", + "continuous_update": false, + "description": "sigma", + "layout": "IPY_MODEL_0995b2b5e7114739b846ca75a9a4feef", + "max": 10, + "style": "IPY_MODEL_af5510d62669496e824be3cbdcf85f03", + "value": 1 } }, - "4008af73e49c49eca84833a3475db2f7": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "40366dd913ab413f9172c16c50db04c2": { + "3f847a7fc17847bfab440e21696d3c82": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "SliderStyleModel", @@ -1488,128 +1466,199 @@ "description_width": "" } }, - "4049f7732a6e418d998e5b6126ab6029": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "4195bb3f20984176b1c76b13888cf34a": { + "4058663677e54cbaa436bd2d6ad554da": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_721fdd1839b048658ff00c05d06e658f", - "IPY_MODEL_0c8fa479f2f54fffa5e248147134788a" + "IPY_MODEL_dc8a56a46fb4470b850d4afb60feb3c3" ], - "layout": "IPY_MODEL_0c11fe48b90946c3a99b6fe0d433c6f7" + "layout": "IPY_MODEL_68b66bd5b761490fbb54320d91878cff" } }, - "43e3ee2e78b34daeb652d1e8c8d872a5": { + "408f9f987e0d4eaca0a2e9795a36d179": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_103e88947e5145cdb429188319338f1c" + "IPY_MODEL_954632158d2b46cd94dbe795499dc446", + "IPY_MODEL_0bc8db4dc1ca4ee981fe49d1aaef21d3" ], - "layout": "IPY_MODEL_d4be817dda654195b27f091fff442450" + "layout": "IPY_MODEL_d080247366f944358590ccfbc5fd0c56" } }, - "452b77ab08674bfcb8325183618002f7": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "43ae85aeea3d4f1ab06d58f9b5a48507": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", "state": { - "children": [ - "IPY_MODEL_d69f5444b5a14be38e60e12bbb76d877" - ], - "layout": "IPY_MODEL_9cb48a6ed46446b6893a2a0eb019b6ac" + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 160, + "layout": "IPY_MODEL_b7dcf26d453747bdaab421069b9f4c47", + "width": 160 } }, - "45a4a8813d1247d9bc20f3083a7dbe33": { - "model_module": "@jupyter-widgets/base", + "43d51868ade24852ae997a7e6ebdaa03": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "description": "Z", + "layout": "IPY_MODEL_6b4a9284eb9e4567b3d00951e50eb3a8", + "max": 119, + "style": "IPY_MODEL_1e65f700fbce428c84852031db1c90c9", + "value": 60 + } }, - "45deff7b99534f77b7b43bc2c5bccc0a": { + "43fbf851bb6f490480948a35647eb372": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "46729a4e0ce2418084b151134d982fcc": { + "44ce91766bdd44c4b802bd8b1315b8ab": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "VBoxModel", "state": { - "description_width": "" + "children": [ + "IPY_MODEL_58be317f65f04b3a88e04d938a816457", + "IPY_MODEL_c63feb97cf5343c996dc9fefd05e1718", + "IPY_MODEL_df70e9582b9145fba598ac31d7037ed7" + ], + "layout": "IPY_MODEL_008a498348974ec8acf115e100625aee" + } + }, + "4506c473b6ca469a933045fb1c40da4f": { + "model_module": "ipyevents", + "model_module_version": "2.0.1", + "model_name": "EventModel", + "state": { + "_supported_key_events": [ + "keydown", + "keyup" + ], + "_supported_mouse_events": [ + "click", + "auxclick", + "dblclick", + "mouseenter", + "mouseleave", + "mousedown", + "mouseup", + "mousemove", + "wheel", + "contextmenu", + "dragstart", + "drag", + "dragend", + "dragenter", + "dragover", + "dragleave", + "drop" + ], + "_supported_touch_events": [ + "touchstart", + "touchend", + "touchmove", + "touchcancel" + ], + "_view_module": "@jupyter-widgets/controls", + "source": "IPY_MODEL_3a085dfa2ea1483780119e27f5f5d17e", + "throttle_or_debounce": "", + "watched_events": [ + "mousemove" + ], + "xy_coordinate_system": "" } }, - "4799c2f2711349b3bda9d1b9613e173e": { + "45251943cb214bd0b98a378f72174994": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_7b38ecb1bd824adbb8200e95c59c3030", + "style": "IPY_MODEL_11d8a62201274d8f9c45bb950af6fad2", + "value": "maximum(..., footprint=disk(0))" + } + }, + "45e9fbf91b4c41c59660f6d5e19a14cc": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_3a085dfa2ea1483780119e27f5f5d17e" + ], + "layout": "IPY_MODEL_2be2e8be9401400c9a35ed238a95f832" + } + }, + "47e895706b6740e681c8ed6a57717d0f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "49725ea39d8c45d39323fc8ef454ee60": { + "48618361e94b41cf87b6df852837c22d": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "4c5c30efa27148d194d477850d01b9ed": { + "48f34b09b6a3413d8306f9bce6c4dfa9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LabelStyleModel", + "model_name": "HBoxModel", "state": { - "description_width": "", - "font_family": null, - "font_size": null, - "font_style": null, - "font_variant": null, - "font_weight": null, - "text_color": null, - "text_decoration": null + "children": [ + "IPY_MODEL_f0675c5be7204bc69bf1c7c759bceed3" + ], + "layout": "IPY_MODEL_768503befb20408bacc0d81b3c601777" } }, - "4cefa945744543c283f5564b84447a50": { + "4a2c665843a04332873626a6e2c98335": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "4ad8932f11de49e0bb33c20d7952d977": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "4d3f0d60dff6483f98d30c58fe07bf16": { + "4b00fec1e87f47ae866eaf7a99212da0": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "4d8e9f5a3d6a4f708e648436765f3a26": { + "4ba18d58433d43bda0f9c7265cd86da0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_27f0a54336224b9c81f353e6a5a35901", - "IPY_MODEL_0b1447c5d5b540c3b5ecba3fc1440e92" + "IPY_MODEL_d2c319b4f0c34fe383c930075ed44ed7" ], - "layout": "IPY_MODEL_0500d5df9f18493d95ec6472ee104c7c" + "layout": "IPY_MODEL_3eae203f3d2343f99ef2f17502c97431" } }, - "4e04089732d448b39ea8bf7ff113440e": { - "model_module": "@jupyter-widgets/controls", + "4bffca2048b74132898233f8123c2841": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "LabelModel", - "state": { - "layout": "IPY_MODEL_19e3cdc64f2e401a8f3a809ce12e42f8", - "style": "IPY_MODEL_4c5c30efa27148d194d477850d01b9ed", - "value": "gaussian(..., sigma=1.0)" - } + "model_name": "LayoutModel", + "state": {} }, - "4f5889b807e44ec5a4047ff611fbd41e": { + "4c52b9342fba46cdbb85157556b28dd6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", @@ -1618,191 +1667,319 @@ "widget-interact" ], "children": [ - "IPY_MODEL_044cb46ae9e74cf2b1f1da68e2fbeefe", - "IPY_MODEL_55e3db881de74ab98d127810ab984562" + "IPY_MODEL_8a53d11c3f8b41e190c8ac25e7d2ffae", + "IPY_MODEL_3f0e92a85efd41c4b2a212d100836260" ], - "layout": "IPY_MODEL_aa5cd13583834d198acb469a350140d8" + "layout": "IPY_MODEL_14096d171ea44380ba59744cc8b3c865" } }, - "54cf8b4bb29a449ebe83e249dff8b161": { + "4e33de8d20114ed8849e17a7abe04548": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "4f93b2025382439095c0350d4c7fc655": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_87fac1c9e49b486b924b9c2d7bb6e862" + "IPY_MODEL_645b93d95cf74909b82fd6b39b1d1fdb" ], - "layout": "IPY_MODEL_284d99603c33494cbcf01b71eb53e227" + "layout": "IPY_MODEL_c23f2b1e59ca47cc94dcdb0d38d4bbfc" } }, - "552edd9022e447968b4c0464fc2027b1": { + "4f95dd61f3274061bf218bc495ce4b37": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "5577593decb245e7b327d1c0b000b08f": { + "508a003e88094d35a20a39a369f9e804": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "50fddfcdc26643db919c0824fa312c4c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "52823167193e42d3bed1cc646b420a37": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "IntSliderModel", "state": { - "children": [ - "IPY_MODEL_7dce94d5bd704f4a8d6b8925ae3c6854" - ], - "layout": "IPY_MODEL_dc3ca44aca5a45bcbe37a450bb79ee54" + "behavior": "drag-tap", + "description": "Slice", + "layout": "IPY_MODEL_f891d601777e4f31b67e5f14d98e6dd5", + "max": 98, + "style": "IPY_MODEL_3f847a7fc17847bfab440e21696d3c82", + "value": 49 } }, - "55e3db881de74ab98d127810ab984562": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", + "52a4321b5ddd4a8cbd3e329b45879824": { + "model_module": "ipyevents", + "model_module_version": "2.0.1", + "model_name": "EventModel", "state": { - "layout": "IPY_MODEL_6e66d079dd154ca88aa6118120d2de0e" + "_supported_key_events": [ + "keydown", + "keyup" + ], + "_supported_mouse_events": [ + "click", + "auxclick", + "dblclick", + "mouseenter", + "mouseleave", + "mousedown", + "mouseup", + "mousemove", + "wheel", + "contextmenu", + "dragstart", + "drag", + "dragend", + "dragenter", + "dragover", + "dragleave", + "drop" + ], + "_supported_touch_events": [ + "touchstart", + "touchend", + "touchmove", + "touchcancel" + ], + "_view_module": "@jupyter-widgets/controls", + "source": "IPY_MODEL_1274ef41c8ac4f4599cbcb9d3fcece23", + "throttle_or_debounce": "", + "watched_events": [ + "mousemove" + ], + "xy_coordinate_system": "" } }, - "56172a608e744a6db560f0a477e9f37d": { - "model_module": "@jupyter-widgets/controls", + "52dcce88ea8a49069c34e4386c7162a4": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "HBoxModel", - "state": { - "children": [ - "IPY_MODEL_5577593decb245e7b327d1c0b000b08f" - ], - "layout": "IPY_MODEL_bea93f0c72f84911a4e15fae10e27e39" - } + "model_name": "LayoutModel", + "state": {} }, - "566ebc56a2c843b186a63652e8a44007": { + "534135e710544eb9931f8da87b70a084": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_c615c9f790ec4466800f8e00f6704692" + "IPY_MODEL_64c27c08952e44a7a52a28e03ba09c1a" ], - "layout": "IPY_MODEL_66fb38420923488e95d9b328368931e4" + "layout": "IPY_MODEL_b9264dbf8f0f4c168d548612d53d3754" } }, - "56cf6b2675bd4007882d42605151ee5a": { + "5359deb1a807424aaa0a9c156cf2d70c": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "57a4db7519a74e299fe3c940a017b347": { + "538e6dcbd076439db2b1d2fabf120630": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", "_model_module_version": "^0.13", "_view_module_version": "^0.13", - "height": 254, - "layout": "IPY_MODEL_ba1726c33889440eba2faf7f04cf4d88", - "width": 256 + "height": 160, + "layout": "IPY_MODEL_9962751b438444a39a2f779d4c3b299f", + "width": 160 } }, - "5861762be7d84ec9b9e64e2d3224931b": { + "543f4266d04342189277f448fddefecc": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "5b88a04b3d7843449b279e166f16a031": { - "model_module": "@jupyter-widgets/base", + "5575982f5b7c46a9af09192f8c4a8d06": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_76fa91877bd34bd89274cc6986f94f1f", + "IPY_MODEL_52823167193e42d3bed1cc646b420a37" + ], + "layout": "IPY_MODEL_6c8e7ebd398947e3a92698260157b183" + } }, - "5dea069a561a42dfa9a6b301fcd65b52": { + "55827b001ea546588d2ca0da67c7514b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LabelModel", + "model_name": "VBoxModel", "state": { - "layout": "IPY_MODEL_4d3f0d60dff6483f98d30c58fe07bf16", - "style": "IPY_MODEL_ad0db6624479487fa9668694f84ebc62", - "value": "[y=19, x=74] = 1" + "children": [ + "IPY_MODEL_4f93b2025382439095c0350d4c7fc655", + "IPY_MODEL_94260d92af2b4019a08224f98da3c149" + ], + "layout": "IPY_MODEL_e5d350fd607f47f38de1cc0665937076" } }, - "5f182d436bb74392954824e12c8d2a51": { + "568b0ed1f26d4dbba367a08603c4e081": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "_dom_classes": [ + "widget-interact" + ], + "children": [ + "IPY_MODEL_3f385b60de9d45cfb82c141ea106d130", + "IPY_MODEL_785a4f551fb24bccaa0586415afeaacd", + "IPY_MODEL_1880b13365d14927ae63ec515a59dfb5" + ], + "layout": "IPY_MODEL_66c9749e60f84ee3a550dc124f179817" + } + }, + "5764e397a52845c89531ff78b6e2f29f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "5795db113eea46019b0adf0b6dea897c": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "5f2b3610cc314150a28798a54ba9c101": { + "585098dc5d7c4b74ac840af57660e490": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 160, + "layout": "IPY_MODEL_789ada2d8d5447f3b494f281fd537f42", + "width": 160 + } + }, + "58be317f65f04b3a88e04d938a816457": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_a32b65a9cc0746cf8edfb7432b58a8e1" + ], + "layout": "IPY_MODEL_21c8f5de81714729964ac44bcc799369" + } + }, + "591e0220e9864d148cdf6b7c4ed3a0c5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", "state": { "behavior": "drag-tap", - "description": "Slice", - "layout": "IPY_MODEL_b21b30dbd08a497eb7cf5e9ec9e495dd", - "max": 119, - "style": "IPY_MODEL_6e2e558b3e194d2fa2bd095e69eed2ba", - "value": 60 + "description": "Y", + "layout": "IPY_MODEL_9025ba4d299442f88d3a0937828e5c5c", + "max": 159, + "style": "IPY_MODEL_3700a9c4f3f04768aa3be7264b45b302", + "value": 80 } }, - "606277142c354eb2a8db5b691897035c": { + "5add08f719ec443dab60d4a3648b6eb8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "5b1158103ed5441b803e45fd0b5f4d52": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "LabelStyleModel", "state": { - "children": [ - "IPY_MODEL_8ddb8dc8261d4ac9b6deecd31145cbb8" - ], - "layout": "IPY_MODEL_6c8ce5f25e224841918a4410ed562272" + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null } }, - "61531c24e355447da65ebacfdde68bd4": { + "5b251bddb1f74cc2b22d2682bb02a896": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "61732cff47644356bedd9e5aa442baa0": { + "5bdec2fd5ac84f518a4c707b1eedd707": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_d37f59aeb39042baad3efd485ee5edd9" + ], + "layout": "IPY_MODEL_47e895706b6740e681c8ed6a57717d0f" + } + }, + "5c67bad316574627bf6a5986c2911412": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", "state": { "behavior": "drag-tap", - "description": "Slice", - "layout": "IPY_MODEL_f1879187c641457e85ea8c6874752abc", - "max": 99, - "style": "IPY_MODEL_734ee96c483e426694fc2db3326bd6a6", - "value": 51 + "description": "Curtain", + "layout": "IPY_MODEL_06c7c509230b44ac86d66e3339c06845", + "max": 160, + "style": "IPY_MODEL_5fe9615a9169415dacb08cda91a91dbd", + "value": 80 } }, - "62552b6ff0434b0b84f542bbd2ee2dc2": { + "5dc4b3f007e84311a142ed21934bc419": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_2f243f24062349ea9b2815606a522c84" + "IPY_MODEL_dea05dbf52fd4885897fe07d020a590e", + "IPY_MODEL_8e1d9482afa94fcba4746c1a50b8b58f" ], - "layout": "IPY_MODEL_181023488df24173a8d73a7c8551f7b1" + "layout": "IPY_MODEL_48618361e94b41cf87b6df852837c22d" } }, - "63b3bf4a6cae490885bad7b0bd0ae499": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "6479848ac1d3438cbe9dd12dbe46ee45": { + "5e0b5855c1014f75a5de6f2572d3e094": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", "state": { "behavior": "drag-tap", "description": "Curtain", - "layout": "IPY_MODEL_f2ff3bb311c0458da96c3f999f585e8f", + "layout": "IPY_MODEL_e1fd9a26240e4500adb64ec7b06304a0", "max": 160, - "style": "IPY_MODEL_0e29881147a043b184b73ffb1f3873b3", + "style": "IPY_MODEL_a46ae03e37454e91ba6d0c869ee8b11f", "value": 80 } }, - "65872763e35946089c61734c88585db9": { + "5f11cc976f3f4bb79650233cb6d968d4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "5fe9615a9169415dacb08cda91a91dbd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "SliderStyleModel", @@ -1810,96 +1987,226 @@ "description_width": "" } }, - "66ae44abb3ee4ea78e5dfb52540e8d00": { + "60ba1a1802134cf08b6d9a36b757ab46": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 160, - "layout": "IPY_MODEL_b4e295dd1c0d4154af4a5709f1a9b053", - "width": 160 + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 256, + "layout": "IPY_MODEL_0389d4d1fe0f4b358763db8b801c4390", + "width": 254 + } + }, + "614213b8eb344d26b6055931d7c76d0b": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_count": 1, + "_view_module_version": "^0.13", + "height": 160, + "layout": "IPY_MODEL_1b9250af70df4eeea55e96fe07f9674c", + "width": 160 + } + }, + "6188e35d21a74e5cbc80942ce7774edd": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "61adacd158af4260b86b30106be3810c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_ee0bb568c1dc427696841e7cf3a27ece", + "IPY_MODEL_ad25b1ecd8d44e91ac7bfccec8b1b606" + ], + "layout": "IPY_MODEL_2e19d4028fc5451ebc87c6055d965746" + } + }, + "6321fbb1d5e641d9b8fb50ceba64a7bc": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } + }, + "637b1be4798f476cac42274ecf9d9e11": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_bbe3adbafdca46cba82483d3a4506126" + ], + "layout": "IPY_MODEL_dcbf78ae6004468e825aaec0d66ddb7d" + } + }, + "645b93d95cf74909b82fd6b39b1d1fdb": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_1274ef41c8ac4f4599cbcb9d3fcece23" + ], + "layout": "IPY_MODEL_f9835b183012432d88c2b9470a1f30dc" + } + }, + "64c27c08952e44a7a52a28e03ba09c1a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_585098dc5d7c4b74ac840af57660e490" + ], + "layout": "IPY_MODEL_2c6e971a34064919badb845d93946ae7" + } + }, + "65e28ba724244469b7a024ffd3b6cac9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_13129e6ad30d4eed9c1dcbb0292d136e", + "IPY_MODEL_637b1be4798f476cac42274ecf9d9e11", + "IPY_MODEL_4ba18d58433d43bda0f9c7265cd86da0" + ], + "layout": "IPY_MODEL_52dcce88ea8a49069c34e4386c7162a4" + } + }, + "661356fa99a9466fb60a75057b872b2c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_7ce466d25e4b403c9bf5b92d8887fa7c" + ], + "layout": "IPY_MODEL_951798334f814f1ebf02e1c7d92ca549" } }, - "66d158652b6c498b8910a0f733cf9e5d": { + "66c9749e60f84ee3a550dc124f179817": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "66fb38420923488e95d9b328368931e4": { + "67e3390536854e9db95732585dd5a88c": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "67e8a348baf74afba67d23f15ba15a89": { + "67f083a4fc6e45fe8c3ecdddb9170108": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_6982b57546de404a9c93d2b1d5cfe682" + "IPY_MODEL_14a9419daa014312b934bf7f068ec484" ], - "layout": "IPY_MODEL_6af3c5b18f8d4086977294cd7e35c6b8" + "layout": "IPY_MODEL_1a0f33ef56b749629f4b1437611e9ca6" } }, - "6982b57546de404a9c93d2b1d5cfe682": { + "6888a002617e434d85e71b756ded6d78": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "68b21936c00c462088bcb37a69894aeb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "68b66bd5b761490fbb54320d91878cff": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "68c9366b13c54abf8550e59cb83804bc": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "68d5ef7b2bef482db93b30cd20a37fcb": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "6a4f4a60f4af4c07ad28aa2ffba59772": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", "_model_module_version": "^0.13", "_view_module_version": "^0.13", "height": 160, - "layout": "IPY_MODEL_96ffb3af5dca47018f93c371e572d605", - "width": 160 + "layout": "IPY_MODEL_a6384dc0495f4fcebb3f2ee558a79081", + "width": 120 } }, - "6a1895281fd5466fac179089b147d5d3": { + "6b4a9284eb9e4567b3d00951e50eb3a8": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "6af3c5b18f8d4086977294cd7e35c6b8": { + "6c4725e6d82641fab029c21058c528e3": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "6c29203a97484d2e8df4509ec7436e6f": { - "model_module": "@jupyter-widgets/controls", + "6c8e7ebd398947e3a92698260157b183": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "description_width": "" - } + "model_name": "LayoutModel", + "state": {} }, - "6c71ea37d1c24fd9bd659d9dc6312d28": { + "6fb8da9b0f784a35b8fa13431628ff7b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "IntSliderModel", "state": { - "description_width": "" + "behavior": "drag-tap", + "description": "Slice", + "layout": "IPY_MODEL_0150f928913c493681bcdb7ca629fb5f", + "max": 99, + "style": "IPY_MODEL_29d06d44d6a649d8b9237971e7995bd2", + "value": 50 } }, - "6c8ce5f25e224841918a4410ed562272": { + "704f729ca70e43ecb09d1409035a632d": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "6d791a3ffb2a4ea98ee65a3aae6612be": { + "73155925dae942ddaf3637a34f9c92d8": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "6dfda0affa164b2b948f75f813113967": { + "731bfa9604154ce2b63361c32b9ee6fd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "SliderStyleModel", @@ -1907,7 +2214,7 @@ "description_width": "" } }, - "6e2e558b3e194d2fa2bd095e69eed2ba": { + "738418a8326a408d85d13c057c2d7ebc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "SliderStyleModel", @@ -1915,727 +2222,693 @@ "description_width": "" } }, - "6e66d079dd154ca88aa6118120d2de0e": { + "740481c259714ef2bea55b8d96c30b3b": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "6fbd1660e00e4231be64a7b75a572e7d": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "LabelStyleModel", + "7522a5bb749d4cc691ccd069afcbb465": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasManagerModel", "state": { - "description_width": "", - "font_family": null, - "font_size": null, - "font_style": null, - "font_variant": null, - "font_weight": null, - "text_color": null, - "text_decoration": null + "_model_module_version": "^0.13", + "_view_module": null, + "_view_module_version": "" } }, - "721fdd1839b048658ff00c05d06e658f": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "75739ec2e1f147858532dced80c49599": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", "state": { - "children": [ - "IPY_MODEL_05cc1ff819d04856954597daa0bf8304" - ], - "layout": "IPY_MODEL_66d158652b6c498b8910a0f733cf9e5d" + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 389, + "layout": "IPY_MODEL_b206ed2f9f534f75b9f00af31831fe37", + "width": 235 } }, - "729002faa79f4fc1b955af1af44ee1b4": { + "768503befb20408bacc0d81b3c601777": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "73447f3d8f87461e9b8b04ebf0a38282": { - "model_module": "@jupyter-widgets/base", + "76fa91877bd34bd89274cc6986f94f1f": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_8ac7f6f8546b480097de5546795fbd9a", + "IPY_MODEL_28f14b4031ea463b87f47c3cb10b0ba9", + "IPY_MODEL_48f34b09b6a3413d8306f9bce6c4dfa9" + ], + "layout": "IPY_MODEL_68c9366b13c54abf8550e59cb83804bc" + } }, - "734ee96c483e426694fc2db3326bd6a6": { + "7778bd6997bc4fa98b192ce731a02f2c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "FloatSliderModel", "state": { - "description_width": "" + "behavior": "drag-tap", + "description": "sigma", + "layout": "IPY_MODEL_f93071493a744430b1b2c703672b16c1", + "step": 0.1, + "style": "IPY_MODEL_6321fbb1d5e641d9b8fb50ceba64a7bc", + "value": 15 } }, - "7360bb9cb3dd4d0faed803d17aa3f970": { + "77f991a5c1fe437ab6b4fd6b8e8d8329": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "7378e4e0bda2417b8f3992356dbb1ee4": { + "785a4f551fb24bccaa0586415afeaacd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "CheckboxModel", "state": { - "children": [ - "IPY_MODEL_7bdfdc26162d41bfbb349f1f0b07cae3", - "IPY_MODEL_949177b9abfa4565998486c6d2635314", - "IPY_MODEL_bdccda9e43b14010adfd1c62e0c0143d" - ], - "layout": "IPY_MODEL_1208ec418fa244289f9408993a6a1f8f" + "description": "show_labels", + "disabled": false, + "layout": "IPY_MODEL_9be9ecdd2574492bb72b31d309e71b59", + "style": "IPY_MODEL_da64c57e4fe84b359a192b783d929554", + "value": true } }, - "769e3c14ec6c457e854b985ea00afada": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "7708fa25cfea4589861798a9bad817e8": { + "78846cd826764c888b9004c0481f72be": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "77c537b251c14550910dbf3048151004": { + "789ada2d8d5447f3b494f281fd537f42": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "784a976c95e74a0193620aca3f100ce4": { + "7a2b0efc6e3f438ea8a6b7cf543fc4fd": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "78c4ae57b516422ba2606a55d6c0f0b6": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", + "7a3da6b138184c05a3f855a13bfbf074": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", "state": { - "behavior": "drag-tap", - "description": "sigma", - "layout": "IPY_MODEL_d2ba4b6a9aba438991d1391c647080b4", - "step": 0.1, - "style": "IPY_MODEL_6dfda0affa164b2b948f75f813113967" + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 389, + "layout": "IPY_MODEL_fea17bff1f9e4bb18f63165bf6ea1e49", + "width": 235 } }, - "799e150679ac479dbb5350d4d7a63a7f": { + "7b38ecb1bd824adbb8200e95c59c3030": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "7af48ba64e65414ea19654e88037d310": { + "7b7ecfe179d5405eba9a4abbf3ce4c2a": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "7bdfdc26162d41bfbb349f1f0b07cae3": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_2383d96ac6714d43a017b5de7c1a1588", - "IPY_MODEL_0a6541b3b4bc48f6b3171a64c2275d26" - ], - "layout": "IPY_MODEL_45deff7b99534f77b7b43bc2c5bccc0a" - } - }, - "7dce94d5bd704f4a8d6b8925ae3c6854": { + "7bce09b42ed54e1a943913b75c16c7a6": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", "_model_module_version": "^0.13", "_view_module_version": "^0.13", - "height": 160, - "layout": "IPY_MODEL_e7cd0e32c5da4b1f8e8ffc7085c3ea96", - "width": 120 + "height": 389, + "layout": "IPY_MODEL_87a03c4e8843450abf4e0cbc70a30a67", + "width": 235 } }, - "7fff7cad7a254f31a4c2217e1a77d53a": { + "7ce466d25e4b403c9bf5b92d8887fa7c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_606277142c354eb2a8db5b691897035c", - "IPY_MODEL_5dea069a561a42dfa9a6b301fcd65b52" + "IPY_MODEL_b75b87d6c34747ab8b22b99c1629cf44" ], - "layout": "IPY_MODEL_3a97bc6637a045c28bc21c7fe808a7c9" + "layout": "IPY_MODEL_b07f142b8aa84ceda074ea189f540664" } }, - "84af62e04b2c42479691072792fdd2ff": { + "7d594c14ba4d4d5182bf1d1b88ae31c7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_ddcb35fd37524a698d45bba341c0505c", - "IPY_MODEL_61732cff47644356bedd9e5aa442baa0" + "IPY_MODEL_32304f69a869448db4b8582bdc5ce62a" ], - "layout": "IPY_MODEL_d4cd6447eec6472fbbab0478ce91d5bc" + "layout": "IPY_MODEL_24132bf0393542358ec4b89d96c3f657" } }, - "85da96c4946341058e44b608c95c4001": { - "model_module": "@jupyter-widgets/controls", + "7f66da3c3a2843508716ec5127e68051": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "HBoxModel", - "state": { - "children": [ - "IPY_MODEL_8f64c9bcc5544b0ea61b97528b08dc38" - ], - "layout": "IPY_MODEL_5b88a04b3d7843449b279e166f16a031" - } + "model_name": "LayoutModel", + "state": {} }, - "862fe7c40b2b43c087b757ef6e2ea59b": { + "7fcdcfd4f91649a7ad4eebdc4c32cf10": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "87447ec3e451483b97382986655e7f3d": { - "model_module": "@jupyter-widgets/controls", + "8581e88fc314464fbe47917810a9dbfd": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "LayoutModel", + "state": {} + }, + "85c0b932f0a64c2080947a4cf00fc7db": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", "state": { - "children": [ - "IPY_MODEL_2b097badf14d43b7bb1239d12eaf33e8" - ], - "layout": "IPY_MODEL_cbc63af353854611882d2167ae50980c" + "layout": "IPY_MODEL_fc926ee541aa4f718c0dc3fe44e6a347" } }, - "87fac1c9e49b486b924b9c2d7bb6e862": { + "878c3fc6a3dc4667a9b4736b3e5ff9ca": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_36703aee438a447fbb5e0c59c0c7ef1e" + "IPY_MODEL_0b50e94847424804a84544a5a0e0222d" ], - "layout": "IPY_MODEL_61531c24e355447da65ebacfdde68bd4" - } - }, - "88d8e57e7346460b923673de069915df": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", - "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 389, - "layout": "IPY_MODEL_332fa3570d3547dfb20c23ca8f0c2359", - "width": 235 + "layout": "IPY_MODEL_7f66da3c3a2843508716ec5127e68051" } }, - "8b00a8064dda465bb0564a884b17fad1": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "8b595f649f654d128fba8268f8f97139": { + "87a03c4e8843450abf4e0cbc70a30a67": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "8bd1322b51e44b5a90093ef66d45d1fd": { - "model_module": "@jupyter-widgets/base", + "8a53d11c3f8b41e190c8ac25e7d2ffae": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "FloatSliderModel", + "state": { + "behavior": "drag-tap", + "continuous_update": false, + "description": "sigma", + "layout": "IPY_MODEL_f211aa4104a846ae945d40a6b84cc42b", + "max": 10, + "style": "IPY_MODEL_e3a44c823abb4fc09541ac3cdb94fa30", + "value": 1 + } }, - "8ce5e12428624cc0b731d67b149f6f63": { - "model_module": "@jupyter-widgets/base", + "8a9dca4f6cbf4302bd6afa303e764bbf": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "LabelStyleModel", + "state": { + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null + } }, - "8ddb8dc8261d4ac9b6deecd31145cbb8": { + "8ac7f6f8546b480097de5546795fbd9a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_00093cfc136b49e5b6ec8b2de621e324" + "IPY_MODEL_d4f6180074c8463fb28fee0580d02f60" ], - "layout": "IPY_MODEL_b0affb7eb3004e6fbb76ce4d400e4a3c" + "layout": "IPY_MODEL_fc9559193b46445ca10232586f1a4e05" } }, - "8e599bc638904dc9bb1f7bea749f2ccf": { - "model_module": "@jupyter-widgets/base", + "8bee55a4225f46cf92771643c582bf84": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } }, - "8f64c9bcc5544b0ea61b97528b08dc38": { + "8c54de2a11774bdcabcf19d240ba3485": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_e358734b11694441ab1e52573f85f260" + "IPY_MODEL_231fcb8b322b448e9c5b81b386a931a7", + "IPY_MODEL_00b7cf50fe4446299b47ab2d7e3e86a4" ], - "layout": "IPY_MODEL_6a1895281fd5466fac179089b147d5d3" + "layout": "IPY_MODEL_1a2198fcbafc4265a6ba6deb27b664ea" } }, - "90f794be72954dffa1b4971534c49ae9": { + "8d766afb15ec4b5788b8c0d2b5128315": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "VBoxModel", "state": { + "_dom_classes": [ + "widget-interact" + ], "children": [ - "IPY_MODEL_43e3ee2e78b34daeb652d1e8c8d872a5" + "IPY_MODEL_241bb7cb1d3f44b5a46de716944febd6", + "IPY_MODEL_0e11671cff254c80af67662acd7d1a80" ], - "layout": "IPY_MODEL_7360bb9cb3dd4d0faed803d17aa3f970" + "layout": "IPY_MODEL_dbd8cc721ce64f9b85ab10830e8a79a8" } }, - "90ff1b40f5834416a4d8888f2c8dd44f": { - "model_module": "@jupyter-widgets/base", + "8db60ea54af84bb6878415732d43bd52": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_1c626d14801542d3ab4f09bafdf112ad", + "IPY_MODEL_9dfeb54b3cc24bda889ffbbc8283ede4" + ], + "layout": "IPY_MODEL_67e3390536854e9db95732585dd5a88c" + } }, - "93ff3c79d1ed49adb7a1b198e8b485e3": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "8e1d9482afa94fcba4746c1a50b8b58f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 160, - "layout": "IPY_MODEL_db4b0bb5f9454d2cbfd83b88ca76e4ab", - "width": 160 + "layout": "IPY_MODEL_0dcb59a9d6a7454c9db5dab61aa41f4a", + "style": "IPY_MODEL_5b1158103ed5441b803e45fd0b5f4d52", + "value": "gaussian(..., sigma=15.0)" } }, - "949177b9abfa4565998486c6d2635314": { + "8f21f1a11d0745c8a7667d83a5512274": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_56172a608e744a6db560f0a477e9f37d", - "IPY_MODEL_1633cd16690d45a2bf1425e7ce1ce85c" + "IPY_MODEL_7d594c14ba4d4d5182bf1d1b88ae31c7", + "IPY_MODEL_bee224dcb5c545f2968c926a58aadb05" ], - "layout": "IPY_MODEL_b7f00fa17b2b4f199d5da3c0febef713" + "layout": "IPY_MODEL_ab27ea40bd574d5bace5236d419516f4" } }, - "96c0deeb92814667a99de7f843d47308": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "96ffb3af5dca47018f93c371e572d605": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "978bc79b96174a32bdcc158b858cfbd5": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "9984963f8ed347669f6b7302e88259b4": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "9a494b86135c4bae9bcfdfb2c38190c3": { - "model_module": "@jupyter-widgets/base", + "8f5427a8b5914b76bc5f3e7c22010e83": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } }, - "9baa45a600ed4dfda92d21d6b62153cf": { + "9025ba4d299442f88d3a0937828e5c5c": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "9c6337be6b194358954f150f712d4bb7": { + "90e9bb7d13e542d28cffccd0ee1d26d3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "HBoxModel", "state": { - "description_width": "" + "children": [ + "IPY_MODEL_b3be123d0cde49ed9730ae2500512afe" + ], + "layout": "IPY_MODEL_2c527de4423844ffafa66fc71a7d20cd" } }, - "9cb48a6ed46446b6893a2a0eb019b6ac": { + "93b6f1ea6ee64cc9bfe1764b325d2a14": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "9cda2465c18449a19ccde1dbfd1ad9be": { - "model_module": "@jupyter-widgets/base", + "94260d92af2b4019a08224f98da3c149": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "LabelModel", + "state": { + "layout": "IPY_MODEL_50fddfcdc26643db919c0824fa312c4c", + "style": "IPY_MODEL_bfc5de34c4ce4141abac19afe6ef6618", + "value": "[]:" + } }, - "9e29b7014a3b4aaeb051659e938ca76d": { + "951798334f814f1ebf02e1c7d92ca549": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "a0b6653dd0d84d6286c06799c03c96f6": { + "953a1df925a24d05af54a46cc53bb010": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "a0e2f40a13234bd8981dbefc551f6dca": { + "954632158d2b46cd94dbe795499dc446": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "CheckboxStyleModel", + "model_name": "HBoxModel", "state": { - "description_width": "" + "children": [ + "IPY_MODEL_9bdfb986d6f64b0fbcee0e9c6360eb13" + ], + "layout": "IPY_MODEL_009a9cbc20424975bdb5920d5e39f740" } }, - "a199f609c856473abb35dbe1d7a15d79": { - "model_module": "@jupyter-widgets/base", + "95888fb1fc2647518a431337716404ee": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_256c113163d143f3b19d0e43a60f56b1", + "IPY_MODEL_1e2f7ba4e3b34c658a67113dba5d7b72" + ], + "layout": "IPY_MODEL_cb22d8b3cf654e8ca8e6d738fd486375" + } }, - "a1f5e14ba6de412788ccb8b4b53d7e2f": { + "95a23fa2acb44dcc8e466e016d18ef91": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_452b77ab08674bfcb8325183618002f7", - "IPY_MODEL_ed40a64754124f1380ab219369a0330c" + "IPY_MODEL_65e28ba724244469b7a024ffd3b6cac9", + "IPY_MODEL_6fb8da9b0f784a35b8fa13431628ff7b" ], - "layout": "IPY_MODEL_d00f7575f4474e31a59e23df2c807806" + "layout": "IPY_MODEL_6c4725e6d82641fab029c21058c528e3" } }, - "a4bdfe1b75e44a378ccb918e25885960": { + "9962751b438444a39a2f779d4c3b299f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "a5e1368b29de49069d22f1c2094889e5": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "9bdfb986d6f64b0fbcee0e9c6360eb13": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "VBoxModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 389, - "layout": "IPY_MODEL_34604f588a464126a1d80f79646730cb", - "width": 235 + "children": [ + "IPY_MODEL_d6e5fcbb68b9477b925610466aef4375" + ], + "layout": "IPY_MODEL_f9ad7bd921fc49eeac43282ce8af6f99" } }, - "a77fa456b92740319352e291df4c0c9d": { + "9be9ecdd2574492bb72b31d309e71b59": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "a942f4b83ff94a66bcc68a67bf6b950e": { + "9dfeb54b3cc24bda889ffbbc8283ede4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "LabelModel", "state": { - "children": [ - "IPY_MODEL_93ff3c79d1ed49adb7a1b198e8b485e3" - ], - "layout": "IPY_MODEL_ec76a88fa7484257b62d32b470bbf1c2" + "layout": "IPY_MODEL_5add08f719ec443dab60d4a3648b6eb8", + "style": "IPY_MODEL_ce74b07798f3465f8a78b82b0c07e962", + "value": "[]:" } }, - "aa5cd13583834d198acb469a350140d8": { + "9f050940f2364a00ada900a49c1b1c52": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "aa677b28fc114b539361d4628f170a6b": { + "9ffee92a54884fdcb4c33d7083d27024": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 160, + "layout": "IPY_MODEL_6888a002617e434d85e71b756ded6d78", + "width": 120 + } + }, + "a32b65a9cc0746cf8edfb7432b58a8e1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_a942f4b83ff94a66bcc68a67bf6b950e" + "IPY_MODEL_31d7d1fccd8d4cde860917271fb818a8" ], - "layout": "IPY_MODEL_6d791a3ffb2a4ea98ee65a3aae6612be" + "layout": "IPY_MODEL_dfc7ec33cbb647fea1d1d0726b61c786" } }, - "aa9269c4b7d34523a1d05c913735e61e": { + "a46ae03e37454e91ba6d0c869ee8b11f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", + "model_name": "SliderStyleModel", "state": { - "behavior": "drag-tap", - "description": "Curtain", - "layout": "IPY_MODEL_f1b333ee3dfd4df690c0bc94cfd18c4b", - "max": 160, - "style": "IPY_MODEL_2b63c23f38734f1893bce8e5cdd14e79", - "value": 80 + "description_width": "" } }, - "acec85b6845d4a71a8151bcb95a5796b": { + "a6384dc0495f4fcebb3f2ee558a79081": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "ad0db6624479487fa9668694f84ebc62": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "LabelStyleModel", - "state": { - "description_width": "", - "font_family": null, - "font_size": null, - "font_style": null, - "font_variant": null, - "font_weight": null, - "text_color": null, - "text_decoration": null - } - }, - "b0affb7eb3004e6fbb76ce4d400e4a3c": { + "a9167817774243e18ed8df23859f80ad": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "b0cda1f3162c4e00a561eb8f01edad8a": { + "a9e858d6b939406c8590be1ab64656c3": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "b183345d38d84db8891fb07d94719d3f": { - "model_module": "@jupyter-widgets/controls", + "aa159533e3724e01ad8cfb8d1a29980a": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "IntSliderModel", - "state": { - "behavior": "drag-tap", - "description": "Curtain", - "layout": "IPY_MODEL_114088d310904eb8b76ea1c8859e1cf4", - "max": 256, - "style": "IPY_MODEL_1795fc875294482db64c9de49a02ffbd", - "value": 128 - } + "model_name": "LayoutModel", + "state": {} }, - "b21b30dbd08a497eb7cf5e9ec9e495dd": { + "ab27ea40bd574d5bace5236d419516f4": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "b297ad65ebc74215bd11c12b4d2d2cc7": { + "ab798c8fc3794cb6a62856c55ea4c334": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_90f794be72954dffa1b4971534c49ae9", - "IPY_MODEL_cf964b454bb844b9a82acc9ce41157e4", - "IPY_MODEL_f97eb6f3501845e0a5171ddad5ae1e6d" + "IPY_MODEL_5bdec2fd5ac84f518a4c707b1eedd707" ], - "layout": "IPY_MODEL_769e3c14ec6c457e854b985ea00afada" - } - }, - "b35246ba68d24ac1ae733cb9010bf5ba": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "description_width": "" + "layout": "IPY_MODEL_6188e35d21a74e5cbc80942ce7774edd" } }, - "b39a57eb3ffe46c3ab898f6190e3ce78": { + "ab9b1ae5771e429896d2d9792b8a1b9f": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "b435bfefab124b878112b11dd0b41bc8": { + "ad25b1ecd8d44e91ac7bfccec8b1b606": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "IntSliderModel", "state": { - "children": [ - "IPY_MODEL_f04bce2787364b0c9d1d1af039509942" - ], - "layout": "IPY_MODEL_9baa45a600ed4dfda92d21d6b62153cf" + "behavior": "drag-tap", + "description": "Curtain", + "layout": "IPY_MODEL_d3682b14c71240cabf712c17a61f8cd1", + "max": 256, + "style": "IPY_MODEL_d687df40dc7540bb9ecf24ddac7da925", + "value": 128 + } + }, + "af5510d62669496e824be3cbdcf85f03": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "SliderStyleModel", + "state": { + "description_width": "" } }, - "b4b38155a37b402e87485bc72c7683d2": { + "b07f142b8aa84ceda074ea189f540664": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "b4e295dd1c0d4154af4a5709f1a9b053": { + "b206ed2f9f534f75b9f00af31831fe37": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "b5d527aad281432c8f323d29090f1f7d": { + "b3be123d0cde49ed9730ae2500512afe": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "VBoxModel", "state": { - "description_width": "" + "children": [ + "IPY_MODEL_538e6dcbd076439db2b1d2fabf120630" + ], + "layout": "IPY_MODEL_2b4b73d2adf745d0aa7adda5b2d98c6a" } }, - "b6045e20b04a4d5bb826c62cfd2e9d34": { + "b440e45d8d9b448f95b34500486c0f23": { "model_module": "ipycanvas", "model_module_version": "^0.13", "model_name": "CanvasModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", "_model_module_version": "^0.13", "_view_module_version": "^0.13", - "height": 256, - "layout": "IPY_MODEL_d7bed68a67ab47b1ba96acff7e4de9c8", - "width": 254 + "height": 389, + "layout": "IPY_MODEL_213655c97fde4b9b8706a7d428ff79ba", + "width": 235 } }, - "b7ae5c9f75734166b65f03ac5d496e13": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "b59c6061d217452c9a971feab4715a61": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 389, + "layout": "IPY_MODEL_4ad8932f11de49e0bb33c20d7952d977", + "width": 235 + } + }, + "b75b87d6c34747ab8b22b99c1629cf44": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 254, + "layout": "IPY_MODEL_121439ebe8694a98805ce0fea08bd447", + "width": 256 + } }, - "b7f00fa17b2b4f199d5da3c0febef713": { + "b7dcf26d453747bdaab421069b9f4c47": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "b868c475d7764fabb0ba75f6555f6084": { - "model_module": "ipyevents", - "model_module_version": "2.0.1", - "model_name": "EventModel", + "b87cd369ad964b50b0c0b0b7c3a83201": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelStyleModel", "state": { - "_supported_key_events": [ - "keydown", - "keyup" - ], - "_supported_mouse_events": [ - "click", - "auxclick", - "dblclick", - "mouseenter", - "mouseleave", - "mousedown", - "mouseup", - "mousemove", - "wheel", - "contextmenu", - "dragstart", - "drag", - "dragend", - "dragenter", - "dragover", - "dragleave", - "drop" - ], - "_supported_touch_events": [ - "touchstart", - "touchend", - "touchmove", - "touchcancel" - ], - "_view_module": "@jupyter-widgets/controls", - "source": "IPY_MODEL_eb1d05a7d3e14ace96da0316d0f5d714", - "throttle_or_debounce": "", - "watched_events": [ - "mousemove" - ], - "xy_coordinate_system": "" + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null } }, - "b9932d7eb3774880b6ffdac39e0fe816": { + "b8f2b89e0e7d46cf8ef439d0c428e49a": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "ba1726c33889440eba2faf7f04cf4d88": { + "b9264dbf8f0f4c168d548612d53d3754": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "bc66d87d262e4584851a4d3b1c295619": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "IntSliderModel", - "state": { - "behavior": "drag-tap", - "description": "Curtain", - "layout": "IPY_MODEL_96c0deeb92814667a99de7f843d47308", - "max": 256, - "style": "IPY_MODEL_025cdd9e416f46159400137e016c5c59", - "value": 128 - } - }, - "bc78525fd440495aba929854956a745a": { + "b9a9228a1e9044c4bdfefaafad596798": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "bd4d57367ddf42fb814003275eee16a8": { - "model_module": "@jupyter-widgets/base", + "bb51d1065bc94d2c99b49351275c5fb3": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "VBoxModel", + "state": { + "children": [ + "IPY_MODEL_614213b8eb344d26b6055931d7c76d0b" + ], + "layout": "IPY_MODEL_aa159533e3724e01ad8cfb8d1a29980a" + } }, - "bdccda9e43b14010adfd1c62e0c0143d": { + "bbe3adbafdca46cba82483d3a4506126": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_85da96c4946341058e44b608c95c4001", - "IPY_MODEL_26c979dfd42444bca5cd29c23886716c" + "IPY_MODEL_7a3da6b138184c05a3f855a13bfbf074" + ], + "layout": "IPY_MODEL_8581e88fc314464fbe47917810a9dbfd" + } + }, + "bc206fbed77947e59bb5c243be6c0d61": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "children": [ + "IPY_MODEL_e64a431019a94202a6b21fcfec49daa7" ], - "layout": "IPY_MODEL_9e29b7014a3b4aaeb051659e938ca76d" + "layout": "IPY_MODEL_ec6b104a3e9e4f7fb66c14b3b1eaf572" } }, - "bea93f0c72f84911a4e15fae10e27e39": { + "bc6b0b722516470d812901fdc41d1072": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "c32f69c050b147b4ab13ad450eb41a17": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "bee224dcb5c545f2968c926a58aadb05": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "LabelModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 389, - "layout": "IPY_MODEL_b39a57eb3ffe46c3ab898f6190e3ce78", - "width": 235 + "layout": "IPY_MODEL_7fcdcfd4f91649a7ad4eebdc4c32cf10", + "style": "IPY_MODEL_8a9dca4f6cbf4302bd6afa303e764bbf", + "value": "my_custom_code(..., sigma=1.0, show_labels=True)" } }, - "c37a1d7f3ee5415b9c7429235f7b0ba3": { + "bfc5de34c4ce4141abac19afe6ef6618": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "LabelStyleModel", @@ -2650,55 +2923,64 @@ "text_decoration": null } }, - "c3d9d98e8fec45a2825d0775e17f8b34": { + "c1139defae94496abf58cc64caf71db4": { "model_module": "ipycanvas", "model_module_version": "^0.13", - "model_name": "CanvasManagerModel", + "model_name": "CanvasModel", "state": { + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", "_model_module_version": "^0.13", - "_view_module": null, - "_view_module_version": "" + "_view_module_version": "^0.13", + "height": 254, + "layout": "IPY_MODEL_543f4266d04342189277f448fddefecc", + "width": 256 } }, - "c615c9f790ec4466800f8e00f6704692": { - "model_module": "@jupyter-widgets/controls", + "c23f2b1e59ca47cc94dcdb0d38d4bbfc": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_32c2f002f9264f76a68e5330883d15a4" - ], - "layout": "IPY_MODEL_e51e8c3039d04a34ad62adb2f6a0714e" - } + "model_name": "LayoutModel", + "state": {} + }, + "c2c6dda8f08f47cb8064bc3b20bb6713": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} }, - "c9210c7defe74b7ab245f627d86347b4": { + "c33a3fb5ed864c599e7ff5d709e4674d": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "cab41d7e4fa44ddbae8e09a59ab246df": { + "c4ac17e596bb448cad4aec4a0eef53a6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { - "_dom_classes": [ - "widget-interact" - ], "children": [ - "IPY_MODEL_78c4ae57b516422ba2606a55d6c0f0b6", - "IPY_MODEL_db3615c2fc6545f9a01274623715eddc" + "IPY_MODEL_2be15a4d808f4bdfb014084051974580", + "IPY_MODEL_e4b24da814ed42a9b8313e5afdb999df", + "IPY_MODEL_95888fb1fc2647518a431337716404ee" ], - "layout": "IPY_MODEL_e3701cae6b6e4e988853dd5d1847092f" + "layout": "IPY_MODEL_953a1df925a24d05af54a46cc53bb010" } }, - "cbc63af353854611882d2167ae50980c": { - "model_module": "@jupyter-widgets/base", + "c63feb97cf5343c996dc9fefd05e1718": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "description": "Slice", + "layout": "IPY_MODEL_93b6f1ea6ee64cc9bfe1764b325d2a14", + "max": 119, + "style": "IPY_MODEL_d47f348f4dd14eb9b49d633466966684", + "value": 60 + } }, - "cdebf59618e644eaaee8dac1614d531d": { + "c6c09468f7304f4c95c05d8d5eee1c48": { "model_module": "ipyevents", "model_module_version": "2.0.1", "model_name": "EventModel", @@ -2733,7 +3015,7 @@ "touchcancel" ], "_view_module": "@jupyter-widgets/controls", - "source": "IPY_MODEL_00093cfc136b49e5b6ec8b2de621e324", + "source": "IPY_MODEL_614213b8eb344d26b6055931d7c76d0b", "throttle_or_debounce": "", "watched_events": [ "mousemove" @@ -2741,466 +3023,459 @@ "xy_coordinate_system": "" } }, - "cdf89cbdc17b48b4aa27a2b58027734b": { + "c71a3dc82e274a59bf458b9b9e286897": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "c9062905814f4e4c86b165c0428340b9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "cb22d8b3cf654e8ca8e6d738fd486375": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "cdf4b9140cf34b0e8b8d6a144caee02c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "ce020386554e4aeab26162bea3109019": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "CheckboxModel", + "model_name": "SliderStyleModel", "state": { - "description": "show_labels", - "disabled": false, - "layout": "IPY_MODEL_faf43e94ba1b42198f0bde358155654f", - "style": "IPY_MODEL_a0e2f40a13234bd8981dbefc551f6dca", - "value": true + "description_width": "" } }, - "cf964b454bb844b9a82acc9ce41157e4": { + "ce74b07798f3465f8a78b82b0c07e962": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "LabelStyleModel", "state": { - "children": [ - "IPY_MODEL_f1631ef3e9b14edfa5c45e7c1262a03b" - ], - "layout": "IPY_MODEL_4cefa945744543c283f5564b84447a50" + "description_width": "", + "font_family": null, + "font_size": null, + "font_style": null, + "font_variant": null, + "font_weight": null, + "text_color": null, + "text_decoration": null } }, - "d00f7575f4474e31a59e23df2c807806": { - "model_module": "@jupyter-widgets/base", + "cee6f85b89d6414b96c435134b79aa81": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "d14ae9a387e04bdc9dd8f7eb86a78dca": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "model_name": "VBoxModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 256, - "layout": "IPY_MODEL_5f182d436bb74392954824e12c8d2a51", - "width": 254 + "children": [ + "IPY_MODEL_b440e45d8d9b448f95b34500486c0f23" + ], + "layout": "IPY_MODEL_b8f2b89e0e7d46cf8ef439d0c428e49a" } }, - "d2ba4b6a9aba438991d1391c647080b4": { + "d080247366f944358590ccfbc5fd0c56": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "d2d98eb58eae4bd4a3e3adf385236072": { + "d2855154b31747a98fc513f2796c8f5d": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "d4bd2d3334f94874973b127f18c3ed23": { + "d2c319b4f0c34fe383c930075ed44ed7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { - "_dom_classes": [ - "widget-interact" - ], "children": [ - "IPY_MODEL_dabc7f85c6e64725b82db3dca68998bd", - "IPY_MODEL_f84afcbfc630492c8ca9eb8f33d47726" + "IPY_MODEL_7bce09b42ed54e1a943913b75c16c7a6" ], - "layout": "IPY_MODEL_13ade12a2f5846269ec01a71dbd56cf9" + "layout": "IPY_MODEL_342b3c29ed7142a698acfab17ac5b47b" } }, - "d4be817dda654195b27f091fff442450": { + "d3682b14c71240cabf712c17a61f8cd1": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "d4cd6447eec6472fbbab0478ce91d5bc": { - "model_module": "@jupyter-widgets/base", + "d37f59aeb39042baad3efd485ee5edd9": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 256, + "layout": "IPY_MODEL_da6f13890bbe4ba48f55aff89a9e0379", + "width": 254 + } + }, + "d47f348f4dd14eb9b49d633466966684": { + "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} + "model_name": "SliderStyleModel", + "state": { + "description_width": "" + } }, - "d584eeb9583f47159fe5e947d8fd2e1c": { + "d4f6180074c8463fb28fee0580d02f60": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_31a54ef70be842c9a31c2c7d2c033b36", - "IPY_MODEL_bc66d87d262e4584851a4d3b1c295619" + "IPY_MODEL_b59c6061d217452c9a971feab4715a61" ], - "layout": "IPY_MODEL_3cbb8a3272264cb6998b2f2abb6b9a4d" + "layout": "IPY_MODEL_4f95dd61f3274061bf218bc495ce4b37" } }, - "d69f5444b5a14be38e60e12bbb76d877": { + "d687df40dc7540bb9ecf24ddac7da925": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "SliderStyleModel", "state": { - "children": [ - "IPY_MODEL_b6045e20b04a4d5bb826c62cfd2e9d34" - ], - "layout": "IPY_MODEL_784a976c95e74a0193620aca3f100ce4" + "description_width": "" + } + }, + "d6e5fcbb68b9477b925610466aef4375": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", + "state": { + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 160, + "layout": "IPY_MODEL_089b7c9ed7d54503915e125de3b1e288", + "width": 160 } }, - "d7bed68a67ab47b1ba96acff7e4de9c8": { + "d6fac055b4c94056b2c898d2bedc3507": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "da7923c587f442f59edfaef60b0a2864": { + "d7586a3908474f13b36a8ede3bc7f2c6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { + "_dom_classes": [ + "widget-interact" + ], "children": [ - "IPY_MODEL_566ebc56a2c843b186a63652e8a44007", - "IPY_MODEL_5f2b3610cc314150a28798a54ba9c101", - "IPY_MODEL_0b8cc01661ff431499da123e089f2702" + "IPY_MODEL_7778bd6997bc4fa98b192ce731a02f2c", + "IPY_MODEL_85c0b932f0a64c2080947a4cf00fc7db" ], - "layout": "IPY_MODEL_a199f609c856473abb35dbe1d7a15d79" + "layout": "IPY_MODEL_c9062905814f4e4c86b165c0428340b9" } }, - "dabc7f85c6e64725b82db3dca68998bd": { + "d83ac969bee4460fa668013fd2d7bf2e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", + "model_name": "VBoxModel", "state": { - "behavior": "drag-tap", - "continuous_update": false, - "description": "sigma", - "layout": "IPY_MODEL_799e150679ac479dbb5350d4d7a63a7f", - "max": 10, - "style": "IPY_MODEL_2e95d7947726444fbad5ab09f25ad24d", - "value": 1 + "children": [ + "IPY_MODEL_661356fa99a9466fb60a75057b872b2c", + "IPY_MODEL_01b8e1518f344381b4b56c39c5e0390c" + ], + "layout": "IPY_MODEL_5b251bddb1f74cc2b22d2682bb02a896" } }, - "db3615c2fc6545f9a01274623715eddc": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", + "da64c57e4fe84b359a192b783d929554": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "CheckboxStyleModel", "state": { - "layout": "IPY_MODEL_b9932d7eb3774880b6ffdac39e0fe816" + "description_width": "" } }, - "db4b0bb5f9454d2cbfd83b88ca76e4ab": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "dc3ca44aca5a45bcbe37a450bb79ee54": { + "da6f13890bbe4ba48f55aff89a9e0379": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "dd6b8a226f104870bca9adb2852f15f0": { + "dbd8cc721ce64f9b85ab10830e8a79a8": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "ddcb35fd37524a698d45bba341c0505c": { + "dc8a56a46fb4470b850d4afb60feb3c3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_e851a4d365ca4d8cbe3fdba063d773c5", - "IPY_MODEL_54cf8b4bb29a449ebe83e249dff8b161", - "IPY_MODEL_87447ec3e451483b97382986655e7f3d" + "IPY_MODEL_9ffee92a54884fdcb4c33d7083d27024" ], - "layout": "IPY_MODEL_8e599bc638904dc9bb1f7bea749f2ccf" + "layout": "IPY_MODEL_a9167817774243e18ed8df23859f80ad" } }, - "de419a9179184facb46af2e21129e4b2": { + "dcbf78ae6004468e825aaec0d66ddb7d": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "dfa714d2983b4125a2cf8993a8505ef1": { + "dea05dbf52fd4885897fe07d020a590e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_a5e1368b29de49069d22f1c2094889e5" + "IPY_MODEL_878c3fc6a3dc4667a9b4736b3e5ff9ca" ], - "layout": "IPY_MODEL_1ddba3590bcd4519aaba5fde681040c5" + "layout": "IPY_MODEL_b9a9228a1e9044c4bdfefaafad596798" } }, - "e10c29ecfb3d41c1b93b0b2212519476": { + "dec96b043b654a9595700a5d64c1c3ae": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} + }, + "df5d9373a4904c38af6413087c3a87a9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "IntSliderModel", "state": { "behavior": "drag-tap", "description": "Slice", - "layout": "IPY_MODEL_0f723ea678bf4f1fbb62c2fdaa8c8e19", - "max": 98, - "style": "IPY_MODEL_29943e5fee0d462b9a8ed15eb79238b7", - "value": 47 + "layout": "IPY_MODEL_efaaa27ad5cb4264bc541af7036843f5", + "max": 119, + "style": "IPY_MODEL_4a2c665843a04332873626a6e2c98335", + "value": 60 } }, - "e2893bc3e6cc4a15a3a48a37c31a525a": { + "df70e9582b9145fba598ac31d7037ed7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", - "state": { - "children": [ - "IPY_MODEL_32486595091449f8b67dd802f118b246" - ], - "layout": "IPY_MODEL_729002faa79f4fc1b955af1af44ee1b4" - } - }, - "e358734b11694441ab1e52573f85f260": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "model_name": "IntSliderModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_module_version": "^0.13", - "height": 160, - "layout": "IPY_MODEL_acec85b6845d4a71a8151bcb95a5796b", - "width": 120 + "behavior": "drag-tap", + "description": "Curtain", + "layout": "IPY_MODEL_4bffca2048b74132898233f8123c2841", + "max": 160, + "style": "IPY_MODEL_ce020386554e4aeab26162bea3109019", + "value": 80 } }, - "e3701cae6b6e4e988853dd5d1847092f": { + "dfc7ec33cbb647fea1d1d0726b61c786": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "e3871f86bff84aadac40918a0d0713e2": { + "e0107b987312473dbd8315f47855c1fc": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "e4138fbed76940a09a411ce07778e06c": { + "e1fd9a26240e4500adb64ec7b06304a0": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "e51e8c3039d04a34ad62adb2f6a0714e": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": {} - }, - "e61157b490da4e45bdf2a5db296e12f3": { + "e3a44c823abb4fc09541ac3cdb94fa30": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "SliderStyleModel", "state": { - "children": [ - "IPY_MODEL_66ae44abb3ee4ea78e5dfb52540e8d00" - ], - "layout": "IPY_MODEL_9984963f8ed347669f6b7302e88259b4" + "description_width": "" } }, - "e680e335e2c54c7f9db71716edab73f6": { + "e4b24da814ed42a9b8313e5afdb999df": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", + "model_name": "VBoxModel", "state": { - "description_width": "" + "children": [ + "IPY_MODEL_4058663677e54cbaa436bd2d6ad554da", + "IPY_MODEL_591e0220e9864d148cdf6b7c4ed3a0c5" + ], + "layout": "IPY_MODEL_2fd529a8d1804022b242b6acf7fb3de4" } }, - "e7cd0e32c5da4b1f8e8ffc7085c3ea96": { + "e5d350fd607f47f38de1cc0665937076": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "e851a4d365ca4d8cbe3fdba063d773c5": { + "e64a431019a94202a6b21fcfec49daa7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_dfa714d2983b4125a2cf8993a8505ef1" + "IPY_MODEL_43ae85aeea3d4f1ab06d58f9b5a48507" ], - "layout": "IPY_MODEL_1503ec12c8fc4ff788aee721107efae5" + "layout": "IPY_MODEL_d2855154b31747a98fc513f2796c8f5d" } }, - "eb1d05a7d3e14ace96da0316d0f5d714": { - "model_module": "ipycanvas", - "model_module_version": "^0.13", - "model_name": "CanvasModel", + "eaa2bee2b71843a7bf51a764d054ed03": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", "state": { - "_canvas_manager": "IPY_MODEL_c3d9d98e8fec45a2825d0775e17f8b34", - "_model_module_version": "^0.13", - "_view_count": 1, - "_view_module_version": "^0.13", - "height": 160, - "layout": "IPY_MODEL_63b3bf4a6cae490885bad7b0bd0ae499", - "width": 160 + "behavior": "drag-tap", + "description": "Slice", + "layout": "IPY_MODEL_73155925dae942ddaf3637a34f9c92d8", + "max": 119, + "style": "IPY_MODEL_2402b0da6fd84f998637cd1fa1448b26", + "value": 60 + } + }, + "eb922b726f0b42d4943c066af1ec2e97": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "IntSliderModel", + "state": { + "behavior": "drag-tap", + "description": "Slice", + "layout": "IPY_MODEL_68d5ef7b2bef482db93b30cd20a37fcb", + "max": 119, + "style": "IPY_MODEL_731bfa9604154ce2b63361c32b9ee6fd", + "value": 60 } }, - "eb3603e9a6fc41b4bfa0e0a9c3e1c575": { + "ec6b104a3e9e4f7fb66c14b3b1eaf572": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "eb935b3b8883442aa15eb8ce3c321c17": { + "ee0bb568c1dc427696841e7cf3a27ece": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "model_name": "HBoxModel", "state": { "children": [ - "IPY_MODEL_31b114b7f64445f7b6a7a009bf57e6f8" + "IPY_MODEL_3d907c9d9f7c4f4197339f30dd080fdd" ], - "layout": "IPY_MODEL_7708fa25cfea4589861798a9bad817e8" + "layout": "IPY_MODEL_ee168c84445642199e76898c0315c8d7" } }, - "ec76a88fa7484257b62d32b470bbf1c2": { + "ee168c84445642199e76898c0315c8d7": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "ed40a64754124f1380ab219369a0330c": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "LabelModel", - "state": { - "layout": "IPY_MODEL_3ee1bfa1e6f240b99c4cd5bfef399989", - "style": "IPY_MODEL_c37a1d7f3ee5415b9c7429235f7b0ba3", - "value": "gaussian(..., sigma=0.0)" - } - }, - "edeea92014de48b7a95343f4c1e09955": { + "efaaa27ad5cb4264bc541af7036843f5": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "ee760612909d4167aeecdcae934374e6": { + "f0675c5be7204bc69bf1c7c759bceed3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_e2893bc3e6cc4a15a3a48a37c31a525a", - "IPY_MODEL_0a38908645694f69ad44d711ada6e01a", - "IPY_MODEL_ee7880c8ad324e4492cf29d0fd8f24f9" + "IPY_MODEL_75739ec2e1f147858532dced80c49599" ], - "layout": "IPY_MODEL_eb3603e9a6fc41b4bfa0e0a9c3e1c575" + "layout": "IPY_MODEL_dec96b043b654a9595700a5d64c1c3ae" } }, - "ee7880c8ad324e4492cf29d0fd8f24f9": { - "model_module": "@jupyter-widgets/controls", + "f211aa4104a846ae945d40a6b84cc42b": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "LabelModel", - "state": { - "layout": "IPY_MODEL_4049f7732a6e418d998e5b6126ab6029", - "style": "IPY_MODEL_374131ed0261421fbe5dcabd7f0acf35", - "value": "[]:" - } + "model_name": "LayoutModel", + "state": {} }, - "f04bce2787364b0c9d1d1af039509942": { - "model_module": "@jupyter-widgets/controls", + "f5ab9e676d7e4963a71e663eda5f5ec9": { + "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "children": [ - "IPY_MODEL_130c9850625a41bb97b0971aed230776" - ], - "layout": "IPY_MODEL_b4b38155a37b402e87485bc72c7683d2" - } + "model_name": "LayoutModel", + "state": {} }, - "f1631ef3e9b14edfa5c45e7c1262a03b": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", + "f66777f86e5b4cb48bae74ef0d0b7f31": { + "model_module": "ipycanvas", + "model_module_version": "^0.13", + "model_name": "CanvasModel", "state": { - "children": [ - "IPY_MODEL_c32f69c050b147b4ab13ad450eb41a17" - ], - "layout": "IPY_MODEL_9cda2465c18449a19ccde1dbfd1ad9be" + "_canvas_manager": "IPY_MODEL_7522a5bb749d4cc691ccd069afcbb465", + "_model_module_version": "^0.13", + "_view_module_version": "^0.13", + "height": 389, + "layout": "IPY_MODEL_c2c6dda8f08f47cb8064bc3b20bb6713", + "width": 235 } }, - "f1879187c641457e85ea8c6874752abc": { + "f891d601777e4f31b67e5f14d98e6dd5": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "f1b333ee3dfd4df690c0bc94cfd18c4b": { + "f93071493a744430b1b2c703672b16c1": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "f2ff3bb311c0458da96c3f999f585e8f": { + "f9835b183012432d88c2b9470a1f30dc": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "f84afcbfc630492c8ca9eb8f33d47726": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", - "state": { - "layout": "IPY_MODEL_90ff1b40f5834416a4d8888f2c8dd44f" - } + "f9ad7bd921fc49eeac43282ce8af6f99": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": {} }, - "f97eb6f3501845e0a5171ddad5ae1e6d": { + "fbdc4ab569b44fa4b89d6484cb922ab7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", - "model_name": "HBoxModel", + "model_name": "VBoxModel", "state": { "children": [ - "IPY_MODEL_0924b8234a274612b6abbbe6f3923d51" + "IPY_MODEL_90e9bb7d13e542d28cffccd0ee1d26d3", + "IPY_MODEL_eaa2bee2b71843a7bf51a764d054ed03", + "IPY_MODEL_5c67bad316574627bf6a5986c2911412" ], - "layout": "IPY_MODEL_77c537b251c14550910dbf3048151004" + "layout": "IPY_MODEL_a9e858d6b939406c8590be1ab64656c3" } }, - "fa1bff7437fb406b8ca726532ace518d": { + "fc926ee541aa4f718c0dc3fe44e6a347": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "faf43e94ba1b42198f0bde358155654f": { + "fc9559193b46445ca10232586f1a4e05": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} }, - "fc63275c6f6c4924aad93a0f6aa14476": { + "fea17bff1f9e4bb18f63165bf6ea1e49": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": {} - }, - "fe7484d4af2d46e0b34903508ba44ab0": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "LabelModel", - "state": { - "layout": "IPY_MODEL_a77fa456b92740319352e291df4c0c9d", - "style": "IPY_MODEL_0e01520ea3af4e86a50409bc99e762ea", - "value": "maximum(..., footprint=disk(0))" - } - }, - "fea1b1fab9794487af89e7bd80e6c321": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "description_width": "" - } } }, "version_major": 2, From 96ca5440890efe6c28cd5e9b29a4b10cf71f2585 Mon Sep 17 00:00:00 2001 From: Robert Haase Date: Fri, 23 Dec 2022 12:48:18 +0100 Subject: [PATCH 6/6] bump version --- setup.py | 2 +- stackview/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 8a80d16..5310080 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="stackview", - version="0.3.7", + version="0.3.8", author="Robert Haase", author_email="robert.haase@tu-dresden.de", description="Interactive image stack viewing in jupyter notebooks", diff --git a/stackview/__init__.py b/stackview/__init__.py index 6652ea0..0cbb854 100644 --- a/stackview/__init__.py +++ b/stackview/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.3.7" +__version__ = "0.3.8" import warnings from ._static_view import jupyter_displayable_output, insight