You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

843 lines
764 KiB

  1. {
  2. "cells": [
  3. {
  4. "attachments": {},
  5. "cell_type": "markdown",
  6. "metadata": {},
  7. "source": [
  8. "# Import supporting package"
  9. ]
  10. },
  11. {
  12. "cell_type": "code",
  13. "execution_count": 1,
  14. "metadata": {},
  15. "outputs": [],
  16. "source": [
  17. "import xarray as xr\n",
  18. "import numpy as np\n",
  19. "import copy\n",
  20. "\n",
  21. "from uncertainties import ufloat\n",
  22. "from uncertainties import unumpy as unp\n",
  23. "from uncertainties import umath\n",
  24. "import random\n",
  25. "import matplotlib.pyplot as plt\n",
  26. "plt.rcParams['font.size'] = 12\n",
  27. "\n",
  28. "from DataContainer.ReadData import read_hdf5_file\n",
  29. "from Analyser.ImagingAnalyser import ImageAnalyser\n",
  30. "from Analyser.FitAnalyser import FitAnalyser\n",
  31. "from Analyser.FitAnalyser import NewFitModel, DensityProfileBEC2dModel\n",
  32. "from ToolFunction.ToolFunction import *\n",
  33. "\n",
  34. "from scipy.optimize import curve_fit\n",
  35. "\n",
  36. "from ToolFunction.HomeMadeXarrayFunction import errorbar, dataarray_plot_errorbar\n",
  37. "xr.plot.dataarray_plot.errorbar = errorbar\n",
  38. "xr.plot.accessor.DataArrayPlotAccessor.errorbar = dataarray_plot_errorbar\n",
  39. "\n",
  40. "imageAnalyser = ImageAnalyser()\n",
  41. "\n",
  42. "import Analyser.FitAnalyser as fa\n",
  43. "# %matplotlib notebook"
  44. ]
  45. },
  46. {
  47. "attachments": {},
  48. "cell_type": "markdown",
  49. "metadata": {},
  50. "source": [
  51. "## Start a client for parallel computing"
  52. ]
  53. },
  54. {
  55. "cell_type": "code",
  56. "execution_count": 2,
  57. "metadata": {},
  58. "outputs": [
  59. {
  60. "name": "stdout",
  61. "output_type": "stream",
  62. "text": [
  63. "dict_keys(['camera_3'])\n",
  64. "The detected scaning axes and values are: \n",
  65. "\n",
  66. "{}\n"
  67. ]
  68. },
  69. {
  70. "data": {
  71. "text/plain": [
  72. "<matplotlib.collections.QuadMesh at 0x2729cb61be0>"
  73. ]
  74. },
  75. "execution_count": 2,
  76. "metadata": {},
  77. "output_type": "execute_result"
  78. },
  79. {
  80. "data": {
  81. "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAG/CAYAAACjYSiTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9f5RdV3nmiX9sydhXuKyosIvYBkv0WEYCq9opGASIcZmODKKJnQljrE5C3EoAJ/kO5QESYJzJLEJ60SSkQxYoDcFJdwQGOgIn3WAmOLEysTrIYELK7lKSqractgQ2xoVTsl2Oykay/f1jn6f2c967z723SlWyzNxnrbvuvefnPvvss/ez3/d533PK008//TR99NFHH3300Ucffczj1Ge6AH300UcfffTRRx8nG/oEqY8++uijjz766COgT5D66KOPPvroo48+AvoEqY8++uijjz766COgT5D66KOPPvroo48+AvoEqY8++uijjz766COgT5D66KOPPvroo48+AvoEqY8++uijjz766COgT5D66KOPPvroo48+AvoEqY8++uijjz766COgT5D66KOPPvroo4+e8Xd/93e8+c1v5p/9s3/GqlWrOPvss7n00ku5+eabe9r/4Ycf5tprr+Wcc87huc99Lq997WsZHx9f5lIvHCuf6QL00UcfffTRRx/PHhw6dIjZ2Vn+9b/+15x33nkcOXKEP/7jP+bKK6/kk5/8JNdee23jvk899RRvfOMb+W//7b/xnve8h7PPPpuPf/zjXHbZZfzN3/wN69evP4FX0hmn9F9W20cfffTRRx99HA+efPJJXvayl/H4448zNTXVuN3nP/95tm/fzhe+8AWuuuoqAL73ve9x0UUX8YY3vIHPfe5zJ6rIXdF3sfXRRx999NFHH8eFFStW8MIXvpCHH36443Y33XQTz3/+83nTm940v+ycc87h6quv5otf/CJPPPHEMpe0d/RdbD3iqaee4jvf+Q4DAwOccsopz3Rx+uijjz76OInx9NNPMzs7y3nnnceppy6PLeK//Jf/wqFDh5bkWD/xEz/BD/3QD9WWnX766Zx++umN+/zTP/0Tc3NzPPLII3zpS1/iK1/5Ctu3b+94njvvvJORkZG2OnnFK17BDTfcwN13382mTZsWfR1LiT5B6hHf+c53eOELX/hMF6OPPvroo49nEb797W/z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
  82. "text/plain": [
  83. "<Figure size 640x480 with 2 Axes>"
  84. ]
  85. },
  86. "metadata": {},
  87. "output_type": "display_data"
  88. }
  89. ],
  90. "source": [
  91. "groupList = [\n",
  92. " \"images/MOT_3D_Camera/in_situ_absorption\",\n",
  93. " \"images/ODT_1_Axis_Camera/in_situ_absorption\",\n",
  94. " \"images/ODT_2_Axis_Camera/in_situ_absorption\",\n",
  95. " \"images/Vertical_Axis_Camera/in_situ_absorption\",\n",
  96. "]\n",
  97. "\n",
  98. "dskey = {\n",
  99. " \"images/MOT_3D_Camera/in_situ_absorption\": \"camera_0\",\n",
  100. " \"images/ODT_1_Axis_Camera/in_situ_absorption\": \"camera_1\",\n",
  101. " \"images/ODT_2_Axis_Camera/in_situ_absorption\": \"camera_2\",\n",
  102. " \"images/Vertical_Axis_Camera/in_situ_absorption\": \"camera_3\"\n",
  103. "}\n",
  104. "\n",
  105. "img_dir = '//DyLabNAS/Data/'\n",
  106. "SequenceName = \"Evaporative_Cooling\" + \"/\"\n",
  107. "folderPath = img_dir + SequenceName + '2023/08/30'# get_date()\n",
  108. "\n",
  109. "shotNum = f\"0077\"\n",
  110. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  111. "\n",
  112. "dataSetDict = {\n",
  113. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
  114. " for i in [3]\n",
  115. "}\n",
  116. "print(dataSetDict.keys())\n",
  117. "\n",
  118. "dataSet = dataSetDict[\"camera_3\"]\n",
  119. "\n",
  120. "\n",
  121. "print_scanAxis(dataSet)\n",
  122. "\n",
  123. "scanAxis = get_scanAxis(dataSet)\n",
  124. "\n",
  125. "dataSet = auto_rechunk(dataSet)\n",
  126. "\n",
  127. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  128. "\n",
  129. "imageAnalyser.center = (550, 750)\n",
  130. "imageAnalyser.span = (900, 900)\n",
  131. "imageAnalyser.fraction = (0.1, 0.1)\n",
  132. "\n",
  133. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  134. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  135. "\n",
  136. "dataSet_cropOD.plot.pcolormesh(cmap='jet', col=scanAxis[0], row=scanAxis[1], vmin=0, vmax=3)\n"
  137. ]
  138. },
  139. {
  140. "cell_type": "code",
  141. "execution_count": 3,
  142. "metadata": {},
  143. "outputs": [
  144. {
  145. "data": {
  146. "text/plain": [
  147. "<matplotlib.collections.QuadMesh at 0x20902035310>"
  148. ]
  149. },
  150. "execution_count": 3,
  151. "metadata": {},
  152. "output_type": "execute_result"
  153. },
  154. {
  155. "data": {
  156. "image/png": "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
  157. "text/plain": [
  158. "<Figure size 640x480 with 2 Axes>"
  159. ]
  160. },
  161. "metadata": {},
  162. "output_type": "display_data"
  163. }
  164. ],
  165. "source": [
  166. "dataSet_cropOD.plot.pcolormesh(cmap='jet', col=scanAxis[0], row=scanAxis[1], vmin=0, vmax=1)"
  167. ]
  168. },
  169. {
  170. "cell_type": "code",
  171. "execution_count": 4,
  172. "metadata": {},
  173. "outputs": [],
  174. "source": [
  175. "from scipy.ndimage import rotate"
  176. ]
  177. },
  178. {
  179. "cell_type": "code",
  180. "execution_count": 5,
  181. "metadata": {},
  182. "outputs": [],
  183. "source": [
  184. "data_rot = copy.deepcopy(dataSet_cropOD)\n",
  185. "data_rot.data = rotate(data_rot.data, 36, reshape=False)"
  186. ]
  187. },
  188. {
  189. "cell_type": "code",
  190. "execution_count": 3,
  191. "metadata": {},
  192. "outputs": [],
  193. "source": [
  194. "x = dataSet_cropOD.x.data\n",
  195. "y = dataSet_cropOD.y.data\n",
  196. "\n",
  197. "X,Y = np.meshgrid(x,y)\n",
  198. "X_ = X.flatten()\n",
  199. "Y_ = Y.flatten()\n",
  200. "# print(y)"
  201. ]
  202. },
  203. {
  204. "cell_type": "code",
  205. "execution_count": 25,
  206. "metadata": {},
  207. "outputs": [
  208. {
  209. "ename": "type",
  210. "evalue": "only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices",
  211. "output_type": "error",
  212. "traceback": [
  213. "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
  214. "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)",
  215. "Cell \u001b[1;32mIn[25], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m params\u001b[39m.\u001b[39;49mdata[\u001b[39m'\u001b[39;49m\u001b[39mx0_bec\u001b[39;49m\u001b[39m'\u001b[39;49m]\n",
  216. "\u001b[1;31mIndexError\u001b[0m: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices"
  217. ]
  218. }
  219. ],
  220. "source": [
  221. "params.data['x0_bec']"
  222. ]
  223. },
  224. {
  225. "cell_type": "code",
  226. "execution_count": 4,
  227. "metadata": {},
  228. "outputs": [
  229. {
  230. "name": "stdout",
  231. "output_type": "stream",
  232. "text": [
  233. "shape: (900, 900)\n"
  234. ]
  235. },
  236. {
  237. "data": {
  238. "image/png": "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
  239. "text/plain": [
  240. "<Figure size 640x480 with 1 Axes>"
  241. ]
  242. },
  243. "metadata": {},
  244. "output_type": "display_data"
  245. },
  246. {
  247. "name": "stdout",
  248. "output_type": "stream",
  249. "text": [
  250. "x smaller y, 1d fit along x\n",
  251. "\n",
  252. "1d fit initialization\n",
  253. "center = [419. 428.]\n",
  254. "BEC widths: [ 80 339]\n",
  255. "\n",
  256. "1d init fit values\n",
  257. "Name Value Min Max Stderr Vary Expr Brute_Step\n",
  258. "amp_bec 1.145 0 2.977 None True None None\n",
  259. "amp_th 1.145 0 2.977 None True None None\n",
  260. "deltax 240 0 900 None True None None\n",
  261. "sigma_bec 65.57 0 160 None True None None\n",
  262. "sigma_th 165.8 0 inf None False 0.632*sigma_bec + 0.518*deltax None\n",
  263. "x0_bec 419 409 429 None True None None\n",
  264. "x0_th 419 409 429 None True None None\n",
  265. "1d fitted values\n",
  266. "x0_bec: 421.007, (init = 419.000), bounds = [409.00 : 429.00] \n",
  267. "x0_th: 409.000, (init = 419.000), bounds = [409.00 : 429.00] \n",
  268. "amp_bec: 1.923, (init = 1.145), bounds = [0.00 : 2.98] \n",
  269. "amp_th: 0.351, (init = 1.145), bounds = [0.00 : 2.98] \n",
  270. "sigma_bec: 63.902, (init = 65.574), bounds = [0.00 : 160.00] \n",
  271. "sigma_th: 40.386, (init = 165.763), bounds = [0.00 : inf] \n",
  272. "\n"
  273. ]
  274. },
  275. {
  276. "data": {
  277. "image/png": "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
  278. "text/plain": [
  279. "<Figure size 640x480 with 1 Axes>"
  280. ]
  281. },
  282. "metadata": {},
  283. "output_type": "display_data"
  284. },
  285. {
  286. "name": "stdout",
  287. "output_type": "stream",
  288. "text": [
  289. "\n",
  290. "Init Params\n",
  291. "Name Value Min Max Stderr Vary Expr Brute_Step\n",
  292. "amp_bec 2.348 0 3.812 None True None None\n",
  293. "amp_th 0.4282 0 3.812 None True None None\n",
  294. "atom_number_bec 5.239e+04 -inf inf None False amp_bec / 5 * 2 * 3.14159265359 * sigmax_bec * sigmay_bec None\n",
  295. "atom_number_th 3211 -inf inf None False amp_th * 2 * 3.14159265359 * 1.20206 / 1.643 * sigma_th * sigma_th None\n",
  296. "condensate_fraction 0.9423 -inf inf None False atom_number_bec / (atom_number_bec + atom_number_th) None\n",
  297. "rot_angle -36 -66 -6 None False None None\n",
  298. "sigma_th 40.39 0 900 None True None None\n",
  299. "sigmax_bec 63.9 0 160 None True None None\n",
  300. "sigmay_bec 277.9 0 678 None True None None\n",
  301. "x0_bec 419 409 429 None True None None\n",
  302. "x0_th 419 409 429 None True None None\n",
  303. "y0_bec 428 418 438 None True None None\n",
  304. "y0_th 428 418 438 None True None None\n",
  305. "\n",
  306. "bval first fit\n",
  307. "amp_bec: 2.632, (init = 2.348), bounds = [0.00 : 3.81] \n",
  308. "amp_th: 0.000, (init = 0.428), bounds = [0.00 : 3.81] \n",
  309. "x0_bec: 409.000, (init = 419.000), bounds = [409.00 : 429.00] \n",
  310. "y0_bec: 438.000, (init = 428.000), bounds = [418.00 : 438.00] \n",
  311. "x0_th: 409.002, (init = 419.000), bounds = [409.00 : 429.00] \n",
  312. "y0_th: 438.000, (init = 428.000), bounds = [418.00 : 438.00] \n",
  313. "sigmax_bec: 69.914, (init = 63.902), bounds = [0.00 : 160.00] \n",
  314. "sigmay_bec: 283.514, (init = 277.869), bounds = [0.00 : 678.00] \n",
  315. "sigma_th: 65.907, (init = 40.386), bounds = [0.00 : 900.00] \n",
  316. "rot_angle: -36.000, (init = -36.000), bounds = [-66.00 : -6.00] \n",
  317. "\n"
  318. ]
  319. }
  320. ],
  321. "source": [
  322. "data = dataSet_cropOD\n",
  323. "fitModel = DensityProfileBEC2dModel(is_debug=True)\n",
  324. "fitAnalyser_1 = FitAnalyser(fitModel, fitDim=2)\n",
  325. "params = fitAnalyser_1.guess(data, guess_kwargs=dict(rot_angle=36, vary_rot=False, pre_check=False, post_check=False))\n",
  326. "result = fitAnalyser_1.fit(data, paramsArray=params)\n",
  327. "# result = fitModel.fit(data.data.flatten('F'), x= X_, y=Y_)\n"
  328. ]
  329. },
  330. {
  331. "cell_type": "code",
  332. "execution_count": 1,
  333. "metadata": {},
  334. "outputs": [
  335. {
  336. "ename": "NameError",
  337. "evalue": "name 'plt' is not defined",
  338. "output_type": "error",
  339. "traceback": [
  340. "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
  341. "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
  342. "Cell \u001b[1;32mIn[1], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m# fig, axs = plt.subplots(shape[0] , 5, figsize=(14, 4 * shape[0] ),dpi = 100)\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m fig, axs \u001b[39m=\u001b[39m plt\u001b[39m.\u001b[39msubplots(\u001b[39m1\u001b[39m , \u001b[39m3\u001b[39m, figsize\u001b[39m=\u001b[39m(\u001b[39m13\u001b[39m,\u001b[39m4\u001b[39m ),dpi \u001b[39m=\u001b[39m \u001b[39m100\u001b[39m)\n\u001b[0;32m 4\u001b[0m vmax\u001b[39m=\u001b[39m\u001b[39m2\u001b[39m\n\u001b[0;32m 5\u001b[0m cropOD \u001b[39m=\u001b[39m data\u001b[39m.\u001b[39mto_numpy()\n",
  343. "\u001b[1;31mNameError\u001b[0m: name 'plt' is not defined"
  344. ]
  345. }
  346. ],
  347. "source": [
  348. "# fig, axs = plt.subplots(shape[0] , 5, figsize=(14, 4 * shape[0] ),dpi = 100)\n",
  349. "fig, axs = plt.subplots(1 , 3, figsize=(13,4 ),dpi = 100)\n",
  350. "\n",
  351. "vmax=2\n",
  352. "cropOD = data.to_numpy()\n",
  353. "\n",
  354. "\n",
  355. "# axs[i,0].set_title(f'image {i}, cond. frac = {Fitmodel.cond_frac(result[i], X, Y) *1e2:.2f} %', loc='left', fontsize=18)\n",
  356. "man_fit = fa.density_profile_BEC_2d(X,Y, amp_bec=2.348, amp_th=0.4282, sigma_th=40.39, sigmax_bec=64, sigmay_bec=278, \n",
  357. " x0_bec=419,x0_th=419,y0_bec=428, y0_th=428, rot_angle=-36)\n",
  358. "\n",
  359. "\n",
  360. "ax = axs[0]\n",
  361. "ax.pcolormesh(X, Y, cropOD.T, vmin=0, vmax=3, cmap='jet', shading='auto')\n",
  362. "#plt.colorbar(art, ax=ax, label='z')\n",
  363. "\n",
  364. "\n",
  365. "# Plot gaussian 2d Fit + legend including Width parameters\n",
  366. "ax = axs[1]\n",
  367. "\n",
  368. "ax.pcolormesh(X, Y, man_fit, cmap='jet', shading='auto')\n",
  369. "#plt.colorbar(art, ax=ax, label='z')\n",
  370. "\n",
  371. "ax = axs[2]\n",
  372. "\n",
  373. "ax.pcolormesh(X, Y, man_fit-cropOD.T, vmin=0, vmax=0.2, cmap='jet', shading='auto')\n"
  374. ]
  375. },
  376. {
  377. "cell_type": "code",
  378. "execution_count": null,
  379. "metadata": {},
  380. "outputs": [
  381. {
  382. "name": "stdout",
  383. "output_type": "stream",
  384. "text": [
  385. "\n",
  386. "0\n",
  387. "0.5\n",
  388. "0.2\n",
  389. "0.5\n",
  390. "0.2\n",
  391. "1.3375883632180532\n",
  392. "\n",
  393. "30\n",
  394. "0.5\n",
  395. "0.2\n",
  396. "0.5330127018922194\n",
  397. "-0.07679491924311221\n",
  398. "1.3375883632180532\n",
  399. "\n",
  400. "60\n",
  401. "0.5\n",
  402. "0.2\n",
  403. "0.4232050807568878\n",
  404. "-0.33301270189221926\n",
  405. "1.3375883632180534\n",
  406. "\n",
  407. "90\n",
  408. "0.5\n",
  409. "0.2\n",
  410. "0.20000000000000004\n",
  411. "-0.5\n",
  412. "1.3375883632180532\n",
  413. "\n",
  414. "120\n",
  415. "0.5\n",
  416. "0.2\n",
  417. "-0.07679491924311213\n",
  418. "-0.5330127018922193\n",
  419. "1.3375883632180536\n",
  420. "\n",
  421. "150\n",
  422. "0.5\n",
  423. "0.2\n",
  424. "-0.3330127018922194\n",
  425. "-0.42320508075688773\n",
  426. "1.3375883632180532\n"
  427. ]
  428. }
  429. ],
  430. "source": [
  431. "import Analyser.FitAnalyser as fa\n",
  432. "import numpy as np\n",
  433. "for angle in np.arange(0,180,30):\n",
  434. " print()\n",
  435. " print(angle)\n",
  436. " print(fa.density_profile_BEC_2d(0.5,0.2, rot_angle=angle))"
  437. ]
  438. },
  439. {
  440. "cell_type": "code",
  441. "execution_count": null,
  442. "metadata": {},
  443. "outputs": [],
  444. "source": [
  445. "x = dataSet_cropOD.x.data\n",
  446. "y = dataSet_cropOD.y.data\n",
  447. "\n",
  448. "X,Y = np.meshgrid(x,y)\n",
  449. "X_ = X.flatten()\n",
  450. "Y_ = Y.flatten()"
  451. ]
  452. },
  453. {
  454. "cell_type": "code",
  455. "execution_count": 15,
  456. "metadata": {},
  457. "outputs": [],
  458. "source": [
  459. "keys = ['amp_bec', 'amp_th','x0_bec','y0_bec','x0_th','y0_th','sigmax_bec','sigmay_bec','sigma_th','rot_angle']"
  460. ]
  461. },
  462. {
  463. "cell_type": "code",
  464. "execution_count": 16,
  465. "metadata": {},
  466. "outputs": [
  467. {
  468. "name": "stdout",
  469. "output_type": "stream",
  470. "text": [
  471. "{'amp_bec': 2.63233857911176, 'amp_th': 2.2068623923891248e-06, 'x0_bec': 409.00000000030843, 'y0_bec': 437.9999999999945, 'x0_th': 409.00151243134604, 'y0_th': 437.99999780448076, 'sigmax_bec': 69.91365732143392, 'sigmay_bec': 283.51382854536473, 'sigma_th': 65.90653264163306, 'rot_angle': -36.0}\n"
  472. ]
  473. }
  474. ],
  475. "source": [
  476. "res = fitAnalyser_1.get_fit_value(result)\n",
  477. "bval = {}\n",
  478. "for key in keys:\n",
  479. " bval[key] = float(res[key].data)\n",
  480. "print(bval)"
  481. ]
  482. },
  483. {
  484. "cell_type": "code",
  485. "execution_count": 29,
  486. "metadata": {},
  487. "outputs": [
  488. {
  489. "data": {
  490. "image/png": "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
  491. "text/plain": [
  492. "<Figure size 2000x400 with 5 Axes>"
  493. ]
  494. },
  495. "metadata": {},
  496. "output_type": "display_data"
  497. }
  498. ],
  499. "source": [
  500. "# fig, axs = plt.subplots(shape[0] , 5, figsize=(14, 4 * shape[0] ),dpi = 100)\n",
  501. "shape = [1]\n",
  502. "fig, axs = plt.subplots(shape[0] , 5, figsize=(20,4 * shape[0] ),dpi = 100)\n",
  503. "# fig.suptitle(f'{file}_{saveprefix}: ν = ({data_x.trap_f[0]}, {data_x.trap_f[1]}, {data_x.trap_f[2]}) Hz, T = {data_x.temp[0]*1e9:.0f}nK, tof = {data_x.tof * 1e3:.0f}ms, a = {data_x.a_fac :.0f}a$_0$, N = {data_x.N:.0e} ', y=-0.005*shape[0]+0.965, fontsize=24)\n",
  504. "# fig.suptitle('test', va='bottom')\n",
  505. "cropOD = data.to_numpy()\n",
  506. "for i in range(0,shape[0]):\n",
  507. "\n",
  508. " # axs[i,0].set_title(f'image {i}, cond. frac = {Fitmodel.cond_frac(result[i], X, Y) *1e2:.2f} %', loc='left', fontsize=18)\n",
  509. " man_fit = fa.density_profile_BEC_2d(X,Y, amp_bec=2.348, amp_th=0.4282, sigma_th=40.39, sigmax_bec=64, sigmay_bec=278, \n",
  510. " x0_bec=419,x0_th=419,y0_bec=428, y0_th=428, rot_angle=-36)\n",
  511. " \n",
  512. " # bval = result.best_values\n",
  513. " fit = fa.density_profile_BEC_2d(X,Y, **bval)\n",
  514. " vmax = np.max(cropOD)\n",
  515. " # vmax = 1\n",
  516. "\n",
  517. " if bval['amp_bec'] > bval['amp_th']:\n",
  518. " cen_str = 'bec'\n",
  519. " else:\n",
  520. " cen_str = 'th'\n",
  521. " cen_x = round(bval[f'x0_{cen_str}'])\n",
  522. " cen_y = round(bval[f'y0_{cen_str}'])\n",
  523. "\n",
  524. " ax = axs[0]\n",
  525. " ax.pcolormesh(X, Y, cropOD.T, vmin=0, vmax=vmax, cmap='jet', shading='auto')\n",
  526. " #plt.colorbar(art, ax=ax, label='z')\n",
  527. "\n",
  528. "\n",
  529. " # Plot gaussian 2d Fit + legend including Width parameters\n",
  530. " ax = axs[1]\n",
  531. "\n",
  532. " ax.pcolormesh(X, Y, fit, cmap='jet', shading='auto')\n",
  533. " #plt.colorbar(art, ax=ax, label='z')\n",
  534. "\n",
  535. " ax = axs[2]\n",
  536. "\n",
  537. " ax.pcolormesh(X, Y, fit-cropOD.T, vmin=0, vmax=0.2, cmap='jet', shading='auto')\n",
  538. "\n",
  539. " for i in range(0,2):\n",
  540. " axs[i].hlines(bval['y0_bec'], 0,900)\n",
  541. " axs[i].hlines(bval['y0_th'], 0,900)\n",
  542. "\n",
  543. " axs[i].vlines(bval['x0_bec'], 0,900)\n",
  544. " axs[i].vlines(bval['x0_th'], 0,900)\n",
  545. "\n",
  546. " axs[i].vlines(419, 0,900, color='red')\n",
  547. " axs[i].hlines(428, 0,900, color='red')\n",
  548. "\n",
  549. " ax = axs[3]\n",
  550. "\n",
  551. " ax.plot(x, cropOD.T[cen_y, :])\n",
  552. " ax.plot(x, fit[cen_y, :], label='bimodal')\n",
  553. " ax.plot(x, fa.thermal(x, bval['x0_th'], bval['amp_th'], bval['sigma_th']), label='thermal')\n",
  554. " ax.legend(fontsize=8)\n",
  555. "\n",
  556. " ax = axs[4]\n",
  557. "\n",
  558. " ax.plot(y, cropOD.T[:, cen_x])\n",
  559. " ax.plot(y, fit[:, cen_x], label='bimodal')\n",
  560. " ax.plot(y, fa.thermal(y, bval['y0_th'], bval['amp_th'], bval['sigma_th']), label='thermal')\n",
  561. " ax.legend(fontsize=8)\n",
  562. "\n",
  563. "\n",
  564. "t_fonts=20\n"
  565. ]
  566. },
  567. {
  568. "cell_type": "code",
  569. "execution_count": 28,
  570. "metadata": {},
  571. "outputs": [
  572. {
  573. "data": {
  574. "text/plain": [
  575. "2.527851655733842e-109"
  576. ]
  577. },
  578. "execution_count": 28,
  579. "metadata": {},
  580. "output_type": "execute_result"
  581. }
  582. ],
  583. "source": [
  584. "fit[300, 400]"
  585. ]
  586. },
  587. {
  588. "cell_type": "code",
  589. "execution_count": 27,
  590. "metadata": {},
  591. "outputs": [
  592. {
  593. "data": {
  594. "text/plain": [
  595. "array([[ 0, 1, 2, ..., 897, 898, 899],\n",
  596. " [ 0, 1, 2, ..., 897, 898, 899],\n",
  597. " [ 0, 1, 2, ..., 897, 898, 899],\n",
  598. " ...,\n",
  599. " [ 0, 1, 2, ..., 897, 898, 899],\n",
  600. " [ 0, 1, 2, ..., 897, 898, 899],\n",
  601. " [ 0, 1, 2, ..., 897, 898, 899]], dtype=int64)"
  602. ]
  603. },
  604. "execution_count": 27,
  605. "metadata": {},
  606. "output_type": "execute_result"
  607. }
  608. ],
  609. "source": [
  610. "X"
  611. ]
  612. },
  613. {
  614. "cell_type": "code",
  615. "execution_count": null,
  616. "metadata": {},
  617. "outputs": [],
  618. "source": []
  619. },
  620. {
  621. "cell_type": "code",
  622. "execution_count": null,
  623. "metadata": {},
  624. "outputs": [],
  625. "source": []
  626. },
  627. {
  628. "cell_type": "code",
  629. "execution_count": null,
  630. "metadata": {},
  631. "outputs": [],
  632. "source": []
  633. },
  634. {
  635. "cell_type": "code",
  636. "execution_count": null,
  637. "metadata": {},
  638. "outputs": [],
  639. "source": []
  640. },
  641. {
  642. "cell_type": "code",
  643. "execution_count": null,
  644. "metadata": {},
  645. "outputs": [],
  646. "source": []
  647. },
  648. {
  649. "cell_type": "code",
  650. "execution_count": null,
  651. "metadata": {},
  652. "outputs": [],
  653. "source": []
  654. },
  655. {
  656. "cell_type": "code",
  657. "execution_count": null,
  658. "metadata": {},
  659. "outputs": [],
  660. "source": []
  661. },
  662. {
  663. "cell_type": "code",
  664. "execution_count": null,
  665. "metadata": {},
  666. "outputs": [],
  667. "source": [
  668. "%matplotlib notebook\n",
  669. "shotNum = \"0024\"\n",
  670. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  671. "\n",
  672. "dataSetDict = {\n",
  673. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  674. " for i in [0]\n",
  675. "}\n",
  676. "\n",
  677. "dataSet = dataSetDict[\"camera_0\"]\n",
  678. "\n",
  679. "print_scanAxis(dataSet)\n",
  680. "\n",
  681. "scanAxis = get_scanAxis(dataSet)\n",
  682. "\n",
  683. "dataSet = auto_rechunk(dataSet)\n",
  684. "\n",
  685. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  686. "\n",
  687. "imageAnalyser.center = (135, 990)\n",
  688. "imageAnalyser.span = (250, 250)\n",
  689. "imageAnalyser.fraction = (0.1, 0.1)\n",
  690. "\n",
  691. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  692. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  693. "\n",
  694. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  695. "Ncount_mean = calculate_mean(Ncount)\n",
  696. "Ncount_std = calculate_std(Ncount)\n",
  697. "\n",
  698. "fig = plt.figure()\n",
  699. "ax = fig.gca()\n",
  700. "Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
  701. "\n",
  702. "plt.ylabel('NCount')\n",
  703. "plt.tight_layout()\n",
  704. "#plt.ylim([0, 3500])\n",
  705. "plt.grid(visible=1)\n",
  706. "plt.show()"
  707. ]
  708. },
  709. {
  710. "cell_type": "code",
  711. "execution_count": null,
  712. "metadata": {
  713. "scrolled": false
  714. },
  715. "outputs": [],
  716. "source": [
  717. "l = list(np.arange(0.15, 0.25, 0.005))\n",
  718. "# l = np.logspace(np.log10(250e-6), np.log10(500e-3), num=15)\n",
  719. "\n",
  720. "l = [round(item, 7) for item in l]\n",
  721. "random.shuffle(l)\n",
  722. "\n",
  723. "print(l)\n",
  724. "print(len(l))\n",
  725. "np.mean(l)"
  726. ]
  727. },
  728. {
  729. "cell_type": "code",
  730. "execution_count": null,
  731. "metadata": {},
  732. "outputs": [],
  733. "source": [
  734. "[10.25, 10.255, 10.26, 10.265, 10.27, 10.275, 10.28, 10.285, 10.29, 10.295, 10.3, 10.305, 10.31, 10.315, 10.32, 10.325, 10.33, 10.335, 10.34, 10.345, 10.35, 10.355]"
  735. ]
  736. },
  737. {
  738. "cell_type": "code",
  739. "execution_count": null,
  740. "metadata": {},
  741. "outputs": [],
  742. "source": [
  743. "pixel = 5.86e-6\n",
  744. "M = 0.6827\n",
  745. "F = (1/(0.3725*8.4743e-14)) * (pixel / M)**2\n",
  746. "NCount = 85000\n",
  747. "AtomNumber = NCount * F / 1e8\n",
  748. "print(AtomNumber)\n"
  749. ]
  750. },
  751. {
  752. "cell_type": "code",
  753. "execution_count": null,
  754. "metadata": {},
  755. "outputs": [],
  756. "source": [
  757. "muB = 9.274e-24\n",
  758. "hbar = 6.626e-34 / (2 * np.pi)\n",
  759. "gJ = 1.24\n",
  760. "Delta = 2 * np.pi * 100 * 1e3\n",
  761. "\n",
  762. "Bz = (Delta*hbar) / (muB*gJ)\n",
  763. "print(Bz * 1e4)"
  764. ]
  765. },
  766. {
  767. "attachments": {},
  768. "cell_type": "markdown",
  769. "metadata": {},
  770. "source": [
  771. "## ODT 1 Calibration"
  772. ]
  773. },
  774. {
  775. "cell_type": "code",
  776. "execution_count": null,
  777. "metadata": {},
  778. "outputs": [],
  779. "source": [
  780. "v_high = 2.7\n",
  781. "\"\"\"High Power\"\"\"\n",
  782. "P_arm1_high = 5.776 * v_high - 0.683\n",
  783. "\n",
  784. "v_mid = 0.2076\n",
  785. "\"\"\"Intermediate Power\"\"\"\n",
  786. "P_arm1_mid = 5.815 * v_mid - 0.03651\n",
  787. "\n",
  788. "v_low = 0.0587\n",
  789. "\"\"\"Low Power\"\"\"\n",
  790. "P_arm1_low = 5271 * v_low - 27.5\n",
  791. "\n",
  792. "print(round(P_arm1_high, 3))\n",
  793. "print(round(P_arm1_mid, 3))\n",
  794. "print(round(P_arm1_low, 3))"
  795. ]
  796. },
  797. {
  798. "attachments": {},
  799. "cell_type": "markdown",
  800. "metadata": {},
  801. "source": [
  802. "## ODT 2 Power Calibration"
  803. ]
  804. },
  805. {
  806. "cell_type": "code",
  807. "execution_count": null,
  808. "metadata": {},
  809. "outputs": [],
  810. "source": [
  811. "v = 0.7607\n",
  812. "P_arm2 = 2.302 * v - 0.06452\n",
  813. "print(round(P_arm2, 3))"
  814. ]
  815. }
  816. ],
  817. "metadata": {
  818. "kernelspec": {
  819. "display_name": "Python 3 (ipykernel)",
  820. "language": "python",
  821. "name": "python3"
  822. },
  823. "language_info": {
  824. "codemirror_mode": {
  825. "name": "ipython",
  826. "version": 3
  827. },
  828. "file_extension": ".py",
  829. "mimetype": "text/x-python",
  830. "name": "python",
  831. "nbconvert_exporter": "python",
  832. "pygments_lexer": "ipython3",
  833. "version": "3.9.13"
  834. },
  835. "vscode": {
  836. "interpreter": {
  837. "hash": "c05913ad4f24fdc6b2418069394dc5835b1981849b107c9ba6df693aafd66650"
  838. }
  839. }
  840. },
  841. "nbformat": 4,
  842. "nbformat_minor": 2
  843. }