-
-
Save gadamc/fe31b3504839cd0c62159cdb62e2d6b1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"id": "84edc1c2", | |
"metadata": {}, | |
"source": [ | |
"# Confocal Scan" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"id": "815ca094", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import logging\n", | |
"import matplotlib.pyplot as plt" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"id": "7e06f7a3", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import nipiezojenapy\n", | |
"import qt3utils.nidaq\n", | |
"import qt3utils.datagenerators as datasources\n", | |
"import qt3utils.datagenerators.piezoscanner\n", | |
"import qt3utils.nidaq.config" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"id": "a7a370ec", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"logging.basicConfig(level = logging.INFO) #set to logging.WARNING to suppress logged information to cells" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"id": "6d6edfb0", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"daq_name='Dev1'\n", | |
"signal_terminal='PFI0' \n", | |
"clock_rate=100000\n", | |
"num_data_samples_per_batch=50 \n", | |
"clock_terminal=None\n", | |
"rwtimeout=10\n", | |
"signal_counter='ctr2' \n", | |
"piezo_write_channels=['ao0','ao1','ao2'] \n", | |
"piezo_read_channels=['ai0','ai1','ai2'] \n", | |
"randomtest=False\n", | |
"cmap='Greys_r'" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"id": "253aac3f", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"controller = nipiezojenapy.PiezoControl(device_name = daq_name,\n", | |
" write_channels = piezo_write_channels,\n", | |
" read_channels = piezo_read_channel)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"id": "adc94f90", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"data_acq = datasources.NiDaqDigitalInputRateCounter(daq_name,\n", | |
" signal_terminal,\n", | |
" clock_rate,\n", | |
" num_data_samples_per_batch,\n", | |
" clock_terminal,\n", | |
" rwtimeout,\n", | |
" signal_counter)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"id": "0bd206d8", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"scanner = datasources.NiDaqPiezoScanner(data_acq, controller)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"id": "5b2cf4e1", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"scanner.set_scan_range(40, 60, 40, 60)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"id": "7f25930e", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'running': False,\n", | |
" 'current_y': 0,\n", | |
" 'ymin': 40,\n", | |
" 'ymax': 60,\n", | |
" 'xmin': 40,\n", | |
" 'xmax': 60,\n", | |
" 'step_size': 0.5,\n", | |
" 'raster_line_pause': 0.15,\n", | |
" 'data': [],\n", | |
" 'controller': <nipiezojenapy.controller.PiezoControl at 0x2016b737400>,\n", | |
" 'num_daq_batches': 1,\n", | |
" 'ratecounter': <qt3utils.datagenerators.daqsamplers.NiDaqDigitalInputRateCounter at 0x2016b6b3190>}" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"scanner.__dict__" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"id": "d8b848c3", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[0.04567673118400789, 0.004451061808055372, -0.05223423357139445]" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"controller.get_current_position()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"id": "15ff65d8-e99f-4493-879b-5e9b97561da8", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"INFO:nipiezojenapy.controller:go to position z: 15.00\n" | |
] | |
} | |
], | |
"source": [ | |
"some_optimal_z = 15 #use the qt3scope tool and the nipiezojenapy tool to find an optimal z\n", | |
"#OR, maybe can run a large optimize scan across all of z. see the optimize code below.\n", | |
"controller.go_to_position(z = some_optimal_z)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"id": "d4a565aa", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"INFO:nipiezojenapy.controller:go to position x: 40.00 y: 40.00\n" | |
] | |
} | |
], | |
"source": [ | |
"scanner.set_to_starting_position()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"id": "c78a079c", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[39.97804581427617, 40.04503830190768, 15.03121610872722]" | |
] | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"controller.get_current_position()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"id": "8bc7acf9", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"scanner.start()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "467faefe", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"while scanner.still_scanning():\n", | |
" scanner.scan_x()\n", | |
" scanner.move_y()\n", | |
" \n", | |
"#the output of this cell has been removed. Normally, with loglevel = INFO, each step of the scan prints a few lines of information" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 51, | |
"id": "696d822c", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"scanner.stop()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"id": "82e5580f", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.image.AxesImage at 0x20109aad760>" | |
] | |
}, | |
"execution_count": 28, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQsAAAD8CAYAAABgtYFHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAsgElEQVR4nO2deZRd1XXmf7tmzaWxNCEJDUggwAIEeADHxjYQDxhPBDtxSGyHuOMM3UnHDumsdtqx005it3HSHSfYxnESx/PCJtgGE2w8YQwCxChAM5oHSqVZVaqq3X/UK1a92t8t3apCVIns31pa0tu1z33nvvfq6L59vvttc3eSJElORM1ITyBJklODXCySJClFLhZJkpQiF4skSUqRi0WSJKXIxSJJklKUXizMrNbMHjKz2yqPTzezX5jZOjP7qpk1FIy7oZLzlJld8XxNPEmSF5bBXFn8AbCmz+O/Aj7l7ouBfcB7+w8ws7OAa4HlwJXA35tZ7dCnmyTJSFFqsTCzucAbgM9VHhtwGfCNSsoXgavF0DcDX3H3dnffCKwDLhrmnJMkGQHqSubdCHwQmFB5PBVoc/fOyuOtwBwxbg5wb5/HRXmY2fXA9QDjxjRdsGzh/Kqf+56dema18RSssVHnTpwcY0UK1qOHQqhr1149hbnilLw7xtqPyfF+/HiIFZ2Dt7eH2NGd+2Tu2PmzYnD8JJkrOdSm493i3GrE/zsqBnTvfTbErEl+i4WaeCHafeCwTp00LgaL3l8xN8Pi8I74egNQKy6Q2ztkandHZ4h1HOuSue3itW2q069jfX2cg9XEcwCwcWOqHm9uO8TeI8d0cgEnXCzM7I3Abnd/wMxeNZiDDwZ3vwm4CWDl2cv8vq99rurn3f/w13rg5LgA2MIlMrXmte+Iwa74iwrQ/eg9IXb4xn+UueP+6n/HYIdYGDY9Jcf79i0hZouW6tz18Rir/+ZbMve8//MnIVbzstfLXCx+ILt/fIvOVb9ATWNibMxYPfwLXwyx+jPmi0xgXFwAjvzHfTJ17BUvi8HO+IvakxznZmIB8I0b9fhJcdHt2rBZprY/0xpiG9fGGMD6Q0dDbPm08TK3ZWZ8bWrH6kV3zMXLqx5f/NnvyLyBKHNl8QrgKjN7PdAETAQ+DTSbWV3l6mIusE2M3Qac1udxUV6SJKOcE9Ys3P0Gd5/r7gvoKVb+wN1/Ffgh8PZK2nXAt8XwW4FrzazRzE4HlgD6v4UkSUY1w9FZfAj4QzNbR08N4/MAZnaVmX0EwN0fB74GPAHcDnzA3fWXtSRJRjVlC5wAuPvdwN2Vf29A7Gy4+630XFH0Pv4Y8LFBzaqjHd+2vipkb7lWz+m2b8bg7NNiDOh+7GchZovO1XMQBdUHVusi6yvXPBiPe/4r4/OvuzXEAEzUXZg8XedO3BVitbW6TnXoxptCbPzEZpmrCom29DyZ6nu2xtwpsZjqP/2ufqpG8bGrK/go7tkTQq07D8rUsRZfB5u/UB+3TdQM6uP3fVus61++eVOIHd+j51XfMjHEGja3ydxDXbHAuatNF1nrauP/9XX1Onfyzx+retwtaiMnIhWcSZKUIheLJElKkYtFkiSlyMUiSZJS5GKRJEkpBrUb8oJRUwNN/dRpBUrLmnf/Toj5wz+Xubbi5TE2ZoLIBC59YwhddMntMrXz+3eGWP3yC+Nz/dKVcrx/V+zoHNPScJszL8TO+eDbZO7ef/5eiHXe8FGZO/nzQp1aWy9zlSrSjxyIsf375fDaM8QOhZKQAwjZ+5QZWtFoM4XsvkBFysE4N9+4PsRs9mw9XtDRqmXoExfNDLH2dn2+48UOxxNH9GdhXks8tzFN+j7N+inVr5kVSMgHIq8skiQpRS4WSZKUIheLJElKkYtFkiSlGJ0FzsYx1PSTYfsBfUuvt+2OsdUP6OM2NYWQXbZIplr/AivQ+NKXyNz93/pxiDU/9VBMFL4VAEydGmPPRs8HABe3UdvsWPQE6OqKXg4T5jXr4+7dHoPiNQCwOfE184PCU0PIrwFs+owY7NSvzfF7VoXYuPdcI3OZIiTyY3UxVBU4bf6CEFOyboDuPfH9qZ+si6ntW6IPytix+ldvSU281b/xkJZw79oTJdunz9MF+/rli6se208el3kDkVcWSZKUIheLJElKkYtFkiSlyMUiSZJSjM4CZ1cnvr9fUai7wDNHGePOL/BzFOatfkAXEq05FuHs0stlbuc3fhSPu+axELOlZ+nnahFeEAXFUGuMRVrf8LTMbfnN6Le59m+/JXPPEK9NTYsunPpRoVRU70+Xfs983VoR1Ma6rpSd43URzxZHbxL/yW0yl8PRkJkJwsx4hijGAjUHo3dF6xatWJ26IPqV7NynVZljhOHuK5Zrb5PuTmHuO7tZ5rY/uKbqsReoQgciryySJClFLhZJkpRiOO0Lv1RpSfiYmd1sZvKuIzPrMrPVlT/aVy5JklHPcNoXfglYBpwDjAHeVzDuqLuvqPy5amjTTJJkpBlS+0IAd/+uV6DH3n/uyZlikiSjgaG2L3yOytePd9Nz5aFoMrNVQCfwcXf/1gmfraYOmyAcrwX+jNgJKPCC8CcejcFp0WsAgIVCqtym2xdO+/VfDrEdn48dn2b91wKnadXNS3TiAvDH4y4LEwo8OYTvxJEjukOX3xcl6937tcRedTXzH34rJhb4WSjH7M6f3SsyoX6lcF9viDtCAP6EaEnTLKT0AB2i1aDoysbueDsBANPjDkVjg9jlATqFz8XiuVqGPmZM/JV8YI3esesUO0jnd+tdpYlnVftymPDNOBEnHNG3fWFByt8DP3b3nxT8fL67rwTeBdxoZvJmDDO73sxWmdmqPa36Q5okychRZnnpbV+4CfgKcJmZ/SuAmX0YmA78YdFgd99W+XsDPT1HZDMKd7/J3Ve6+8rpU6YM5hySJHkBGGr7wl8zs/cBVwDvdFfKKDCzyWbWWPn3NHoWnieet9knSfKCMRydxT8ALcDPK9ui/xPAzFaaWW8h9ExglZk9TE9v1I+7ey4WSXIKMpz2hXKsu6+iso3q7vfQs7U6OLwbP9avKFQgB1Yt5xgjCoag5ccFRTzaRXu3Ft0WcceffjLExo8XspOic5gfC34m2icCsOL8eNjHReEW4MiREHrJO3RLQlXwO/iJz8jUCR+LxT3fuSMmFrwPx26/O8QaL9ZtJG3hGTGoCsKALVsZ53XbP8tcPyTk3s/GAnbnFv0+1K1YHmLTXrdC5h57dEOI7dqkj6s8SJSJL8DSxc0h1rRQy9NrFy2oDjSulnkDkQrOJElKkYtFkiSlyMUiSZJS5GKRJEkpRqefhXssRtYUrGute0Ko5vJ36MPu2hyDx4WSD/ANwo/iNFFsA2b+evS56LjnwRBrv/0uOb5BmccWGc02R2Wrt2tD144dbSHWOFsrY1u//bMQm3rjx/Qc9sXX3GZGTw6mTJPD67fH4p5NLtDWTIvHrSl4H7p/GlWz3tYmc01oeXxz/HzUnVag8D0gOrC1CtNioHFOfM1jSbuHriPx83jfo7tk7lPr2kJsWYP+la6bOrE6INS9JyKvLJIkKUUuFkmSlCIXiyRJSpGLRZIkpcjFIkmSUozO3ZCuTrytuuJu44XzMmBnXRCDBW33OBrlz+zaJlN9f6xs2/ylMrfmzb8RYg1CTnzX394ux7/mHFHdPzvKugHYG/0VrEBW3bgottOzs6JMGaD2wU0htuqtvy9zL7j+1TEopPRFOzp7VsVdh5Z52jvJlsSdHj+sfTI4M75mdoZuOek/ijsn0gdF+V4A1MVfne7j2s28Y1ecb8OMiSITdt0bX5tzFzTL3K3b4mfs0D5xmwLQeW+170vX4XT3TpLkJJGLRZIkpcjFIkmSUuRikSRJKUZngdMduqrb9/kR4T8A1MyMrQq9tcALolO0BCwowtVcdJk4rpbdmiiodm3aEmKzxwnvDYCjsShlp+liqm9eH2Idm/W8Gi69MI7fp/07xi2Jsubzls+RuTZTSKCFx0T3PT+V4ycvEjJw0Q4QwKbOlnFJ/5aXAAe0BFsVM11IoI9tjNL2IuqnFJjwnh/fywN3PaRzx9TGObTrwunUqdG4uHmBls03zq/2uajdoAv7A5FXFkmSlCIXiyRJSpGLRZIkpRhOr9N/MrONffqYrigYd52Zra38ue55mneSJC8wgylw9vY67Ss9+2N3/0bRADObAnwYWAk48ICZ3eruBVWnCp0dsLu6AGOLte9v907hUXEkeg0A2nB3yzqZ6pvWxGCz9mew+sYQq50Xi4NnvkUrS7u2Cn+Hp3UBjMmxw1bj9QVtZrfF18Yf1sc10YCtY7d+HZuUqlHECse/7U0xuHCZzPU20RFM+GkA2qNBFbUBhM9F1/5YaG6YqZXDnW1RDWwNsTgJ0PF0fB/aC4qWjY3xGGay04Z8z2oaZX/y+NoUeEcPxJB7nZbkCuBOd2+tLBB3AlcO8hhJkowCyn4NuZGeXqf9l7iPmdkjZvap3mZC/ZgD9N1D3FqJBaraFx7Q26RJkowcw+l1egOwDLgQmAJ8aDgTqWpfOLHAUi5JkhFjyL1O3X2H99AOfAG4SIzdBvQtFMytxJIkOcU4YYHT3W+g5yoCM3sV8N8rvU5nufsOMzPgaiA63MIdwF+aWa9j6eW9xxrwOY8ewR+tLsTZ8otlrllc7/xwm86dGIuD3qJv1bXJorNTjS5g+XFhmDsuFjOPP7lRjj/6zLMhNmly7PpVSMEt+bYodvnqvPvHMrd2TkuIHd8XO2kBdD3yeIjVXbAixBrPXiTH+46tIWanLZS51MaPqK8VxWfAxokrUtXRDGDevBCqE6bQHZu1GrjxXGG5u1/fOt/d3hafq17/P606ko2bGq0GAA7uORxiXYf057l+Xr/3t8gAewCGI/f+kplNBwxYDbwfenqdAu939/e5e6uZ/QVwf2XMR9y9oF9gkiSjmeH0Oo03T1Dd67Ty+Gbg5iHPMEmSUUEqOJMkKUUuFkmSlCIXiyRJSjEq/Sz8WDvH11T7NjQV+Br4gbiTUNMSPS4AfLuo7ndr2a23R+lvTYHHRPd9d4SYLT075v18tRw/6QO/FoMbn5K5TBdeEt1aDkxj9Jioe9vbZeqhG28KsfF/9F/0cY/GKrzfLVozztF+GDXv+O04fk/BjvrB+P7aOdrM2Nc8EnM3rtXHVZL141EaXjchekYAoFpGih0wgNpx8bM0foG+daB9uzCKrhG6bmDqOfH1Pb6n4FaH/ufrBZ+ZAcgriyRJSpGLRZIkpcjFIkmSUuRikSRJKcx9CDe2n2RmWK2/g+pi0d89+E2Za9NEEW3yLJnr256WcZm7ReQ2qBtr6TEY7h964GchZmMLOqUJmbLfe49MteWxo1jNVe+Rud133xKPu7r//YAVpgt5uTASBqBRvA6iyGq/VOBGsPOZGJugfSOYJAqBz2gPEjpE97Jt4rlAdhRTRU+bG2XhABxoC6Fj/xHfc4hmuQDbfqAl63MuOzPEjjwezZ8ButtjQfZ4hy7Yj51V/fpeevcjPLjvkK6cFpBXFkmSlCIXiyRJSpGLRZIkpcjFIkmSUoxOBSfQ1c9R9OAffVDmTrrt7jj+gOhMBdiEySHmHQV+FgujAtN3bpK57BWeB0oheOZL9Pit0efCXnOFnteyqF7s3l1QxBNKS8YXuJCp+U6cGGMAe+Pra+fH7meFngnThRpXvYYAzcJXpFl33fI7vxPntVB7ajBDFMFF1zvfFxWkAKyPneFUIROg+1A09522WCs413/30RCbMF6b8E6YFd+fQ9u0grNmZ7XXRvdxXQgdiLyySJKkFLlYJElSilwskiQpRS4WSZKUonSB08xqgVXANnd/o5n9BJhQ+fEM4D53v1qM6wJ6qzbPuPtVw5tykiQjwZDbF7r7pb0/MLNvAt8uGHfU3VcMZlLjamq4aFy1j8Anfqqdsf/XzuhRYQVu13TGir9vik7VADbz9BjcXeC5cEzIog/EqrTN1NJh3yQ8F4ScGMAPCL9j4b0BwNi482FK1g248mfoKqiYTxLS7DpRsR+MJ4fYiQBga9x1YEqB8/lY4YKtevwBHIxO3L5feEm0FPioiB0hFQOomRWd02uOaAn3oiujnP/I49ENHaCmTrvNK+rGNFQ9LvLIGIhhty80s4nAZcC3Bv3sSZKcMgy3fSH09Ay5y90LLHpoqrQlvNfMri56gr7tCw8NwcUnSZKTy3DaF/byTuDLAxxivruvBN4F3GhmUiXTt33heNE4KEmSkWXI7QsBzGwaPW0Lo3Sugrtvq/y9gZ6eI+cNb8pJkowEQ25fWPnx24Hb3F1qpittC4+4e3tlYXkF8Ncnes6mGmNxU7VnQmeB74b/6NYYfOWbZK6JIpxN0wUsOX6pNortvuNrMfdN14SY792uDzxrboxN0pJmm7kgHvfBu2Vux3duD7H62VpmzLQYP/7IkzK14ao3xHmd/dI4r6Lz3SPizbG1JCC9PiiS6C+ILRB9y2adO1PIvZV/R31DjAE2S3xuigrCR6Lcu6a+oDjZFA2Cx56pP6Ot98Xi/tix+le6fkp10d9qB3/1Ptzr/Wvp9xXEzFaaWW8h9ExglZk9DPwQ+Li7PzHM50ySZAQYcvvCyuNXiZzn2he6+z3AOcOZYJIko4OsJCZJUopcLJIkKcWo9LNoqKthXku1Gu/YDq29OPKNuBEz/rK36gPXxtO16QWGrEL51/2dL+rUJWeFWM3suEPc9fV/1ONnCtPhFlH0BHxV7PzlW3URr/786MlhSuUI+JaoKGz4lXfIXI4LJexGoYQVeT3Jolg9t8B3QnScY88unSsKjLY0vjcAdHbG2G5x3KJzUH4YB6IqFMD3RWVo7fTorQLAsVi8Pbpxt0w9ekwVVHWRteFYP3PfIRh155VFkiSlyMUiSZJS5GKRJEkpcrFIkqQUuVgkSVKKUbkbUj95PHPf+rKq2D2f/p7MferB6Ap9fqt2ipatDo8V+CiInRNmn6ZzG6JEt+vbX4jPf1aBu/euKH+umRfb2AF0/fwHMXhYuHgDTJgQYwVeENY0JsT8YX3voJ0ldHbCOb1Ili2dvJVvBYCYF/u0b4Q8tyLvi9Y9MaaczwvaKvoTD4eYzRA+HYAtE07xjz6k5yXk3gd/qttuzrl0cYgdXa93itqfrf6cd3cO/s7uvLJIkqQUuVgkSVKKXCySJClFLhZJkpRiVBY4bcwYbHl1MfBtb9FmuXf/e7zjvfvrsbgIYK97Y4wJfwgAmyR8H5REGKg5+4IQ6/rmv8VEVawDmBYNXbt/8A2dK4yAUWa7gM2LpsO+VntU0CqMgOt12zymiULes6JouXuHHO7CLNcWLCmYVyxEelFBd3ssFNv8Agn2HiGhrou/Dv5kbCcI6NaMRabDQjJuLboYqmTYqk0hwLHNsdDbuv2gzK2rrb59wbtT7p0kyUkiF4skSUqRi0WSJKXIxSJJklKUKnBWnL0P0nOzfKe7rzSzKcBXgQXAJuAadw837pvZdcCfVR5+1N21KcQJaHtMm7++9OwZIda1TavY6uqE+Wq3vv+/e0tUzdmZF+rc+++MuS9ZERPP0A6D1hxVhr5pjcxljCiSNjbGGOBbNsVgQdcsRKcym1ag9pwTlYO+LxYMfZ0+BztNdXvTxVAWnhFjm6NRLSDPwZ/RXh80xM+CzRXeJkUdyVThs6D7mR8SRcfjx2MMpGlwQ4tWkR7fHYvdG3boImv/BmTHjp9cBeer3X1FpQcIwJ/Q01xoCXBX5XEVlQXlw8DF9LQM+HDF8TtJklOM4XwNeTPQe5XwRXo6k/XnCuBOd2+tXHXcCVw5jOdMkmSEKLtYOPB9M3vAzK6vxFrcvffacScQxQIwB+jr17a1Egv0bV+450DBPnqSJCNGWVHWJe6+zcxmAHeaWZWyx93dzAav8qg+xk3ATQArF502rGMlSfL8U+rKok8Lwt3ALfTUH3aZ2SyAyt/KVXQb0Pe+7rmVWJIkpxgnvLIws3FAjbsfrPz7cuAjwK3AdcDHK39/Wwy/A/jLPkXNy6m0QhyQhkY4rboV3bS//jOZ+uyHPhpiT9yu7/+/cMqXYvBd18cYQHeUdvvOTTpXVLu9VbhS31Yg4b7mPXH8+qdkqk0Rbf4KHKh9p5BgT9KVdZsjvDpe8rIYA3yTaCqnmlkXtPOzsy6Kx9y6VuYiZMlFviC+QbxmonUgICXyvlu8XvujMzeATWyOwf5bDr25Y8aFmHwuwMSOTu0e4b0BHG2L51ZbsCNz7pnVn5uxD+rzGogyX0NagFusZxJ1wL+5++1mdj/wNTN7L7AZuAZ62hcC73f397l7q5n9BXB/5VgfcXdxE0KSJKOdMo2RNwBhKXf3Z4HXiPhz7Qsrj28Gbh7eNJMkGWlSwZkkSSlysUiSpBSj0s+CukZsZrUk2B/5qUydctXLQ2zD/71D5j59azRZXXqtLsLJgp3yMAD86ShrtkVCpnzZVfq5FLW1Oq6MdTcWyJ+FdNgufbXOVV4dqnUgwIG2GFMeFXMX6PHtoug4TpgLAzauOcR8bXwfAdn6jxYl/wHf/Ex8rh1Rcm5LtM+GH4pSa5td0ArThbR6f/lWh8zU3heNz0Zp94RNwu8E6D5e/Tn3bF+YJMnJIheLJElKkYtFkiSlyMUiSZJSjM4C54FW/PYvV8eWxq5OAHb5W0Ls3Ee1gnPPmuhz8dS7fl/mLv07ITQtUEraG66JwbaofreCIl73974ac89YLnOl/8Zkfdd/x/qtIdZY4N+hCqrWHL1CAHyMOI8jorC2R6sU/anVMVagWOXiS8UBtBeDiQ5svq3g7gKltpwyJcYKirT2rLi7oVmMBzggipYz9GsrVa9KiQt0tsUbLs95dyz4A9BR/dmt3TD4uy7yyiJJklLkYpEkSSlysUiSpBS5WCRJUopcLJIkKcWo3A3p3n+Qo9+7uyrW1C6kvFDghtwsU5t3xYr9lNl6h4JxomVc0U7Cjk0hZAvODDHfXOBRMVF4TGzS/g6+ZUuIde3Rd/03Xi3aNS4p8ILoEP4OXQUO1A8K6f3y82OsqF3jzCiLtukF7fzEDpRvj68BoL0rmptlas3c6N/hR8V44UUBwFzhUF4v3ONB7nDYrLk6V7ice8E5NC0UOyoFrR2P763+7Ptx3YpzIPLKIkmSUuRikSRJKXKxSJKkFLlYJElSiuG0L/wb4E1AB7Ae+E13bysz9kTPt/9QO3f8ZGNV7Oq3xWIdAAujga0XtOgb/yuxv9G6T31d5i4S5ro17/lvMlc5A/hR0bJuQrMev78txIoKYDYlGrp2//v3ZC7HYvFX+nQANjFKlX37epmrCoF2WJxvizABBtgo2hoWSKVthihE/uyH+rgTY1HalpwlU32tMB1WfhgFknXGi8L4M9pXxPcK6f/psQUkgK9bF4MFcn6ri7++XQe1QXH94uqist0t2i+egOG0L7wTONvdzwWeZmDX7v5jkyQ5xRjy1xB3/7679+6/3EtPT5AkSV6kDKd9YV/eAxRcC59wLFDdvvBA9+A7PCdJcnIZcvtCd/8xgJn9D6ATEB18Bh7bl77tCxfV1Wf7wiQZZZRaLPq2LzSz3vaFPzaz3wDeCLzGCxxAi8YO9HxHu51HDlcr9968XntU2OvfHmI17/4dmdt917dCrGWmVujZoliA8l2bZS5NY2NszUNx/LqCrluiUOUHRREQQHg2NFwZ2rf0cMY58bh7o8dFITsGkSsMe2UM4LhQhooiIIDv3B6D4jUAsLPPi+OfekznzhHmuspLQpkTA6iCbqNWrNo5Qt3aqruMMXt2jBWYN/tuUTitLfiyMG1a9WPxmTsRJ/waYmbjzGxC77/paUH4mJldCXwQuMrdZQm2aOygZ5kkyYgznPaF64BGer5aANzr7u83s9nA59z99UVjT8J5JElykhlO+0K5Uezu24HXDzQ2SZJTj1RwJklSilwskiQpxaj0s+h0Z3e/dmubvnaPzD394ktCzCdHSTQgW8aNf4V20fZHHwkxW36BzDXhdu3NUYZOrZYD21lx14J9unVg9+rVMahkymhpOFs3xhjAVOGNoCTNANEkHV+9Kj6/Oi+Q1f0ijwqbEX0u5O4CaLm18P8A9A5Ua/QFsdcU3GawT+xm7Bcu3gDKi0V5Z4BuIyl2PQC6DkUPkrozhM8GwPZ+u0pqR+oE5JVFkiSlyMUiSZJS5GKRJEkpcrFIkqQUo7LAOa2ulvdOa66KbWsV3gzAgifjffl23sX6wKoQKDwQAA7/PMqtx68XHgiAnykKbkeEcaowFwZgTJSLuzBuBah53RUx2NCkj6sKlPO1jwI1ouj44L06V9Eei21SPg3QJOZbX69zlWHvIw+Un1eDNtF1YWxrc4T/xqP36+N2xgKh7xKVX8AufW0MThAmzQAHhER+/nyZWtfYGKe1RnuQ1I7vl9tZ8N4MQF5ZJElSilwskiQpRS4WSZKUIheLJElKMSoLnLV1NUxuri7I/Hiz7rp18UOPh1h9QYHTTl8onqzAK0C4dR27RZuBNU1sjkFVsCsopvp60amsZhDr+H792rBT+FHMKjDRFSpDWxK7qgEcv/W2EKv/pZcXTq8//lBUexb6K4jir80rUCmOHR+fa0NBFzilsHXh0Haa+MwAbIveJra84J7JNatjrKDTmc2cE6e16hc6d+myEOtas0nm1r+82v7WvifmdALyyiJJklLkYpEkSSlysUiSpBS5WCRJUopcLJIkKcVw2hf+OfBbQO+N/X/q7t8VY68EPg3U0uPN+fETPV9nZze7W6ur89cu0x4Vd98eZdmvu7rAOfklYpdkw5MydcJv/UqIbfvEP8vcqV/8cog1XffOELOpogIPMF5If48c0rnKo6LA+4Jp0QuCSbpNoPJn8DVa6ly38tyY2xrnYLMLWjDOjPNyJRcHuWvg9/5MH/eCi2JM+XQAzBa7QspjYlyBp8dpC2LscMF7plpRjtM7Y2qXpdB7oim6iTe+tGBHpr+cv8cXd1AMZuv01e7ev4nop9z9E0UDzKwW+H/A64CtwP1mdqu765sskiQZtZzsryEXAevcfYO7dwBfAd58kp8zSZKTwHDbF/6umT1iZjebmWr1PAfo62u2tRIL9G1fuC/bFybJqKPsYnGJu58P/DLwATN7JfAZYBGwAtgBfHI4E3H3m9x9pbuvnDwY9WKSJC8IQ25f2LdfqZl9FogaYNgG9K0kza3ETkj/+kvRxcZdbbEo9dqtus2gmViEDhSYrNZFufbk2boo1bhUFMvaYsGv874H5fjaC2JRymbM0vNqFgW7ArNbOkTRsL3AU6Ne+D4USOERvg2m2u4d08/lR0QhURnVAkyKF6x2cYG0XLRL9L262F1znjB63rEpxn50hxxvKy6MwWe1sS4t4mL6qPA7AfmaH9uiC9hNZ7TFYMEvivcrvnr3SfCzGKB9Yd9P81vQbQnvB5aY2elm1gBcC9w66FkmSTLiDKd94b+Y2Qp66hmbgN8G6Nu+0N07zex3gTvo2Tq92d3jnV9Jkox6htO+8N0F+c+1L6w8/i4Q9BdJkpxaZCUxSZJSjEo/i27gcFd1oeaJrQdk7nn9jUgBNhZ03VJKuoIuY+x4JoTGnL1AptqCGPdHHg6x2mUFZrkd0ZSWOQWeDa3CFHZygTJUFRhVdyyA/W0xVmB2a8tEF7dpovBaYDrMmKg8lIa/gD8VS2E2LvpWANKg2M4+T+cKI2Dl/2ELCvwsDrTFWFGRVhzXn+2vb6w838xYKK6fWnC+StlZZJLcv/DZ7TpvAPLKIkmSUuRikSRJKXKxSJKkFLlYJElSilFZ4Dza3c3jR6oLcUvHiEImsKAxFuFaf75W5k4RHZzs/IJCj7o1ublZprooqNqiRTFvn1aL2op4azW7C4Suc+NxZbEOYM/OGOsqKMLNi8c1YZYL4A/HjmA2TtxKvr/gfEWB0lsLTIdF8dcP6GK3nb0i5j4RC80ATG2JuXuFMrVIxSo6u/lO/Z7ZnHkx1iiKvIDviMXQ2vOiJQCglbTLztK5hw5W5xUZJA9AXlkkSVKKXCySJClFLhZJkpQiF4skSUqRi0WSJKUYlbshEFexljFaejx9WlOI3bNOV9bf9FtnlH5+XxttQm3qNJ0rZNGuZLeThDEvwFRhrHv4aZ375OoYUzL2IlTbPoAJYm7KwBawq6IZsTKAtSIjYbGTwIb1OlcZIRVU8n3rpjiH05fo424Rz6dMbJsLDI6FlF61HgRwIXsv3I0QEm6bu0DnLhbtJTfpnUD6+6PkbkiSJCeLXCySJClFLhZJkpQiF4skSUoxKgucTWYs7lfQ/PrONpn7gemxONhSH812Abruix22auYVFAdVgVL4JYA21/UnhXvgrAIT3rWPxliB1DoUqgDGFPgdLFwaY5N0kZaNsbNbETYxFv1856aYWOSzIbpu2YUv07mHD4aQb41eIwCmuowp3wnQ3hfCHJjlwpgX4KCQshcUF21ic4j5rgKvj6PCg0T4YQD44Wj6a9OjjB2AY/18THzwfhbDaV/4VaD309gMtLn7ijJjBz3LJElGnCG3L3T355qBmtkngejDXjA2SZJTj2F/DbEe2+9rgMuGP50kSUYrw21fCHApsMvdC9QgA45NkuQUoeyVxSXuvs3MZgB3mtmTfTqSvRP48hDHPkdlIbkeoKWmlgn9fAQunhCVmgCbt8Uiz8Rx+rSObY7fhMYuiF4DAAh/hiIzVN+8IcRs5Utj3ron9XMdORRjRcXBDmG4u63AC0J0GbMZoggIuJqD6qQF+H7xjVLMq/sHd8rxNa+5IgYLzH39oPCu2F/wjVcpRlXRsyhXKWGfiN4dAKhC4pSC4rHwELGibm2io5g/XtBqZ6koYI/VxW5/ulqR7AUGyQNR6sqib/tC4BZ6uqNjZnXAW4GvDnasyHuu12lz9jpNklHHkNsXVn78WuBJd5d7OycYmyTJKcSQ2xdWfnYt/b6C9G1feIKxSZKcQgy5fWHlZ78hYs+1LxxobJIkpxZZHEiSpBSjUu7dUF/D3Jbq3YhdW9tk7g7hbL3ydaK9HnC8Ne6cSL8ECjwEPFaqAUz5IKjdhSKn6MXCkXl/wQ6HcoWeoXct2B5l1a5kygBnCAfp/QV+FO2iki9k5DWXvkqPFzsBfkS8N4CpHYoC2b2UyAuPCwCminaLrWKXZ36BH4Ziov51srETQ8zb9PvbvT46xdeeV3BxPkl4baj3BqC/I3pRm8MByCuLJElKkYtFkiSlyMUiSZJS5GKRJEkpRmWBs66xjmmLqwtmlzTp4uCevbGgc/BRff9//cQoGfdNsQgIaPPWsdpjwlSh6XAscKo2doAuhqrnL+JAQTFUFbGKjFoPCQl1URHsgCiS7o+Sd5kHsGhZCJl6DYrmsPRsnav8JM4sKA6K9wdhvCxfF4DDQoZ+WkExtE74q3RouXVNy/QYbJmtj7t3d4wp42WAuf0KxQ3a82Ug8soiSZJS5GKRJEkpcrFIkqQUuVgkSVKKUVngtMYGGhdXqxJrmgpMeLt2hdj6DbootWxFLHAeXrNd5k44W6hAhTkwAHMXhlD3v3w2xGre8GY9XhUzhRcFoIuhrXt07rnRU4Ou2PEKkIpR31ZgjKuKhsKUthDlJSGUuIBWve7ZKVN9Tyz42VkX6OOOa46xNlEwLCoI9zfABTiui5bSK0T4VgDY/AUxWFOg/J0mVKi79Od5KAa9YRrDPkKSJP8pyMUiSZJS5GKRJEkpcrFIkqQUuVgkSVKKUbkbQkN9kKfWHdJy4OkvWxRiB76vW/E99lDcObnw2vNlrre1hZiNEY7fgD/w05i78PSYWCThVrsDjY06t0G4nAv5NACbn46xoh0dIRO2+fG1BfTuy2Ck5cJZ2vfqHlQ2VbicW4EHyTzxmu/UOzpMFa/DodgqsVDyvljslu0p2IkYJxy3lQQcvXNiUwtaEqrnK3D37r7nnurAUbGbcwLyyiJJklKUWizMrNnMvmFmT5rZGjN7mZlNMbM7zWxt5W/RVRbM7LpKzlozu+75nX6SJC8UZa8sPg3c7u7L6DHgXQP8CXCXuy8B7qo8rsLMpgAfBi6mp1/Ih4sWlSRJRjdl+oZMAl4JfB7A3TvcvQ14M/DFStoXgavF8CuAO9291d33AXcCVw5/2kmSvNCUKXCeDuwBvmBmLwEeAP4AaHH33p5zO+npEdKfOcCWPo+3VmKBvu0Lgfb6P/jUC9OM6G+198VJYhrwYuwm/2I9L3jxnpvofTgwZRaLOuB84Pfc/Rdm9mn6feVwdzezYYnP3f0m4CYAM1vl7iuHc7zRSJ7XqceL9dzMbNVgx5SpWWwFtrr7LyqPv0HP4rHLzGZVnngWIO7CYRvQtzPt3EosSZJTjBMuFu6+E9hiZr2XLa8BngBuBXp3N64Dvi2G3wFcbmaTK4XNyyuxJElOMcqKsn4P+JKZNQAbgN+kZ6H5mpm9F9gMXANgZiuB97v7+9y91cz+Ari/cpyPuHuBYWQVNw3mJE4h8rxOPV6s5zbo8zJ/Hu5zT5LkxU8qOJMkKUUuFkmSlGJULBZmVmtmD5nZbZXHp5vZL8xsnZl9tVIrOeUQ5/VPZrbRzFZX/qwY4SkOCTPbZGaPVs5hVSVWSv4/mik4rz83s2193rPXj/Q8B8twbtfoy6hYLOgRefW9VfSvgE+5+2JgH/DeEZnV8Ol/XgB/7O4rKn9Wj8Ccni9eXTmHXg3CCeX/pwj9zwt6Pou979l3R2xmQ2dIt2v0Z8QXCzObC7wB+FzlsQGX0aPngGIp+aim/3n9J6CM/D95gRnm7RpVjPhiAdwIfBDotTueCrS5e2flcaFEfJRzI9Xn1cvHzOwRM/uUmRWYVox6HPi+mT1QkelDOfn/aEedF8DvVt6zm0/Br1d9b9d4yMw+Z2bjGML7NaKLhZm9Edjt7g+M5DyebwY4rxuAZcCFwBTgQy/03J4nLnH384FfBj5gZq/s+0Pv2Y8/Fffk1Xl9BlgErAB2AJ8cuekNid7bNT7j7ucBhxG3a1Di/RrpK4tXAFeZ2SbgK/R8/fg00GxmvYKxU1EiHs7LzP7V3Xd4D+3AF+i5bf+Uw923Vf7eDdxCz3mUkf+PatR5ufsud+9y927gs5x679lwbteoYkQXC3e/wd3nuvsC4FrgB+7+q8APgbdX0oqk5KOWgvP6tT5vjtHzHfGFubP2ecTMxpnZhN5/0yPhf4xy8v9RS9F59b5nFd7CKfaeDfN2jSpGpwdnz+X5V8zso8BDVIozLwK+ZGbTAQNWA+8f2ekMiRbglp71jjrg39z9djO7HyH/P4UoOq9/qWxxO7AJ+O0Rm+HQKX27xkCk3DtJklKMdM0iSZJThFwskiQpRS4WSZKUIheLJElKkYtFkiSlyMUiSZJS5GKRJEkp/j81SZbH1n2vTAAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.imshow(scanner.data, cmap='Reds', extent = [40, 60, 60, 40])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"id": "3666b0d1", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"INFO:nipiezojenapy.controller:go to position x: 46.00 y: 43.00\n" | |
] | |
} | |
], | |
"source": [ | |
"#perform some computational magic to locate a position of interest.\n", | |
"#for example, perform a convolution of the image with a mask that\n", | |
"#represents your interest (for example, a single NV center that is \n", | |
"#significantly isolated from other NV centers in the sample\n", | |
"#https://en.wikipedia.org/wiki/Kernel_(image_processing)\n", | |
"\n", | |
"#x_opt, y_opt = find_best_nv_center(scanner.data)\n", | |
"x_opt = 46\n", | |
"y_opt = 43\n", | |
"controller.go_to_position(x_opt, y_opt)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "66e8a17f-1eb3-4c18-ad8b-748939be89fd", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"data, scanvals, x_opt, fit_coef = scanner.optimize_position('x', x_opt, width = 2, step_size = 0.25)\n", | |
"controller.go_to_position(x = x_opt)\n", | |
"\n", | |
"data, scanvals, y_opt, fit_coef = scanner.optimize_position('y', y_opt)\n", | |
"controller.go_to_position(y = y_opt)\n", | |
"\n", | |
"data, scanvals, z_opt, fit_coef = scanner.optimize_position('z', controller.get_current_position()[2], width = 10)\n", | |
"controller.go_to_position(z = z_opt)\n", | |
"\n", | |
"data, scanvals, x_opt, fit_coef = scanner.optimize_position('x', x_opt)\n", | |
"controller.go_to_position(x = x_opt)\n", | |
"\n", | |
"data, scanvals, y_opt, fit_coef = scanner.optimize_position('y', y_opt)\n", | |
"controller.go_to_position(y = y_opt)\n", | |
"\n", | |
"#the log output of this cell has been omitted" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"id": "335e39bb-3382-4fc8-ac07-adf03e578403", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[44.38667251599523, 43.42043245163783, 15.049252369319495]" | |
] | |
}, | |
"execution_count": 33, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"controller.get_current_position()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "4840df30-2b6d-4e11-8cba-1013f622021a", | |
"metadata": {}, | |
"source": [ | |
"#### Now at an optimized position, one could then perform other experiments" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "372e9cfa-e8ff-4500-93df-8b3d377f5148", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# pulser = qcsapphire.Pulser('COM4')\n", | |
"# rfsynth = qt3rfsynthcontrol.QT3SynthHD('COM5')\n", | |
"# nidaq_config = qt3utils.nidaq.EdgeCounter('Dev1')\n", | |
"\n", | |
"# experiment = qt3utils.experiments.podmr.PulsedODMR(pulser, rfsynth, nidaq_config, \n", | |
"# photon_counter_nidaq_terminal = 'PFI0',\n", | |
"# clock_nidaq_terminal = 'PFI12',\n", | |
"# rf_pulse_duration = 1e-6, \n", | |
"# rf_power = -25, \n", | |
"# aom_width = 5e-6)\n", | |
"# pulsed_odmr_scan_data = experiment.run(N_cycles=10000)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "bd62f50b-45d4-45c5-b4fc-e2dcc9a7553a", | |
"metadata": {}, | |
"source": [ | |
"# Save Data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"id": "fc77c271", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"scan_data = {'ymin':scanner.ymin, 'ymax':scanner.ymax, \n", | |
" 'xmin':scanner.xmin, 'xmax':scanner.xmax,\n", | |
" 'confocal_scan_data':scanner.data}\n", | |
"\n", | |
"#scan_data['podmr'] = pulsed_odmr_scan_data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 48, | |
"id": "1ba7a334", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pickle \n", | |
"myfilename = 'ppm_sample_oct4_2022_1mW.pickle'\n", | |
"with open(myfilename, 'wb') as handle:\n", | |
" pickle.dump(scan_data, handle, protocol=pickle.HIGHEST_PROTOCOL)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "8f318254-c29e-4242-be39-bc3f0cf99167", | |
"metadata": {}, | |
"source": [ | |
"# Load and Plot Data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 49, | |
"id": "17421779", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"with open(myfilename, 'rb') as handle:\n", | |
" loaded_scan_data = pickle.load(handle)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 50, | |
"id": "fa0ab85b", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.image.AxesImage at 0x2010a2c4970>" | |
] | |
}, | |
"execution_count": 50, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"xmin = loaded_scan_data['xmin']\n", | |
"xmax = loaded_scan_data['xmax']\n", | |
"ymin = loaded_scan_data['ymin']\n", | |
"ymax = loaded_scan_data['ymax']\n", | |
"\n", | |
"plt.imshow(loaded_scan_data['confocal_scan_data'], cmap='Reds', extent = [xmin, xmax, ymax, ymin])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "cb8761b5", | |
"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.8.13" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment