SCRIPTS: Addded knife edge scan jupyter notebook
This commit is contained in:
1 parent
2caef2a632
commit
a3dc4fff28
1 file changed
+509
@@ -0,0 +1,509 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "markdown",
|
||||
"source": "**Import Packages**",
|
||||
"id": "1e84a74bce983a48"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-07-09T15:21:27.478441Z",
|
||||
"start_time": "2025-07-09T15:21:26.516951Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"from aaredaq.devices import BeamlineDevices\n",
|
||||
"from aaredaqlib.beamline import MXBeamline"
|
||||
],
|
||||
"id": "d2efa08de2dbd46b",
|
||||
"outputs": [],
|
||||
"execution_count": 1
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-07-09T15:21:29.814198Z",
|
||||
"start_time": "2025-07-09T15:21:28.052349Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"from epics import PV\n",
|
||||
"import numpy as np\n",
|
||||
"import time\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"from scipy.optimize import curve_fit\n",
|
||||
"from scipy.signal import peak_widths, find_peaks"
|
||||
],
|
||||
"id": "f8305237c9f98964",
|
||||
"outputs": [],
|
||||
"execution_count": 2
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "markdown",
|
||||
"source": "**Config**",
|
||||
"id": "de33ac6389ffef80"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-07-09T15:21:33.454435Z",
|
||||
"start_time": "2025-07-09T15:21:31.742983Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"d = BeamlineDevices(MXBeamline.X06DA)\n",
|
||||
"b = MXBeamline.X06DA\n",
|
||||
"beamline = b.value.upper()"
|
||||
],
|
||||
"id": "5407e46ef4c2a26d",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Connecting TELL p-shell service at http://x06da-tell.psi.ch:22222 ..."
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 3
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "markdown",
|
||||
"source": "**Functions for fitting**",
|
||||
"id": "ad205cd8366be8b5"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-07-09T15:21:35.539527Z",
|
||||
"start_time": "2025-07-09T15:21:35.532072Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"def gaus(x, *p):\n",
|
||||
" A, mu, sigma = p\n",
|
||||
" return A * np.exp(-(x-mu)**2/(2.*sigma**2))\n",
|
||||
"\n",
|
||||
"def sigmoid(x, *p):\n",
|
||||
" L, x0, k, c = p\n",
|
||||
" return L / (1 + np.exp(-k * (x -x0))) + c\n",
|
||||
"\n",
|
||||
"def unpack_data(data):\n",
|
||||
" x_vals, y_vals = zip(*data)\n",
|
||||
" x_vals = list(x_vals)\n",
|
||||
" y_vals = list(y_vals)\n",
|
||||
" return x_vals, y_vals\n",
|
||||
"\n",
|
||||
"def sigmoid_fit(x_vals, y_vals):\n",
|
||||
" L_guess = np.max(y_vals)\n",
|
||||
" b_guess = np.min(y_vals)\n",
|
||||
" x0_guess = x_vals[np.argmin(np.abs(y_vals - (L_guess + b_guess) / 2))]\n",
|
||||
" k_guess = 1 / (x_vals[-1] - x_vals[0])\n",
|
||||
"\n",
|
||||
" s0 = [L_guess, x0_guess, k_guess, b_guess]\n",
|
||||
" parameters, params_covariance = curve_fit(sigmoid, x_vals, y_vals, p0=s0)\n",
|
||||
" return parameters\n",
|
||||
"\n",
|
||||
"def gauss_fit(x_vals, dydx):\n",
|
||||
" mean = x_vals[np.argmax(dydx)]\n",
|
||||
" sigma = (np.max(x_vals) - np.min(x_vals))/4\n",
|
||||
" A= np.max(dydx)\n",
|
||||
" dydx[np.isnan(dydx)] = 0\n",
|
||||
"\n",
|
||||
" p0 = [A, mean, sigma]\n",
|
||||
" parameters, covariance = curve_fit( gaus, x_vals, dydx, p0=p0)\n",
|
||||
" return parameters\n",
|
||||
"\n",
|
||||
"def calc_fwhm(gauss_y, x_vals):\n",
|
||||
" peaks = find_peaks( gauss_y )\n",
|
||||
" fwhm_peak = peak_widths( gauss_y, peaks[0], rel_height=0.5 )\n",
|
||||
"\n",
|
||||
" fwhm_str = x_vals[int( round( fwhm_peak[2][0], 0 ))]\n",
|
||||
" fwhm_end = x_vals[int( round( fwhm_peak[3][0], 0 ))]\n",
|
||||
"\n",
|
||||
" fwhm = fwhm_str - fwhm_end\n",
|
||||
" fwhm_height = gauss_y[int( round( fwhm_peak[2][0], 0 ))]\n",
|
||||
"\n",
|
||||
" # find 1/e2 peak width\n",
|
||||
" full_peak = peak_widths( gauss_y, peaks[0], rel_height=0.865 )\n",
|
||||
" full_str = x_vals[int( round( full_peak[2][0], 0 ))]\n",
|
||||
" full_end = x_vals[int( round( full_peak[3][0], 0 ))]\n",
|
||||
"\n",
|
||||
" full = full_str - full_end\n",
|
||||
" full_height = gauss_y[int( round( full_peak[2][0], 0 ))]\n",
|
||||
" return fwhm, full"
|
||||
],
|
||||
"id": "d92115ec3d76d57d",
|
||||
"outputs": [],
|
||||
"execution_count": 4
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "markdown",
|
||||
"source": "**Function for performing knife_edge then fitting and plotting**",
|
||||
"id": "323bcc0c8ba19afa"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-07-09T16:34:57.207683Z",
|
||||
"start_time": "2025-07-09T16:34:57.203084Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"def knife_edge(motor: str, dev: BeamlineDevices, beamline: str, steps: int = 40, start: float = 0.0, step_size: float = 0.002, offset: float = 0.0, sleep = 0.5):\n",
|
||||
" diode = PV(f\"{beamline}-ES-BS:READOUT\")#X06DA-ES-BS:READOUT\n",
|
||||
" dev.shutter = True\n",
|
||||
" time.sleep(2.0)\n",
|
||||
"\n",
|
||||
" data = []\n",
|
||||
"\n",
|
||||
" for i in range(steps): #40\n",
|
||||
" if motor == 'X':\n",
|
||||
" dev.gmx.move(start-offset+step_size*i, wait=True)\n",
|
||||
" time.sleep(sleep)\n",
|
||||
" print(f\"{dev.gmx.value:.3f} {diode.get()}\")\n",
|
||||
" data.append([dev.gmx.value, diode.get()])\n",
|
||||
" else:\n",
|
||||
" dev.gmy.move(start-offset+step_size*i, wait=True)\n",
|
||||
" time.sleep(sleep)\n",
|
||||
" print(f\"{dev.gmy.value:.3f} {diode.get()}\")\n",
|
||||
" data.append([dev.gmy.value, diode.get()])\n",
|
||||
"\n",
|
||||
" if motor == 'X':\n",
|
||||
" dev.gmx.move(start, wait=True)\n",
|
||||
" #else:\n",
|
||||
" # dev.gmy.move(start, wait=True)\n",
|
||||
"\n",
|
||||
" dev.shutter = False\n",
|
||||
" return data\n"
|
||||
],
|
||||
"id": "512dc280e62e4ed4",
|
||||
"outputs": [],
|
||||
"execution_count": 41
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-07-09T16:35:13.891315Z",
|
||||
"start_time": "2025-07-09T16:35:13.885335Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"def fit_knife_edge(data, motor: str):\n",
|
||||
"\n",
|
||||
" x_vals, y_vals = unpack_data(data)\n",
|
||||
"\n",
|
||||
" plt.plot(x_vals, y_vals, label = 'edge_scan')\n",
|
||||
" plt.ylabel('Intensity (counts)')\n",
|
||||
" plt.xlabel('Motor position (mm)')\n",
|
||||
"\n",
|
||||
" params=sigmoid_fit(x_vals, y_vals)\n",
|
||||
"\n",
|
||||
" plt.plot(x_vals, y_vals)\n",
|
||||
" plt.plot(x_vals, sigmoid(x_vals, *params))\n",
|
||||
" plt.show()\n",
|
||||
"\n",
|
||||
" y_fit = sigmoid(x_vals, *params)\n",
|
||||
"\n",
|
||||
" dydx = np.gradient(y_fit, x_vals)\n",
|
||||
"\n",
|
||||
" if motor == 'X':\n",
|
||||
" dydx=-dydx\n",
|
||||
"\n",
|
||||
" parameters = gauss_fit(x_vals, dydx)\n",
|
||||
"\n",
|
||||
" x0_op = parameters[1]\n",
|
||||
" sigma_op = parameters[2]\n",
|
||||
" print(parameters)\n",
|
||||
"\n",
|
||||
" gauss_y = gaus(x_vals,*parameters)\n",
|
||||
" fwhm = np.abs(2*np.sqrt(2*np.log(2))*sigma_op)\n",
|
||||
" print(f\"Manually calculated FWHM to {fwhm} mm\")\n",
|
||||
" plt.plot(x_vals, dydx, label = 'derivative')\n",
|
||||
" plt.plot(x_vals, gauss_y,label='Gaussian fit',color ='orange')\n",
|
||||
" plt.fill_between(x_vals,gauss_y,color='orange',alpha=0.5)\n",
|
||||
"\n",
|
||||
" try:\n",
|
||||
" fwhm, full = calc_fwhm(gauss_y, x_vals)\n",
|
||||
" print( \"Scipy calculated FWHM = {0} mm\".format( fwhm ) )\n",
|
||||
" print( \"Scipy calculated 1/e2 = {0} mm\".format( full ) )\n",
|
||||
" except:\n",
|
||||
" print('scipy peak finding failed')\n",
|
||||
"\n",
|
||||
" plt.axvspan(x0_op+fwhm/2,x0_op-fwhm/2, color='green', alpha=0.75, lw=0, label='FWHM = {0} mm'.format(fwhm))\n",
|
||||
" plt.legend()\n",
|
||||
" plt.show()\n",
|
||||
" #plt.savefig(output_name+filename.split('/')[-1]+'FWHM_{0}.png'.format(fwhm))\n"
|
||||
],
|
||||
"id": "80460b35a33f1ecf",
|
||||
"outputs": [],
|
||||
"execution_count": 42
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "markdown",
|
||||
"source": "**Knife Edge scan in X**",
|
||||
"id": "b063ff6432f42184"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-07-09T17:51:02.087583Z",
|
||||
"start_time": "2025-07-09T17:49:59.206783Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"steps_x = 50\n",
|
||||
"start_pos_x = -17.94\n",
|
||||
"step_size_x = 0.002\n",
|
||||
"offset_x = 0.0 # offset subtracted from start position\n",
|
||||
"sleep = 1 # wait after move before recording diode\n",
|
||||
"x_data=knife_edge(motor='X', dev=d, beamline=beamline, steps=steps_x, start=start_pos_x, step_size=step_size_x, offset=offset_x, sleep = sleep)\n",
|
||||
"fit_knife_edge(x_data, motor='X')"
|
||||
],
|
||||
"id": "5454eb901526eb3",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"-17.940 8.959981e-06\n",
|
||||
"-17.938 8.944953e-06\n",
|
||||
"-17.936 8.937235e-06\n",
|
||||
"-17.934 8.946256e-06\n",
|
||||
"-17.932 8.870569e-06\n",
|
||||
"-17.930 8.943733e-06\n",
|
||||
"-17.928 8.932527e-06\n",
|
||||
"-17.926 8.931002e-06\n",
|
||||
"-17.924 8.912179e-06\n",
|
||||
"-17.922 8.929313e-06\n",
|
||||
"-17.920 8.917321e-06\n",
|
||||
"-17.918 8.937232e-06\n",
|
||||
"-17.916 8.892818e-06\n",
|
||||
"-17.914 8.824038e-06\n",
|
||||
"-17.912 8.808735e-06\n",
|
||||
"-17.910 8.837087e-06\n",
|
||||
"-17.908 8.671096e-06\n",
|
||||
"-17.906 8.606978e-06\n",
|
||||
"-17.904 8.432655e-06\n",
|
||||
"-17.902 8.189082e-06\n",
|
||||
"-17.900 8.250342e-06\n",
|
||||
"-17.898 7.650508e-06\n",
|
||||
"-17.896 7.203671e-06\n",
|
||||
"-17.894 6.735723e-06\n",
|
||||
"-17.892 6.1932e-06\n",
|
||||
"-17.890 6.269931e-06\n",
|
||||
"-17.888 5.137038e-06\n",
|
||||
"-17.886 4.552743e-06\n",
|
||||
"-17.884 3.875157e-06\n",
|
||||
"-17.882 3.34356e-06\n",
|
||||
"-17.880 3.422219e-06\n",
|
||||
"-17.878 2.437191e-06\n",
|
||||
"-17.876 2.017403e-06\n",
|
||||
"-17.874 1.662639e-06\n",
|
||||
"-17.872 1.323577e-06\n",
|
||||
"-17.870 1.346216e-06\n",
|
||||
"-17.868 9.006973e-07\n",
|
||||
"-17.866 7.306933e-07\n",
|
||||
"-17.864 5.915996e-07\n",
|
||||
"-17.862 4.870485e-07\n",
|
||||
"-17.860 4.98184e-07\n",
|
||||
"-17.858 3.496483e-07\n",
|
||||
"-17.856 2.945638e-07\n",
|
||||
"-17.854 2.461977e-07\n",
|
||||
"-17.852 2.114641e-07\n",
|
||||
"-17.850 2.139551e-07\n",
|
||||
"-17.848 1.598115e-07\n",
|
||||
"-17.846 1.397988e-07\n",
|
||||
"-17.844 1.199971e-07\n",
|
||||
"-17.842 1.045175e-07\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"<Figure size 640x480 with 1 Axes>"
|
||||
],
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjYAAAHACAYAAACxlSKsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXndJREFUeJzt3Xd8FHXixvHP7GbTKymEEgjd0LsUCyhFBQ/sFUEU7+zlp3eoZzsVLIcdxQrYQREroIII0nsPnVACIYH0ttnszu+PaM4I0SwkmZTn/XrNK9nZ2dlnxrJPZr47Y5imaSIiIiJSB9isDiAiIiJSWVRsREREpM5QsREREZE6Q8VGRERE6gwVGxEREakzVGxERESkzlCxERERkTpDxUZERETqDBUbERERqTNUbERERKTOqDPFZvHixVx88cU0btwYwzD48ssvq/w9k5OTuf7664mMjCQgIIBOnTqxZs2aKn9fERERObk6U2zy8vLo0qULkydPrpb3y8jIoH///jgcDubOncu2bduYNGkSERER1fL+IiIiciKjLt4E0zAMZs+ezciRI0vnOZ1OHn74YT755BMyMzPp2LEjzz77LAMGDDil9xg/fjxLly7ll19+qZzQIiIictrqzBGbv3LHHXewfPlyPv30UzZt2sQVV1zBBRdcwK5du05pfV9//TU9e/bkiiuuICYmhm7duvH2229XcmoRERHxRr04YnPgwAFatmzJgQMHaNy4celygwYNonfv3kyYMMHr9/D39wfgvvvu44orrmD16tXcfffdTJkyhdGjR1fKdoiIiIh3fKwOUB02b96M2+2mbdu2ZeY7nU4iIyMB2L59OwkJCX+6nn/9618888wzAHg8Hnr27Flairp168aWLVtUbERERCxUL4pNbm4udrudtWvXYrfbyzwXHBwMQMuWLUlMTPzT9fxWggAaNWpE+/btyzyfkJDArFmzKim1iIiIeKteFJtu3brhdrtJTU3l7LPPPukyvr6+nHHGGRVeZ//+/dmxY0eZeTt37qR58+anlVVEREROXZ0pNrm5uezevbv08b59+9iwYQMNGjSgbdu2XHfdddxwww1MmjSJbt26kZaWxoIFC+jcuTPDhg3z+v3uvfde+vXrx4QJE7jyyitZtWoVb731Fm+99VZlbpaIiIh4oc4MHv75558ZOHDgCfNHjx7NtGnTcLlcPPXUU7z//vskJycTFRVFnz59eOKJJ+jUqdMpvee3337Lgw8+yK5du2jRogX33Xcf48aNO91NERERkVNUZ4qNiIiISL25jo2IiIjUfSo2IiIiUmfU6sHDHo+Hw4cPExISgmEYVscRERGRCjBNk5ycHBo3bozNVrnHWGp1sTl8+DBxcXFWxxAREZFTcPDgQZo2bVqp66zVxSYkJAQo2TGhoaEWpxEREZGKyM7OJi4urvRzvDLV6mLz2+mn0NBQFRsREZFapiqGkWjwsIiIiNQZKjYiIiJSZ6jYiIiISJ2hYiMiIiJ1hoqNiIiI1BkqNiIiIlJnqNiIiIhInaFiIyIiInWGio2IiIjUGSo2IiIiUmeo2IiIiEidoWIjIiIidUatvglmVcl35ZPpzMTAwDAMbIbthN9thq3kMbbS3+2G/YR5IiIiUn1UbE5i0aFF/HPxP097Pb8vQHbDjs2wnfynreSn3bBjt5X89LH5lD72MXxK59ttdhyGA4fdgY/hg4+t7OSwOXDYHPjafcv96Wvzxdfui7+Pf8lPuz9+dj/8fUp+/jbZbfZK2JsiIiLVR8XmJFIP7MLXNPBggAEmJh6g5LeKMzFxm24woZjiqglbhRw2B4GOQAJ8Agj0+fXnHx4HOYII9g0m2BFMiG8IwY5ggn2DCXGElDz2DSbUNxRfu6/VmyMiIvWAis1JdMj2Y23S/pM+Z/5u8gDFpkGB4UuB4UsRDpw2X4oMX4oMBy6bLy6bLx5MbGYRNk8RNorwMX/9iQsfXGCAExt7/dpS0Lg3MR3PJqRBNG7Tjdvjxm26KTaLKfYU4/a4KfYU4/K4KPaUzMvOOU7a/i140ncR5DpKsQEFhg9OwwenzYbT5kORYaPYZsNls+EyDFyGiQsPRYYHF79NboqN/1U3l8dFljOLLGfWae9TP3wIsQUS4hNMqCOUcP9wIgIiiQqMJjo0lsigKEKNIPwKTXzzivBkZ1KUnUpxThpm3jHshek4nBkU+wTjjulAcPOuND2jN+FRsaedTURE6g7DNE1vDkLUKNnZ2YSFhZGVlUVoaGilrXfvlpUcXfkZhjMLuzMbH1c2vsU5+LvzCPDkEmzmEWzmYzOqbtft9GnL8abn0+jMy2nerjuG7X/jvE2PhwM7N3B41WzCD86nbVEi9krK4gachoHTMCg0DApsBvmG7defBgU2GzmGneO2ALJt/uTZbBQZLpy2YgoND3l2g2ybjdxfpzzDwDyFsUYhbg8x7mKi3W5iit1Eu0um2GI3TV3FNC0uJsg0SaUBRwJakx+RgG+TzkS17knTVh2x+6izi4jUVFX1+Q0qNqfM43aTm5NJUX4uRc4CXM58XM4Cip35FBcV4C4qxOMq+YlpYvMLwsc3AB//IHz8AvENCMLhF4RfYBC+/kFkph7k8MovCD/wI22LEsuUpkNGLIdiBuLXsi/OvctomvozTc2UMnn22FuS1mgg4V2H4R8URlFBLkX52RQX5FJcmIO7MBezKA+zKA/DmQOmG0wTTA8GJT+BX3+aGB43NnchvkUZBLoyCXZnE2pmE2g4/3Lf5Jn+5Bgh5NlDyPMJIdsngAIKKTTzKTCcJZPNTb7NTbYdMu02Muw2jtntHLXbcdoq9mW9Bu6SktOkuKTo/FZ4GrgcZAV0w91iEM3PvJiGTVtV+J+riIhUPRWbclhZbKrSsZSD7F36OX6753JG/jr8DNcJyxSZPmwP6EZBi8E073spsc3aVEu2wvxcstKPkpt+lPzMNNxF+fiHRBIQFkVQeDShEdH4+vlXeH2uIif5udkU5mcTEBxOcEg4ee580vLTSC1ILfmZn0paQcnPw7mHOZR76C9Pj4W4PbR2FdG6yEVEcSihQR1p2+5vdD/zb/j5B57ubhARkdOgYlOOulpsfi8vJ5MdS7/Es+1bonK3kxbaEZ+EC2nT928Eh0ZYHc8yOUU5JOcmcyjnUMmUW/LzYM5BDuUcwvPrcO8/iix2E+sOpLF/M9oEtqBdSDsahTfHP6QBgaENCA6LJDAotPTUn7u4mONHD5J+eA95qUm40g9gZB3CN/8Ioc4Ugtw5JMUOoesNz+EfGFydu0BEpNZSsSlHfSg24r0idxH7svaxO3M3Ww5vYMvBlRwqOMQx+4lHvgAaFhfTpdBJV2cRXZxO2hQWU2gE4cJBhJmFw3D/5XvutzXFOfx12nY/t7I3R0SkzlGxKYeKjXgjtzCHxeu+YtvOeRwq3Mceex4HHG48fxjb7OsxaV9URNdCJ30LCulaUESWEUmGoyH5AbG4gptgC4/DP6o5xQXZNF/9JFFkUmzaWB03hh6jJnp1Ok5EpL5RsSmHio2crnxXPluPb2Vj2kbWH13PxrSNZBWVHb8T4BNAn0Z9OLvp2Zzd5Gxig8p+xTzzWAq7p99Gz5wFAOyxt8C45E1adjyz2rZDRKQ2UbEph4qNVDbTNDmQc4ANqRtYc3QNS5KXcKzgWJll2ka05ewmZ3N207PpEt0FH1vJV8vXzplKy1WPEEEORaadtS3/Qa9rH8fHoYsTioj8nopNOVRspKp5TA870new+NBifkn+hU1pm8pcfzrEN4RBzQYxovUIusd05/jRQxx8/xa65S8DYIdPOwKufItmbbtatAUiIjWPik05VGykumUUZrDs8DIWH1rM0sNLy3ztPC4kjr+1+hsXtxjO4Z++ot2Gpwgln0LTwYZGVxLUfihtep6vb0+JSL2nYlMOFRuxktvjZl3qOr7Z8w3fJ31PfnF+6XO9Y3szIKIPZ/z0Eb0K15fOd5oOdvl3ILdRfxp0HkKrzmfpKskiUu+o2JRDxUZqinxXPgsOLOCrPV+x6siq0tNVAT4B9LC35NzUXM5L30oM6WVel00gewK74ow7m2Z9L6NxfDsr4ouIVCsVm3Ko2EhNdCT3CN/s/Yavdn/FgZwDpfN7NezFiAbn03DPfvwOLqFV/npC+d9RniLTzro2d9H7mkew2e1WRBcRqRYqNuVQsZGazDRNNqRtYNbOWXy37zuKPcUAdIrqxLhO4zirUX/2bV7O8c0/EH7oJxJc2wDY7Ned2NFTiW4cb2F6EZGqo2JTDhUbqS1S8lKYumUqs3bNwukuuZFom4g23NzxZobGD8WGwapZL9J5yzMEGEVkEEJSv2foNuR6i5OLiFQ+FZtyqNhIbXO84DgfbPuAT3d8Sp4rD4BmIc24qdNNXNzyYg7v3opr5lhau/cAsDJyBJ3HTiYgKMTK2CIilUrFphwqNlJbZTmz+GT7J3yY+GHpV8YbBzXmX73/Rf+YPqyfdj99Uj4CSu5D5RrxFq279LcysohIpVGxKYeKjdR2+a58Ptv5GdO3TietIA2AAU0HMP7M8WSsX0PMgnuIIV0Di0WkTqnKz29bpa5NRLwS6AhkdIfRfHvJt9zU8SZ8DB9+PvQzI78cyfKwVIzbFrM+sD++hps+u19k63ODyEpPszq2iEiNpSM2IjXInsw9PL3yaVanrAagRVgLHur1IMayZaUDi3fbWxF921zCIhtanFZE5NToiI1IPdEqvBXvDnmXCWdNoIF/A/Zl7WPc/FuYHZtG4iUfkU4ord17SHv9QrKOH7U6rohIjaMjNiI1VHZRNq+ue5UZO2ZgYhLsCOa6xiO46ufXiSZLR25EpNbSERuReijUN5SH+zzMJ8M+oUNkB3Jduby5/yP+1fUc9tnCae3ew7HXLyDzWIrVUUVEagwVG5EarkNUBz666CMe7P0gfnY/VmdtZFzbliz1bUAr916Ov3EBGWlHrI4pIlIjqNiI1AJLine truncated
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[ 2.92142522e-04 -1.78855968e+01 1.17269351e-02]\n",
|
||||
"Manually calculated FWHM to 0.02761482178449844 mm\n",
|
||||
"Scipy calculated FWHM = -0.02800645446777139 mm\n",
|
||||
"Scipy calculated 1/e2 = -0.04800543212890318 mm\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"<Figure size 640x480 with 1 Axes>"
|
||||
],
|
||||
"image/png": "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 truncated
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"execution_count": 63
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
"source": "fit_knife_edge(x_data, motor='X')",
|
||||
"id": "41b7430b4ce4727",
|
||||
"outputs": [],
|
||||
"execution_count": null
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "markdown",
|
||||
"source": "**Knife edge scan in Y**",
|
||||
"id": "f6c950fbb9299d42"
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-07-09T18:01:19.109015Z",
|
||||
"start_time": "2025-07-09T18:00:32.468027Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"steps_y = 40\n",
|
||||
"start_pos_y = -0.20\n",
|
||||
"step_size_y = 0.002\n",
|
||||
"offset_y = 0.00\n",
|
||||
"sleep = 1.0 # wait after move before recording diode\n",
|
||||
"y_data=knife_edge(motor='Y', dev=d, beamline=beamline, steps=steps_y, start=start_pos_y, step_size=step_size_y, offset=offset_y, sleep=sleep)\n",
|
||||
"fit_knife_edge(y_data, motor='Y')"
|
||||
],
|
||||
"id": "f8e0541c9e92e4e6",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"-0.200 2.360645e-08\n",
|
||||
"-0.198 2.811506e-08\n",
|
||||
"-0.196 2.810113e-08\n",
|
||||
"-0.194 3.39931e-08\n",
|
||||
"-0.192 4.061688e-08\n",
|
||||
"-0.190 6.625245e-08\n",
|
||||
"-0.188 8.658314e-08\n",
|
||||
"-0.186 1.106975e-07\n",
|
||||
"-0.184 1.428539e-07\n",
|
||||
"-0.182 1.863939e-07\n",
|
||||
"-0.180 1.863939e-07\n",
|
||||
"-0.178 2.407869e-07\n",
|
||||
"-0.176 2.862987e-07\n",
|
||||
"-0.174 3.589597e-07\n",
|
||||
"-0.172 4.629766e-07\n",
|
||||
"-0.170 7.34634e-07\n",
|
||||
"-0.168 9.591903e-07\n",
|
||||
"-0.166 1.226978e-06\n",
|
||||
"-0.164 1.638941e-06\n",
|
||||
"-0.162 2.070232e-06\n",
|
||||
"-0.160 2.070232e-06\n",
|
||||
"-0.158 2.719557e-06\n",
|
||||
"-0.156 3.40311e-06\n",
|
||||
"-0.154 4.3336e-06\n",
|
||||
"-0.152 5.30817e-06\n",
|
||||
"-0.150 7.05408e-06\n",
|
||||
"-0.148 7.882228e-06\n",
|
||||
"-0.146 8.391648e-06\n",
|
||||
"-0.144 8.645698e-06\n",
|
||||
"-0.142 8.800723e-06\n",
|
||||
"-0.140 8.833474e-06\n",
|
||||
"-0.138 8.667967e-06\n",
|
||||
"-0.136 8.724034e-06\n",
|
||||
"-0.134 8.751249e-06\n",
|
||||
"-0.132 8.949502e-06\n",
|
||||
"-0.130 8.983748e-06\n",
|
||||
"-0.128 8.932714e-06\n",
|
||||
"-0.126 8.97258e-06\n",
|
||||
"-0.124 8.960077e-06\n",
|
||||
"-0.122 9.000123e-06\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"<Figure size 640x480 with 1 Axes>"
|
||||
],
|
||||
"image/png": "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 truncated
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[ 0.00048058 -0.15422773 0.00713343]\n",
|
||||
"Manually calculated FWHM to 0.016797947350266428 mm\n",
|
||||
"Scipy calculated FWHM = -0.015900000000000247 mm\n",
|
||||
"Scipy calculated 1/e2 = -0.02798400000000001 mm\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"<Figure size 640x480 with 1 Axes>"
|
||||
],
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAGdCAYAAADpBYyuAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAgrpJREFUeJzt3Xd4VFX6wPHvnZnMpDfSIUCA0HsxgCigWYNiwbILwoogC6srropYcBUVXVkLFmzYwZ+wKKuLLmoUKaIQAoSO9BYCSUgI6Zl+f39MMmRSIAlJJuX9PM88ydx77r3vmcDMO+ece46iqqqKEEIIIYRw0rg7ACGEEEKIpkYSJCGEEEKICiRBEkIIIYSoQBIkIYQQQogKJEESQgghhKhAEiQhhBBCiAokQRJCCCGEqEASJCGEEEKICnTuDqApsdvtnDlzBj8/PxRFcXc4QgghhKgBVVUpKCggKioKjaZ+2n4kQSrnzJkzREdHuzsMIYQQQtTBqVOnaNeuXb2cSxKkcvz8/ADHC+zv7+/maIQQdTF22Vh3h9CqfDfxO3eHIAT5+flER0c7P8frgyRI5ZR1q/n7+0uCJEQzpfOSt7XGJO+Voimpz+ExMkhbCCGEEKICSZCEEEIIISqQBEkIIYQQogJJkIQQQgghKqhTgvTOO+/QsWNHPD09iYuLY8uWLRctv2LFCrp3746npyd9+vTh+++/d9mvqipz584lMjISLy8v4uPjOXz4sEuZnJwcJk2ahL+/P4GBgUybNo3CwkLn/hMnTqAoSqXH5s2b61JFIYQQQrRitU6QvvjiC2bNmsUzzzzD9u3b6devHwkJCZw9e7bK8ps2beLOO+9k2rRp7Nixg3HjxjFu3Dj27t3rLPPyyy+zcOFCFi1aRHJyMj4+PiQkJGA0Gp1lJk2axL59+1i9ejWrVq1iw4YNzJgxo9L1fv75Z9LT052PQYMG1baKQgghhGjlFFVV1docEBcXx5AhQ3j77bcBx+zT0dHRPPDAAzzxxBOVyo8fP56ioiJWrVrl3DZ06FD69+/PokWLUFWVqKgoHnnkEWbPng1AXl4e4eHhLF68mAkTJrB//3569uzJ1q1bGTx4MACJiYnccMMNpKWlERUVxYkTJ4iJiWHHjh3079+/Ti9Gfn4+AQEB5OXlya2rQjRTo5eMdncIrcq6u9e5OwQhGuTzu1YtSGazmZSUFOLj4y+cQKMhPj6epKSkKo9JSkpyKQ+QkJDgLH/8+HEyMjJcygQEBBAXF+csk5SURGBgoDM5AoiPj0ej0ZCcnOxy7ptvvpmwsDBGjBjBt99+W5vqCSGEEEIAtZwoMjs7G5vNRnh4uMv28PBwDhw4UOUxGRkZVZbPyMhw7i/bdrEyYWFhroHrdAQHBzvL+Pr6smDBAq688ko0Gg1fffUV48aNY+XKldx8881VxmYymTCZTM7n+fn5F62/EEIIIVqHFjPlbEhICLNmzXI+HzJkCGfOnOGVV16pNkGaP38+zz33XGOFKIQQQohmolZdbCEhIWi1WjIzM122Z2ZmEhERUeUxERERFy1f9vNSZSoOArdareTk5FR7XXCMlzpy5Ei1++fMmUNeXp7zcerUqWrLCiGEEKL1qFWCpNfrGTRoEGvWrHFus9vtrFmzhmHDhlV5zLBhw1zKA6xevdpZPiYmhoiICJcy+fn5JCcnO8sMGzaM3NxcUlJSnGXWrl2L3W4nLi6u2nh37txJZGRktfsNBoNz3TVZf00IIYQQZWrdxTZr1izuvvtuBg8ezBVXXMEbb7xBUVERU6dOBWDy5Mm0bduW+fPnA/Dggw8ycuRIFixYwNixY1m+fDnbtm3jgw8+ABwLyz300EO88MILxMbGEhMTw9NPP01UVBTjxo0DoEePHowZM4bp06ezaNEiLBYLM2fOZMKECURFRQGwZMkS9Ho9AwYMAODrr7/mk08+4aOPPrrsF0kIIRqDzepJYV5vvP0P4eEhYyKFcKdaJ0jjx48nKyuLuXPnkpGRQf/+/UlMTHQOsk5NTUWjudAwNXz4cJYtW8ZTTz3Fk08+SWxsLCtXrqR3797OMo899hhFRUXMmDGD3NxcRowYQWJiIp6ens4yS5cuZebMmVx77bVoNBpuv/12Fi5c6BLb888/z8mTJ9HpdHTv3p0vvviCO+64o9YvihBCNDazKYjMU7dhtQRRmNeTqJjPqMeFyYUQtVTreZBaMpkHSYjmrznOg1RSFM3ZtJux272c20Kj/odvwEE3RlUzMg+SaArcPg+SEEKI+lWQ25uM1Duw270weJ3BP8gx1vJ81ghUVd6ihXCXFnObvxBCNCeq6kiC8s4NBcDH7wAhUYmgKhTm93B0teX2wi9oj5sjFaJ1kq8nQgjRyOx2HVmnb3ImRwFtkghtuwqNxopGayEwxLHI9vnsYdjtWneGKkSrJQmSEEI0IpvVm4yTf6KooBtgIyTyB4LDNroMyPYL3IVWl4/N6k/B+f7uClWIVk0SJCGEaCRmYwhnTkzCZIxCoykhov0K/AL3VSqn0dgICt0EQO65OOw2j8YOVYhWTxIkIYRoBMWFHTlz8k6slgB0+hyiOi7Dyyet2vK+AfvQ6XOw27zJyxnUiJEKIUASJCGEaHD55/uReeo2VLsBT+9TRHVYhofhfKVyflgYpzlNCEYURSUodCMAeTlDsFk9K5UXQjQcSZCEEKKBqKrCucxRnMv4A6DBN2AfEdH/QaszVip7pZLNYt0WHtQe5hXtTjyw4+N3EL0hE9VuIO/cFY1fASFaMUmQhBCigeRmDSc/ZzAAQaG/EhL5A4rG5lLGDwtztPt5QbeXYMUCQEeNkbs4gqJAUNhvAOSfH4DV4tO4FRCiFZMESQghGoCqQkFeLwDaRKwmMCS50tIhw5RsPtVt5TpNJjYV/l3sxQsFQQBM1J2hC/l4+RzH4JWGqnqQm131ouBCiPonCZIQQjQAsykMm9UfRbHgG+B6p1pZq9GLur20UcyctGp5IC+ID0xhrLEGsM7kjVaBxzW/o1Pszlakgtw+WMwB7qiOEK2OJEhCCNEAigs6A+DlcwKNxurcPkzJ5pNyrUbLi72YnhfOfjUAcDQxLSxpQ55doYvWyESO4eWdhpfPcUBLbvZwN9RGiNZHEiQhhGgAxYWOBMnb7ygAvlh4orTVKEQxk2rV8kBuEO+bwrBo9C7H5qpaFha3AeAuXRodKSQo1NGKVJjXE7MxpBFrIkTrJAmSEELUM6vFB7MxAlDx9j3G0NKxRgkVW4240GpU0VqLDxvNnngo8JhmH15e6Xj7HQQUzmdd2ZjVEaJVkgRJCCHqWVnrUbD3Mf5hSGF+uVajv+cG8b4pFHOFVqPKFF4vDqHQrtBDW8IfOVE6L5Kd4sJYTCURDV4PIVozSZCEEKKelSVI86I+IEGTib1cq9HvBFDTt95zqo53SoIBuEd3is76U/gG/A5ATtaIBoldCOEgCZIQQtQju90DY1F7/DWF/MFrPwBP5AXUsNWoskSzL1vMnugVlUe1+wgO2QjYMBZ1pKQoup6jF0KUkQRJCCHqUUlRe1TVg5varMag2Dlu1bLV7kfd324VFhSHUGxX6KMt5o/6PfgH7QLg/NmrUNV6C10IUY4kSEIIUY/Kbu+/PXg1AD8aDaDoLuucZ1Udi0ocE0j+RXeS7iFrURQLJmOUsztPCFG/JEESQoh6oqpQUtiZ9vp0BhpSsanws9m3Xs69yuzHDosBL0XlCf02/INTAMcSJEKI+icJkhBC1BOTMQKbzYfbg38CIMXiwTnFs17OraLwanEIJSoM1BYyMehbxzWL26Kq8lYuRH2T/1VCCFFPigs6o2Dn9qA1APxo9KQ+32bP2D34uLSrbabXHtoaUlFVD7nlX4gGIAmSEELUk+LCLgzx+Z12HjkU2RU2Wuqne628/5r82WvR46Oo/Cv6DUDFWCx3swlR3yRBEkKIemAx+2MxhXJ70M8ArDfpMdXhtv5LsaPwcnEIZhWu8j7EbYFrKZEESYh6JwmSEELUg+LCzngqRsYGONZM+8nkTXXLiFyuU3Y9nxkDAbgn9FsZhyREA5D/UUIIUQ+KCztzXcBmfLVGzti07LH7NOj1vjP5YVeht9dRwrR5mErCG/R6QrQ2kiAJIcRlstv0GIuiuT1oLQCrjXrUy5z76FJyVS37bY4uvGv8t8k4JCHqmSRIQghxmUqKOhKmy2WE7w4AfjI1bOtRmSSLNwDX+G+RBEmIeiYJkhBCXKbiws7cGrQOraKy26LjDN6Nct3NpQnSCN9dqCUhMg5JiHok/5uEEOIyqKpCcWGMs3vtJ6MnKI3z1nrU5kGmTYuXxsRQnwOYjDIOSYj6IgmSEEJcBlNJFD31Z+jqmYpZhfUNMPdR9RQ2W7wAuNZvK8Yi6WYTor5IgiSEEJehuKCLc+bs30x6ihRDo17/wjikrRiL2zXqtYVoySRBEkKIy2ApbM/Ngb8A8KPJi4aa+6g6O6yeGFUNbfVZxNgtMg5JiHoi/5OEEKKOLKYghnueoI0un3M2Ldusjdm95mBGQ4rF0Wo12m8nJmNYo8cgREskCZIQQtRRcWFnZ/fazyY9dk3Dzn1UnbK72a7124KxqL1bYhCipZEESQgh6khfHM61fluAhl1a5FLKBmr39z6EtynALTEI0dJIgiSEEHVgs3kSbziKXmPlkMXAMbVx5j6qSraq46DFB42iMlSbjqq6J1EToiWRBEkIIeqgpDCGO8qWFjHpQNG6NZ4kqwcA1/jtwCzzIQlx2SRBEkKIOgg3+tHf+xBWVWGNuXGWFrmYsm62q/22YymKcnM0QjR/kiAJIUQtqaqG6w1HANhsDOC84uXmiOCQTU+2zRM/bQl97CXuDkeIZk8SJCGEqCVTcVtuDdgAwGqzHXcNzi5PRSHJ7A/ACEOqjEMS4jJJgiSEELXU26whSp9Nns1AkhvmPqpOstXx81q/FMwyH5IQl0USJCGEqAVVhRv0RwFYUxKLine truncated
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"execution_count": 68
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
"outputs": [],
|
||||
"execution_count": null,
|
||||
"source": "fit_knife_edge(y_data, motor='Y')",
|
||||
"id": "d6dd221d89d3b71a"
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 2
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython2",
|
||||
"version": "2.7.6"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
Reference in new issue
Block a user