Compare commits

..
2 Commits
Author SHA1 Message Date
swim 1134926369 moved notebooks from bo-ptycho to here 2026-08-16 03:02:21 +09:00
swim b19ce33092 removed dates from directory names 2026-08-16 02:35:23 +09:00
8 changed files with 324 additions and 486 deletions

No files matched your search

@@ -1,158 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "090d6ad2",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import numpy as np\n",
"from matplotlib import pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "e8c7045b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 700x300 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"train_x = np.load(\"./train_X_8keV.npy\")[1:].T\n",
"train_y = np.load(\"./train_Y_8keV.npy\")[1:].T\n",
"\n",
"xparams = [\n",
" 'defocus [A]',\n",
" 'layers',\n",
" 'thickness [A]'\n",
"]\n",
"\n",
"sort_index = np.argsort(train_y)\n",
"\n",
"x = train_x[:,sort_index]\n",
"y = train_y[sort_index]\n",
"\n",
"EPSILON = 1e-5 # choose best according to plot\n",
"\n",
"y_scaled = np.log(-y + y[-1] + EPSILON)\n",
"\n",
"fig, ax = plt.subplots(1, 2, figsize=(7,3))\n",
"ax[0].plot(y, 'k')\n",
"ax[1].plot(y_scaled, 'k')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "adeb047c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 950x350 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Projection plots\n",
"\n",
"cut = 200 # set to -1 to get all points\n",
"\n",
"fig, axs = plt.subplots(1, len(x), figsize=(3*len(x)+0.5, 3.5), sharey=True)\n",
"\n",
"for i, axi in enumerate(axs):\n",
" axi.scatter(x[i][cut:], -y[cut:], c=y_scaled[cut:], cmap='coolwarm')\n",
" axi.set_xlabel(xparams[i])\n",
"\n",
"axs[0].set_ylabel('$- \\\\log (\\ \\\\mathtt{fourier\\_error}\\ )$')\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "02c25124",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 950x950 with 9 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Cross-correlation plots\n",
"\n",
"fig, axs = plt.subplots(len(x), len(x), figsize=(3*len(x)+0.5, 3*len(x)+0.5))\n",
"\n",
"for i, axi in enumerate(axs):\n",
" for j, axij in enumerate(axi):\n",
" axij.scatter(\n",
" x[i], x[j],\n",
" c = y_scaled, # color\n",
" cmap = 'coolwarm',\n",
" s = 20, # size\n",
" alpha = 0 if i == j else 1 # make diagonal transparent\n",
" )\n",
" if i == len(x)-1:\n",
" axij.set_xlabel(xparams[j])\n",
" else:\n",
" axij.set_xticks([])\n",
" if j == 0:\n",
" axij.set_ylabel(xparams[i])\n",
" else:\n",
" axij.set_yticks([])\n",
"\n",
"plt.tight_layout()\n",
"plt.show()\n",
"\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "lemon",
"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.12.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
-280
View File
@@ -1,280 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "405952b4",
"metadata": {},
"outputs": [],
"source": [
"# THIS METHOD IS WRONG FOR IDENTIFYING ATOMS"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "368a5090",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"from matplotlib import pyplot as plt\n",
"import tifffile\n",
"import os\n",
"from scipy.ndimage import gaussian_filter, binary_opening, label\n",
"from skimage import exposure, filters, morphology, measure\n",
"from scipy.signal import convolve2d\n",
"from skimage.morphology import disk\n",
"from skimage.feature import peak_local_max\n",
"\n",
"from tqdm.notebook import tqdm\n",
"\n",
"plt.rcParams['font.family'] = 'sans-serif'\n",
"plt.rcParams['font.sans-serif'] = ['Inter Variable ss02']\n",
"plt.rcParams['figure.titlesize'] = 10\n",
"plt.rcParams['axes.titlesize'] = 10"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "2912e633",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['bto02_objp_zstack_crop_08bit_iter1000.tif',\n",
" 'bto02_objp_zsum_crop_08bit_iter1000.tif',\n",
" 'bto05_objp_zstack_crop_08bit_iter1000.tif',\n",
" 'bto05_objp_zsum_crop_08bit_iter1000.tif',\n",
" 'bto08_objp_zstack_crop_08bit_iter0100.tif',\n",
" 'bto08_objp_zsum_crop_08bit_iter0100.tif',\n",
" '260414.ipynb']"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"os.listdir()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "2d3b2fa3",
"metadata": {},
"outputs": [],
"source": [
"ptycho_stack = tifffile.imread('bto02_objp_zstack_crop_08bit_iter1000.tif') / 255\n",
"# ptycho_sum = tifffile.imread('bto02_objp_zsum_crop_08bit_iter1000.tif') / 255\n",
"ptycho_slice = ptycho_stack[13]\n",
"# bf = plt.imread('bf.png').mean(axis=2)\n",
"# bf = 1 - (bf - bf.min()) / (bf.max() - bf.min())\n",
"# haadf = plt.imread('haadf.png').mean(axis=2)\n",
"# haadf = (haadf - haadf.min()) / (haadf.max() - haadf.min()) \n",
"# laadf = plt.imread('laadf.png').mean(axis=2)\n",
"# laadf = (laadf - laadf.min()) / (laadf.max() - laadf.min())\n",
"\n",
"images = [ptycho_slice]\n",
"# names = ['Ptycho Sum', 'Ptycho Slice', 'Bright Field (Inverted)', 'HAADF', 'LAADF']\n",
"\n",
"# fig, axs = plt.subplots(1, len(images), dpi=300)\n",
"# for i, ax in enumerate(axs):\n",
"# ax.axis('off')\n",
"# ax.imshow(images[i], cmap='gray')\n",
"# ax.set_title(names[i], size=8)\n",
"\n",
"# plt.tight_layout()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "a52ce371",
"metadata": {},
"outputs": [],
"source": [
"def feature_count_vs_radius(img, radii, high_pass=5):\n",
" if high_pass:\n",
" img = img - gaussian_filter(img, sigma=high_pass)\n",
"\n",
" counts = []\n",
" peak_locs = []\n",
"\n",
" for r in tqdm(radii):\n",
" # ---- 1. Build a disc kernel ------------------------------------\n",
" # (skimage.disk returns a binary mask; we normalize it to sum = 1)\n",
" kernel = disk(r).astype(float)\n",
" kernel /= kernel.sum()\n",
"\n",
" # ---- 2. Convolve -------------------------------------------------\n",
" conv = convolve2d(img, kernel, mode='same', boundary='symm')\n",
"\n",
" # ---- 3. Find local maxima ---------------------------------------\n",
" # * min_distance ensures that peaks are at least r pixels apart\n",
" # * threshold_abs picks peaks that stand out above the background\n",
" peaks = peak_local_max(conv,\n",
" min_distance=int(r),\n",
" threshold_abs=conv.mean() + 2*conv.std(),\n",
" num_peaks=np.inf)\n",
"\n",
" counts.append(len(peaks))\n",
" peak_locs.append(peaks)\n",
" \n",
" return radii, counts, peak_locs"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "6d8b25e3",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "9599a4de81f440cb9c9cdbf3d1925c78",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/32 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"r, c, pl = [], [], []\n",
"radii = np.arange(1, 32+1, 1)\n",
"\n",
"for img in images:\n",
" r_i, c_i, pl_i = feature_count_vs_radius(img, radii, high_pass=8)\n",
" r.append(r_i)\n",
" c.append(c_i)\n",
" pl.append(pl_i)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c18ffc6d",
"metadata": {},
"outputs": [],
"source": [
"# fig, axs = plt.subplots(1, len(images), figsize=(18, 4), sharey=True, dpi=300)\n",
"# for i, ax in enumerate(axs):\n",
"# ax.plot(r[i], c[i], 'ko-')\n",
"# ax.set_xlim(r[i][0], r[i][-1])\n",
"# ax.set_title(names[i])\n",
"# ax.set_xlabel('Kernel radius (pixels)')\n",
"# axs[0].set_ylabel('Feature count')\n",
"# plt.tight_layout()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "b95333bc",
"metadata": {},
"outputs": [],
"source": [
"# idxs = [6, 14, 20]\n",
"\n",
"# for i in range(len(images)):\n",
"# plt.figure(dpi=300)\n",
"# plt.imshow(images[i], cmap='gray')\n",
"# for idx in idxs:\n",
"# plt.scatter(\n",
"# pl[i][idx][:,1],\n",
"# pl[i][idx][:,0],\n",
"# s=3,\n",
"# edgecolors='none')\n",
"# plt.axis('off')\n",
"\n",
"# plt.legend(['Ba', 'O', 'Ti'], loc='lower right')\n",
"\n",
"# plt.show()\n",
"# plt.close()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "bd4f0ef8",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 460.8x345.6 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"idxs = [6, 14, 20]\n",
"i = 0\n",
"\n",
"plt.figure(dpi=72)\n",
"plt.imshow(images[i], cmap='gray')\n",
"for idx in idxs:\n",
" plt.scatter(\n",
" pl[i][idx][:,1][pl[i][idx][:,1] < 300],\n",
" pl[i][idx][:,0][pl[i][idx][:,1] < 300],\n",
" s=30,)\n",
"plt.axis('off')\n",
"\n",
"plt.xlim(200, 400)\n",
"plt.ylim(200, 400)\n",
"\n",
"# plt.legend(['Ba', 'O', 'Ti'], loc='lower right')\n",
"\n",
"x = 385\n",
"L = 55\n",
"plt.plot([x - L, x], [215] *2, 'w-', lw=10)\n",
"plt.text(x - L/2, 220, '1 nm', color='w', ha='center', va='bottom', fontsize=30)\n",
"\n",
"plt.show()\n",
"plt.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8f1b5ac6",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "lemon",
"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.12.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
+165
View File
@@ -0,0 +1,165 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 7,
"id": "65e78297",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "033186ec",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(3, 564)\n"
]
}
],
"source": [
"result_dir = \"/home/swim/bo-ptycho/results/Si8V2_2/260815\"\n",
"train_x = np.load(os.path.join(result_dir, 'train_x.npy')).T\n",
"train_y = np.load(os.path.join(result_dir, 'train_y.npy')).T\n",
"\n",
"xparams = [\n",
" 'defocus [A]',\n",
" 'layers',\n",
" 'thickness [A]'\n",
"]\n",
"\n",
"print(train_x.shape)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "a5d079f2",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAEiCAYAAAAWHJuuAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAwj1JREFUeJzs3XlcVNX7B/DPzICQoLigoo2gKe5LpigupWlJpWaaii2EhkiLaSamflu0tFAw0RZzgdSyTGyxXdMgswRBS82tsEQZzd1ADReY8/vD34zMzJ2VGe4sn/frNa/szp17nzkz98zluec+RyGEECAiIiIiIiIiIiIiIhNKuQMgIiIiIiIiIiIiInJXTKITEREREREREREREZnBJDoRERERERERERERkRlMohMRERERERERERERmcEkOhERERERERERERGRGUyiExERERERERERERGZwSQ6EREREREREREREZEZTKITEREREREREREREZnBJDoRERERERERERERkRlMohMRERERERERERERmcEkOhERERERERERERGRGUyiu5mVK1dCoVCgqKioWvb36quvol27dtBqtSbP/frrr+jTpw9q1aoFhUKBfv36VUtM9pg1axYUCoXcYXilzMxM3Hzzzbh06ZLcoRC5zPbt2zFs2DCEh4cjICAAjRo1Qs+ePTFlyhSX7M8VfTz7QSLvkJeXh5EjR6Jx48aoUaMGwsLCMGLECOTm5lZ5282aNcOYMWOqHqQTVfc5LxE5H8+jiDzbnj17MHbsWDRv3hyBgYEIDg7GbbfdhtTUVJw7d07u8FzOnuP/xx9/hEKh0D927NghuV55eTnmz5+P9u3bIzAwEA0bNsQ999yDCxcumN32008/DYVCgSeeeMKh92FOs2bNoFAosGTJEoPlgwcPRrNmzZy6L0ft2LHDoF1//PFHuUOyiEl0H3b8+HGkpqbi1VdfhVJp+lV4/PHHceHCBXzyySfIzc3F4sWLZYjSsnHjxjnlj0syFR8fj6CgIKSmpsodCpFLfPPNN+jVqxdKS0uRmpqK77//HosWLULv3r2xdu1aucMjIh/y1ltvoXfv3tBoNEhNTcXmzZsxf/58HDt2DH369MHbb78td4hERAZ4HkXk2ZYvX46uXbuioKAAU6dOxYYNG/D5559j5MiRWLJkCRISEuQO0S298847yM3NRdu2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 truncated
"text/plain": [
"<Figure size 1500x300 with 5 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"EPSILON = 1e-4\n",
"START = 64\n",
"END = None\n",
"\n",
"sort_index = np.argsort(train_y)\n",
"x = train_x[:,sort_index]\n",
"y = train_y[sort_index]\n",
"y_scaled = np.log(-y + y[-1] + EPSILON)\n",
"train_y_scaled = np.log(-train_y + y[-1] + EPSILON)\n",
"\n",
"fig, ax = plt.subplots(1, 5, figsize=(15,3))\n",
"ax[0].plot(-train_y, 'k.')\n",
"ax[0].set_title(\"$-\\\\log(\\\\mathtt{fourier\\\\_error})$\")\n",
"ax[1].plot(train_y_scaled, 'k.')\n",
"ax[1].set_title(\"Scaled\")\n",
"ax[2].sharey(ax[0])\n",
"ax[2].plot(-y, 'k')\n",
"ax[2].set_title(\"Ordered\")\n",
"ax[3].plot(y_scaled, 'k')\n",
"ax[3].set_title(\"Scaled\")\n",
"ax[4].plot(y_scaled[START:END], 'k')\n",
"ax[4].set_title(f\"Cropped $\\\\mathtt{{[{START}:{END}]}}$\")\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "71fb1484",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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kyZNyNq1a22fOxPkPG/ePKJQKGzyjB8/noSHhxOr1Wo756233iIAyJNPPkm2b99ODh06RI4ePUpGjhxJYmJi7Pq7ffyqrqAtX768wt+BZdkqf6diioOJS/8rHq80S5YsIQDIihUrynx26dIlAoC8//77ZT574YUXCMMwxGAwEEIIWbBgAQFACgsLy5wbFBRU7eB2uoNHuR2qW0rG96RuKY0gCGTatGmEZVny+eefV/m6hIQEIpFIyMyZMys876OPPiIAHCZp6tatG+ndu3e1ZabUX6iOKBnfW3TE7YwcOZL4+/vbJVVzRGU6IiMjg8hkMjJ27FiXZXryyScJAKLX613uq65ReTQkhVIFOnTogJ07d+LKlSvo0aMHgoKCEBgYaPNfvx1fX1/b//v374/+/fuD53kcO3YM69atw+zZsxEaGooHH3zQKXmmTp2KN954A19//TUmTJiAX375BbNnzwbHcbZzvvjiCwwcOBAffvih3bX5+fmV9q9QKAAAJpMJcrnc1p6ZmWl3XlBQEADg+++/R0xMjFPf5Xa6du2Ko0eP2rVFRETYHS9duhRLlizBkiVL8L///a9MH02bNoVSqcTZs2fLfHb27Fk0a9bM9h2LY+/Onj2Lnj172s5LTU1FZmZmw01BTKkVqG4RqQ3dUgwpSmywceNGrF+/Hg899FCVr42KikJERASuXLlS4Xml9UqbNm1s7VarFZcuXcLEiROdE57S4KA6QqQ2dYQjevTogR07diAjIwOhoaHlnleZjvj8889hNpvdklyFEAKgYXoEUAOP4hZOnToFoCQ70pgxY/D111+D53k7o6AiOI5Dz5490apVK2zduhUnTpzAgw8+aFNgxYHRVaF169bo2bMnNm7cCJ7nYTKZymRrYxjGTjkCwJkzZ3Dw4EGHrkiliY2NtZ3fvXt3W/vttXhGjBgBiUSC69ev4/7776+y/BXh6+uLbt26lfv5q6++iiVLluDll1/G4sWLHZ4jkUhw11134ccff8Trr79ue+HFx8dj7969mDNnju3ckSNHQqFQYNOmTXZ/y+KMXffcc49bvheF4giqW0RqQ7cA4oRo+vTp2LhxIz7++OMy360yrl27hsTERNx9990VntezZ0+Eh4dj06ZNmDBhgq39+++/R0FBAa2FR6kyVEeI1JaOcAQhBH///Tf8/PwQGBhY4bmV6Yj169cjIiICo0aNckmmnJwcbN++HZ06dbIZxQ0JauBRqs25c+dscV9ZWVn48ccfsWvXLtx7771o3LgxAODBBx/E1q1bceedd2LWrFno0aMHpFIpEhMTsXfvXowdOxb33nsvPvroI+zZswejR49Go0aNYDQasWHDBgDA0KFDAYgGTUxMDH7++WcMGTILine truncated
"text/plain": [
"<Figure size 900x600 with 6 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" Best BO trial : index 391\n",
" defocus [A] : -200.06\n",
" layers : 23.00\n",
" thickness [A] : 337.54\n",
" log fourier : -0.47124\n"
]
}
],
"source": [
"fig, axs = plt.subplots(2, len(x), figsize=(3*len(x), 6), sharey='row', sharex='col')\n",
"for i, axi in enumerate(axs[0]):\n",
" axi.scatter(x[i][START:END], -y[START:END], c=y_scaled[START:END], cmap='coolwarm', s=10)\n",
" axi.set_title(f\"Best value: {x[i,-1]:.1f}\")\n",
"\n",
"axs[0][0].set_ylabel('$- \\\\log (\\\\mathtt{fourier\\\\_error})$')\n",
"\n",
"for i, axi in enumerate(axs[1]):\n",
" axi.scatter(x[i][START:END], y_scaled[START:END], c=y_scaled[START:END], cmap='coolwarm', s=10)\n",
" axi.set_xlabel(xparams[i])\n",
"axs[1][0].set_ylabel('Scaled')\n",
"plt.tight_layout()\n",
"plt.show()\n",
"\n",
"print(f\" Best BO trial : index {train_y.argmax()}\")\n",
"print(\"\\n\".join([f'{xparams[i]:>15} : {x[i, -1]:> 9.2f}' for i in range(len(xparams))]))\n",
"print(f\" log fourier : {-y[-1]:9.5f}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "63358241",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "lemon",
"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.12.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
+121
View File
@@ -0,0 +1,121 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "5c8aa3fd",
"metadata": {},
"outputs": [],
"source": [
"from scipy.io import loadmat as scipy_loadmat\n",
"from mat73 import loadmat as mat73_loadmat\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4a419040",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['outputs', 'probe', 'object', 'p']"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# fold_slice output\n",
"f = \"/home/swim/shared/Si_project/Si8V2_full/roi1_Ndp256/MLs_L1_p1_g64_Ndp192_pc1_noModel_Ns23_dz14.6087_reg0.2/Niter1000.mat\"\n",
"contents = scipy_loadmat(f)\n",
"print([key for key in contents.keys() if not key.startswith('__')])"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "8a7b58b2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"mappingproxy({'reconstruct_ind': (dtype('O'), 0),\n",
" 'background': (dtype('O'), 8),\n",
" 'intensity_corr': (dtype('O'), 16),\n",
" 'probe_fourier_shift': (dtype('O'), 24),\n",
" 'rotation': (dtype('O'), 32),\n",
" 'shear': (dtype('O'), 40),\n",
" 'relative_pixel_scale': (dtype('O'), 48),\n",
" 'diffraction_deform_matrix': (dtype('O'), 56),\n",
" 'pixel_size': (dtype('O'), 64),\n",
" 'Np_p': (dtype('O'), 72),\n",
" 'probe': (dtype('O'), 80),\n",
" 'probe_support': (dtype('O'), 88),\n",
" 'probe_support_fft': (dtype('O'), 96),\n",
" 'object': (dtype('O'), 104),\n",
" 'probe_positions_0': (dtype('O'), 112),\n",
" 'probe_positions': (dtype('O'), 120),\n",
" 'Np_o': (dtype('O'), 128),\n",
" 'Npos': (dtype('O'), 136),\n",
" 'affine_matrix': (dtype('O'), 144),\n",
" 'noise': (dtype('O'), 152),\n",
" 'diffraction': (dtype('O'), 160),\n",
" 'mask': (dtype('O'), 168),\n",
" 'filename': (dtype('O'), 176),\n",
" 'path': (dtype('O'), 184),\n",
" 'z_distance': (dtype('O'), 192),\n",
" 'lambda': (dtype('O'), 200),\n",
" 'diff_pattern_blur': (dtype('O'), 208),\n",
" 'modes': (dtype('O'), 216),\n",
" 'probe_evolution': (dtype('O'), 224),\n",
" 'affine_matrix_fit': (dtype('O'), 232),\n",
" 'fourier_error_out': (dtype('O'), 240),\n",
" 'fourier_error_dp': (dtype('O'), 248),\n",
" 'probe_positions_model': (dtype('O'), 256),\n",
" 'affine_matrix_init': (dtype('O'), 264),\n",
" 'probe_positions_weight': (dtype('O'), 272),\n",
" 'detector_rotation': (dtype('O'), 280),\n",
" 'detector_scale': (dtype('O'), 288),\n",
" 'asymmetry': (dtype('O'), 296),\n",
" 'avgTimePerIter': (dtype('O'), 304),\n",
" 'fourier_error_threshold': (dtype('O'), 312)})"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"contents['outputs'].dtype.fields"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "lemon",
"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.12.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 20,
"execution_count": 1,
"id": "d3d0397b",
"metadata": {},
"outputs": [],
@@ -24,7 +24,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 2,
"id": "05a381bd",
"metadata": {},
"outputs": [],
@@ -56,7 +56,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 3,
"id": "38fc7594",
"metadata": {},
"outputs": [
@@ -90,7 +90,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 4,
"id": "bbd76d4a",
"metadata": {},
"outputs": [
@@ -122,7 +122,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 5,
"id": "e8c4da69",
"metadata": {},
"outputs": [
@@ -153,14 +153,14 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 6,
"id": "81276fdb",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "c365a3ef82744a8eb6ea9066cfffb95f",
"model_id": "0a6acad0be424dec83a5234a9362898b",
"version_major": 2,
"version_minor": 0
},
@@ -181,7 +181,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "009d0aa0cf914fefb0d1a7c7778e7417",
"model_id": "497da14575304610bc40120a1e2043ff",
"version_major": 2,
"version_minor": 0
},
@@ -202,7 +202,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "c3e047df2ab14a35b7d355e8d268365b",
"model_id": "2ed5546a726842ffb5ed46d0e850da3b",
"version_major": 2,
"version_minor": 0
},
@@ -223,7 +223,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a61d78a9609c4c9a8fcfa6329f76ff98",
"model_id": "30832de7b6c04805971d9fcaba83108b",
"version_major": 2,
"version_minor": 0
},
@@ -265,7 +265,7 @@
},
{
"cell_type": "code",
"execution_count": 24,
"execution_count": 7,
"id": "570e368a",
"metadata": {},
"outputs": [],
@@ -277,14 +277,14 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 8,
"id": "1861a787",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "bc03253a67c045048ad5cb62757ca88c",
"model_id": "ec7460a8807f4512a2016bdf2ba06e96",
"version_major": 2,
"version_minor": 0
},
@@ -298,7 +298,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "fadbb2fefdab415184038d7030d9c652",
"model_id": "c872d0c0ba644ce6bdf6fb325c5ca2a1",
"version_major": 2,
"version_minor": 0
},
@@ -312,7 +312,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a228bcd431b84b918232df89c4f08452",
"model_id": "251920645cdf4d1684abe653d54bab04",
"version_major": 2,
"version_minor": 0
},
@@ -326,7 +326,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e052843b27434a00a859280e19b3ac3a",
"model_id": "d6a6853af3f148068e67d1f8be0fd1f6",
"version_major": 2,
"version_minor": 0
},
@@ -377,7 +377,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 9,
"id": "7091733a",
"metadata": {},
"outputs": [],
@@ -395,7 +395,7 @@
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 10,
"id": "be8c09d3",
"metadata": {},
"outputs": [
@@ -427,7 +427,7 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 11,
"id": "52eb4dd3",
"metadata": {},
"outputs": [
@@ -457,7 +457,7 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": 12,
"id": "38eb518a",
"metadata": {},
"outputs": [
@@ -484,7 +484,7 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 13,
"id": "e18ff3e6",
"metadata": {},
"outputs": [],
@@ -504,7 +504,7 @@
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 14,
"id": "80740d9b",
"metadata": {},
"outputs": [
@@ -571,7 +571,7 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 15,
"id": "1c439f46",
"metadata": {},
"outputs": [
@@ -695,7 +695,7 @@
},
{
"cell_type": "code",
"execution_count": 21,
"execution_count": 16,
"id": "707c4350",
"metadata": {},
"outputs": [
@@ -734,7 +734,7 @@
},
{
"cell_type": "code",
"execution_count": 22,
"execution_count": 17,
"id": "612bee6c",
"metadata": {},
"outputs": [],
@@ -764,7 +764,7 @@
},
{
"cell_type": "code",
"execution_count": 25,
"execution_count": 18,
"id": "9543770e",
"metadata": {},
"outputs": [
@@ -818,15 +818,15 @@
},
{
"cell_type": "code",
"execution_count": 21,
"execution_count": 19,
"id": "71fe53e1",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABRAAAAPoCAYAAACmjdLKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAuIwAALiMBeKU/dgABAABJREFUeJzs3XdcU9f7B/BP2HuDA0Fw40Zx4N57j2rrqnXUam1ta1u71KrV2q+ttcOq1WodrXtP3BsZDhQRBcWtDNkbcn9/WPkZkhsybgjo5/165aU5997nPJkkT849RyYIggAiIiIiIiIiIiIiFUyMnQARERERERERERGVXSwgEhERERERERERkSgWEImIiIiIiIiIiEgUC4hEREREREREREQkigVEIiIiIiIiIiIiEsUCIhEREREREREREYliAZGIiIiIiIiIiIhEsYBIREREREREREREolhAJCIiIiIiIiIiIlEsIBIREREREREREZEoFhCJiIiIiIiIiIhIFAuIREREREREREREJIoFRCIiIiIiIiIiIhLFAiIRERERERERERGJYgGRiIiIiIiIiIiIRLGASERERERERERERKJYQCQiIiIiIiIiIiJRLCASERERERERERGRKBYQiYiIiIiIiIiISBQLiERERERERERERCSKBUQiIiIiIiIiIiISxQIiERERERERERERiWIBkYiIiIiIiIiIiESxgEhERERERERERESiWEAkIiIiIiIiIiIiUSwgEhERERERERERkSgWEImIiIiIiIiIiEgUC4hEREREREREREQkigVEIiIiIiIiIiIiEsUCIhERkZHFxcVBJpOpvMTFxRk7PSIiIo3Nnj1b5d+zDh06GDs1g+LfciJ61ZkZOwEien0lJSXh4cOHyMzMRFZWFvLy8mBhYQErKyu4uLigQoUKcHZ2hkwmM3aqRERERERERK8tFhCJqFTcuXMHQUFBCA0NRVhYGGJiYpCZmVnicTY2NqhVqxb8/PzQvHlzBAYGomnTpjAz49sXERERERERUWngN3AiMpiEhAT8+eef2LRpEyIiInSKkZWVhcuXL+Py5cv4999/AQBOTk7o1q0bBg8ejH79+sHKykrKtImIiIiIiIjoJZwDkYgk9+DBA4wbNw5eXl746quvdC4eiklJScHmzZsxbNgwVKxYEe+//z5iYmIk7YOIiIiIiIiI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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1500x900 with 1 Axes>"
"<Figure size 500x300 with 1 Axes>"
]
},
"metadata": {},
@@ -845,7 +845,7 @@
"\n",
"# fig, axs = plt.subplots(2, 2, figsize=(10, 7), dpi=300)\n",
"\n",
"plt.figure(figsize=(5, 3), dpi=300)\n",
"plt.figure(figsize=(5, 3))\n",
"plt.xlim(0, 300)\n",
"plt.ylim(-0.15, 0.6)\n",
"plt.plot(x, Y, 'k-', label=\"Sum of Gaussians\")\n",
@@ -880,15 +880,15 @@
},
{
"cell_type": "code",
"execution_count": 22,
"execution_count": 20,
"id": "76404cd6",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAC3YAAAfxCAYAAAD4lPq7AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAuIwAALiMBeKU/dgABAABJREFUeJzs3XeYVdX1MOA11KGMiIiogILYAUVEZVDEgtiwB42xizHGBGLUmJhii0k0pvyCsUQl1sQI2LF3UQYVRhTEBoINEekdBpjvj/Mh6tw7TLlz78zwvs9znhnOPnufdWG46Drrrp1XWlpaGgAAAAAAAAAAAAAA5EyDXAcAAAAAAAAAAAAAALCxU9gNAAAAAAAAAAAAAJBjCrsBAAAAAAAAAAAAAHJMYTcAAAAAAAAAAAAAQI4p7AYAAAAAAAAAAAAAyDGF3QAAAAAAAAAAAAAAOaawGwAAAAAAAAAAAAAgxxR2AwAAAAAAAAAAAADkmMJuAAAAAAAAAAAAAIAcU9gNAAAAAAAAAAAAAJBjCrsBAAAAAAAAAAAAAHJMYTcAAAAAAAAAAAAAQI4p7AYAAAAAAAAAAAAAyDGF3QAAAAAAAAAAAAAAOaawGwAAAAAAAAAAAAAgxxR2AwAAAAAAAAAAAADkmMJuAAAAAAAAAAAAAIAcU9gNAAAAAAAAAAAAAJBjCrsBAAAAAAAAAAAAAHJMYTcAAAAAAAAAAAAAQI4p7AYAAAAAAAAAAAAAyDGF3QAAAAAAAAAAAAAAOaawGwAAAAAAAAAAAAAgxxR2AwAAAAAAAAAAAADkmMJuAAAAAAAAAAAAAIAcU9gNAAAAAAAAAAAAAJBjCrsBAAAAAAAAAAAAAHJMYTcAAAAAAAAAAAAAQI4p7AYAAAAAAAAAAAAAyDGF3QAAZFynTp0iLy+vzHHFFVfkOjSolDPPPDPlz/KZZ55Z6bVmzJiRcq28vLyYMWNGTmOjrAMOOMD7WA1I9+/DHXfckevQAAAAAFKS76a+kO/eeMl31wz5bgBqSqNcBwAAsLFZuHBhfPnll7Fw4cJYsGBBNGrUKFq3bh2tW7eONm3aRMuWLXMdIgD10MqVK2Pu3LmxYMGCWLBgQSxevDiaNGkSLVq0iBYtWkTr1q1jq622iry8vFyHCgAAAAAAacl3A1CfKewGAKhB8+bNixdffDFeffXVmDx5crzzzjvx+eeflzunS5cuUVhYGL17946jjz46OnbsmKVo65+1a9dG586d45NPPkk5PmrUqDjhhBOyHNV6xxxzTDzyyCMpx/7whz/Er3/96yxHBNQns2fPjkceeSRef/31eOONN2Ly5MmxevXqcuc0bdo0ttlmm+jcuXN069Yt9txzz+jVq1fssMMOEuAAAACwkfnggw/igw8+yMq9OnToED169MjKveoq+W5gYybfDcDGRGE3AEAGlZaWxmuvvRYPPPBAPPvss/HWW2/F2rVrK7XGtGnTYtq0aXHPPffEz372szjqqKPipz/9aRx88ME1FHX91aBBgzjjjDPi97//fcrx22+/PWeJ7tmzZ8cTTzyRcqxBgwZx+umnZzkioL545pln4pZbbomHH344SkpKKjV35cqV8eGHH8aHH34YTz/99NfnN9100zjwwAPj0EMPjUMPPTQ6deqU4agBAACA2ua///1vXHnllVm51ymnnBL33HNPVu5VV8l3Axsj+W4ANkYNch0AAEB98O6778aFF14Y2267bRQWFsZ1110Xb775ZqWLur9rzZo18dBDD0X//v3jyCOPjJkzZ2Yo4o3HWWedlfZT908++WTMmjUryxEl7rnnnrQJqAEDBkSHDh2yHBFQ133yySdx2GGHxYABA2LUqFGVTnKXZ8GCBfHggw/GeeedF507d46rr746Y2sDAAAAUDHy3cDGQr4bgI2Zwm4AgAy488474+9//3t8+umnNXaPxx9/PLp16xb33Xdfjd2jPurcuXMccMABKcfWrFmTsy4wd9xxR9qxs846K3uBAPXC8OHDo2vXrvHUU09l5X5LlizJyn0AAAAAWE++G9gYyHcDsLFT2A0AUIfMnz8/Tj755Lj++utzHUqdcvbZZ6cdKy/hXFMmTJgQkyZNSjm22WabxTHHHJPliIC67Morr4xzzjlH8hkAAABgIyDfDdRn8t0AENEo1wEAAGwMGjVqFPvss0/07ds3evXqFdtvv3107NgxCgoKoqSkJObOnRsfffRRvPTSS3H//ffH22+/nXat0tLS+NnPfhZbbrllDBo0KIuvou464YQT4qc//WksXLiwzNg777wTb7zxRuy1115Zi+f2229PO/aDH/wgmjZtmrVYgLrtX//6V1xxxRUbvG7bbbeN4447LvbYY4/o3r17tGvXLgoKCqJZs2axcOHCmDdvXsybNy8mT54cEyZMiPHjx8dbb70Vq1atqvkXAQAAAECFyXcD9ZV8NwAkFHYDANSQBg0aRP/+/eMHP/hBHHvssdGqVauU1zVu3DiaN28eHTt2jH79+sVll10Wjz/+eAwZMiQ++uijlHNKS0vjnHPOib333ju23XbbmnwZ9UKzZs3ipJNOiltuuSXl+B133JG1RPeqVavi3nvvTTteXrcVsu+OO+7ISZcbqIgpU6bEz372s3KvKSwsjGuuuSb233//tNe0adMm2rRpExER++yzTwwePDgiIhYuXBijR4+O+++/P5566qlYtmxZtWOeMWNGtdcAAAAAcmvbbbf1//g5JN9NVcl3U5vJdwPAeg1yHQAAQH1TUFAQF110UXz44Yfx1FNPxRlnnJG2qDudI444IoqLi2PgwIFpr1m0aFH84he/qG64G43yEsj33ntvrFy5MitxPPzwwzFv3ryUY7vvvnvsscceWYkDqPt+/vOfp33vysvLi7/+9a8xduzYcpPc5WnVqlWccsop8cADD8Ts2bPjpptuil122aU6IQMAAACQAfLdQH0j3w0A6ynsBgDIkJYtW8Zll10WH3/8cfzlL3+J7bbbrlrrtWrVKkaNGhX9+vVLe82oUaPi/fffr9Z9Nhb77LNPdO3aNeXY/Pnz4+GHH85KHOV1w9C9BKioN998M55++um04zfeeGNceOGFGbtfixYt4rzzzospU6bEU089FXvvvXfG1gYAAACgcuS7gfpEvhsAvk1hNwBABhx55JExbdq0uPLKK6N169YZW7dp06bx3//+N1q0aJFyvLS0NO68886M3a++O+uss9KOZWP7wS+++CKeeuqplGNNmjSJU045pcZjAOqHu+66K+3YYYcdFuedd16N3XvAgAFx/PHH19j6AAAAAGyYfDdQX8h3A8C3KewGAMiAvn37xhZbbFEja2+99dZxwQUXpB1PlzilrNNOOy0aN26ccuzpp5+OmTNn1uj977rrrlizZk3KsaOPPjratGlTo/cH6o/yupdcdNFFWYwEAAAAgFyQ7wbqC/luAPg2hd0AAHXASSedlHbsrbfeilWrVmUxmrpriy22iCOOOCLl2Jo1a+Luu++u0fuX113dtpRARS1fvjzefffdlGMFBQVx4IEHZjkiAAAAALJNvhuoD+S7AaCsRrkOAACADevevXu0adMm5s6dW2ZszZo1MWPGjNhxxx1zEFndc/bZZ8fDDz+ccuyOO+6IX/7ylzVy33HjxqVNTG299dYxYMCAGrlvTVu7dm2MGzcuRo8eHcXFxfHee+/F/PnzY+nSpVFQUBBt27aNPfbYI/r16xff//73Y7PNNqv0PVavXh3PPvtsPPnkkzFx4sSYOnVqLFy4MJYvXx4tW7aMjh07xh577BGHHnpoHHfccdG8efMaeKVERHz55Zfx3HPPxauvvhrvvvtuTJ8+PebNmxfLli2Lhg0bRosWLaJDhw6xww47RGFhYQwYMCC6d++e1RiXLVsWo0ePjmeeeSbeeuutmD59eixatCjy8vKioKAgOnToELvuumv069cvBg4cGFtvvXVW48uEGTNmRGlpacqxjh07RsOGDbMcEQAAAAC5IN+dWfLdGxf57tpBvhsAylLYDQBQR2y11VYpC7sjIubPn5/laHJrxIgRcfrpp8fKlStTjh977LHx3//+N5o1a1Zm7Igjjogtt9wyZs2aVWbsvffei3HjxkXv3r0zHvMdd9yRduyMM86oFYmpGTNmROfOnVOOvfDCC3HAAQd8/eu1a9fGHXfcEddee2188MEHKecsWLAgFixYEB9++GGMGDEiLrzwwvjxj38cV155ZWyyySYbjGfp0qVx/fXXx1//+teYM2dOymsWLlwYCxcujMmTJ8fdd98drVu3jksvvTR+/vOfR6NG1f/fnTPPPDNl55kzzjij3D/T+qS0tDQeeeSRuP766+PFF19Mu73q6tWrY+XKlTFv3rx4++234/7774+IiG7dusWFF14Yp512Wkb+TNJZuHBh/OlPf4p//etfsWDBgpTXrFy5MubMmRMTJ06M//73v9GwYcM44YQT4ne/+11069atxmLLtHSvLyJi0003zVocVdGpU6f4+OOPy5y//fbb48wzz8x+QAAAAAA5Jt9dM+S7y5Lvlu+ujeS7AaCsBrkOAACAiikvMbh69eosRpJb1113XXz/+99Pm+QeMmRI3H///SmT3BERjRo1itNOOy3t+jWRvFyxYkX873//Szt+1llnZfyeNWn69Omx3377xeDBg9MmuVNZuXJl/N///V907do1Jk6cWO61r7zySuy6665x6aWXpk1ypzJ//vy45JJLYv/994+vvvqqwvNIbcyYMbH77rvHscceG88991zaJHd5Jk+eHGeffXbsvvvuMW7cuBqIMuKxxx6LHXbYIa699tpyk8DftWbNmhgxYkT07NkzrrrqqrRdQeqSefPm5ToEAAAAACpIvjv35Ls3HvLddY98NwAbK4XdAAB1RHnJi5YtW2YxktxYs2ZN/OQnP4lLLrkkZTIqLy8vrrvuuhg2bFg0aFD+f+aeffbZacfuu+++WLFiRbXLine truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAKyCAYAAAAjLAa+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAA9ntJREFUeJzs3Xt8jvUfx/HXvbHNsDmMOYy12sqpnBMikVMOSYUk1AodCSVU6CT90klOYw7JKQklqaURoYNDJaqJxV3mmM1xY/f1++ObMRs2du+6t72fj8f92H1f93Xf92eXuT/X53t9Dw7LsixERERERERExC287A5AREREREREJD9T4S0iIiIiIiLiRiq8RURERERERNxIhbeIiIiIiIiIG6nwFhEREREREXEjFd4iIiIiIiIibqTCW0RERERERMSNVHiLiIiIiIiIuJEKbxERERERERE3UuEtkgu+/vprHnzwQapUqULRokWpWLEid9xxBxs2bMjS63v37k2xYsUu+Pz+/fvx8fGhW7duF9wnKSkJf39/OnbsmO34s+Oqq66id+/eaY/j4+NxOBzMmDEjbduMGTNwOBzEx8fn2OeOHDkSh8Nxyf0sy2LevHk0adKEsmXL4ufnR0hICK1bt2bq1Knp9nU4HIwcOTLHYhQREc+3cuVKHA5Hprf169df8vXK2ZemnC0FUSG7AxApCCZOnMjBgwfp378/1apVY//+/YwdO5abbrqJL774gubNm1/R+5cpU4aOHTuyePFi/v33X0qWLJlhn3nz5nHixAkiIyOv6LMuZdGiRQQEBLj1M67E0KFDGTNmDA8//DBPP/00xYsX56+//uLrr79myZIlPPTQQ2n7rlu3jpCQEBujFRERu7z66qvceuut6bbVqFHjit9XOTvrlLMlP1HhLZILxo8fT9myZdNta9OmDeHh4bz66qtXXHgDREZGsnDhQmbPns3jjz+e4flp06YRHBxMu3btrvizLqZ27dpuff8rceLECd5++2169uxJVFRUuud69+6Ny+VKt+2mm27KzfBERMSDREREuC0PKGdfmnK25Dfqai6SC84vugGKFStGtWrV2L1792W957fffktQUBDt27fn2LFjtG7dmpCQEKZPn55h323btvHdd9/Rs2dPChW6cHvbme51c+bMYciQIZQvX55ixYrRoUMH9u7dy5EjR+jTpw9B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VvP58+czYMAAJkyYQOPGjZk8eTJt27Zl69atVK5cOdPXdOnShb179xIdHU14eDj79u3j9OnTuRy5iIhIwaKcLSIicvlsndW8QYMG1KlTJ22tPzDrHXbq1InRo0dn2H/58uV069aNHTt2UKpUqdwMVUREpEBTzhYREbl8tl3xTklJYcOGDTz77LPptrdq1Yq1a9dm+ppPPvmEevXq8frrrzNr1iyKFi1Kx44deemllyhSpEimr0lOTiY5OTntscvl4tChQ5QuXRqHw5Fzv5CIiEgOsSyLI0eOUKFCBby8bB8VppwtIiKSiezka9sK7wMHDpCamkpwcHC67cHBwSQkJGT6mh07drBmzRr8/PxYtGgRBw4c4NFHH+XQoUMXHDM2evRoRo0alePxi4iIuNvu3bsJCQmxOwzlbBERkYvISr62dYw3kKEF27KsC7Zqu1wuHA4Hs2fPJjAwEIA333yTu+++m/Hjx2fagj506FAGDhyY9jgxMZHKlSuze/duAgICcvA3ERERyRlJSUlUqlSJ4sWL2x1KOsrZIiIiZ2UnX9tWeAcFBeHt7Z2hpXzfvn0ZWtTPKF++PBUrVkxL4GDGl1mWhdPpJCIiIsNrfH198fX1zbA9ICBASVxERDyap3SvVs4WERG5sKzka9sGjvn4+FC3bl1iYmLSbY+JiaFRo0aZvqZx48b8888/HD16NG3bH3/8gZeXl0d0xRMREcmPlLNFRESujK0ztgwcOJCpU6cybdo0tm3bxlNPPcWuXbvo168fYLqc9ezZM23/7t27U7p0aR544AG2bt3KN998w9NPP82DDz54wYlaRERE5MopZ4uIiFw+W8d4d+3alYMHD/Liiy+yZ88eatSowbJlywgNDQVgz5497Nq1K23/YsWKERMTwxNPPEG9evUoXbo0Xbp04eWXX7brVxARESkQlLNFREQun63reNshKSmJwMBAEhMTNV5MREQ8knKVoeMgIiKeLDt5yv7FQUVERERERETyMRXeIiIiIiIiIm6kwltERERERETEjVR4i4iIiIiIiLiRCm8RERERERERN1LhLSIiIiIiIuJGKrxFRERERERE3EiFt4iIiIiIiIgbqfAWERERERERcSMV3iIiIiIiIiJupMJbRERERERExI1UeIuIiIiIiIi4kQpvERERERERETdS4S0iIiIiIiLiRiq8RURERERERNxIhbeIiIiIiIiIG6nwFhEREREREXEjFd4iIiIiIiIibqTCW0RERERERMSNVHiLiIiIiIiIuJEKbxERERERERE3UuEtIiIiIiIi4kYqvEVERERERETcSIW3iIiIiIiIiBup8BYRERERERFxIxXeIiIiIiIiIm6kwltERERERETEjVR4i4iLine truncated
"text/plain": [
"<Figure size 3000x2100 with 4 Axes>"
"<Figure size 1000x700 with 4 Axes>"
]
},
"metadata": {},
@@ -905,7 +905,7 @@
"ys = np.array(ys)\n",
"Y = ys.sum(axis=0)\n",
"\n",
"fig, axs = plt.subplots(2, 2, figsize=(10, 7), dpi=300)\n",
"fig, axs = plt.subplots(2, 2, figsize=(10, 7))\n",
"\n",
"keys = ['2V', '5V', '8V', '30V']\n",
"\n",
@@ -932,23 +932,13 @@
},
{
"cell_type": "code",
"execution_count": null,
"id": "fc9027eb",
"metadata": {},
"outputs": [],
"source": [
"plt."
]
},
{
"cell_type": "code",
"execution_count": 31,
"execution_count": 32,
"id": "fcd12e61",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABaYAAAVeCAYAAACKJuzmAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAuIwAALiMBeKU/dgABAABJREFUeJzs3XdYVNfWBvB3qIKAFAuKCIq9i72CvXeNHXs3GjWa2HtsURONJWrs2HtXsGJFsSDYUEABwQIioEid7w8+uA5ngGnMoby/5/G596w5e+81ggbX7LO2RCqVSkFEREREREREREREpCU6YidARERERERERERERPkLC9NEREREREREREREpFUsTBMRERERERERERGRVrEwTURERERERERERERaxcI0EREREREREREREWkVC9NEREREREREREREpFUsTBMRERERERERERGRVrEwTURERERERERERERaxcI0EREREREREREREWkVC9NEREREREREREREpFUsTBMRERERERERERGRVrEwTURERERERERERERaxcI0EREREREREREREWkVC9NEREREREREREREpFUsTBMRERERERERERGRVrEwTURERERERERERERaxcI0EREREREREREREWkVC9NEREREREREREREpFUsTBMRERERERERERGRVrEwTURERERERERERERaxcI0EREREREREREREWkVC9NEREREREREREREpFUsTBMRERERERERERGRVrEwTURERERERERERERaxcI0EREREREREREREWkVC9NEREREREREREREpFV6YidARNoTGRmJa9eupV3b2trC0NBQxIyIiIiIiIiIiEgscXFxCAoKSrt2cnKCubm5VtZmYZooH7l27Rq6desmdhpERERERERERJQDHT9+HF27dtXKWmzlQURERERERERERERaxcI0EREREREREREREWkVW3kQ5SO2trYy18ePH0fZsmVFyoaIiIiIiIiIiMT06tUrmbav6WtH2YmFaaJ8JP1Bh2XLlkWVKlVEyoaIiIiIiIiIiHKS9LWj7MRWHkRERERERERERESkVSxMExEREREREREREZFWsTBNRERERERERERERFrFwjQRERERERERERERaRUL00RERERERERERESkVSxMExEREREREREREZFWsTBNRERERERERERERFrFwjQRERERERERERERaRUL00RERERERERERESkVSxMExEREREREREREZFWsTBNRERERERERERERFrFwjQRERERERERERERaRUL00RERERERERERESkVSxMExEREREREREREZFWsTBNRERERERERERERFrFwjQRERERERERERERaRUL00RERERERERERESkVSxMExEREREREREREZFWsTBNRERERERERERERFrFwjQRERERERERERERaZWe2AmQ9iUmJiI4OBhBQUEICgrCly9f8O3bNyQmJsLMzAzm5uYoUqQIatWqBSsrK63n5+fnBx8fH7x79w4xMTEwNDSEpaUlKlasiOrVq6NAgQJaz+nt27fw9vbG27dvER0dDX19fZibm6N8+fKoWbMmTExMtJ4TERERERERERFRbsXCdB6XlJSEx48f4+bNm7h//z68vb3x7NkzxMXFKTTe3t4erVq1wrBhw9CwYcNsy/Pt27f4559/cODAAbx9+zbD+4yNjdGmTRuMGzcOrVu3zrZ8AODjx4/YtGkTXF1d8eLFiwzvMzAwgJOTE0aPHo1u3bpBV1c3W/MiIiIiIiIiIiLK7SRSqVQqdhKUPby9vdG4cWPExMRoZL7q1atj/fr1aNKkiUbmA4D4+HgsWrQIK1asQHx8vFJjW7Rogc2bN8PBwUFj+QCAVCrF2rVrMWfOHERHRys11tHREVu2bIGjo6NGc9IUX19fVK1aNe3ax8cHVapUETEjIiIiIiIiIiISi5i1IvaYzsO+ffumsaI0kFLobtasGcaPH4/ExES15/v06RNatGiBxYsXK12UBoDLly+jTp06cHNzUzuXVLGxsejRowd++eUXpYvSAPDgwQM0atQIu3fv1lhOREREREREREREeQ0L06QUqVSKDRs2oF+/fkhISFB5nsjISLRu3Ro3b95UK5/IyEh07twZly5dUmseIGX3dvfu3XH8+HG15omLi8PgwYNZnCYiIiIiIiIiIsoAC9P5iEQiQZUqVTB27FisX78e7u7u8Pf3R3h4OOLj4xETE4N3797h6tWrWLlyJWrXrp3hXIcPH8aUKVNUzsXFxQWPHj2S+1rbtm1x+PBhhISEID4+HpGRkbh58yamTJmCggULCu6Pi4tD79698ebNG5XzAYCpU6fiwoULcl9r0KABdu3ahcDAQMTHxyM6OhpeXl6YN28eLC0t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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABaYAAAVeCAYAAACKJuzmAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAuIwAALiMBeKU/dgABAABJREFUeJzs3XVcVNn7B/DPUAoCEgaoiIq5drdgrN2xNnbXWht2rq27dq2N3a6JjYliIFgooIBggAgokvf3Bz/4OtwBpphLfN6v17x275l7znkuDDg8c+5zZIIgCCAiIiIiIiIiIiIi0hE9qQMgIiIiIiIiIiIiotyFiWkiIiIiIiIiIiIi0ikmpomIiIiIiIiIiIhIp5iYJiIiIiIiIiIiIiKdYmKaiIiIiIiIiIiIiHSKiWkiIiIiIiIiIiIi0ikmpomIiIiIiIiIiIhIp5iYJiIiIiIiIiIiIiKdYmKaiIiIiIiIiIiIiHSKiWkiIiIiIiIiIiIi0ikmpomIiIiIiIiIiIhIp5iYJiIiIiIiIiIiIiKdYmKaiIiIiIiIiIiIiHSKiWkiIiIiIiIiIiIi0ikmpomIiIiIiIiIiIhIp5iYJiIiIiIiIiIiIiKdYmKaiIiIiIiIiIiIiHSKiWkiIiIiIiIiIiIi0ikmpomIiIiIiIiIiIhIp5iYJiIiIiIiIiIiIiKdYmKaiIiIiIiIiIiIiHSKiWkiIiIiIiIiIiIi0ikmpomIiIiIiIiIiIhIp5iYJiIiIiIiIiIiIiKdYmKaiIiIiIiIiIiIiHSKiWkiIiIiIiIiIiIi0ikDqQMgIt0JDw/HtWvXUo7t7OyQJ08eCSMiIiIiIiIiIiKpxMTEICAgIOXY0dERFhYWOpmbiWmiXOTatWvo3Lmz1GEQEREREREREVEWdPz4cXTq1Eknc7GUBxERERERERERERHpFBPTRERERERERERERKRTLOVBlIvY2dnJHR8/fhylS5eWKBoiIiIiIiIiIpLSq1ev5Mq+ps4dZSYmpolykdQbHZYuXRoVK1aUKBoiIiIiIiIiIspKUueOMhNLeRARERERERERERGRTjExTUREREREREREREQ6xcQ0EREREREREREREekUE9NEREREREREREREpFNMTBMRERERERERERGRTjExTUREREREREREREQ6xcQ0EREREREREREREekUE9NEREREREREREREpFNMTBMRERERERERERGRTjExTUREREREREREREQ6xcQ0EREREREREREREekUE9NEREREREREREREpFNMTBMRERERERERERGRTjExTUREREREREREREQ6xcQ0EREREREREREREekUE9NEREREREREREREpFNMTBMRERERERERERGRTjExTUREREREREREREQ6xcQ0EREREREREREREekUE9NEREREREREREREpFMGUgdAuhcfH4/AwEAEBAQgICAAX758wbdv3xAfHw9zc3NYWFigYMGCqF69OqytrXUen4+PD7y8vPDu3TtERUUhT548sLKyQvny5VGlShXkzZtX5zG9ffsWnp6eePv2LSIjI2FoaAgLCwuULVsW1apVg6mpqc5jIiIiIiIiIiIiyq6YmM7hEhIS8PjxY9y8eRP379+Hp6cnnj17hpiYGKX6lyhRAi1atMDgwYNRv379TIvz7du3WLt2LQ4cOIC3b9+meZ6JiQlatmyJ0aNH4+eff860eADg48eP2LhxI1xcXPDixYs0zzMyMoKjoyNGjBiBzp07Q19fP1PjIiIiIiIiIiIiyu5kgiAIUgdBmcPT0xMNGzZEVFSUVsarUqUK1q1bh0aNGmllPACIjY3F/PnzsXTpUsTGxqrUt1mzZti8eTMcHBy0Fg8ACIKA1atXY+bMmYiMjFSpb40aNbBlyxbUqFFDqzFpi7e3NypVqpRy7OXlhYoVK0oYERERERERERERSUXKXBFrTOdg375901pSGkhKdDdp0gRjxoxBfHy8xuN9+vQJzZo1w4IFC1ROSgPA5cuXUatWLbi6umocS7Lo6Gh07doVv/76q8pJaQB48OABGjRogN27d2stJiIiIiIiIiIiopyGiWlSiSAIWL9+PXr37o24uDi1xwkPD8fPP/+MmzdvahRPeHg4OnTogEuXLmk0DpC0ertLly44fvy4RuPExMRgwIABTE4TERERERERERGlgYnpXEQmk6FixYoYNWoU1q1bh4sXL8LX1xehoaGIjY1FVFQU3r17h6tXr2LZsmWoWbNmmmMdPnwYkyZNUjsWZ2dnPHr0SOFzrVq1wuHDhxEUFITY2FiEh4fj5s2bmDRpEvLlyyc6PyYmBj169MCbN2/UjgcAJk+ejPPnzyt8rl69eti1axf8/f0RGxuLyMhIeHh4YPbs2bCyshKd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 truncated
"text/plain": [
"<Figure size 1500x1500 with 1 Axes>"
]
@@ -996,12 +986,12 @@
"\n",
"eb = plt.errorbar(voltages, damage, damage_err,\n",
" fmt=\"o\", capsize=5, capthick=1.5, elinewidth=1.5, label=\"Current study\", markersize=MARKERSIZE,\n",
" zorder=ZTOP, color='red'\n",
" zorder=ZTOP, color='blue'\n",
" )\n",
"handles.append(eb)\n",
"\n",
"for i, (v, d, mk, lab) in enumerate(literature):\n",
" ln, = plt.plot(v, d, mk, label=lab, zorder=ZTOP - 1 - i, color=plt.colormaps['viridis'](i / 5), markersize=MARKERSIZE)\n",
" ln, = plt.plot(v, d, mk, label=lab, zorder=ZTOP - 1 - i, color=plt.colormaps['inferno'](i / 6), markersize=MARKERSIZE)\n",
" handles.append(ln)\n",
"\n",
"plt.xlabel(\"FIB milling voltage (kV)\", fontsize=14)\n",