diff --git a/examples/qdlscan/confocal_scan_loader.ipynb b/examples/qdlscan/confocal_scan_loader.ipynb new file mode 100644 index 0000000..9063659 --- /dev/null +++ b/examples/qdlscan/confocal_scan_loader.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example loader for PLE scan results\n", + "Nick Yama, 17 October 2024\n", + "\n", + "Example jupyter notebook for loading in `qt3ple` scan file results." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import h5py" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Scanning through hdf5 file:\n", + "data \n", + "data/count_rates \n", + "data/counts \n", + "data/positions \n", + "file_metadata \n", + "scan_settings \n", + "scan_settings/axis \n", + "scan_settings/final_position_axis \n", + "scan_settings/max_position \n", + "scan_settings/min_position \n", + "scan_settings/n_pixels \n", + "scan_settings/range \n", + "scan_settings/start_position_axis \n", + "scan_settings/start_position_vector \n", + "scan_settings/time \n", + "scan_settings/time_per_pixel \n", + "\n", + "File metadata keys:\n", + "[np.bytes_(b'application'), np.bytes_(b'qdlutils_version'), np.bytes_(b'scan_id'), np.bytes_(b'timestamp'), np.bytes_(b'original_name')]\n", + "\n", + "Listing file metadata via attributes:\n", + "b'application': qdlutils.qdlscan.LineScanApplication\n", + "b'qdlutils_version': 1.1.2.dev0\n", + "b'scan_id': 001\n", + "b'timestamp': 2024-10-26 23:41:59\n", + "b'original_name': x_scan\n", + "\n", + "Incorrect loading of single-valued dataset:\n", + "\n", + "n_pixels: 50\n", + "\n", + "Printing metadata for data/count_rates:\n", + "Units: Counts per second\n", + "Description: Count rates measured over scan.\n" + ] + } + ], + "source": [ + "with h5py.File('x_scan.hdf5', 'r') as df:\n", + "\n", + " # This method searches the entire hdf5 file running the callback\n", + " # `print()` (the built-in Python function) on each branch.\n", + " print('Scanning through hdf5 file:')\n", + " df.visititems(print)\n", + "\n", + " # File metadata information is stored in attributes of the \n", + " # file_metadata dataset as metadata. The attributes are listed\n", + " # in the file_metadata dataset itself\n", + " metadata_keys = list(df['file_metadata'])\n", + " print('\\nFile metadata keys:')\n", + " print(metadata_keys)\n", + " # HDF5 has some issues with lists of strings hence the weird\n", + " # b'...' format, but it seems to work fine\n", + " print('\\nListing file metadata via attributes:')\n", + " for key in metadata_keys:\n", + " print(str(key) + ': ' + df['file_metadata'].attrs[key])\n", + "\n", + " # Example for loading results from the main data group\n", + " x_scan_positions = np.array(df['data/positions'])\n", + " x_scan_count_rates = np.array(df['data/count_rates'])\n", + "\n", + " # Loading datasets of single values can be awkward\n", + " # If we simply try to get the dataset the output will be\n", + " # a h5py datastructure....\n", + " print('\\nIncorrect loading of single-valued dataset:')\n", + " print(df['scan_settings/n_pixels'])\n", + " # To load it correctly you need to get the entry\n", + " n_pixels = int(df['scan_settings/n_pixels'][()])\n", + " print('n_pixels:', n_pixels)\n", + "\n", + " # You can also access the metadata\n", + " # All entries in data and scan_settings have these attributes\n", + " print('\\nPrinting metadata for data/count_rates:')\n", + " units = df['data/count_rates'].attrs['units']\n", + " description = df['data/count_rates'].attrs['description']\n", + " print(f'Units: {units}')\n", + " print(f'Description: {description}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Any variables that are `h5py` datastructures (simple copies of `df[...]`) are closed outside of the `with` and will be inaccessable.\n", + "\n", + "Variables that have been converted via typecasting (e.g. `np.array(df[...])`) are retained." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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nb/11lv5rVu38rW1tfz69ev5iRMn8qeccgrvcrky9TLShtz3i+d5/ve//z1fUlLC//e//+W//PJLfvbs2fyQIUN4p9OZiZeQNmbOnMlPmDCB//jjj/ktW7bwp5xyCv+Tn/xEuP/o0aP8iBEj+I8//pjneZ7fv38/f9999/GfffYZX1tby//3v//lhw4dyp977rmZegma8OKLL/JWq5VftWoVv2fPHv6GG27gS0pK+Pr6ep7neX7OnDn8r3/9a2H7Dz74gDeZTPwf//hHfu/evfzdd9/Nm81mfufOnZl6CWlD7nt177338mvXruUPHDjAb9u2jb/yyit5m83G7969O1MvIW20t7cLxyMA/J/+9Cd++/bt/KFDh3ie5/lf//rX/Jw5c4TtDx48yOfn5/O33XYbv3fvXv7RRx/ljUYj/84772TqJaQNue/VihUr+P/85z/8N998w+/cuZP/5S9/yRsMBn79+vWarpMCojQzb948HkC3n40bNwrbAOCffvppnud5vquri58+fTpfVlbGm81mftCgQfz1118vHKB6OnLfL54Ptt7feeedfEVFBW+1WvkLLriA37dvX/oXn2ZaWlr4n/zkJ3xhYSFvt9v5n/3sZxGBY21tbcR7d/jwYf7cc8/lS0tLeavVyg8fPpy/7bbb+La2tgy9Au3461//yg8cOJC3WCz8WWedxX/00UfCfeeddx4/b968iO1feukl/tRTT+UtFgs/atQofs2aNWleceaQ814tWrRI2LaiooK/+OKL+c8//zwDq04/rDU8+oe9P/PmzePPO++8bo8ZP348b7FY+KFDh0Yct3oyct+rP/zhD/ywYcN4m83Gl5aW8lOmTOHfe+89zdfJ8TzPa5uDIgiCIAiC0DfkQ0QQBEEQRM5DARFBEARBEDkPBUQEQRAEQeQ8FBARBEEQBJHzUEBEEARBEETOQwERQRAEQRA5DwVEBEEQBEHkPBQQEQRBEASR81BARBBE2ti0aRM4jkNra2vC7QYPHow///nPaVnTnDlzsHTp0pT2sWrVKpSUlKizII3weDwYPHgwPvvss0wvhSB0CTlVEwQRwTXXXINnnnkGQHB6+cCBAzF37lz85je/gcmU2jxoj8eDEydOoKKiAhzHYdWqVVi0aFG3AKmpqQkFBQXIz89P6fmS8cUXX2Dq1Kk4dOgQCgsLFe/H6XSivb0d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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot each of the three recorded upscans\n", + "plt.plot(x_scan_positions, x_scan_count_rates)\n", + "plt.xlabel('Position (microns)')\n", + "plt.ylabel('Intensity (cts/s)')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Sa+13Xfffbjqqqtgt9sxePBg/OMf/xDu93g8mD9/PqqqqmCz2TBkyBAsXrxYuL9fv34488wz8eKLL8bdLwSRq1BARBBEUvLy8oQsxpVXXonPP/8cb775Jurr68HzPC644AJ4vV4AwLx58+B2u/HRRx9h27Zt+Mtf/hIzA3PGGWfgb3/7GxwOBw4dOoRDhw7hpptu6rVdIBDAjBkz0NraivXr16Ourg67du3CxRdfHLHdzp078frrr+Ptt9/G22+/jfXr1+P++++P+56++uortLe345RTTul138MPP4wzzzwTW7ZswfTp03HFFVdg1qxZuPzyy/HFF1/g2GOPxaxZsxBPcbBq1Sr84he/wAUXXIAtW7ZgzZo1OO200yK2+etf/4qxY8diy5YtuO2227B582b85je/wSWXXIJt27bhzjvvxG233YZly5ZFPG7JkiU45ZRTsGXLFvzud7/Dddddhx07dgAA/v73v+PNN9/EihUrsGPHDrzwwgsYOnRoxONPO+00fPzxx3H3C0HkLDxBEISI2bNn8zNmzOB5nucDgQBfV1fHW61W/qabbuK///57HgD/ySefCNs3NzfzeXl5/IoVK3ie5/nRo0fzd955Z8zn/vDDD3kA/NGjR3me5/lnn32WLyoq6rXdkCFD+IcffpjneZ5///33eaPRyO/du1e4/5tvvuEB8J999hnP8zx/xx138Pn5+bzT6RS2ufnmm/kJEybEfZ8rV67kjUYjHwgEer325ZdfLvz70KFDPAD+tttuE26rr6/nAfCHDh2K+T5qa2v5yy67LO5rDxkyhJ85c2bEbb/97W/58847L+K2m2++mR85cmTctQUCAb68vJxfunQpz/M8f/311/OTJk3q9Z7EPPLII/zQoUPj3k8QuQpliAiC6MXbb7+NwsJC2Gw2nH/++bj44otx55134ttvv4XJZMKECROEbfv374/hw4fj22+/BQDccMMN+POf/4wzzzwTd9xxB7766quU1vLtt99i0KBBGDRokHDbyJEjUVxcLLwmECwn2e124d9VVVU4fPhw3Od1uVywWq0x9UxjxowR/r+iogIAMHr06F63xXv+rVu34txzz034vqIzU99++y3OPPPMiNvOPPNM/PDDD/D7/THXxnEcKisrhXVceeWV2Lp1K4YPH44bbrgB77//fq/XzcvLQ3d3d8K1EUQuQgERQRC9OOecc7B161b88MMPcLlceO6551BQUCDpsXPmzMGuXbtwxRVXYNu2bTjllFPw6KOPpnnFwY44MRzHIRAIxN2+tLQU3d3dMQXN4udiAVOs2+I9f15eXtL1St2fidbG1sLWMX78eDQ0NOCee+6By+XCb37zG/zqV7+K2L61tRVlZWWKXpsgshkKiAiC6EVBQQFqamowePDgiFb7ESNGwOfzYdOmTcJtLS0t2LFjB0aOHCncNmjQIMydOxevvfYafv/73+PJJ5+M+ToWiyUi+xGLESNGYN++fdi3b59w2/bt29HW1hbxmnIZN26c8FxqM2bMGNmt7SNGjMAnn3wScdsnn3yC448/HkajUfLzOBwOXHzxxXjyySfx0ksv4dVXX0Vra6tw/9dff42TTjpJ1toIIheggIggCMkcd9xxmDFjBq655hps2LABX375JS6//HIcc8wxmDFjBgBgwYIFWL16NRoaGvDFF1/gww8/xIgRI2I+39ChQ9HZ2Yk1a9agubk5Ziln8uTJGD16NC677DJ88cUX+OyzzzBr1iycffbZMQXRUikrK8P48eOxYcMGxc8RjzvuuAP//ve/cccdd+Dbb78VxOWJ+P3vf481a9bgnnvuwffff4/nnnsOjz32WEyheTweeugh/Pvf/8Z3332H77//Hi+//DIqKysjOuA+/vhjTJkyRelbI4ishQIigiBk8eyzz+Lkk0/Gz372M9TW1oLnebzzzjtCKcfv92PevHkYMWIEpk2bhuOPPx7/+7//G/O5zjjjDMydOxcXX3wxysrK8MADD/TahuM4vPHGG+jXrx/OOussTJ48GcOGDcNLL72U8nuZM2cOXnjhhZSfJ5qJEyfi5Zdfxptvvolx48Zh0qRJ+OyzzxI+Zvz48VixYgVefPFFjBo1CrfffjvuvvtuXHnllZJf126344EHHsApp5yCU089Fbt378Y777wDgyF4qK+vr0d7e3uvMhpBEORUTRBEDuNyuTB8+HC89NJLqK2t1Xo5aefiiy/G2LFj8cc//lHrpRCE7qAMEUEQOUteXh6ef/55NDc3a72UtOPxeDB69GgsXLhQ66UQhC6hDBFBEARBEDkPZYgIgiAIgsh5KCAiCIIgCCLnoYCIIAiCIIichwIigiAIgiByHgqICIIgCILIeSggIgiCIAgi56GAiCAIgiCInIcCIoIgCIIgch4KiAiCIAiCyHn+P3UJufM8Dmh0AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Load the y scan\n", + "with h5py.File('y_scan.hdf5', 'r') as df:\n", + " y_scan_positions = np.array(df['data/positions'])\n", + " y_scan_count_rates = np.array(df['data/count_rates'])\n", + "\n", + "# Plot each of the three recorded upscans\n", + "plt.plot(y_scan_positions, y_scan_count_rates)\n", + "plt.xlabel('Position (microns)')\n", + "plt.ylabel('Intensity (cts/s)')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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vvkmf9t3332nalH1sWPHuBEjRnBXXHEF53Q6o9qHWl7DKVOmcDfddBP/u8vl4gYPHhxWVP3jH//Y77aamhrVinLdbje3cOFCbtCgQdz3338f1T6cTic3cuRIbtGiRTKvTn66urq4vLw87oknngh6f7K9fkLuuecerrS0lHM4HJIep+bXDyFE1Y899hh/W2dnpyhRtZTPcVRrlW1PRFAOHz7Mbd++nbvvvvu4rKwsbvv27dz27du5rq4ujuM8b+Rx48Zxs2fP5nbs2MF98MEHXFFREbd48WJ+H1u2bOFGjhzJHTt2jL9tzpw53Kmnnspt2bKF27RpEzdixAjul7/8ZdyPLxQfffQRB4Dbu3dvv/uOHTvGjRw5ktuyZQvHcRy3f/9+7v777+e++uorrr6+nvv3v//NDRs2jDvnnHPiveyIfP7559yyZcu4HTt2cAcOHOBefvllrqioiJs3bx6/TeDxcRzHLViwgCsvL+c+/vhj7quvvuJqamq4mpqaRBxCRI4dO8ZVV1dz5513Hnfs2DGusbGR/xFukyyv4WuvvcaZTCZu5cqV3J49e7gbbriBy83N5Ts7r776au5///d/+e0/++wzTq/Xc4899hi3d+9e7p577uEMBgO3c+fORB1CWG688UYuJyeH27Bhg99r1dvby28TeIz33Xcft27dOu7AgQPctm3buCuuuIJLS0vjdu/enYhDCMttt93Gbdiwgauvr+c+++wzbtasWVxhYSHX0tLCcVzyv34Ml8vFlZeXc3feeWe/+5Lt9evq6uLPdQC4xx9/nNu+fTt3+PBhjuM47uGHH+Zyc3O5f//739y3337LXXzxxVxVVRXX19fH72PmzJnck08+yf8e6XMsBxQQKcw111zDAej388knn/DbHDp0iLvgggu49PR0rrCwkLvtttv8rhA++eQTDgBXX1/P39ba2sr98pe/5LKysjiz2cz95je/4YMsNfDLX/6SmzZtWtD76uvr/f4GR44c4c455xwuPz+fM5lMXHV1NXf77bdznZ2dcVyxOLZt28ZNnTqVy8nJ4dLS0rjRo0dzDz30kF82L/D4OI7j+vr6uN/97ndcXl4el5GRwf30pz/1CzDUxAsvvBD0PStMKCfba/jkk09y5eXlnNFo5KZMmcJ98cUX/H3nnnsud8011/htv2rVKu6UU07hjEYjN3bsWG7t2rVx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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Load the z scan\n", + "with h5py.File('z_scan.hdf5', 'r') as df:\n", + " z_scan_positions = np.array(df['data/positions'])\n", + " z_scan_count_rates = np.array(df['data/count_rates'])\n", + "\n", + "# Plot each of the three recorded upscans\n", + "plt.plot(z_scan_positions, z_scan_count_rates)\n", + "plt.xlabel('Position (microns)')\n", + "plt.ylabel('Intensity (cts/s)')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You may also load the image scans in the same ways, but there are some small variations in the keys of the dataset due to the additional axis. You can explore the full data structure using the same basic approach of\n", + "\n", + "```\n", + "with h5py.File('image.hdf5', 'r') as df:\n", + " print('Scanning through hdf5 file:')\n", + " df.visititems(print)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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W7Zs0b799lstOTlZS05ObsKsm4dfXkWiaTzOlyM2MBRdrIGhaZq2b98+7brrrtOMRqN2xRVXaM8//3zTJOijli9frgG46PJLPM7e8corr2jt2rXTDAaD1r9/f23Xrl1NnZJPc3TuLl++3BZTXV2t/eUvf9FatGihBQcHa7///e/tGtDknl83MHicLz+8XTsRERF53W/uKhIiIiJqfGxgEBERkdexgUFERERexwYGEREReR0bGEREROR1bGAQERGR17GBQURERF7HBgYRERF5HRsYRERE5HVsYBD5iJMnT2LKlClo164djEYjYmNjkZKSgh07djR1akREF/jN3a6dyFeNGTMGtbW1WLlyJTp27IiSkhJs3rwZp0+fburUiIguwB4MIh9QVlaGL7/8Ei+88AKGDh2K9u3bo3///khLS8Ott95qi/nzn/+MmJgYBAYGokePHli3bh0A4PTp0/jTn/6EK664AsHBwejZsyf++9//2u1jyJAhePjhhzFr1ixERUUhNjYWTz75pG29pml48sknbT0obdq0wcMPP3zJjgER+Rb2YBD5gNDQUISGhuLDDz/EwIEDYTQa7dZbrVaMGjUK586dw1tvvYVOnTrh0KFD0Ov1AICamhr069cPs2fPRnh4ONavX4+xY8eiU6dO6N+/v207K1euxIwZM/D1118jMzMTEyZMwLXXXosbb7wR7733HhYuXIg1a9age/fuKC4uxr59+y7pcSAi38G7qRL5iPfeew+TJk1CdXU1+vbti8GDB+Puu+9Gr169sHHjRowaNQrfffcdrrzySqXt3XzzzejatSv+9a9/ATjfg2GxWPDll1/aYvr3749hw4bh+eefx4IFC7B06VIcOHAAAQEBjfIeiaj54BAJkY8YM2YMCgsL8fHHH2PkyJHYtm0b+vbtixUrViA7Oxtt27Z12LiwWCx45pln0LNnT0RFRSE0NBQbNmxAfn6+XVyvXr3sHsfFxaG0tBQAcOedd6K6uhodO3bEpEmT8MEHH6C+vr5x3iwR+Tw2MIh8SGBgIG688Ub8v//3/7Bz505MmDABTzzxBIKCgpy+7p///CdeeuklzJ49G1u3bkV2djZSUlJQW1trF/frngmdTger1QoAiI+PR25uLl577TUEBQXhL3/5CwYNGoS6ujrvvkkiahbYwCDyYUlJSaisrESvXr1w/PhxfP/99xeN27FjB2677Tbcd9996N27Nzp27Ogw1pmgoCDccsstePnll7Ft2zZkZmYiJyfH07dBRM0QJ3kS+YDTp0/jzjvvxAMPPIBevXohLCwM3377LebNm4fbbrsNgwcPxqBBgzBmzBgsWLAAiYmJOHz4MHQ6HUaOHInOnTvj3Xffxc6dO9GiRQssWLAAJSUlSEpKUs5hxYoVsFgsGDBgAIKDg/HWW28hKCgI7du3b8R3TkS+ig0MIh8QGhqKAQMGYOHChTh69Cjq6uoQHx+PSZMm4fHHHwdwfhLo3/72N/zpT39CZWUlEhMT8fzzzwMA5syZgx9//BEpKSkIDg7GQw89hNtvvx3l5eXKOURGRuL555/HjBkzYLFY0LNnT3zyySdo2bJlo7xnIvJtvIqEiIiIvI5zMIiIiMjr2MAgIiIir2MDg4iIiLyODQwiIiLyOjYwiIiIyOvYwCAiIiKvYwODiIiIvI4NDCIiIvI6NjCIiIjI69jAICIiIq9jA4OIiIi87v8Do3XH1MVdO04AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Load the y scan\n", + "with h5py.File('image.hdf5', 'r') as df:\n", + " x_min = np.array(df['scan_settings/min_position_1'])[()]\n", + " x_max = np.array(df['scan_settings/max_position_1'])[()]\n", + " y_min = np.array(df['scan_settings/min_position_2'])[()]\n", + " y_max = np.array(df['scan_settings/max_position_2'])[()]\n", + "\n", + " x_range = np.array(df['scan_settings/range'])[()]\n", + " n_pixels = np.array(df['scan_settings/n_pixels'])[()]\n", + "\n", + " data = np.array(df['data/count_rates'])\n", + "\n", + "pixel_size = x_range / n_pixels\n", + "\n", + "# Plotting the full scan here\n", + "# The limits are adjusted so that the pixel position is aligned\n", + "# to the center of the position the data was taken\n", + "plt.imshow(data, \n", + " aspect='equal', \n", + " interpolation='none', \n", + " origin='lower', \n", + " extent = [x_min - pixel_size/2, \n", + " x_max + pixel_size/2, \n", + " y_min - pixel_size/2, \n", + " y_max + pixel_size/2])\n", + "plt.colorbar()\n", + "plt.xlabel('X position')\n", + "plt.ylabel('Y position')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You may verify that the images are in agreement with the saved images from the GUI." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "qdlutilsdev", + "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.20" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/qdlscan/image.hdf5 b/examples/qdlscan/image.hdf5 new file mode 100644 index 0000000..4784585 Binary files /dev/null and b/examples/qdlscan/image.hdf5 differ diff --git a/examples/qdlscan/image.png b/examples/qdlscan/image.png new file mode 100644 index 0000000..b00a167 Binary files /dev/null and b/examples/qdlscan/image.png differ diff --git a/examples/qdlscan/x_scan.hdf5 b/examples/qdlscan/x_scan.hdf5 new file mode 100644 index 0000000..f69680c Binary files /dev/null and b/examples/qdlscan/x_scan.hdf5 differ diff --git a/examples/qdlscan/x_scan.png b/examples/qdlscan/x_scan.png new file mode 100644 index 0000000..3462608 Binary files /dev/null and b/examples/qdlscan/x_scan.png differ diff --git a/examples/qdlscan/y_scan.hdf5 b/examples/qdlscan/y_scan.hdf5 new file mode 100644 index 0000000..d22308d Binary files /dev/null and b/examples/qdlscan/y_scan.hdf5 differ diff --git a/examples/qdlscan/y_scan.png b/examples/qdlscan/y_scan.png new file mode 100644 index 0000000..a0bf199 Binary files /dev/null and b/examples/qdlscan/y_scan.png differ diff --git a/examples/qdlscan/z_scan.hdf5 b/examples/qdlscan/z_scan.hdf5 new file mode 100644 index 0000000..d379453 Binary files /dev/null and b/examples/qdlscan/z_scan.hdf5 differ diff --git a/examples/qdlscan/z_scan.png b/examples/qdlscan/z_scan.png new file mode 100644 index 0000000..80726fc Binary files /dev/null and b/examples/qdlscan/z_scan.png differ diff --git a/src/qdlutils/applications/qdlmove/application_controller.py b/src/qdlutils/applications/qdlmove/application_controller.py index 51d5897..9673a83 100644 --- a/src/qdlutils/applications/qdlmove/application_controller.py +++ b/src/qdlutils/applications/qdlmove/application_controller.py @@ -17,12 +17,23 @@ class MovementController: ''' def __init__(self, positioners: dict = {}): self.positioners = positioners # dictionary of the controller instantiations + self.busy = False def move_axis(self, axis_controller_name: str, position: float): + if self.busy: + logger.warning('Movement controller busy') + return None + self.busy = True # Move the axis specified by the axis_controller_name self.positioners[axis_controller_name].go_to_position(position) + self.busy = False def step_axis(self, axis_controller_name: str, dx: float): + if self.busy: + logger.warning('Movement controller busy') + return None + self.busy = True # Step the axis specified by the axis_controller_name - self.positioners[axis_controller_name].step_position(dx) \ No newline at end of file + self.positioners[axis_controller_name].step_position(dx) + self.busy = False \ No newline at end of file diff --git a/src/qdlutils/applications/qdlmove/main.py b/src/qdlutils/applications/qdlmove/main.py index 0bbcc69..2de037c 100644 --- a/src/qdlutils/applications/qdlmove/main.py +++ b/src/qdlutils/applications/qdlmove/main.py @@ -103,9 +103,8 @@ def configure_from_yaml(self, afile: str) -> None: This method loads a YAML file to configure the qdlmove hardware based on yaml file indicated by argument `afile`. - This method configures the wavelength controller and the readers - based off of the YAML file data, and then generates a class - consctrutor for the main application controller. + This method constructs the positioners and configures them, then + stores them in a dictionary which is saved in the application. ''' with open(afile, 'r') as file: # Log selection diff --git a/src/qdlutils/applications/qdlple/application_controller.py b/src/qdlutils/applications/qdlple/application_controller.py index a1152e9..52322ea 100644 --- a/src/qdlutils/applications/qdlple/application_controller.py +++ b/src/qdlutils/applications/qdlple/application_controller.py @@ -269,11 +269,15 @@ def configure_scan(self, self.sample_step_size_down = (min - max) / (n_pixels_down * n_subpixels) # Should be negative # Calculate the output voltage readings - self.pixel_voltages_up = np.arange(min, max, self.pixel_step_size_up) - self.pixel_voltages_down = np.arange(max, min, self.pixel_step_size_down) + #self.pixel_voltages_up = np.arange(min, max, self.pixel_step_size_up) + #self.pixel_voltages_down = np.arange(max, min, self.pixel_step_size_down) + self.pixel_voltages_up = np.linspace(min, max - self.pixel_step_size_up, n_pixels_up) + self.pixel_voltages_down = np.linspace(max, min + self.pixel_step_size_down, n_pixels_down) # Calculate the sample voltage readings - self.sample_voltages_up = np.arange(min, max, self.sample_step_size_up) - self.sample_voltages_down = np.arange(max, min, self.sample_step_size_down) + #self.sample_voltages_up = np.arange(min, max, self.sample_step_size_up) + #self.sample_voltages_down = np.arange(max, min, self.sample_step_size_down) + self.sample_voltages_up = np.linspace(min, max - self.sample_step_size_up, n_pixels_up * n_subpixels) + self.sample_voltages_down = np.linspace(max, min - self.sample_step_size_down, n_pixels_down * n_subpixels) # Calculate time per pixel self.pixel_time_up = time_up / n_pixels_up @@ -500,7 +504,7 @@ def repump(self): # Wait for repump time time.sleep(self.time_repump * 0.001) # Turn off the pump laser - repump_controller.go_to_voltage(voltage=repump_controller.max_voltage) + repump_controller.go_to_voltage(voltage=repump_controller.min_voltage) def __del__(self): diff --git a/src/qdlutils/applications/qdlple/main.py b/src/qdlutils/applications/qdlple/main.py index 5e975e1..eadd49d 100644 --- a/src/qdlutils/applications/qdlple/main.py +++ b/src/qdlutils/applications/qdlple/main.py @@ -221,6 +221,9 @@ def scan_thread_function(self) -> None: self.current_scan.view.data_viewport.update_image_and_plot(self.current_scan.application_controller) self.current_scan.view.canvas.draw() + # Set repump to toggle value + self.toggle_repump_laser() + logger.info('Scan complete.') self.current_scan.application_controller.stop() @@ -524,7 +527,7 @@ def save_data(self, event=None) -> None: 'scan_id', 'timestamp', 'original_name'], dtype='S')) - ds.attrs['application'] = 'qdlutils.qt3ple' + ds.attrs['application'] = 'qdlutils.qdlple' ds.attrs['qdlutils_version'] = qdlutils.__version__ ds.attrs['scan_id'] = self.id ds.attrs['timestamp'] = self.timestamp.strftime("%Y-%m-%d %H:%M:%S") diff --git a/src/qdlutils/applications/qdlscan/__init__.py b/src/qdlutils/applications/qdlscan/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/qdlutils/applications/qdlscan/application_controller.py b/src/qdlutils/applications/qdlscan/application_controller.py new file mode 100644 index 0000000..17df23a --- /dev/null +++ b/src/qdlutils/applications/qdlscan/application_controller.py @@ -0,0 +1,301 @@ +import logging +import time + +import numpy as np + +from qdlutils.hardware.nidaq.counters.nidaqtimedratecounter import NidaqTimedRateCounter +from qdlutils.hardware.nidaq.analogoutputs.nidaqposition import NidaqPositionController + +logger = logging.getLogger(__name__) +logging.basicConfig(level=logging.INFO) + + +class ScanController: + ''' + This is the main class which coordinates the scaning and collection of data. + ''' + + def __init__(self, + x_axis_controller: NidaqPositionController, + y_axis_controller: NidaqPositionController, + z_axis_controller: NidaqPositionController, + counter_controller: NidaqTimedRateCounter, + inter_scan_settle_time: float=0.01): + + self.x_axis_controller = x_axis_controller + self.y_axis_controller = y_axis_controller + self.z_axis_controller = z_axis_controller + self.counter_controller = counter_controller + self.inter_scan_settle_time = inter_scan_settle_time + + # On initialization move all position controllers to zero. + # WARNING: it is assumed that the zero is a valid position of the DAQ + try: + # Set the positions to zero on start up, this is necessary as it establishes + # a `last_write_value` for the controllers so that the position is defined. + self._set_axis(axis_controller=self.x_axis_controller, position=0) + self._set_axis(axis_controller=self.y_axis_controller, position=0) + self._set_axis(axis_controller=self.z_axis_controller, position=0) + except Exception as e: + logger.warning(f'Could not zero axes on startup: {e}') + + + # This is a flag to keep track of if the controller is currently busy + # Must turn on whenever a scan is being performed and remain on until + # the scanner is free to perform another operation. + # The external applications are required to flag this when in use. + self.busy = False + + # This is a flag to keep track of if a scan is currently in progress + # Must turn on whenever a scan is actively running (via the class + # method `self.scan_axis()`). + # Use this flag to tell the controller to stop in the middle of a scan + self.scanning = False + + # This is a flag set by external applications to request the application + # controller to stop scanning. + self.stop_scan = False + + def get_position(self): + ''' + Returns the position based off of the last write values of the controllers + ''' + x = self.x_axis_controller.last_write_value + y = self.y_axis_controller.last_write_value + z = self.z_axis_controller.last_write_value + return x,y,z + + def set_axis(self, axis: str, position: float): + ''' + Outward facing method for moving the position of an axis specified + by a string `axis`. + ''' + # Block action if busy + if self.busy: + raise RuntimeError('Application controller is currently in use.') + # Reserve the controller + self.busy = True + + # Get the axis controller depending on which axis is requested + if axis == 'x': + axis_controller = self.x_axis_controller + elif axis == 'y': + axis_controller = self.y_axis_controller + elif axis == 'z': + axis_controller = self.z_axis_controller + else: + raise ValueError(f'Requested axis {axis} is invalid.') + + # Call the internal movement function + try: + self._set_axis(axis_controller=axis_controller, position=position) + except Exception as e: + logger.warning(f'Movement of axis {axis} failed due to exception: {e}') + # Free up the controller + self.busy = False + + def _set_axis(self, axis_controller: NidaqPositionController, position: float): + ''' + Internal function for moving the axis controlled by the given controller. + This avoids logic required to determine which axis is to be moved, for example + in the case of scans where only one axis is used repeatedly. + ''' + logger.debug(f'Attempting to move to position {position}.') + # Move the axis + axis_controller.go_to_position(position=position) + + def scan_axis(self, + axis: str, + start: float, + stop: float, + n_pixels: int, + scan_time: float): + ''' + Outward facing scan function. + Scans the designated axis between the `start` and `stop` positions in + `n_pixels` over `scan_time` seconds. Returns the counts at each pixel + not normalized to time. + ''' + # Block action if busy + if self.busy: + raise RuntimeError('Application controller is currently in use.') + # Block the controller from additional external commands + self.busy=True + # Start the counter + logger.info('Starting counter task on DAQ.') + self.counter_controller.start() + + # Get the axis controller depending on which axis is requested + if axis == 'x': + axis_controller = self.x_axis_controller + elif axis == 'y': + axis_controller = self.y_axis_controller + elif axis == 'z': + axis_controller = self.z_axis_controller + else: + raise ValueError(f'Requested axis {axis} is invalid.') + + # Go to start position + self._set_axis(axis_controller=axis_controller, position=start) + # Let the axis settle before next scan + time.sleep(self.inter_scan_settle_time) + + data = self._scan_axis(axis_controller=axis_controller, + start=start, + stop=stop, + n_pixels=n_pixels, + scan_time=scan_time) + + # Free up the controller + self.stop() + return data + + def _scan_axis(self, + axis_controller: str, + start: float, + stop: float, + n_pixels: int, + scan_time: float): + ''' + Internal scanning function + ''' + # Set the scanning flag + self.scanning = True + + # Calculate the time per pixel + sample_time = scan_time / n_pixels + # Configure the counter controller + self.counter_controller.configure_sample_time(sample_time=sample_time) + + # Generate the positions to scan according to the usual + # numpy.linspace implementation. + # Note that this means that `stop` > `start` is technically valid and + # will scan from large to small, however the output datastream will be + # ordered accordingly and thus resulting images might be flipped. + # It is on the calling functions to manage these nuances. + positions = np.linspace(start=start, stop=stop, num=n_pixels) + + # Create a buffer for the data + output = np.zeros(shape=n_pixels) + + # Then iterate through the positions + for index, position in enumerate(positions): + # Move to the desired position + self._set_axis(axis_controller=axis_controller, position=position) + # Get the counts + counts = self.counter_controller.sample_batch_counts() + # Store in the buffer + output[index] = counts + + # Set the scanning flag + self.scanning = False + + # Return the buffered output + return output + + + + def scan_image(self, + axis_1: str, + start_1: float, + stop_1: float, + n_pixels_1: int, + axis_2: str, + start_2: float, + stop_2: float, + n_pixels_2: int, + scan_time: float): + ''' + This is an experimental implementation of the scanning function using the + `yield` keyword in Python. The method implements a generator which can be + queried like + + >>> for line in scan_image(**kwargs): # do stuff with line + + where each line is one scan along the `axis_1` defined by the start, stop, + and number of pixels. For each line the `axis_2` is moved to the next + pixels also defined by its start, stop, and step size. The speed of a scan + over each axis is determined by the scan time. + ''' + + # Block action if busy + if self.busy: + raise RuntimeError('Application controller is currently in use.') + # Reserve the controller + self.busy = True + + + # Get the axis controller depending on which axis is requested + if axis_1 == 'x': + axis_controller_1 = self.x_axis_controller + elif axis_1 == 'y': + axis_controller_1 = self.y_axis_controller + elif axis_1 == 'z': + axis_controller_1 = self.z_axis_controller + else: + raise ValueError(f'Requested axis_1 {axis_1} is invalid.') + # Get the axis controller depending on which axis is requested + if axis_2 == 'x': + axis_controller_2 = self.x_axis_controller + elif axis_2 == 'y': + axis_controller_2 = self.y_axis_controller + elif axis_2 == 'z': + axis_controller_2 = self.z_axis_controller + else: + raise ValueError(f'Requested axis_2 {axis_2} is invalid.') + + # Start the counter + logger.info('Starting counter task on DAQ.') + self.counter_controller.start() + + # Get the positions for the slow scan axis + positions_2 = np.linspace(start=start_2, stop=stop_2, num=n_pixels_2) + + # Then iterate through the positions + for index, position in enumerate(positions_2): + # Move axis 2 to the desired position + self._set_axis(axis_controller=axis_controller_2, position=position) + # Let the axis settle before next scan + time.sleep(self.inter_scan_settle_time) + # Scan axis 1 + single_scan = self._scan_axis(axis_controller=axis_controller_1, + start=start_1, + stop=stop_1, + n_pixels=n_pixels_1, + scan_time=scan_time) + # Update the buffer + #output[index] = single_scan + + # Set back to original position on fast scan axis + #self._set_axis(axis_controller=axis_controller_1, position=start_1) + # Slow scan back to start for smooth scanning? + self._scan_axis(axis_controller=axis_controller_1, + start=stop_1, + stop=start_1, + n_pixels=n_pixels_1, + scan_time=self.inter_scan_settle_time) + + # Yield a single scan + yield single_scan + + # If the stop is requested then terminate and return the final scan + if self.stop_scan: + logger.info('Stopping scan.') + self.stop() + return single_scan + + logger.info('Scan complete.') + self.stop() + + def stop(self) -> None: + ''' + Stop running scan + ''' + self.scanning = False + # Stop the DAQ + self.counter_controller.stop() + logger.info(f'Stopping counter task on DAQ.') + # Free up the controller + self.busy = False + # Reset the stop scan flag + self.stop_scan = False \ No newline at end of file diff --git a/src/qdlutils/applications/qdlscan/application_gui.py b/src/qdlutils/applications/qdlscan/application_gui.py new file mode 100644 index 0000000..7c6958a --- /dev/null +++ b/src/qdlutils/applications/qdlscan/application_gui.py @@ -0,0 +1,489 @@ +import logging + +import matplotlib +from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk +import matplotlib.pyplot as plt + +import tkinter as tk + +matplotlib.use('Agg') + +logger = logging.getLogger(__name__) +logging.basicConfig(level=logging.INFO) + + +class LauncherApplicationView: + + ''' + Main application GUI view, loads SidePanel and ScanImage + ''' + def __init__(self, main_window: tk.Tk) -> None: + main_frame = tk.Frame(main_window) + main_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=40, pady=30) + + self.control_panel = LauncherControlPanel(main_frame) + +class LauncherControlPanel: + + def __init__(self, main_frame: tk.Frame): + + # Define frame for scan configuration and control + scan_frame = tk.Frame(main_frame) + scan_frame.pack(side=tk.TOP, padx=0, pady=0) + # Add buttons and text + row = 0 + tk.Label(scan_frame, + text='Scan control', + font='Helvetica 14').grid(row=row, column=0, pady=[0,5], columnspan=2) + # Confocal image section + row += 1 + tk.Label(scan_frame, + text='Confocal image', + font='Helvetica 12').grid(row=row, column=0, pady=[0,5], columnspan=2) + # Range of scan + row += 1 + tk.Label(scan_frame, text='Range (μm)').grid(row=row, column=0, padx=5, pady=2) + self.image_range_entry = tk.Entry(scan_frame, width=10) + self.image_range_entry.insert(0, 80) + self.image_range_entry.grid(row=row, column=1, padx=5, pady=2) + # Number of pixels + row += 1 + tk.Label(scan_frame, text='Number of pixels').grid(row=row, column=0, padx=5, pady=2) + self.image_pixels_entry = tk.Entry(scan_frame, width=10) + self.image_pixels_entry.insert(0, 80) + self.image_pixels_entry.grid(row=row, column=1, padx=5, pady=2) + # Scan speed + row += 1 + tk.Label(scan_frame, text='Time per row (s)').grid(row=row, column=0, padx=5, pady=2) + self.image_time_entry = tk.Entry(scan_frame, width=10) + self.image_time_entry.insert(0, 1) + self.image_time_entry.grid(row=row, column=1, padx=5, pady=2) + # Start button + row += 1 + self.image_start_button = tk.Button(scan_frame, text='Start scan', width=20) + self.image_start_button.grid(row=row, column=0, columnspan=2, pady=5) + + # Single axis scan section + row += 1 + tk.Label(scan_frame, + text='Position optimization', + font='Helvetica 12').grid(row=row, column=0, pady=[10,5], columnspan=2) + # Range of scan + row += 1 + tk.Label(scan_frame, text='Range XY (μm)').grid(row=row, column=0, padx=5, pady=2) + self.line_range_xy_entry = tk.Entry(scan_frame, width=10) + self.line_range_xy_entry.insert(0, 3) + self.line_range_xy_entry.grid(row=row, column=1, padx=5, pady=2) + # Number of pixels + row += 1 + tk.Label(scan_frame, text='Range Z (μm)').grid(row=row, column=0, padx=5, pady=2) + self.line_range_z_entry = tk.Entry(scan_frame, width=10) + self.line_range_z_entry.insert(0, 20) + self.line_range_z_entry.grid(row=row, column=1, padx=5, pady=2) + # Number of pixels + row += 1 + tk.Label(scan_frame, text='Number of pixels').grid(row=row, column=0, padx=5, pady=2) + self.line_pixels_entry = tk.Entry(scan_frame, width=10) + self.line_pixels_entry.insert(0, 50) + self.line_pixels_entry.grid(row=row, column=1, padx=5, pady=2) + # Scan speed + row += 1 + tk.Label(scan_frame, text='Time (s)').grid(row=row, column=0, padx=5, pady=2) + self.line_time_entry = tk.Entry(scan_frame, width=10) + self.line_time_entry.insert(0, 1) + self.line_time_entry.grid(row=row, column=1, padx=5, pady=2) + # Start buttons + row += 1 + self.line_start_x_button = tk.Button(scan_frame, text='Optimize X', width=20) + self.line_start_x_button.grid(row=row, column=0, columnspan=2, pady=[5,1]) + row += 1 + self.line_start_y_button = tk.Button(scan_frame, text='Optimize Y', width=20) + self.line_start_y_button.grid(row=row, column=0, columnspan=2, pady=1) + row += 1 + self.line_start_z_button = tk.Button(scan_frame, text='Optimize Z', width=20) + self.line_start_z_button.grid(row=row, column=0, columnspan=2, pady=[1,5]) + + # Define frame for DAQ and control + daq_frame = tk.Frame(main_frame) + daq_frame.pack(side=tk.TOP, padx=0, pady=0) + # Add buttons and text + row = 0 + tk.Label(daq_frame, + text='DAQ control', + font='Helvetica 14').grid(row=row, column=0, pady=[15,5], columnspan=2) + # X axis + row += 1 + self.x_axis_set_button = tk.Button(daq_frame, text='Set X (μm)', width=10) + self.x_axis_set_button.grid(row=row, column=0, columnspan=1, padx=5, pady=[5,1]) + self.x_axis_set_entry = tk.Entry(daq_frame, width=10) + self.x_axis_set_entry.insert(0, 0) + self.x_axis_set_entry.grid(row=row, column=1, padx=5, pady=[5,1]) + # Y axis + row += 1 + self.y_axis_set_button = tk.Button(daq_frame, text='Set Y (μm)', width=10) + self.y_axis_set_button.grid(row=row, column=0, columnspan=1, padx=5, pady=1) + self.y_axis_set_entry = tk.Entry(daq_frame, width=10) + self.y_axis_set_entry.insert(0, 0) + self.y_axis_set_entry.grid(row=row, column=1, padx=5, pady=1) + # Z axis + row += 1 + self.z_axis_set_button = tk.Button(daq_frame, text='Set Z (μm)', width=10) + self.z_axis_set_button.grid(row=row, column=0, columnspan=1, padx=5, pady=[1,5]) + self.z_axis_set_entry = tk.Entry(daq_frame, width=10) + self.z_axis_set_entry.insert(0, 0) + self.z_axis_set_entry.grid(row=row, column=1, padx=5, pady=1) + # Get button + row += 1 + self.get_position_button = tk.Button(daq_frame, text='Get current position', width=20) + self.get_position_button.grid(row=row, column=0, columnspan=2, pady=[1,5]) + # Get button + row += 1 + self.open_counter_button = tk.Button(daq_frame, text='Open counter', width=20) + self.open_counter_button.grid(row=row, column=0, columnspan=2, pady=[5,5]) + + ''' I do not think that we need to implement this since most people will not + change settings dynamically. But, it can be added back in by uncommenting + this section and defining the proper callback function and binding it + in main.py + + # Define frame for DAQ and control + config_frame = tk.Frame(main_frame) + config_frame.pack(side=tk.TOP, padx=0, pady=0) + row = 0 + tk.Label(config_frame, text="Hardware Configuration", font='Helvetica 14').grid(row=row, column=0, pady=[15,5], columnspan=1) + # Dialouge button to pick the YAML config + row += 1 + self.hardware_config_from_yaml_button = tk.Button(config_frame, text="Load YAML Config") + self.hardware_config_from_yaml_button.grid(row=row, column=0, columnspan=1, pady=5) + ''' + + + + +class LineScanApplicationView: + + def __init__(self, + window: tk.Toplevel, + application, # LineScanApplication + settings_dict: dict): + + self.application = application + self.settings_dict = settings_dict + + self.data_viewport = LineDataViewport(window=window) + self.control_panel = LineFigureControlPanel(window=window, settings_dict=settings_dict) + + # tkinter right click menu + self.rclick_menu = tk.Menu(window, tearoff = 0) + + # Initalize the figure + self.initialize_figure() + + def initialize_figure(self) -> None: + # Clear the axis + self.data_viewport.ax.clear() + + # Get the y_axis limits to draw the position lines + y_axis_limits = self.data_viewport.ax.get_ylim() + self.data_viewport.ax.plot([self.application.start_position_axis,]*2, + y_axis_limits, + color='#bac8ff', + linewidth=1.5) + + self.data_viewport.ax.set_xlim(self.application.min_position, self.application.max_position) + self.data_viewport.ax.set_ylim(y_axis_limits) + + self.data_viewport.ax.set_xlabel(f'{self.application.axis} position (μm)', fontsize=14) + self.data_viewport.ax.set_ylabel(f'Intensity (cts/s)', fontsize=14) + self.data_viewport.ax.grid(alpha=0.3) + + self.data_viewport.canvas.draw() + + def update_figure(self) -> None: + ''' + Update the figure + ''' + # Clear the axis + self.data_viewport.ax.clear() + + # Plot the data line + self.data_viewport.ax.plot(self.application.data_x, + self.application.data_y, + color='k', + linewidth=1.5) + + # Get the y_axis limits to draw the position lines + y_axis_limits = self.data_viewport.ax.get_ylim() + self.data_viewport.ax.plot([self.application.start_position_axis,]*2, + y_axis_limits, + color='#bac8ff', + linewidth=1.5) + self.data_viewport.ax.plot([self.application.final_position_axis,]*2, + y_axis_limits, + color='#1864ab', + linewidth=1.5) + + self.data_viewport.ax.set_xlim(self.application.min_position, self.application.max_position) + self.data_viewport.ax.set_ylim(y_axis_limits) + + self.data_viewport.ax.set_xlabel(f'{self.application.axis} position (μm)', fontsize=14) + self.data_viewport.ax.set_ylabel(f'Intensity (cts/s)', fontsize=14) + self.data_viewport.ax.grid(alpha=0.3) + + self.data_viewport.canvas.draw() + +class LineDataViewport: + + def __init__(self, window): + + # Parent frame for control panel + frame = tk.Frame(window) + frame.pack(side=tk.LEFT, padx=0, pady=0) + + self.fig = plt.figure() + self.ax = plt.gca() + self.canvas = FigureCanvasTkAgg(self.fig, master=frame) + self.canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=True) + + toolbar = NavigationToolbar2Tk(self.canvas, frame) + toolbar.update() + self.canvas._tkcanvas.pack(side=tk.TOP, fill=tk.BOTH, expand=True) + self.canvas.draw() + +class LineFigureControlPanel: + + def __init__(self, window: tk.Toplevel, settings_dict: dict): + + # Parent frame for control panel + frame = tk.Frame(window) + frame.pack(side=tk.TOP, padx=30, pady=20) + + # Frame for saving/modifying data viewport + command_frame = tk.Frame(frame) + command_frame.pack(side=tk.TOP, padx=0, pady=0) + # Add buttons and text + row = 0 + tk.Label(command_frame, + text='Scan control', + font='Helvetica 14').grid(row=row, column=0, pady=[0,5], columnspan=2) + # Save button + row += 1 + self.save_button = tk.Button(command_frame, text='Save scan', width=15) + self.save_button.grid(row=row, column=0, columnspan=2, pady=[5,1]) + # =============================================================================== + # Add more buttons or controls here + # =============================================================================== + + # Scan settings view + settings_frame = tk.Frame(frame) + settings_frame.pack(side=tk.TOP, padx=0, pady=0) + # Single axis scan section + row = 0 + tk.Label(settings_frame, + text='Scan settings', + font='Helvetica 14').grid(row=row, column=0, pady=[10,5], columnspan=2) + # Range of scan + row += 1 + tk.Label(settings_frame, text='Range XY (μm)').grid(row=row, column=0, padx=5, pady=2) + self.line_range_xy_entry = tk.Entry(settings_frame, width=10) + self.line_range_xy_entry.insert(10, settings_dict['line_range_xy']) + self.line_range_xy_entry.grid(row=row, column=1, padx=5, pady=2) + self.line_range_xy_entry.config(state='readonly') + # Number of pixels + row += 1 + tk.Label(settings_frame, text='Range Z (μm)').grid(row=row, column=0, padx=5, pady=2) + self.line_range_z_entry = tk.Entry(settings_frame, width=10) + self.line_range_z_entry.insert(10, settings_dict['line_range_z']) + self.line_range_z_entry.grid(row=row, column=1, padx=5, pady=2) + self.line_range_z_entry.config(state='readonly') + # Number of pixels + row += 1 + tk.Label(settings_frame, text='Number of pixels').grid(row=row, column=0, padx=5, pady=2) + self.line_pixels_entry = tk.Entry(settings_frame, width=10) + self.line_pixels_entry.insert(10, settings_dict['line_pixels']) + self.line_pixels_entry.grid(row=row, column=1, padx=5, pady=2) + self.line_pixels_entry.config(state='readonly') + # Scan speed + row += 1 + tk.Label(settings_frame, text='Time (s)').grid(row=row, column=0, padx=5, pady=2) + self.line_time_entry = tk.Entry(settings_frame, width=10) + self.line_time_entry.insert(10, settings_dict['line_time']) + self.line_time_entry.grid(row=row, column=1, padx=5, pady=2) + self.line_time_entry.config(state='readonly') + + + + +class ImageScanApplicationView: + + def __init__(self, + window: tk.Toplevel, + application, # LineScanApplication + settings_dict: dict): + + self.application = application + self.settings_dict = settings_dict + + self.data_viewport = ImageDataViewport(window=window) + self.control_panel = ImageFigureControlPanel(window=window, settings_dict=settings_dict) + + # Normalization for the figure + self.norm_min = None + self.norm_max = None + + # tkinter right click menu + self.rclick_menu = tk.Menu(window, tearoff = 0) + + # Initalize the figure + self.update_figure() + + def update_figure(self) -> None: + # Clear the axis + self.data_viewport.fig.clear() + # Create a new axis + self.data_viewport.ax = self.data_viewport.fig.add_subplot(111) + + pixel_width = self.application.range / self.application.n_pixels + extent = [self.application.min_position_1 - pixel_width/2, + self.application.max_position_1 + pixel_width/2, + self.application.min_position_2 - pixel_width/2, + self.application.max_position_2 + pixel_width/2] + + # Plot the frame + img = self.data_viewport.ax.imshow(self.application.data_z, + extent = extent, + cmap = self.application.cmap, + origin = 'lower', + aspect = 'equal', + interpolation = 'none') + self.data_viewport.cbar = self.data_viewport.fig.colorbar(img, ax=self.data_viewport.ax) + + self.data_viewport.ax.set_xlabel(f'{self.application.axis_1} position (μm)', fontsize=14) + self.data_viewport.ax.set_ylabel(f'{self.application.axis_2} position (μm)', fontsize=14) + self.data_viewport.cbar.ax.set_ylabel('Intensity (cts/s)', fontsize=14, rotation=270, labelpad=15) + self.data_viewport.ax.grid(alpha=0.3) + + # Normalize the figure if not already normalized + if (self.norm_min is not None) and (self.norm_max is not None): + img.set_norm(plt.Normalize(vmin=self.norm_min, vmax=self.norm_max)) + + # Plot the current position marker + x, y, _ = self.application.application_controller.get_position() + self.data_viewport.ax.plot(x,y,'o', fillstyle='none', markeredgecolor='#1864ab', markeredgewidth=2) + + self.data_viewport.canvas.draw() + + +class ImageDataViewport: + + def __init__(self, window): + + # Parent frame for control panel + frame = tk.Frame(window) + frame.pack(side=tk.LEFT, padx=0, pady=0) + + self.fig = plt.figure() + self.ax = plt.gca() + self.canvas = FigureCanvasTkAgg(self.fig, master=frame) + self.canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=True) + + toolbar = NavigationToolbar2Tk(self.canvas, frame) + toolbar.update() + self.canvas._tkcanvas.pack(side=tk.TOP, fill=tk.BOTH, expand=True) + self.canvas.draw() + + +class ImageFigureControlPanel: + + def __init__(self, window: tk.Toplevel, settings_dict: dict): + + # Parent frame for control panel + frame = tk.Frame(window) + frame.pack(side=tk.TOP, padx=30, pady=20) + + # Frame for saving/modifying data viewport + command_frame = tk.Frame(frame) + command_frame.pack(side=tk.TOP, padx=0, pady=0) + # Add buttons and text + row = 0 + tk.Label(command_frame, + text='Scan control', + font='Helvetica 14').grid(row=row, column=0, pady=[0,5], columnspan=2) + # Pause button + row += 1 + self.pause_button = tk.Button(command_frame, text='Pause scan', width=15) + self.pause_button.grid(row=row, column=0, columnspan=2, pady=[5,1]) + # Continue button + row += 1 + self.continue_button = tk.Button(command_frame, text='Continue scan', width=15) + self.continue_button.grid(row=row, column=0, columnspan=2, pady=[5,1]) + # Continue button + row += 1 + self.save_button = tk.Button(command_frame, text='Save scan', width=15) + self.save_button.grid(row=row, column=0, columnspan=2, pady=[5,1]) + + # =============================================================================== + # Add more buttons or controls here + # =============================================================================== + + # Scan settings view + settings_frame = tk.Frame(frame) + settings_frame.pack(side=tk.TOP, padx=0, pady=0) + # Single axis scan section + row = 0 + tk.Label(settings_frame, + text='Scan settings', + font='Helvetica 14').grid(row=row, column=0, pady=[10,5], columnspan=2) + row += 1 + tk.Label(settings_frame, text='Range (μm)').grid(row=row, column=0, padx=5, pady=2) + self.image_range_entry = tk.Entry(settings_frame, width=10) + self.image_range_entry.insert(0, settings_dict['image_range']) + self.image_range_entry.grid(row=row, column=1, padx=5, pady=2) + self.image_range_entry.config(state='readonly') + # Number of pixels + row += 1 + tk.Label(settings_frame, text='Number of pixels').grid(row=row, column=0, padx=5, pady=2) + self.image_pixels_entry = tk.Entry(settings_frame, width=10) + self.image_pixels_entry.insert(0, settings_dict['image_pixels']) + self.image_pixels_entry.grid(row=row, column=1, padx=5, pady=2) + self.image_pixels_entry.config(state='readonly') + # Scan speed + row += 1 + tk.Label(settings_frame, text='Time per row (s)').grid(row=row, column=0, padx=5, pady=2) + self.image_time_entry = tk.Entry(settings_frame, width=10) + self.image_time_entry.insert(0, settings_dict['image_time']) + self.image_time_entry.grid(row=row, column=1, padx=5, pady=2) + self.image_time_entry.config(state='readonly') + + # Scan settings view + image_settings_frame = tk.Frame(frame) + image_settings_frame.pack(side=tk.TOP, padx=0, pady=0) + # Single axis scan section + row = 0 + tk.Label(image_settings_frame, + text='Image settings', + font='Helvetica 14').grid(row=row, column=0, pady=[10,5], columnspan=2) + # Minimum + row += 1 + tk.Label(image_settings_frame, text='Minimum (cts/s)').grid(row=row, column=0, padx=5, pady=2) + self.image_minimum = tk.Entry(image_settings_frame, width=10) + self.image_minimum.insert(0, 0) + self.image_minimum.grid(row=row, column=1, padx=5, pady=2) + # Maximum + row += 1 + tk.Label(image_settings_frame, text='Maximum (cts/s)').grid(row=row, column=0, padx=5, pady=2) + self.image_maximum = tk.Entry(image_settings_frame, width=10) + self.image_maximum.insert(0, 10000) + self.image_maximum.grid(row=row, column=1, padx=5, pady=2) + # Set normalization button + row += 1 + self.norm_button = tk.Button(image_settings_frame, text='Normalize', width=15) + self.norm_button.grid(row=row, column=0, columnspan=2, pady=[5,1]) + # Autonormalization button + row += 1 + self.autonorm_button = tk.Button(image_settings_frame, text='Auto-normalize', width=15) + self.autonorm_button.grid(row=row, column=0, columnspan=2, pady=[1,1]) + + # =============================================================================== + # Add more buttons or controls here + # =============================================================================== diff --git a/src/qdlutils/applications/qdlscan/config_files/__init__.py b/src/qdlutils/applications/qdlscan/config_files/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/qdlutils/applications/qdlscan/config_files/qdlscan_base.yaml b/src/qdlutils/applications/qdlscan/config_files/qdlscan_base.yaml new file mode 100644 index 0000000..a7ba383 --- /dev/null +++ b/src/qdlutils/applications/qdlscan/config_files/qdlscan_base.yaml @@ -0,0 +1,65 @@ +QDLSCAN: + ApplicationController: + import_path : qdlutils.applications.qdlscan.application_controller + class_name : ScanController + hardware : + counter : Counter + x_axis_control : PiezoX + y_axis_control : PiezoY + z_axis_control : PiezoZ + configure : + inter_scan_settle_time : 0.01 + + Counter: + import_path : qdlutils.hardware.nidaq.counters.nidaqtimedratecounter + class_name : NidaqTimedRateCounter + configure : + daq_name : Dev1 # NI DAQ Device Name + signal_terminal : PFI0 # DAQ Write channel + clock_terminal : # Digital input terminal for external clock (blank if using internal) + clock_rate: 100000 # NI DAQ clock rate in Hz + sample_time_in_seconds : 1 # Sampling time in seconds (updates later in scan) + read_write_timeout : 10 # timeout in seconds for read/write operations + signal_counter : ctr2 # NIDAQ counter to use for count + + PiezoX: + import_path : qdlutils.hardware.nidaq.analogoutputs.nidaqposition + class_name : NidaqPositionController + configure: + device_name: Dev1 # NIDAQ Device Name + write_channel: ao0 # DAQ Write channel + read_channel: # DAQ read channel + move_settle_time: 0.0 # Time in seconds to wait after movement + scale_microns_per_volt: 8 # Number of microns moved per volt + zero_microns_volt_offset: 5 # Value of voltage at position 0 microns + min_position: -40.0 # Minimum position in microns + max_position: 40.0 # Maximum position in microns + invert_axis: True # If True, modifies scale and offset internally to invert axis + + PiezoY: + import_path : qdlutils.hardware.nidaq.analogoutputs.nidaqposition + class_name : NidaqPositionController + configure: + device_name: Dev1 + write_channel: ao1 + read_channel: + move_settle_time: 0.0 + scale_microns_per_volt: 8 + zero_microns_volt_offset: 5 + min_position: -40.0 + max_position: 40.0 + invert_axis: True + + PiezoZ: + import_path : qdlutils.hardware.nidaq.analogoutputs.nidaqposition + class_name : NidaqPositionController + configure: + device_name: Dev1 + write_channel: ao2 + read_channel: + move_settle_time: 0.0 + scale_microns_per_volt: 8 + zero_microns_volt_offset: 5 + min_position: -40.0 + max_position: 40.0 + invert_axis: True \ No newline at end of file diff --git a/src/qdlutils/applications/qdlscan/main.py b/src/qdlutils/applications/qdlscan/main.py new file mode 100644 index 0000000..9d7102f --- /dev/null +++ b/src/qdlutils/applications/qdlscan/main.py @@ -0,0 +1,1333 @@ +import importlib +import importlib.resources +import logging +import numpy as np +import datetime +import h5py + +from threading import Thread +import tkinter as tk +import yaml + +from scipy.optimize import curve_fit + +import qdlutils +from qdlutils.applications.qdlscan.application_controller import ScanController +from qdlutils.applications.qdlscan.application_gui import ( + LauncherApplicationView, + LineScanApplicationView, + ImageScanApplicationView +) +import qdlutils.applications.qdlscope.main as qdlscope + +logger = logging.getLogger(__name__) +logging.basicConfig() + + +CONFIG_PATH = 'qdlutils.applications.qdlscan.config_files' +DEFAULT_CONFIG_FILE = 'qdlscan_base.yaml' + +# Dictionary for converting axis to an index +AXIS_INDEX = {'x': 0, 'y': 1, 'z': 2} + +# Default color map +DEFAULT_COLOR_MAP = 'gray' + + +class LauncherApplication: + ''' + This is the launcher class for the `qdlscan` application which handles the + initalization of individual scanning confocal measurements. This application is + serves as a replacement of `qt3scan` which relies on some of the older architecture + for DAQ interfacing. The overall application structure is described below: + + The central class of the application is the `ScanController` which is located in + `qdlscan/application_controller.py`. This class manages the hardware, which is by + default NIDAQ-controlled piezos (`NidaqPositionController` in + `qdlutils/hardware/nidaq/analogoutputs/nidaqposition.py`) and NIDAQ edge counter + (`NidaqTimedRateCounter` in `qdlutils/hardware/nidaq/counters/nidaqtimedratecounter.py`) + however a suitably designed alternative class for other hardware could also be + reasonably used without much effort. + + `ScanController` handles the actual movement of the piezos and coordinates it with + the counters in order to perform basic confocal scanning measurements. The + application launches and instantiates a single `ScanController`, dubbed the + "application controller", which it uses to perform scans. The application + controller can be queried to move the piezos or perform specifc scans. Since it is + shared by all scans performed in the application session, it has built-in logic to + ignore calls when it is busy, aided by threading. If one desires to perform + confocal scanning is appreciably different hardware, then the scan controller + could also be rewritten to interface with it if the current implementation does + not immediately work. + + The `LauncherApplication` is the other main class. It instantiates the `ScanController` + and creates a GUI (`LauncherApplicationView`) which allows the user to input scan + parameters and to launch image and line scans, as well as move the piezos directly. + + When an image or line scan is launched, the parameters are read out from the GUI and + a new instance of the `ImageScanApplication` or `LineScanApplication` are created + in each case respectively. These sub-applications contain metadata and actual + measured data for the given scan (or set of scans) that they represent. On + initialization, they comppute (from the GUI inputs) information to setup the scan(s), + making adjustments if needed, and then begin scanning in a thread. After, or between, + scans, these sub-applications store the results and update the figure. Additionally, + these sub-applications also handle the saving, pausing, and continuing of scans where + applicable. + + For additional details about the individual components please see their docstrings. + ''' + + def __init__(self, default_config_filename: str) -> None: + ''' + Initialization for the LauncherApplication class. It loads the application + controller and various hardware, then creates a GUI and binds the buttons. + Callback methods for the GUI interactions are contained in this class. + + Parameters + ---------- + default_config_filename: str + Filename of the default config YAML file. It must be located in the + `qdlscan/config_files` directory. + ''' + # Attributes + self.application_controller = None + self.min_x_position = None + self.min_y_position = None + self.min_z_position = None + self.max_x_position = None + self.max_y_position = None + self.max_z_position = None + self.max_x_range = None + self.max_y_range = None + self.max_z_range = None + + # Number of scan windows launched + self.number_scans = 0 + # Most recent scan -- maybe not needed? + self.current_scan = None + # Dictionary of scan parameters (from control gui) + self.scan_parameters = None + # Dictionary of daq parameters (from control gui) + self.daq_parameters = None + + # Last save directory + self.last_save_directory = None + + # Load the YAML file + self.load_yaml_from_name(yaml_filename=default_config_filename) + + # Initialize the root tkinter widget (window housing GUI) + self.root = tk.Tk() + # Create the main application GUI + self.view = LauncherApplicationView(main_window=self.root) + + # Bind the buttons + self.view.control_panel.image_start_button.bind('