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.

2615 lines
1.6 MiB

1 year ago
1 year ago
  1. {
  2. "cells": [
  3. {
  4. "attachments": {},
  5. "cell_type": "markdown",
  6. "metadata": {},
  7. "source": [
  8. "### Import stuff"
  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 pandas as pd\n",
  19. "import numpy as np\n",
  20. "import scipy.constants as const\n",
  21. "import scipy.integrate as integrate\n",
  22. "import mpmath as mp\n",
  23. "import copy\n",
  24. "import xarray\n",
  25. "\n",
  26. "# import xrft\n",
  27. "# import finufft\n",
  28. "\n",
  29. "from uncertainties import ufloat\n",
  30. "from uncertainties import unumpy as unp\n",
  31. "from uncertainties import umath\n",
  32. "\n",
  33. "from datetime import datetime\n",
  34. "\n",
  35. "import matplotlib.pyplot as plt\n",
  36. "plt.rcParams['font.size'] = 18\n",
  37. "\n",
  38. "from DataContainer.ReadData import read_hdf5_file, read_hdf5_global, read_hdf5_run_time\n",
  39. "from Analyser.ImagingAnalyser import ImageAnalyser\n",
  40. "from Analyser.FitAnalyser import FitAnalyser\n",
  41. "from ToolFunction.ToolFunction import *\n",
  42. "from Analyser.FitAnalyser import Gaussian2dModel, DensityProfileBEC2dModel\n",
  43. "from lmfit.lineshapes import gaussian2d\n",
  44. "\n",
  45. "\n",
  46. "from ToolFunction.HomeMadeXarrayFunction import errorbar, dataarray_plot_errorbar\n",
  47. "xr.plot.dataarray_plot.errorbar = errorbar\n",
  48. "xr.plot.accessor.DataArrayPlotAccessor.errorbar = dataarray_plot_errorbar\n",
  49. "\n",
  50. "imageAnalyser = ImageAnalyser()\n",
  51. "\n",
  52. "Li2_vec = np.vectorize(lambda x: np.array(mp.fp.polylog(2, x), dtype=np.complex128))"
  53. ]
  54. },
  55. {
  56. "cell_type": "code",
  57. "execution_count": 2,
  58. "metadata": {},
  59. "outputs": [
  60. {
  61. "data": {
  62. "text/html": [
  63. "<div>\n",
  64. " <div style=\"width: 24px; height: 24px; background-color: #e1e1e1; border: 3px solid #9D9D9D; border-radius: 5px; position: absolute;\"> </div>\n",
  65. " <div style=\"margin-left: 48px;\">\n",
  66. " <h3 style=\"margin-bottom: 0px;\">Client</h3>\n",
  67. " <p style=\"color: #9D9D9D; margin-bottom: 0px;\">Client-32175c6f-1597-11ee-bde8-80e82ce2fa8e</p>\n",
  68. " <table style=\"width: 100%; text-align: left;\">\n",
  69. "\n",
  70. " <tr>\n",
  71. " \n",
  72. " <td style=\"text-align: left;\"><strong>Connection method:</strong> Cluster object</td>\n",
  73. " <td style=\"text-align: left;\"><strong>Cluster type:</strong> distributed.LocalCluster</td>\n",
  74. " \n",
  75. " </tr>\n",
  76. "\n",
  77. " \n",
  78. " <tr>\n",
  79. " <td style=\"text-align: left;\">\n",
  80. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:8787/status\" target=\"_blank\">http://127.0.0.1:8787/status</a>\n",
  81. " </td>\n",
  82. " <td style=\"text-align: left;\"></td>\n",
  83. " </tr>\n",
  84. " \n",
  85. "\n",
  86. " </table>\n",
  87. "\n",
  88. " \n",
  89. "\n",
  90. " \n",
  91. " <details>\n",
  92. " <summary style=\"margin-bottom: 20px;\"><h3 style=\"display: inline;\">Cluster Info</h3></summary>\n",
  93. " <div class=\"jp-RenderedHTMLCommon jp-RenderedHTML jp-mod-trusted jp-OutputArea-output\">\n",
  94. " <div style=\"width: 24px; height: 24px; background-color: #e1e1e1; border: 3px solid #9D9D9D; border-radius: 5px; position: absolute;\">\n",
  95. " </div>\n",
  96. " <div style=\"margin-left: 48px;\">\n",
  97. " <h3 style=\"margin-bottom: 0px; margin-top: 0px;\">LocalCluster</h3>\n",
  98. " <p style=\"color: #9D9D9D; margin-bottom: 0px;\">d2bb20ef</p>\n",
  99. " <table style=\"width: 100%; text-align: left;\">\n",
  100. " <tr>\n",
  101. " <td style=\"text-align: left;\">\n",
  102. " <strong>Dashboard:</strong> <a href=\"http://127.0.0.1:8787/status\" target=\"_blank\">http://127.0.0.1:8787/status</a>\n",
  103. " </td>\n",
  104. " <td style=\"text-align: left;\">\n",
  105. " <strong>Workers:</strong> 6\n",
  106. " </td>\n",
  107. " </tr>\n",
  108. " <tr>\n",
  109. " <td style=\"text-align: left;\">\n",
  110. " <strong>Total threads:</strong> 24\n",
  111. " </td>\n",
  112. " <td style=\"text-align: left;\">\n",
  113. " <strong>Total memory:</strong> 44.70 GiB\n",
  114. " </td>\n",
  115. " </tr>\n",
  116. " \n",
  117. " <tr>\n",
  118. " <td style=\"text-align: left;\"><strong>Status:</strong> running</td>\n",
  119. " <td style=\"text-align: left;\"><strong>Using processes:</strong> True</td>\n",
  120. "</tr>\n",
  121. "\n",
  122. " \n",
  123. " </table>\n",
  124. "\n",
  125. " <details>\n",
  126. " <summary style=\"margin-bottom: 20px;\">\n",
  127. " <h3 style=\"display: inline;\">Scheduler Info</h3>\n",
  128. " </summary>\n",
  129. "\n",
  130. " <div style=\"\">\n",
  131. " <div>\n",
  132. " <div style=\"width: 24px; height: 24px; background-color: #FFF7E5; border: 3px solid #FF6132; border-radius: 5px; position: absolute;\"> </div>\n",
  133. " <div style=\"margin-left: 48px;\">\n",
  134. " <h3 style=\"margin-bottom: 0px;\">Scheduler</h3>\n",
  135. " <p style=\"color: #9D9D9D; margin-bottom: 0px;\">Scheduler-5e76ff5a-863e-458c-94c5-8655e950d00c</p>\n",
  136. " <table style=\"width: 100%; text-align: left;\">\n",
  137. " <tr>\n",
  138. " <td style=\"text-align: left;\">\n",
  139. " <strong>Comm:</strong> tcp://127.0.0.1:61965\n",
  140. " </td>\n",
  141. " <td style=\"text-align: left;\">\n",
  142. " <strong>Workers:</strong> 6\n",
  143. " </td>\n",
  144. " </tr>\n",
  145. " <tr>\n",
  146. " <td style=\"text-align: left;\">\n",
  147. " <strong>Dashboard:</strong> <a href=\"http://127.0.0.1:8787/status\" target=\"_blank\">http://127.0.0.1:8787/status</a>\n",
  148. " </td>\n",
  149. " <td style=\"text-align: left;\">\n",
  150. " <strong>Total threads:</strong> 24\n",
  151. " </td>\n",
  152. " </tr>\n",
  153. " <tr>\n",
  154. " <td style=\"text-align: left;\">\n",
  155. " <strong>Started:</strong> Just now\n",
  156. " </td>\n",
  157. " <td style=\"text-align: left;\">\n",
  158. " <strong>Total memory:</strong> 44.70 GiB\n",
  159. " </td>\n",
  160. " </tr>\n",
  161. " </table>\n",
  162. " </div>\n",
  163. " </div>\n",
  164. "\n",
  165. " <details style=\"margin-left: 48px;\">\n",
  166. " <summary style=\"margin-bottom: 20px;\">\n",
  167. " <h3 style=\"display: inline;\">Workers</h3>\n",
  168. " </summary>\n",
  169. "\n",
  170. " \n",
  171. " <div style=\"margin-bottom: 20px;\">\n",
  172. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  173. " <div style=\"margin-left: 48px;\">\n",
  174. " <details>\n",
  175. " <summary>\n",
  176. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 0</h4>\n",
  177. " </summary>\n",
  178. " <table style=\"width: 100%; text-align: left;\">\n",
  179. " <tr>\n",
  180. " <td style=\"text-align: left;\">\n",
  181. " <strong>Comm: </strong> tcp://127.0.0.1:61998\n",
  182. " </td>\n",
  183. " <td style=\"text-align: left;\">\n",
  184. " <strong>Total threads: </strong> 4\n",
  185. " </td>\n",
  186. " </tr>\n",
  187. " <tr>\n",
  188. " <td style=\"text-align: left;\">\n",
  189. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:62001/status\" target=\"_blank\">http://127.0.0.1:62001/status</a>\n",
  190. " </td>\n",
  191. " <td style=\"text-align: left;\">\n",
  192. " <strong>Memory: </strong> 7.45 GiB\n",
  193. " </td>\n",
  194. " </tr>\n",
  195. " <tr>\n",
  196. " <td style=\"text-align: left;\">\n",
  197. " <strong>Nanny: </strong> tcp://127.0.0.1:61968\n",
  198. " </td>\n",
  199. " <td style=\"text-align: left;\"></td>\n",
  200. " </tr>\n",
  201. " <tr>\n",
  202. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  203. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-tq4qoxbr\n",
  204. " </td>\n",
  205. " </tr>\n",
  206. "\n",
  207. " \n",
  208. "\n",
  209. " \n",
  210. "\n",
  211. " </table>\n",
  212. " </details>\n",
  213. " </div>\n",
  214. " </div>\n",
  215. " \n",
  216. " <div style=\"margin-bottom: 20px;\">\n",
  217. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  218. " <div style=\"margin-left: 48px;\">\n",
  219. " <details>\n",
  220. " <summary>\n",
  221. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 1</h4>\n",
  222. " </summary>\n",
  223. " <table style=\"width: 100%; text-align: left;\">\n",
  224. " <tr>\n",
  225. " <td style=\"text-align: left;\">\n",
  226. " <strong>Comm: </strong> tcp://127.0.0.1:62000\n",
  227. " </td>\n",
  228. " <td style=\"text-align: left;\">\n",
  229. " <strong>Total threads: </strong> 4\n",
  230. " </td>\n",
  231. " </tr>\n",
  232. " <tr>\n",
  233. " <td style=\"text-align: left;\">\n",
  234. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:62004/status\" target=\"_blank\">http://127.0.0.1:62004/status</a>\n",
  235. " </td>\n",
  236. " <td style=\"text-align: left;\">\n",
  237. " <strong>Memory: </strong> 7.45 GiB\n",
  238. " </td>\n",
  239. " </tr>\n",
  240. " <tr>\n",
  241. " <td style=\"text-align: left;\">\n",
  242. " <strong>Nanny: </strong> tcp://127.0.0.1:61969\n",
  243. " </td>\n",
  244. " <td style=\"text-align: left;\"></td>\n",
  245. " </tr>\n",
  246. " <tr>\n",
  247. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  248. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-bhx86y4h\n",
  249. " </td>\n",
  250. " </tr>\n",
  251. "\n",
  252. " \n",
  253. "\n",
  254. " \n",
  255. "\n",
  256. " </table>\n",
  257. " </details>\n",
  258. " </div>\n",
  259. " </div>\n",
  260. " \n",
  261. " <div style=\"margin-bottom: 20px;\">\n",
  262. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  263. " <div style=\"margin-left: 48px;\">\n",
  264. " <details>\n",
  265. " <summary>\n",
  266. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 2</h4>\n",
  267. " </summary>\n",
  268. " <table style=\"width: 100%; text-align: left;\">\n",
  269. " <tr>\n",
  270. " <td style=\"text-align: left;\">\n",
  271. " <strong>Comm: </strong> tcp://127.0.0.1:61995\n",
  272. " </td>\n",
  273. " <td style=\"text-align: left;\">\n",
  274. " <strong>Total threads: </strong> 4\n",
  275. " </td>\n",
  276. " </tr>\n",
  277. " <tr>\n",
  278. " <td style=\"text-align: left;\">\n",
  279. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:61996/status\" target=\"_blank\">http://127.0.0.1:61996/status</a>\n",
  280. " </td>\n",
  281. " <td style=\"text-align: left;\">\n",
  282. " <strong>Memory: </strong> 7.45 GiB\n",
  283. " </td>\n",
  284. " </tr>\n",
  285. " <tr>\n",
  286. " <td style=\"text-align: left;\">\n",
  287. " <strong>Nanny: </strong> tcp://127.0.0.1:61970\n",
  288. " </td>\n",
  289. " <td style=\"text-align: left;\"></td>\n",
  290. " </tr>\n",
  291. " <tr>\n",
  292. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  293. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-b8rqi6f7\n",
  294. " </td>\n",
  295. " </tr>\n",
  296. "\n",
  297. " \n",
  298. "\n",
  299. " \n",
  300. "\n",
  301. " </table>\n",
  302. " </details>\n",
  303. " </div>\n",
  304. " </div>\n",
  305. " \n",
  306. " <div style=\"margin-bottom: 20px;\">\n",
  307. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  308. " <div style=\"margin-left: 48px;\">\n",
  309. " <details>\n",
  310. " <summary>\n",
  311. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 3</h4>\n",
  312. " </summary>\n",
  313. " <table style=\"width: 100%; text-align: left;\">\n",
  314. " <tr>\n",
  315. " <td style=\"text-align: left;\">\n",
  316. " <strong>Comm: </strong> tcp://127.0.0.1:62007\n",
  317. " </td>\n",
  318. " <td style=\"text-align: left;\">\n",
  319. " <strong>Total threads: </strong> 4\n",
  320. " </td>\n",
  321. " </tr>\n",
  322. " <tr>\n",
  323. " <td style=\"text-align: left;\">\n",
  324. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:62008/status\" target=\"_blank\">http://127.0.0.1:62008/status</a>\n",
  325. " </td>\n",
  326. " <td style=\"text-align: left;\">\n",
  327. " <strong>Memory: </strong> 7.45 GiB\n",
  328. " </td>\n",
  329. " </tr>\n",
  330. " <tr>\n",
  331. " <td style=\"text-align: left;\">\n",
  332. " <strong>Nanny: </strong> tcp://127.0.0.1:61971\n",
  333. " </td>\n",
  334. " <td style=\"text-align: left;\"></td>\n",
  335. " </tr>\n",
  336. " <tr>\n",
  337. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  338. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-y967j_78\n",
  339. " </td>\n",
  340. " </tr>\n",
  341. "\n",
  342. " \n",
  343. "\n",
  344. " \n",
  345. "\n",
  346. " </table>\n",
  347. " </details>\n",
  348. " </div>\n",
  349. " </div>\n",
  350. " \n",
  351. " <div style=\"margin-bottom: 20px;\">\n",
  352. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  353. " <div style=\"margin-left: 48px;\">\n",
  354. " <details>\n",
  355. " <summary>\n",
  356. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 4</h4>\n",
  357. " </summary>\n",
  358. " <table style=\"width: 100%; text-align: left;\">\n",
  359. " <tr>\n",
  360. " <td style=\"text-align: left;\">\n",
  361. " <strong>Comm: </strong> tcp://127.0.0.1:61999\n",
  362. " </td>\n",
  363. " <td style=\"text-align: left;\">\n",
  364. " <strong>Total threads: </strong> 4\n",
  365. " </td>\n",
  366. " </tr>\n",
  367. " <tr>\n",
  368. " <td style=\"text-align: left;\">\n",
  369. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:62003/status\" target=\"_blank\">http://127.0.0.1:62003/status</a>\n",
  370. " </td>\n",
  371. " <td style=\"text-align: left;\">\n",
  372. " <strong>Memory: </strong> 7.45 GiB\n",
  373. " </td>\n",
  374. " </tr>\n",
  375. " <tr>\n",
  376. " <td style=\"text-align: left;\">\n",
  377. " <strong>Nanny: </strong> tcp://127.0.0.1:61972\n",
  378. " </td>\n",
  379. " <td style=\"text-align: left;\"></td>\n",
  380. " </tr>\n",
  381. " <tr>\n",
  382. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  383. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-s6j4tmqp\n",
  384. " </td>\n",
  385. " </tr>\n",
  386. "\n",
  387. " \n",
  388. "\n",
  389. " \n",
  390. "\n",
  391. " </table>\n",
  392. " </details>\n",
  393. " </div>\n",
  394. " </div>\n",
  395. " \n",
  396. " <div style=\"margin-bottom: 20px;\">\n",
  397. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  398. " <div style=\"margin-left: 48px;\">\n",
  399. " <details>\n",
  400. " <summary>\n",
  401. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 5</h4>\n",
  402. " </summary>\n",
  403. " <table style=\"width: 100%; text-align: left;\">\n",
  404. " <tr>\n",
  405. " <td style=\"text-align: left;\">\n",
  406. " <strong>Comm: </strong> tcp://127.0.0.1:61982\n",
  407. " </td>\n",
  408. " <td style=\"text-align: left;\">\n",
  409. " <strong>Total threads: </strong> 4\n",
  410. " </td>\n",
  411. " </tr>\n",
  412. " <tr>\n",
  413. " <td style=\"text-align: left;\">\n",
  414. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:61993/status\" target=\"_blank\">http://127.0.0.1:61993/status</a>\n",
  415. " </td>\n",
  416. " <td style=\"text-align: left;\">\n",
  417. " <strong>Memory: </strong> 7.45 GiB\n",
  418. " </td>\n",
  419. " </tr>\n",
  420. " <tr>\n",
  421. " <td style=\"text-align: left;\">\n",
  422. " <strong>Nanny: </strong> tcp://127.0.0.1:61973\n",
  423. " </td>\n",
  424. " <td style=\"text-align: left;\"></td>\n",
  425. " </tr>\n",
  426. " <tr>\n",
  427. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  428. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-dpv1awpr\n",
  429. " </td>\n",
  430. " </tr>\n",
  431. "\n",
  432. " \n",
  433. "\n",
  434. " \n",
  435. "\n",
  436. " </table>\n",
  437. " </details>\n",
  438. " </div>\n",
  439. " </div>\n",
  440. " \n",
  441. "\n",
  442. " </details>\n",
  443. "</div>\n",
  444. "\n",
  445. " </details>\n",
  446. " </div>\n",
  447. "</div>\n",
  448. " </details>\n",
  449. " \n",
  450. "\n",
  451. " </div>\n",
  452. "</div>"
  453. ],
  454. "text/plain": [
  455. "<Client: 'tcp://127.0.0.1:61965' processes=6 threads=24, memory=44.70 GiB>"
  456. ]
  457. },
  458. "execution_count": 2,
  459. "metadata": {},
  460. "output_type": "execute_result"
  461. }
  462. ],
  463. "source": [
  464. "from dask.distributed import Client\n",
  465. "client = Client(n_workers=6, threads_per_worker=4, processes=True, memory_limit='8GB')\n",
  466. "client"
  467. ]
  468. },
  469. {
  470. "attachments": {},
  471. "cell_type": "markdown",
  472. "metadata": {},
  473. "source": [
  474. "## Different f/T\n",
  475. "The simulation was peformed for 11 different values for teh condensate fraction f from 0 to 10 and the input temperature was changed according to the formular $f = 1-(T/T_c)^3$ <br>\n",
  476. "N = 3.21e5<br>\n",
  477. "omgx = 2pi 200 Hz<br>\n",
  478. "omgy = 2pi 100 Hz<br>\n",
  479. "omgz = 2pi 200 Hz<br>\n",
  480. "a = 100 a0 <br>\n",
  481. "tof = 20 ms <br>\n",
  482. "The simulation was done for a flatfield lightsource and a manual light source."
  483. ]
  484. },
  485. {
  486. "attachments": {},
  487. "cell_type": "markdown",
  488. "metadata": {},
  489. "source": [
  490. "## Flatfield"
  491. ]
  492. },
  493. {
  494. "attachments": {},
  495. "cell_type": "markdown",
  496. "metadata": {},
  497. "source": [
  498. "### Get the data"
  499. ]
  500. },
  501. {
  502. "cell_type": "code",
  503. "execution_count": 3,
  504. "metadata": {},
  505. "outputs": [],
  506. "source": [
  507. "# load the simulated data\n",
  508. "sim_fT_flatfield_np = np.load(\"F:/Jianshun/analyseScript/testData/OD_fT_flatfield.npy\")\n",
  509. "sim_fT_flatfield_np = np.nan_to_num(sim_fT_flatfield_np)\n",
  510. "'''\n",
  511. "sim_fT_flatfield_x10_np = np.load(\"C:/Users/QFBri/Code/analyseScript-Master III/Data/Simulations/OD_fT_flatfield_x10.npy\")\n",
  512. "sim_fT_flatfield_x10_np = np.nan_to_num(sim_fT_flatfield_x10_np)\n",
  513. "sim_fT_flatfield_x100_np = np.load(\"C:/Users/QFBri/Code/analyseScript-Master III/Data/Simulations/OD_fT_flatfield_x100.npy\")\n",
  514. "sim_fT_flatfield_x100_np = np.nan_to_num(sim_fT_flatfield_x100_np)\n",
  515. "sim_fT_flatfield_x1000_np = np.load(\"C:/Users/QFBri/Code/analyseScript-Master III/Data/Simulations/OD_fT_flatfield_x1000.npy\")\n",
  516. "sim_fT_flatfield_x1000_np = np.nan_to_num(sim_fT_flatfield_x1000_np)\n",
  517. "sim_fT_manual_x1000_np = np.load(\"C:/Users/QFBri/Code/analyseScript-Master III/Data/Simulations/OD_fT_manual_x1000.npy\")\n",
  518. "sim_fT_manual_x1000_np = np.nan_to_num(sim_fT_manual_x1000_np)\n",
  519. "sim_fT_manual_x10000_np = np.load(\"C:/Users/QFBri/Code/analyseScript-Master III/Data/Simulations/OD_fT_manual_x10000.npy\")\n",
  520. "sim_fT_manual_x10000_np = np.nan_to_num(sim_fT_manual_x10000_np)\n",
  521. "'''\n",
  522. "\n",
  523. "\n",
  524. "# define axis\n",
  525. "x = np.linspace(0, 1201, 1200)\n",
  526. "y = np.linspace(0, 1921, 1920)"
  527. ]
  528. },
  529. {
  530. "cell_type": "code",
  531. "execution_count": null,
  532. "metadata": {},
  533. "outputs": [],
  534. "source": []
  535. },
  536. {
  537. "cell_type": "code",
  538. "execution_count": 4,
  539. "metadata": {},
  540. "outputs": [],
  541. "source": [
  542. "# crop the data around the center to get manly the area of the cloud\n",
  543. "sim_fT_flatfield_np = sim_fT_flatfield_np[0:12, 500:-500, 860:-860]\n",
  544. "'''\n",
  545. "sim_fT_flatfield_x10_np = sim_fT_flatfield_x10_np[0:12, 550:-550, 910:-910]\n",
  546. "sim_fT_flatfield_x100_np = sim_fT_flatfield_x100_np[0:12, 550:-550, 910:-910]\n",
  547. "sim_fT_flatfield_x1000_np = sim_fT_flatfield_x1000_np[0:12, 550:-550, 910:-910]\n",
  548. "sim_fT_manual_x10000_np = sim_fT_manual_x10000_np[0:12, 550:-550, 910:-910]\n",
  549. "'''\n",
  550. "\n",
  551. "f = np.array([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])\n",
  552. "x = x[500:-500]\n",
  553. "y = y[860:-860]"
  554. ]
  555. },
  556. {
  557. "attachments": {},
  558. "cell_type": "markdown",
  559. "metadata": {},
  560. "source": [
  561. "### Perform the fit"
  562. ]
  563. },
  564. {
  565. "cell_type": "code",
  566. "execution_count": 5,
  567. "metadata": {},
  568. "outputs": [
  569. {
  570. "data": {
  571. "text/plain": [
  572. "'\\n## perform the BEC fit\\n\\n# set the fit Model\\nfitModel = DensityProfileBEC2dModel()\\nfitAnalyser = FitAnalyser(fitModel, fitDim=2)\\n\\nfit_fT_flatfield_x1000_result = np.empty((11,12))\\nfit_fT_flatfield_x1000_std = np.empty((11,12))\\n\\n# tansfer the data into an xarray\\nfor i in range (11):\\n print(i)\\n sim_fT_flatfield_x1000 = xr.DataArray(\\n data = sim_fT_flatfield_x1000_np[i], \\n dims = [\"x\", \"y\"],\\n coords = dict(\\n x = (\"x\", x),\\n y = (\"y\", y),\\n )\\n )\\n # perform the fit for one simulation with flatfield\\n params = fitAnalyser.guess(sim_fT_flatfield_x1000, dask=\"parallelized\")\\n fitResult = fitAnalyser.fit(sim_fT_flatfield_x1000, params, dask=\"parallelized\").load()\\n fitCurve = fitAnalyser.eval(fitResult, x=x, y=y).load()\\n fitValue = fitAnalyser.get_fit_value(fitResult)\\n fitStd = fitAnalyser.get_fit_std(fitResult)\\n # store the results as numpy array\\n fit_fT_flatfield_x1000 = fitCurve.to_numpy()\\n fitValue_array = fitValue.to_array()\\n fitStd_array = fitStd.to_array()\\n fit_fT_flatfield_x1000_result[i] = fitValue_array.to_numpy()\\n fit_fT_flatfield_x1000_std[i] = fitStd_array.to_numpy()\\n'"
  573. ]
  574. },
  575. "execution_count": 5,
  576. "metadata": {},
  577. "output_type": "execute_result"
  578. }
  579. ],
  580. "source": [
  581. "'''\n",
  582. "## perform the BEC fit\n",
  583. "\n",
  584. "# set the fit Model\n",
  585. "fitModel = DensityProfileBEC2dModel()\n",
  586. "fitAnalyser = FitAnalyser(fitModel, fitDim=2)\n",
  587. "\n",
  588. "fit_fT_flatfield_x1000_result = np.empty((11,12))\n",
  589. "fit_fT_flatfield_x1000_std = np.empty((11,12))\n",
  590. "\n",
  591. "# tansfer the data into an xarray\n",
  592. "for i in range (11):\n",
  593. " print(i)\n",
  594. " sim_fT_flatfield_x1000 = xr.DataArray(\n",
  595. " data = sim_fT_flatfield_x1000_np[i], \n",
  596. " dims = [\"x\", \"y\"],\n",
  597. " coords = dict(\n",
  598. " x = (\"x\", x),\n",
  599. " y = (\"y\", y),\n",
  600. " )\n",
  601. " )\n",
  602. " # perform the fit for one simulation with flatfield\n",
  603. " params = fitAnalyser.guess(sim_fT_flatfield_x1000, dask=\"parallelized\")\n",
  604. " fitResult = fitAnalyser.fit(sim_fT_flatfield_x1000, params, dask=\"parallelized\").load()\n",
  605. " fitCurve = fitAnalyser.eval(fitResult, x=x, y=y).load()\n",
  606. " fitValue = fitAnalyser.get_fit_value(fitResult)\n",
  607. " fitStd = fitAnalyser.get_fit_std(fitResult)\n",
  608. " # store the results as numpy array\n",
  609. " fit_fT_flatfield_x1000 = fitCurve.to_numpy()\n",
  610. " fitValue_array = fitValue.to_array()\n",
  611. " fitStd_array = fitStd.to_array()\n",
  612. " fit_fT_flatfield_x1000_result[i] = fitValue_array.to_numpy()\n",
  613. " fit_fT_flatfield_x1000_std[i] = fitStd_array.to_numpy()\n",
  614. "'''\n"
  615. ]
  616. },
  617. {
  618. "cell_type": "code",
  619. "execution_count": 6,
  620. "metadata": {},
  621. "outputs": [
  622. {
  623. "name": "stdout",
  624. "output_type": "stream",
  625. "text": [
  626. "0\n",
  627. "0.3092462503676215\n",
  628. "0.028120653587753792\n",
  629. "<Parameter 'BEC_amplitude', value=36.39788888382145, bounds=[0:inf]>\n",
  630. "<Parameter 'BEC_sigmay', value=6.253359378774255, bounds=[0:inf]>\n",
  631. "<Parameter 'BEC_sigmax', value=5.939879881569993, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  632. "<Parameter 'thermal_amplitude', value=636.0835195600501, bounds=[0:inf]>\n",
  633. "<Parameter 'BEC_amplitude', value=36.39788888382145, bounds=[0:inf]>\n",
  634. "<Parameter 'BEC_amplitude', value=36.39788888382145, bounds=[0:inf]>\n"
  635. ]
  636. },
  637. {
  638. "name": "stderr",
  639. "output_type": "stream",
  640. "text": [
  641. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  642. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  643. ]
  644. },
  645. {
  646. "data": {
  647. "image/png": "iVBORw0KGgoAAAANSUhEUgAABCkAAAL8CAYAAADN1e/BAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAD74UlEQVR4nOzdd3gUVdvH8e+mQTolAYKUUKQISFcQKQEEQSmC0iyggqigYntULGAFBX30FQVFpIgCKkVFpQYQROkoICIlhRJKKEkgIUAy7x/7ZExIdtOzm93f57pysbszc+be3dll555z7mMxDMNARERERERERMTBPBwdgIiIiIiIiIgIKEkhIiIiIiIiIk5CSQoRERERERERcQpKUoiIiIiIiIiIU1CSQkREREREREScgpIUIiIiIiIiIuIUlKQQEREREREREaegJIWIiIiIiIiIOAUlKURERERERETEKShJISIiLmXWrFlYLBYsFguzZs3KcZ2M5Z06dSrR2IpKeHg4FouF8PDwHJcPGzbMfI7R0dElGltRcpXnIVKS1q5da35uxo8f7+hwRETyzcvRAYiISPHYtWsX3377LatWrSImJob4+Hh8fX2pVKkSLVu2pEePHtx55534+vrm2tb48eN59dVXsz1usVgICAggODiYChUq0LhxY1q0aEH37t1p3LhxcTwtp3fu3Dnef/99AJo1a0bfvn0dGo8zWbt2LWvXrgWsCQhbSRYR+Ze+U0TE3ShJISLiYuLi4nj66aeZP38+hmFkWZaamsq5c+f4559/mDdvHmPHjmXixIncfffdBdqXYRgkJSWRlJTEkSNH+PPPP/nqq6945plnaNOmDS+++CK33357UTytUuPcuXNmQmfo0KE6ochk7dq15mvTqVMnJSlE8kDfKSLibpSkEBFxIXv27KFHjx4cPnwYAB8fH7p160bnzp0JCwsjOTmZffv2sWjRIg4cOMCRI0e455572LFjB5MmTcJiseS6j4EDBzJo0CDzfmpqKmfPnuXw4cNs2rSJ9evXc+nSJX7//Xd69erF/fffzyeffIK3t3exPe/8ujp5U9q4y9CHWbNm2RyyIyI569SpU6n/jhMR96YkhYiIizhx4gRdu3bl+PHjALRp04ZZs2ZRv379bOtOmDCBKVOm8Mwzz3D58mXeffddgoODefnll3PdT4MGDexeyYuLi+Odd97hgw8+wDAMZs6caf4rIiIiImKPCmeKiLiIoUOHmgmKtm3bsmrVqhwTFAAeHh48/vjjzJs3z+w98eqrr7Jx48ZCxxEWFsZ///tfvvnmGzw8rP/NzJo1iy+//LLQbYuIiIiIa1OSQkTEBWzYsIHly5cD4Ofnx5dffom/v3+u2/Xv35+HHnoIgLS0tCKtBN+/f3+effZZ8/4bb7xBenp6oduNjIykX79+hIWFUbZsWWrWrMngwYP59ddf89xGXmb32L9/P08//TQtW7akXLlyeHt7ExoaynXXXUePHj2YPHkyf/31l7l+dHQ0FouFWrVqmY/Nnj3b3Ffmv8zDNXKajeS3335j2LBh1KlTBz8/PywWCzt37jS3yW12j5x8+eWXdO3a1XzdwsPDGT58eJbnkJNOnTqZ8eXG1rrjx4/HYrFkKb4aERGR7XW5+v3Iz+wemzZt4qGHHqJ+/foEBgbi7+9PnTp1GDp0KJGRkbnGfnUMFy5cYPLkybRq1Ypy5crh7+9P48aNefHFFzl37lyu7eXHsWPHGD9+PDfffDNVqlTBx8eHwMBAGjduzAMPPMCSJUu4cuVKrjHHx8fz2muv0aJFCypWrIjFYmHMmDHZttu7dy9PPPEEjRs3Jjg4GF9fX2rWrMmAAQNYvHhxnmLevn07Dz/8ME2aNCEoKAgfHx+qVKlCkyZN6Nu3Lx999BFRUVE5bpuWlsYXX3xBr169qF69OmXLlsXPz4/w8HBat27NI488wuLFi0lOTs7za2hLfj/HObl8+TKff/45vXv3NuMtV64c119/PU8//XS+hl/9888//Oc//6F169aEhobi7e1NcHAwLVq0YNSoUaxevdocqlHQ75T8zO5x5swZXn/9ddq2bUtoaCg+Pj6EhYXRtWtXPvzwQy5evGh3+5w+o8uXL6dPnz5cc801lClThmuuuYaBAweyZcuWPL9OIuLmDBERKfXuuusuAzAA49FHH83XtkePHjW8vLzM7ffs2ZNtnXHjxpnLx40bl+e2T58+bfj5+Znbrl+/Pl+xXe2pp54y27r6z8PDw5gwYYIxc+ZM87GZM2fm2E7G8o4dO+a4fPr06YaPj4/NfWX8NW3a1NwmKioq1/Uz/qKiosztro739ddfNzw8PLJts2PHDnObmjVrGoBRs2bNHOMfOnSoud2+ffuMvn372ozFx8fH+Oyzz2y+5h07djTXzY2tdTMfP/b+rn4/Mj+PzK9ZZpcvXzZGjBiRa9t33XWXkZycbDP2zDEcOHDAaNiwoc22wsPDjejo6Fxfj7yYOHGiUbZs2VzjnzVrlt2Yt2zZYlStWjXbdk888USWbV555RXD09Mz1/chPj7eZszjxo0zLBZLrjH36dMn27anTp0yWrdunafjYfHixYV6bQvyOb7atm3bjNq1a9vd3sfHx5g2bZrdWC5fvmyMGTMm19ceMNauXWsYRsG/U9asWWM+bu/7esmSJUa5cuXstlujRg1j+/btNtvI/Bk9ePCg8fDDD9tsy8PDw+Z3sohIZqpJISJSyhmGwerVq8379913X762r1q1Kl26dDF7YqxatYrrrruuSGKrUKEC3bp1Y8mSJQCsW7eOm2++uUBtvfHGG7z33nuAdbjKkCFD6NKlC97e3mzdupXPPvuMF154gT59+hQq5h07djBy5EjS09Px9PSkZ8+edOnShUqVKgHWmhs7duxgxYoVWbarVKkSixcv5uTJk4wcORKw9hZ4/PHHs+0jo62rLViwgGXLllGuXDnuv/9+mjdvjsViYdu2bXnqGZOT5557jiVLllCzZk0eeOAB6tevz5kzZ1iyZAkrVqzg0qVLjBgxgtDQUHr37l2gfeRm0KBBNGvWjPnz57NgwQIAXn/99WzT1IaEhOS77fvuu4958+YBULZsWYYOHcpNN92Eh4cHW7du5fPPPycpKYlvvvmGhIQEli1bZrdXSGJiIrfddhv79u2jd+/e9OjRgwoVKnDo0CE+/vhjDh8+THR0NMOGDWPNmjX5jjezxx57jClTppj3u3fvzq233krVqlVJTU1l//79REZGsnHjRruFEE+fPk3fvn05duwYvXr1MmM+fPgwgYGB5novvPACEydOBMDT05NBgwbRuXNnfH192bVrFzNmzODkyZOsW7eOzp078/vvv2ebovi7774ze8SULVuWvn370q5dO0JDQ7ly5QpHjhxh69atrFy5MsdYR4wYYV5Rr1mzJoMGDaJu3bqUK1eOpKQk9u3bxy+//MKmTZsK9qL+T0E/x5lt2rSJLl26cOHCBQC6dOlCjx49qF69OhcvXuS3335jzpw5JCcn8/DDD1OmTBmGDRuWrR3DMOjfvz/ff/89YH3t+/btS0REBJUqVSI5OZm9e/eyfPlydu7cab7XRfGdYstPP/1E//79SUtLA6Bjx47079+fSpUqERMTw9y5c9m1axexsbF07NiRzZs306BBA7ttvvjii8yfP5969epx3333UbduXZKSkli4cCHLli0jPT2dhx9+mJtuuol69erlK14RcTOOzZGIiEhh/fXXX+aVqjJlyhiXLl3Kdxvjx4832xg4cGC25QXtSWEY1ivFGdv27ds337EZhmHs27fPvCJapkwZY+XKldnW2b9/f7YryQXpSTFq1Chz+fz5823GdOXKFePXX3/N9njmq59Dhw7N9bll7kkBGI0aNTLi4uLsbpOfnhSAERERYSQlJWVb78MPPzTXCQsLy3GdouhJkSHzcbRmzZpc28utJ8X8+fPN5ZUrV86xF1B0dLRRq1Ytc70pU6bkuK/Mr5ePj4/xww8/ZFvn1KlTRnh4uLne5s2bc30OtixYsMBsp3z58nZfj3379hm7du2yG7OXl5excOFCm21s3Lj
  648. "text/plain": [
  649. "<Figure size 1200x800 with 1 Axes>"
  650. ]
  651. },
  652. "metadata": {},
  653. "output_type": "display_data"
  654. },
  655. {
  656. "name": "stdout",
  657. "output_type": "stream",
  658. "text": [
  659. "1\n",
  660. "0.5528817557540787\n",
  661. "0.28214712300392425\n",
  662. "<Parameter 'BEC_amplitude', value=98.41779453626728, bounds=[0:inf]>\n",
  663. "<Parameter 'BEC_sigmay', value=3.3467229538363825, bounds=[0:inf]>\n",
  664. "<Parameter 'BEC_sigmax', value=2.9910144173151707, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  665. "<Parameter 'thermal_amplitude', value=571.8366157932207, bounds=[0:inf]>\n",
  666. "<Parameter 'BEC_amplitude', value=98.41779453626728, bounds=[0:inf]>\n",
  667. "<Parameter 'BEC_amplitude', value=98.41779453626728, bounds=[0:inf]>\n"
  668. ]
  669. },
  670. {
  671. "name": "stderr",
  672. "output_type": "stream",
  673. "text": [
  674. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  675. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  676. ]
  677. },
  678. {
  679. "data": {
  680. "image/png": "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
  681. "text/plain": [
  682. "<Figure size 1200x800 with 1 Axes>"
  683. ]
  684. },
  685. "metadata": {},
  686. "output_type": "display_data"
  687. },
  688. {
  689. "name": "stdout",
  690. "output_type": "stream",
  691. "text": [
  692. "2\n",
  693. "0.6676448877490091\n",
  694. "0.45280279486430974\n",
  695. "<Parameter 'BEC_amplitude', value=204.6134675755257, bounds=[0:inf]>\n",
  696. "<Parameter 'BEC_sigmay', value=3.858167192178399, bounds=[0:inf]>\n",
  697. "<Parameter 'BEC_sigmax', value=3.3611224858332776, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  698. "<Parameter 'thermal_amplitude', value=498.1775441243017, bounds=[0:inf]>\n",
  699. "<Parameter 'BEC_amplitude', value=204.6134675755257, bounds=[0:inf]>\n",
  700. "<Parameter 'BEC_amplitude', value=204.6134675755257, bounds=[0:inf]>\n"
  701. ]
  702. },
  703. {
  704. "name": "stderr",
  705. "output_type": "stream",
  706. "text": [
  707. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  708. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  709. ]
  710. },
  711. {
  712. "data": {
  713. "image/png": "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
  714. "text/plain": [
  715. "<Figure size 1200x800 with 1 Axes>"
  716. ]
  717. },
  718. "metadata": {},
  719. "output_type": "display_data"
  720. },
  721. {
  722. "name": "stdout",
  723. "output_type": "stream",
  724. "text": [
  725. "3\n",
  726. "0.8209805520698302\n",
  727. "0.5698729694548221\n",
  728. "<Parameter 'BEC_amplitude', value=314.62838536232505, bounds=[0:inf]>\n",
  729. "<Parameter 'BEC_sigmay', value=4.261130378826574, bounds=[0:inf]>\n",
  730. "<Parameter 'BEC_sigmax', value=3.7182217550401617, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  731. "<Parameter 'thermal_amplitude', value=367.6158038782502, bounds=[0:inf]>\n",
  732. "<Parameter 'BEC_amplitude', value=314.62838536232505, bounds=[0:inf]>\n",
  733. "<Parameter 'BEC_amplitude', value=314.62838536232505, bounds=[0:inf]>\n"
  734. ]
  735. },
  736. {
  737. "name": "stderr",
  738. "output_type": "stream",
  739. "text": [
  740. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  741. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  742. ]
  743. },
  744. {
  745. "data": {
  746. "image/png": "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
  747. "text/plain": [
  748. "<Figure size 1200x800 with 1 Axes>"
  749. ]
  750. },
  751. "metadata": {},
  752. "output_type": "display_data"
  753. },
  754. {
  755. "name": "stdout",
  756. "output_type": "stream",
  757. "text": [
  758. "4\n",
  759. "0.9524451336942912\n",
  760. "0.7133580209950589\n",
  761. "<Parameter 'BEC_amplitude', value=449.95823450592684, bounds=[0:inf]>\n",
  762. "<Parameter 'BEC_sigmay', value=4.531159303422342, bounds=[0:inf]>\n",
  763. "<Parameter 'BEC_sigmax', value=3.9948050534083563, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  764. "<Parameter 'thermal_amplitude', value=234.346332071024, bounds=[0:inf]>\n",
  765. "<Parameter 'BEC_amplitude', value=449.95823450592684, bounds=[0:inf]>\n",
  766. "<Parameter 'BEC_amplitude', value=449.95823450592684, bounds=[0:inf]>\n"
  767. ]
  768. },
  769. {
  770. "name": "stderr",
  771. "output_type": "stream",
  772. "text": [
  773. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  774. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  775. ]
  776. },
  777. {
  778. "data": {
  779. "image/png": "iVBORw0KGgoAAAANSUhEUgAABBoAAAL8CAYAAABOEdb6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAD0LklEQVR4nOzdd3xT1fsH8M9Nule6B6MtQ2bLroAgZYmACghKERVQhiioKHx/KkPABQpunCDLAYgMFWUXEGQWWqAsGV1AWyiddLe5vz9CLilN0iRNmrb5vF+vvnKbe+65T9KmcJ97znMEURRFEBERERERERGZgczaARARERERERFR/cFEAxERERERERGZDRMNRERERERERGQ2TDQQERERERERkdkw0UBEREREREREZsNEAxERERERERGZDRMNRERERERERGQ2TDQQERERERERkdkw0UBEREREREREZsNEAxER1SorV66EIAgQBAErV67U2ka9v3fv3jUam7mEhoZCEASEhoZq3T9u3DjpNSYmJtZobOZUX14HUU3au3ev9LmZN2+etcMhIjKJnbUDICIi7U6fPo3ffvsNu3btQlJSEjIyMuDs7Ax/f3907twZgwYNwhNPPAFnZ+cq+5o3bx7mz59f6XlBEODm5gaFQgFvb2+EhYWhU6dOePjhhxEWFmaJl1XrZWdn47PPPgMAdOjQAcOGDbNqPLXJ3r17sXfvXgCqJIKuRAkR3cW/KURki5hoICKqZVJTUzF9+nSsXbsWoihW2FdcXIzs7Gz8999/WLNmDWbOnImFCxfi6aefNulcoigiLy8PeXl5uHr1Kk6dOoVffvkFM2bMQLdu3TBr1iw8+uij5nhZdUZ2draUlBk7diwvCjTs3btXem969+7NRAORAfg3hYhsERMNRES1yJkzZzBo0CCkpKQAABwcHDBgwAD07dsXQUFBKCgowIULF7Bx40ZcunQJV69exTPPPIPY2FgsWrQIgiBUeY6oqCiMGjVK+r64uBhZWVlISUnBkSNHsH//fpSUlODw4cN47LHH8Nxzz+G7776Dvb29xV63se5NwNQ1tjKNYOXKlTqnvxCRdr17967zf+OIiJhoICKqJdLT09G/f3+kpaUBALp164aVK1eiZcuWldouWLAAS5YswYwZM1BaWoqPP/4YCoUCc+bMqfI8rVq10ntHLTU1FR999BE+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
  780. "text/plain": [
  781. "<Figure size 1200x800 with 1 Axes>"
  782. ]
  783. },
  784. "metadata": {},
  785. "output_type": "display_data"
  786. },
  787. {
  788. "name": "stdout",
  789. "output_type": "stream",
  790. "text": [
  791. "5\n",
  792. "0.9679921062510455\n",
  793. "0.8353970604407345\n",
  794. "<Parameter 'BEC_amplitude', value=556.8529128920721, bounds=[0:inf]>\n",
  795. "<Parameter 'BEC_sigmay', value=4.676859970607908, bounds=[0:inf]>\n",
  796. "<Parameter 'BEC_sigmax', value=4.090095537635108, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  797. "<Parameter 'thermal_amplitude', value=138.73314738692025, bounds=[0:inf]>\n",
  798. "<Parameter 'BEC_amplitude', value=556.8529128920721, bounds=[0:inf]>\n",
  799. "<Parameter 'BEC_amplitude', value=556.8529128920721, bounds=[0:inf]>\n"
  800. ]
  801. },
  802. {
  803. "name": "stderr",
  804. "output_type": "stream",
  805. "text": [
  806. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  807. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  808. ]
  809. },
  810. {
  811. "data": {
  812. "image/png": "iVBORw0KGgoAAAANSUhEUgAABBoAAAL8CAYAAABOEdb6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADtT0lEQVR4nOzdd3hTZfsH8O9Jule6F9DBHi27bChLEJTxAlJEBWSJwquovD8FRHCCghMVlY2DJUtRdgHZs+wNXUBbKJ10tzm/P0IOKU3Spk2atvl+rqtXT3ue85w7SRM493me+xFEURRBRERERERERGQEMnMHQEREREREREQ1BxMNRERERERERGQ0TDQQERERERERkdEw0UBERERERERERsNEAxEREREREREZDRMNRERERERERGQ0TDQQERERERERkdEw0UBERERERERERsNEAxEREREREREZDRMNRERUpaxYsQKCIEAQBKxYsUJrG/X+7t27V2psxhIUFARBEBAUFKR1/5gxY6THGBMTU6mxGVNNeRxElWnfvn3S+2bOnDnmDoeIqFyszB0AERFpd/78efzxxx/YvXs3YmNjkZycDHt7e3h7e6NNmzbo168fhg0bBnt7+1L7mjNnDj744IMSvxcEAU5OTlAoFHB3d0dISAhat26Nvn37IiQkxBQPq8pLS0vD119/DQBo2bIlBg8ebNZ4qpJ9+/Zh3759AFRJBF2JEiJ6jJ8pRGSJmGggIqpiEhIS8Pbbb2PNmjUQRbHYvry8PKSlpeHatWtYvXo1ZsyYgXnz5uGFF14o17lEUURmZiYyMzNx+/ZtnDt3Dr///jumTZuGDh06YObMmXj22WeN8bCqjbS0NCkpM3r0aF4UaNi3b5/03HTv3p2JBqIy4GcKEVkiJhqIiKqQixcvol+/foiPjwcA2NjYoE+fPujZsyf8/PyQnZ2Nq1evYuPGjbhx4wZu376NF198EVFRUZg/fz4EQSj1HBERERgxYoT0c15eHlJTUxEfH49jx47hwIEDyM/Px9GjRzFgwAC8/PLL+Omnn2BtbW2yx22oJxMw1Y2lTCNYsWKFzukvRKRd9+7dq/1nHBEREw1ERFVEUlISevfujcTERABAhw4dsGLFCjRq1KhE27lz5+K7777DtGnTUFBQgC+++AIKhQKzZs0q9TyNGzfWe0ctISEBn3/+Ob755huI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
  813. "text/plain": [
  814. "<Figure size 1200x800 with 1 Axes>"
  815. ]
  816. },
  817. "metadata": {},
  818. "output_type": "display_data"
  819. },
  820. {
  821. "name": "stdout",
  822. "output_type": "stream",
  823. "text": [
  824. "6\n",
  825. "111\n",
  826. "<Parameter 'thermal_amplitude', value=18.11559956556029, bounds=[0:inf]>\n",
  827. "111\n",
  828. "1.1007065302712244\n",
  829. "0.9474072638704876\n",
  830. "<Parameter 'BEC_amplitude', value=676.9280696811649, bounds=[0:inf]>\n",
  831. "<Parameter 'BEC_sigmay', value=4.847622882969768, bounds=[0:inf]>\n",
  832. "<Parameter 'BEC_sigmax', value=4.229774867478724, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  833. "<Parameter 'thermal_amplitude', value=4.6111713076833265, bounds=[0:inf]>\n",
  834. "<Parameter 'BEC_amplitude', value=676.9280696811649, bounds=[0:inf]>\n",
  835. "<Parameter 'BEC_amplitude', value=676.9280696811649, bounds=[0:inf]>\n"
  836. ]
  837. },
  838. {
  839. "name": "stderr",
  840. "output_type": "stream",
  841. "text": [
  842. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  843. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  844. ]
  845. },
  846. {
  847. "data": {
  848. "image/png": "iVBORw0KGgoAAAANSUhEUgAABBoAAAL8CAYAAABOEdb6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADt+klEQVR4nOzdd3hTZfsH8O9Jule6B6ste1VmhcpoGbJ8GYJSRAUUEFRUfOH9qSCCExR8XzcOkOFgCRRFGVK2yCi0QgGZXUAnbdPS3eb8/gg5pjRJmzZp2ub7ua5eOc15znPunDSB3Hme+xFEURRBRERERERERGQCMksHQERERERERERNBxMNRERERERERGQyTDQQERERERERkckw0UBEREREREREJsNEAxERERERERGZDBMNRERERERERGQyTDQQERERERERkckw0UBEREREREREJsNEAxERERERERGZDBMNRETUoKxduxaCIEAQBKxdu1ZnG83+iIiIeo3NVIKCgiAIAoKCgnTunzZtmvQYExMT6zU2U2oqj4OoPh08eFB63SxZssTS4RAR1YqNpQMgIiLdzp07h59++gn79u1DUlISsrKy4OjoCF9fX/Tq1QsjR47EI488AkdHx2r7WrJkCd58880q9wuCABcXFygUCnh6eqJr167o2bMnhg8fjq5du5rjYTV4ubm5+OijjwAA3bt3x7hx4ywaT0Ny8OBBHDx4EIA6iaAvUUJE/+B7ChFZIyYaiIgamNTUVMybNw8bN26EKIqV9pWUlCA3NxeXL1/Ghg0bsGDBAixbtgyPP/54rc4liiLy8/ORn5+PGzdu4OzZs/jxxx8xf/589O3bFwsXLsS//vUvUzysRiM3N1dKykydOpUfCrQcPHhQujYRERFMNBDVAN9TiMgaMdFARNSAnD9/HiNHjkRKSgoAwM7ODsOGDcPgwYMREBCAwsJCXLp0Cdu2bcPVq1dx48YNPPHEE4iNjcXy5cshCEK154iMjMSkSZOk30tKSpCTk4OUlBScOHECR44cQWlpKY4fP47Ro0fjqaeewldffQVbW1uzPW5j3ZuAaWysZRrB2rVr9U5/ISLdIiIiGv17HBEREw1ERA1Eeno6hg4dirS0NABA3759sXbtWnTo0KFK26VLl+Kzzz7D/PnzUVZWhg8//BAKhQKLFi2q9jwdO3Y0+I1aamoqPvjg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
  849. "text/plain": [
  850. "<Figure size 1200x800 with 1 Axes>"
  851. ]
  852. },
  853. "metadata": {},
  854. "output_type": "display_data"
  855. },
  856. {
  857. "name": "stdout",
  858. "output_type": "stream",
  859. "text": [
  860. "7\n",
  861. "111\n",
  862. "<Parameter 'thermal_amplitude', value=1.5964361357756474e-05, bounds=[0:inf]>\n",
  863. "111\n",
  864. "1.1271856611121658\n",
  865. "1.0443499897922286\n",
  866. "<Parameter 'BEC_amplitude', value=715.9101065602428, bounds=[0:inf]>\n",
  867. "<Parameter 'BEC_sigmay', value=4.712712244300954, bounds=[0:inf]>\n",
  868. "<Parameter 'BEC_sigmax', value=4.174281856530882, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  869. "<Parameter 'thermal_amplitude', value=2.4916588305431375, bounds=[0:inf]>\n",
  870. "<Parameter 'BEC_amplitude', value=715.9101065602428, bounds=[0:inf]>\n",
  871. "<Parameter 'BEC_amplitude', value=715.9101065602428, bounds=[0:inf]>\n"
  872. ]
  873. },
  874. {
  875. "name": "stderr",
  876. "output_type": "stream",
  877. "text": [
  878. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  879. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  880. ]
  881. },
  882. {
  883. "data": {
  884. "image/png": "iVBORw0KGgoAAAANSUhEUgAABBoAAAL8CAYAAABOEdb6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADs4UlEQVR4nOzdd3hTZfsH8O9JuldKdxkd7NHKLBtahkwZFqUICiggDlR84f2pKIITFVyvuEGGAxCBoii7TFll790FdNI2Ld1tzu+PmGNKkzRpk6bj+7muXj3Nec7z3DkZcO7zDEEURRFERERERERERGYgs3YARERERERERFR/MNFARERERERERGbDRAMRERERERERmQ0TDURERERERERkNkw0EBEREREREZHZMNFARERERERERGbDRAMRERERERERmQ0TDURERERERERkNkw0EBEREREREZHZMNFARES1ysqVKyEIAgRBwMqVK3WW0eyPiIio0djMJSgoCIIgICgoSOf+qVOnSs8xPj6+RmMzp/ryPIhq0t69e6XPzcKFC60dDhFRldhYOwAiItLt3Llz+O2337Br1y4kJCQgIyMDjo6O8PHxQdeuXTF8+HA88sgjcHR0rLSuhQsX4q233qrwuCAIcHFxgUKhgIeHB0JCQtClSxcMHToUISEhlnhatV52djY+++wzAECnTp0wduxYq8ZTm+zduxd79+4FoE4i6EuUENG/+J1CRA0REw1ERLVMcnIy5syZg7Vr10IUxXL7ioqKkJ2djatXr2LNmjWYN28ePvjgA0yaNKlKbYmiiNzcXOTm5uLWrVs4e/YsfvnlF8ydOxc9e/bE66+/joceesgcT6vOyM7OlpIyU6ZM4UWBlr1790rnJiIigokGIiPwO4WIGiImGoiIapELFy5g+PDhSEpKAgDY2dlhyJAhGDhwIPz9/ZGfn48rV65g48aNuH79Om7duoXHH38cp06dwuLFiyEIQqVtREVFYcKECdLfRUVFyMrKQlJSEo4ePYoDBw6guLgYR44cwahRo/Dkk0/i22+/ha2trcWet6nuT8DUNQ1lGMHKlSv1Dn8hIt0iIiLq/HccERETDUREtURqaioGDx6MlJQUAEDPnj2xcuVKtGnTpkLZRYsWYenSpZg7dy5KSkrw8ccfQ6FQYP78+ZW207ZtW4N31JKTk/HRRx/h888/hyiK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
  885. "text/plain": [
  886. "<Figure size 1200x800 with 1 Axes>"
  887. ]
  888. },
  889. "metadata": {},
  890. "output_type": "display_data"
  891. },
  892. {
  893. "name": "stdout",
  894. "output_type": "stream",
  895. "text": [
  896. "8\n",
  897. "111\n",
  898. "<Parameter 'thermal_amplitude', value=6.152406713200165e-06, bounds=[0:inf]>\n",
  899. "111\n",
  900. "1.24761097358594\n",
  901. "1.1007144514442881\n",
  902. "<Parameter 'BEC_amplitude', value=731.6475562621214, bounds=[0:inf]>\n",
  903. "<Parameter 'BEC_sigmay', value=4.684134961245081, bounds=[0:inf]>\n",
  904. "<Parameter 'BEC_sigmax', value=4.072284625627418, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  905. "<Parameter 'thermal_amplitude', value=4.418579710142679, bounds=[0:inf]>\n",
  906. "<Parameter 'BEC_amplitude', value=731.6475562621214, bounds=[0:inf]>\n",
  907. "<Parameter 'BEC_amplitude', value=731.6475562621214, bounds=[0:inf]>\n"
  908. ]
  909. },
  910. {
  911. "name": "stderr",
  912. "output_type": "stream",
  913. "text": [
  914. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  915. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  916. ]
  917. },
  918. {
  919. "data": {
  920. "image/png": "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
  921. "text/plain": [
  922. "<Figure size 1200x800 with 1 Axes>"
  923. ]
  924. },
  925. "metadata": {},
  926. "output_type": "display_data"
  927. },
  928. {
  929. "name": "stdout",
  930. "output_type": "stream",
  931. "text": [
  932. "9\n",
  933. "111\n",
  934. "<Parameter 'thermal_amplitude', value=1.0471999798422615e-06, bounds=[0:inf]>\n",
  935. "111\n",
  936. "1.2696766909374297\n",
  937. "1.1316765124630221\n",
  938. "<Parameter 'BEC_amplitude', value=736.2192048064755, bounds=[0:inf]>\n",
  939. "<Parameter 'BEC_sigmay', value=4.644189572770608, bounds=[0:inf]>\n",
  940. "<Parameter 'BEC_sigmax', value=4.019899236706962, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  941. "<Parameter 'thermal_amplitude', value=2.767321194144596, bounds=[0:inf]>\n",
  942. "<Parameter 'BEC_amplitude', value=736.2192048064755, bounds=[0:inf]>\n",
  943. "<Parameter 'BEC_amplitude', value=736.2192048064755, bounds=[0:inf]>\n"
  944. ]
  945. },
  946. {
  947. "name": "stderr",
  948. "output_type": "stream",
  949. "text": [
  950. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  951. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  952. ]
  953. },
  954. {
  955. "data": {
  956. "image/png": "iVBORw0KGgoAAAANSUhEUgAABBoAAAL8CAYAAABOEdb6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADy3ElEQVR4nOzdd3gU5doG8Ht209uG9NCS0EsiNXQITaoUgxKKFKXYUPGAn4IiWA5RwXZERaWLVGmKUoQAgrRQAqEX04AECEk2ve58f6w7bkh2s5tsMgm5f9e1V2Z33nnnmdkC88xbBFEURRARERERERERWYBC7gCIiIiIiIiI6NHBRAMRERERERERWQwTDURERERERERkMUw0EBEREREREZHFMNFARERERERERBbDRAMRERERERERWQwTDURERERERERkMUw0EBEREREREZHFMNFARERERERERBbDRAMREVUrq1atgiAIEAQBq1atKrWMbn3v3r2rNDZL8ff3hyAI8Pf3L3X95MmTpWOMjY2t0tgs6VE5DqKqdPDgQel7s2DBArnDISIqFyu5AyAiotJFR0fj559/xr59+xAXF4fk5GTY29vDy8sLHTp0wODBg/HUU0/B3t6+zLoWLFiA9957r8TrgiDAyckJKpUKbm5uCAwMRPv27TFw4EAEBgZWxmFVe2lpafjiiy8AAG3btsXIkSNljac6OXjwIA4ePAhAm0QwlCghon/xN4WIaiMmGoiIqpnExETMmjULGzZsgCiKxdbl5eUhLS0N165dw/r16zF37lx89NFHGD9+fLn2JYoiMjIykJGRgVu3buH8+fNYt24dZs+ejS5duuDtt9/GE088YYnDqjHS0tKkpMykSZN4UaDn4MGD0rnp3bs3Ew1EJuBvChHVRkw0EBFVIxcvXsTgwYORkJAAALCxscGAAQPQt29f+Pr6Ijs7G1evXsXWrVtx48YN3Lp1C8888wzOnj2LRYsWQRCEMvcRFhaGMWPGSM/z8vKQmpqKhIQEnDhxAocPH0Z+fj6OHz+OYcOG4dlnn8V3330Ha2vrSjtucz2cgKlpaks3glWrVhns/kJEpevdu3eN/40jImKigYiomrh79y769++PpKQkAECXLl2watUqNG/evETZ8PBwLFmyBLNnz0ZBQQE+/fRTqFQqzJs3r8z9tGjRwugdtcTERHzyySf48ssv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
  957. "text/plain": [
  958. "<Figure size 1200x800 with 1 Axes>"
  959. ]
  960. },
  961. "metadata": {},
  962. "output_type": "display_data"
  963. },
  964. {
  965. "name": "stdout",
  966. "output_type": "stream",
  967. "text": [
  968. "10\n",
  969. "111\n",
  970. "<Parameter 'thermal_amplitude', value=2.0170076719949748e-09, bounds=[0:inf]>\n",
  971. "111\n",
  972. "1.0770639524619068\n",
  973. "0.9921090880797887\n",
  974. "<Parameter 'BEC_amplitude', value=746.360298383822, bounds=[0:inf]>\n",
  975. "<Parameter 'BEC_sigmay', value=5.030614372702362, bounds=[0:inf]>\n",
  976. "<Parameter 'BEC_sigmax', value=4.291492331580912, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  977. "<Parameter 'thermal_amplitude', value=2.379912245174944, bounds=[0:inf]>\n",
  978. "<Parameter 'BEC_amplitude', value=746.360298383822, bounds=[0:inf]>\n",
  979. "<Parameter 'BEC_amplitude', value=746.360298383822, bounds=[0:inf]>\n"
  980. ]
  981. },
  982. {
  983. "name": "stderr",
  984. "output_type": "stream",
  985. "text": [
  986. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  987. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  988. ]
  989. },
  990. {
  991. "data": {
  992. "image/png": "iVBORw0KGgoAAAANSUhEUgAABBoAAAL8CAYAAABOEdb6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADpxklEQVR4nOzdd3hTZfsH8O9Jule6B6ODvSqzQAEpSxnKEJQiKiBLFF7FV96fiiKgvqKCvm7FwVAUEBkCyl6CzELL3nQBbelMS3eb8/sj5JjSJE3apGmb7+e6euU05znPuZM0gdznee5HEEVRBBERERERERGRGcisHQARERERERERNRxMNBARERERERGR2TDRQERERERERERmw0QDEREREREREZkNEw1EREREREREZDZMNBARERERERGR2TDRQERERERERERmw0QDEREREREREZkNEw1EREREREREZDZMNBARUZ2yYsUKCIIAQRCwYsUKnW00+/v161ersZlLaGgoBEFAaGiozv2TJk2SHmNCQkKtxmZODeVxENWm/fv3S++bBQsWWDscIqJqsbN2AEREpNvZs2fx22+/Yffu3UhMTERGRgacnZ3h7++Prl27YujQoXj88cfh7OxcZV8LFizAwoULK90vCALc3NygUCjg7e2NDh06oEuXLhg8eDA6dOhgiYdV5+Xk5OCTTz4BAHTq1AmjRo2yajx1yf79+7F//34A6iSCvkQJEf2DnylEZIuYaCAiqmNSUlLwyiuvYM2aNRBFscK+4uJi5OTk4MqVK1i9ejXmzp2L999/H0899VS1ziWKIvLy8pCXl4ebN2/izJkz+OWXXzBnzhz07NkTb7zxBh599FFzPKx6IycnR0rKTJw4kV8KtOzfv196bvr168dEA5ER+JlCRLaIiQYiojrk/PnzGDp0KJKTkwEADg4OePjhhzFgwAAEBQWhoKAAly9fxoYNG3Dt2jXcvHkTTz/9NGJjY7F48WIIglDlOaKjozFu3Djp9+LiYmRnZyM5ORnHjh3DwYMHUVJSgqNHj2L48OF49tlnsXTpUtjb21vscZvq/gRMfWMr0whWrFihd/oLEenWr1+/ev8ZR0TERAMRUR2RlpaGQYMGITU1FQDQs2dPrFixAq1bt67UdtGiRfjiiy8wZ84clJaW4qOPPoJCocC8efOqPE+bNm0MXlFLSUnBhx9+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
  993. "text/plain": [
  994. "<Figure size 1200x800 with 1 Axes>"
  995. ]
  996. },
  997. "metadata": {},
  998. "output_type": "display_data"
  999. }
  1000. ],
  1001. "source": [
  1002. "## perform the BEC fit\n",
  1003. "\n",
  1004. "# set the fit Model\n",
  1005. "fitModel = DensityProfileBEC2dModel()\n",
  1006. "fitAnalyser = FitAnalyser(fitModel, fitDim=2)\n",
  1007. "\n",
  1008. "fit_fT_flatfield_result = np.empty((11,13))\n",
  1009. "fit_fT_flatfield_std = np.empty((11,13))\n",
  1010. "\n",
  1011. "# params = fitAnalyser.guess(data_sim, dask=\"parallelized\")\n",
  1012. "params = fitAnalyser.fitModel.make_params()\n",
  1013. "params.add(name=\"A_amplitude\", value= 3000, max=np.inf, min=-np.inf, vary=True)\n",
  1014. "params.add(name=\"A_centerx\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  1015. "params.add(name=\"A_centery\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  1016. "params.add(name=\"A_sigmax\", value= 50e-6, max= 0, min=-np.inf, vary=True)\n",
  1017. "params.add(name=\"A_sigmay\", value= 30e-6, max=np.inf, min=-np.inf, vary=True)\n",
  1018. "params.add(name=\"B_amplitude\", value= 27000, max=np.inf, min=-np.inf, vary=True)\n",
  1019. "params.add(name=\"B_centerx\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  1020. "params.add(name=\"B_centery\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  1021. "params.add(name=\"B_sigmax\", value= 80e-6, max=np.inf, min=-np.inf, vary=True)\n",
  1022. "params.add(name=\"B_sigmay\", value= 80e-6, max=np.inf, min=-np.inf, vary=True)\n",
  1023. "\n",
  1024. "# for i in range (11):\n",
  1025. "# print(i)\n",
  1026. "# sim_fT_flatfield = xr.DataArray(\n",
  1027. "# data = sim_fT_flatfield_np[i], \n",
  1028. "# dims = [\"x\", \"y\"],\n",
  1029. "# coords = dict(\n",
  1030. "# x = (\"x\", x),\n",
  1031. "# y = (\"y\", y),\n",
  1032. "# )\n",
  1033. "# )\n",
  1034. "# # perform the fit for one simulation with flatfield\n",
  1035. "# params = fitAnalyser.guess(sim_fT_flatfield, dask=\"parallelized\", guess_kwargs=dict(pureBECThreshold=1.2))\n",
  1036. "# fitResult = fitAnalyser.fit(sim_fT_flatfield, params, dask=\"parallelized\").load()\n",
  1037. "# fitCurve = fitAnalyser.eval(fitResult, x=x, y=y).load()\n",
  1038. "# fitValue = fitAnalyser.get_fit_value(fitResult)\n",
  1039. "# fitStd = fitAnalyser.get_fit_std(fitResult)\n",
  1040. "# # store the results as numpy array\n",
  1041. "# fit_fT_flatfield = fitCurve.to_numpy()\n",
  1042. "# fitValue_array = fitValue.to_array()\n",
  1043. "# fitStd_array = fitStd.to_array()\n",
  1044. "# fit_fT_flatfield_result[i] = fitValue_array.to_numpy()\n",
  1045. "# fit_fT_flatfield_std[i] = fitStd_array.to_numpy()\n",
  1046. "# # plot fit\n",
  1047. "# plt.figure(figsize=(12,8))\n",
  1048. "# plt.errorbar(x, sim_fT_flatfield_np[i,100], fmt = '.', label = \"simulated data\")\n",
  1049. "# plt.plot(x, fit_fT_flatfield[100], label = \"BEC fit\")\n",
  1050. "# plt.xlabel(\"y axis [px]\")\n",
  1051. "# plt.ylabel(\"OD\")\n",
  1052. "# plt.title(\"OD distribution cross-section \\n f={}, flatfield lightsource\".format(str(f[i])))\n",
  1053. "# plt.legend()\n",
  1054. "# plt.show()"
  1055. ]
  1056. },
  1057. {
  1058. "cell_type": "code",
  1059. "execution_count": null,
  1060. "metadata": {},
  1061. "outputs": [],
  1062. "source": [
  1063. "class DensityProfileBEC2dModel(Model):\n",
  1064. "\n",
  1065. " fwhm_factor = 2*np.sqrt(2*np.log(2))\n",
  1066. " height_factor = 1./2*np.pi\n",
  1067. "\n",
  1068. " def __init__(self, independent_vars=['x', 'y'], prefix='', nan_policy='raise',\n",
  1069. " **kwargs):\n",
  1070. " kwargs.update({'prefix': prefix, 'nan_policy': nan_policy,\n",
  1071. " 'independent_vars': independent_vars})\n",
  1072. " super().__init__(density_profile_BEC_2d, **kwargs)\n",
  1073. " self._set_paramhints_prefix()\n",
  1074. "\n",
  1075. " def _set_paramhints_prefix(self):\n",
  1076. " # self.set_param_hint('BEC_sigmax', min=0)\n",
  1077. " self.set_param_hint('deltax', min=0)\n",
  1078. " self.set_param_hint('BEC_sigmax', expr=f'3 * {self.prefix}thermal_sigmax - {self.prefix}deltax')\n",
  1079. " \n",
  1080. " self.set_param_hint('BEC_sigmay', min=0)\n",
  1081. " self.set_param_hint('thermal_sigmax', min=0)\n",
  1082. " # self.set_param_hint('thermal_sigmay', min=0)\n",
  1083. " self.set_param_hint('BEC_amplitude', min=0)\n",
  1084. " self.set_param_hint('thermal_amplitude', min=0)\n",
  1085. " \n",
  1086. " self.set_param_hint('thermalAspectRatio', min=0.8, max=1.2)\n",
  1087. " self.set_param_hint('thermal_sigmay', expr=f'{self.prefix}thermalAspectRatio * {self.prefix}thermal_sigmax')\n",
  1088. " \n",
  1089. " # self.set_param_hint('betax', value=0)\n",
  1090. " # self.set_param_hint('BEC_centerx', expr=f'{self.prefix}thermal_sigmax - {self.prefix}betax')\n",
  1091. " \n",
  1092. " self.set_param_hint('condensate_fraction', expr=f'{self.prefix}BEC_amplitude / ({self.prefix}BEC_amplitude + {self.prefix}thermal_amplitude)')\n",
  1093. "\n",
  1094. " def guess(self, data, x, y, negative=False, pureBECThreshold=0.5, noBECThThreshold=0.0, **kwargs):\n",
  1095. " \"\"\"Estimate initial model parameter values from data.\"\"\"\n",
  1096. " fitModel = TwoGaussian2dModel()\n",
  1097. " pars = fitModel.guess(data, x=x, y=y, negative=negative)\n",
  1098. " pars['A_amplitude'].set(min=0)\n",
  1099. " pars['B_amplitude'].set(min=0)\n",
  1100. " pars['A_centerx'].set(min=pars['A_centerx'].value - 3 * pars['A_sigmax'], \n",
  1101. " max=pars['A_centerx'].value + 3 * pars['A_sigmax'],)\n",
  1102. " pars['A_centery'].set(min=pars['A_centery'].value - 3 * pars['A_sigmay'], \n",
  1103. " max=pars['A_centery'].value + 3 * pars['A_sigmay'],)\n",
  1104. " pars['B_centerx'].set(min=pars['B_centerx'].value - 3 * pars['B_sigmax'], \n",
  1105. " max=pars['B_centerx'].value + 3 * pars['B_sigmax'],)\n",
  1106. " pars['B_centery'].set(min=pars['B_centery'].value - 3 * pars['B_sigmay'], \n",
  1107. " max=pars['B_centery'].value + 3 * pars['B_sigmay'],)\n",
  1108. " \n",
  1109. " fitResult = fitModel.fit(data, x=x, y=y, params=pars, **kwargs)\n",
  1110. " pars_guess = fitResult.params\n",
  1111. " \n",
  1112. " BEC_amplitude = pars_guess['A_amplitude'].value\n",
  1113. " thermal_amplitude = pars_guess['B_amplitude'].value\n",
  1114. " \n",
  1115. " pars = self.make_params(BEC_amplitude=BEC_amplitude,\n",
  1116. " thermal_amplitude=thermal_amplitude, \n",
  1117. " BEC_centerx=pars_guess['A_centerx'].value, BEC_centery=pars_guess['A_centery'].value,\n",
  1118. " # BEC_sigmax=(pars_guess['A_sigmax'].value / 2.355), \n",
  1119. " deltax = 3 * (pars_guess['B_sigmax'].value * s2) - (pars_guess['A_sigmax'].value / 2.355),\n",
  1120. " BEC_sigmay=(pars_guess['A_sigmay'].value / 2.355), \n",
  1121. " thermal_centerx=pars_guess['B_centerx'].value, thermal_centery=pars_guess['B_centery'].value,\n",
  1122. " thermal_sigmax=(pars_guess['B_sigmax'].value * s2), \n",
  1123. " thermalAspectRatio=(pars_guess['B_sigmax'].value * s2) / (pars_guess['B_sigmay'].value * s2)\n",
  1124. " # thermal_sigmay=(pars_guess['B_sigmay'].value * s2)\n",
  1125. " )\n",
  1126. " \n",
  1127. " nBEC = pars[f'{self.prefix}BEC_amplitude'] / 2 / np.pi / 5.546 / pars[f'{self.prefix}BEC_sigmay'] / pars[f'{self.prefix}BEC_sigmax']\n",
  1128. " if (pars[f'{self.prefix}condensate_fraction']>0.95) and (np.max(data) > 1.05 * nBEC):\n",
  1129. " temp = ((np.max(data) - nBEC) * s2pi * pars[f'{self.prefix}thermal_sigmay'] / pars[f'{self.prefix}thermal_sigmax'])\n",
  1130. " if temp > pars[f'{self.prefix}BEC_amplitude']:\n",
  1131. " pars[f'{self.prefix}thermal_amplitude'].set(value=pars[f'{self.prefix}BEC_amplitude'] / 2)\n",
  1132. " else:\n",
  1133. " pars[f'{self.prefix}thermal_amplitude'].set(value=temp * 10)\n",
  1134. " \n",
  1135. " if BEC_amplitude / (thermal_amplitude + BEC_amplitude) > pureBECThreshold:\n",
  1136. " pars[f'{self.prefix}thermal_amplitude'].set(value=0)\n",
  1137. " pars[f'{self.prefix}BEC_amplitude'].set(value=(thermal_amplitude + BEC_amplitude))\n",
  1138. " \n",
  1139. " if BEC_amplitude / (thermal_amplitude + BEC_amplitude) < noBECThThreshold:\n",
  1140. " pars[f'{self.prefix}BEC_amplitude'].set(value=0)\n",
  1141. " pars[f'{self.prefix}thermal_amplitude'].set(value=(thermal_amplitude + BEC_amplitude))\n",
  1142. " \n",
  1143. " pars[f'{self.prefix}BEC_centerx'].set(\n",
  1144. " min=pars[f'{self.prefix}BEC_centerx'].value - 10 * pars[f'{self.prefix}BEC_sigmax'].value,\n",
  1145. " max=pars[f'{self.prefix}BEC_centerx'].value + 10 * pars[f'{self.prefix}BEC_sigmax'].value, \n",
  1146. " )\n",
  1147. " \n",
  1148. " pars[f'{self.prefix}thermal_centerx'].set(\n",
  1149. " min=pars[f'{self.prefix}thermal_centerx'].value - 3 * pars[f'{self.prefix}thermal_sigmax'].value,\n",
  1150. " max=pars[f'{self.prefix}thermal_centerx'].value + 3 * pars[f'{self.prefix}thermal_sigmax'].value, \n",
  1151. " )\n",
  1152. " \n",
  1153. " pars[f'{self.prefix}BEC_centery'].set(\n",
  1154. " min=pars[f'{self.prefix}BEC_centery'].value - 10 * pars[f'{self.prefix}BEC_sigmay'].value,\n",
  1155. " max=pars[f'{self.prefix}BEC_centery'].value + 10 * pars[f'{self.prefix}BEC_sigmay'].value, \n",
  1156. " )\n",
  1157. " \n",
  1158. " pars[f'{self.prefix}thermal_centery'].set(\n",
  1159. " min=pars[f'{self.prefix}thermal_centery'].value - 3 * pars[f'{self.prefix}thermal_sigmay'].value,\n",
  1160. " max=pars[f'{self.prefix}thermal_centery'].value + 3 * pars[f'{self.prefix}thermal_sigmay'].value, \n",
  1161. " )\n",
  1162. " \n",
  1163. " pars[f'{self.prefix}BEC_sigmay'].set(\n",
  1164. " max=5 * pars[f'{self.prefix}BEC_sigmay'].value, \n",
  1165. " )\n",
  1166. " \n",
  1167. " pars[f'{self.prefix}thermal_sigmax'].set(\n",
  1168. " max=5 * pars[f'{self.prefix}thermal_sigmax'].value, \n",
  1169. " )\n",
  1170. " \n",
  1171. " return update_param_vals(pars, self.prefix, **kwargs)"
  1172. ]
  1173. },
  1174. {
  1175. "cell_type": "code",
  1176. "execution_count": 24,
  1177. "metadata": {},
  1178. "outputs": [
  1179. {
  1180. "name": "stdout",
  1181. "output_type": "stream",
  1182. "text": [
  1183. "4\n",
  1184. "0.9524451336942912\n",
  1185. "0.7133580209950589\n",
  1186. "<Parameter 'BEC_amplitude', value=449.95823450592684, bounds=[0:inf]>\n",
  1187. "<Parameter 'BEC_sigmay', value=4.531159303422342, bounds=[0:inf]>\n",
  1188. "<Parameter 'BEC_sigmax', value=3.9948050534083563, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>\n",
  1189. "<Parameter 'thermal_amplitude', value=234.346332071024, bounds=[0:inf]>\n",
  1190. "<Parameter 'BEC_amplitude', value=449.95823450592684, bounds=[0:inf]>\n",
  1191. "<Parameter 'BEC_amplitude', value=449.95823450592684, bounds=[0:inf]>\n"
  1192. ]
  1193. },
  1194. {
  1195. "name": "stderr",
  1196. "output_type": "stream",
  1197. "text": [
  1198. "f:\\Jianshun\\analyseScript\\Analyser\\FitAnalyser.py:86: RuntimeWarning: invalid value encountered in power\n",
  1199. " res = (1- ((x-centerx)/(sigmax))**2 - ((y-centery)/(sigmay))**2)**(3 / 2)\n"
  1200. ]
  1201. },
  1202. {
  1203. "data": {
  1204. "image/png": "iVBORw0KGgoAAAANSUhEUgAABBoAAAL8CAYAAABOEdb6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAD0LklEQVR4nOzdd3xT1fsH8M9Nule6B6MtQ2bLroAgZYmACghKERVQhiioKHx/KkPABQpunCDLAYgMFWUXEGQWWqAsGV1AWyiddLe5vz9CLilN0iRNmrb5vF+vvnKbe+65T9KmcJ97znMEURRFEBERERERERGZgczaARARERERERFR/cFEAxERERERERGZDRMNRERERERERGQ2TDQQERERERERkdkw0UBEREREREREZsNEAxERERERERGZDRMNRERERERERGQ2TDQQERERERERkdkw0UBEREREREREZsNEAxER1SorV66EIAgQBAErV67U2ka9v3fv3jUam7mEhoZCEASEhoZq3T9u3DjpNSYmJtZobOZUX14HUU3au3ev9LmZN2+etcMhIjKJnbUDICIi7U6fPo3ffvsNu3btQlJSEjIyMuDs7Ax/f3907twZgwYNwhNPPAFnZ+cq+5o3bx7mz59f6XlBEODm5gaFQgFvb2+EhYWhU6dOePjhhxEWFmaJl1XrZWdn47PPPgMAdOjQAcOGDbNqPLXJ3r17sXfvXgCqJIKuRAkR3cW/KURki5hoICKqZVJTUzF9+nSsXbsWoihW2FdcXIzs7Gz8999/WLNmDWbOnImFCxfi6aefNulcoigiLy8PeXl5uHr1Kk6dOoVffvkFM2bMQLdu3TBr1iw8+uij5nhZdUZ2draUlBk7diwvCjTs3btXem969+7NRAORAfg3hYhsERMNRES1yJkzZzBo0CCkpKQAABwcHDBgwAD07dsXQUFBKCgowIULF7Bx40ZcunQJV69exTPPPIPY2FgsWrQIgiBUeY6oqCiMGjVK+r64uBhZWVlISUnBkSNHsH//fpSUlODw4cN47LHH8Nxzz+G7776Dvb29xV63se5NwNQ1tjKNYOXKlTqnvxCRdr17967zf+OIiJhoICKqJdLT09G/f3+kpaUBALp164aVK1eiZcuWldouWLAAS5YswYwZM1BaWoqPP/4YCoUCc+bMqfI8rVq10ntHLTU1FR999BE+//xziKKIFStWSI9ERERERFVhMUgiolpi7NixUpKhe/fu2LVrl9YkAwDIZDK88sorWLNmjTSKYf78+Th48GC14wgKCsKnn36K9evXQyZT/TOxcuVK/Pzzz9Xum4iIiIjqPyYaiIhqgQMHDmD79u0AABcXF/z8889wdXWt8rgRI0Zg0qRJAIDy8nKzVigfMWIE/ve//0nfv/fee1AqldXuNzo6GsOHD0dQUBCcnJwQEhKCp556Cv/++6/BfRiy6sTFixcxffp0dO7cGZ6enrC3t4efnx/atGmDQYMGYfHixTh79qzUPjExEYIgoEmTJtJzq1atks6l+aU59UHbKhmHDh3CuHHj0KxZM7i4uEAQBMTFxUnHVLXqhDY///wz+vfvL71voaGhmDBhQoXXoE3v3r2l+Kqiq+28efMgCEKFgqJ9+vSp9L7c+/MwZtWJI0eOYNKkSWjZsiXc3d3h6uqKZs2aYezYsYiOjq4y9ntjyM/Px+LFi9GlSxd4enrC1dUVYWFhmDVrFrKzs6vszxjXr1/HvHnz0LNnTwQGBsLBwQHu7u4ICwvD888/j82bN6OsrKzKmDMyMvDOO++gU6dO8PHxgSAImDZtWqXjzp07h1dffRVhYWFQKBRwdnZGSEgIRo4ciU2bNhkU84kTJzB58mSEh4fDw8MDDg4OCAwMRHh4OIYNG4avvvoKCQkJWo8tLy/Hjz/+iMceewyNGzeGk5MTXFxcEBoaioiICLz44ovYtGkTCgoKDH4PdTH2c6xNaWkpli9fjiFDhkjxenp6ol27dpg+fbpRU5n+++8//N///R8iIiLg5+cHe3t7KBQKdOrUCVOmTMHu3bulaQ+m/k0xZtWJzMxMvPvuu+jevTv8/Pzg4OCAoKAg9O/fH19++SWKior0Hq/tM7p9+3YMHToUDRs2hKOjIxo2bIioqCgcO3bM4PeJiAgiERFZ3ZNPPikCEAGIL730klHHXrt2TbSzs5OOP3PmTKU2c+fOlfbPnTvX4L5v3boluri4SMfu37/fqNju9frrr0t93fslk8nEBQsWiCtWrJCeW7FihdZ+1PsjIyO17l+6dKno4OCg81zqr/bt20vHJCQkVNle/ZWQkCAdd2+87777riiTySodExsbKx0TEhIiAhBDQkK0xj927FjpuAsXLojDhg3TGYuDg4O4bNkyne95ZGSk1LYqutpq/v7o+7r356H5OjTfM02lpaXixIkTq+z7ySefFAsKCnTGrhnDpUuXxNatW+vsKzQ0VExMTKzy/TDEwoULRScnpyrjX7lypd6Yjx07JjZo0KDSca+++mqFY95++21RLpdX+XPIyMjQGfPcuXNFQRCqjHno0KGVjr1586YYERFh0O/Dpk2bqvXemvI5vtfx48fFpk2b6j3ewcFB/Pbbb/XGUlpaKk6bNq3K9x6AuHfvXlEUTf+bsmfPHul5fX+vN2/eLHp6eurtNzg4WDxx4oTOPjQ/o5cvXxYnT56ssy+ZTKbzbzIR0b1Yo4GIyMpEUcTu3bul78eMGWPU8Q0aNEC/fv2kERG7du1CmzZtzBKbt7c3BgwYgM2bNwMA9u3bh549e5rU13vvvYdPPvkEgGrqx+jRo9GvXz/Y29sjJiYGy5Ytw1tvvYWhQ4dWK+bY2Fi88MILUCqVkMvlGDx4MPr16wd/f38AqhoUsbGx2LFjR4Xj/P39sWnTJty4cQMvvPACANVd+1deeaXSOdR93WvdunXYtm0bPD098dxzz6Fjx44QBAHHjx83aISKNm+88QY2b96MkJAQPP/882jZsiUyMzOxefNm7NixAyUlJZg4cSL8/PwwZMgQk85RlVGjRqFDhw5Yu3Yt1q1bBwB49913Ky2B6uvra3TfY8aMwZo1awAATk5OGDt2LB544AHIZDLExMRg+fLlyMvLw/r165GTk4Nt27bpHZ2Rm5uLRx55BBcuXMCQIUMwaNAgeHt748qVK/j666+RkpKCxMREjBs3Dnv27DE6Xk0vv/wylixZIn3/8MMPY+DAgWjQoAGKi4tx8eJFREdH4+DBg3qL+926dQvDhg3D9evX8dhjj0kxp6SkwN3dXWr31ltvYeHChQAAuVyOUaNGoW/fvnB2dsbp06fxww8/4MaNG9i3bx/69u2Lw4cPV1r+9vfff5dGpjg5OWHYsGHo0aMH/Pz8UFZWhqtXryImJgY7d+7UGuvEiROlO9shISEYNWoUmjdvDk9PT+Tl5eHChQv4559/cOTIEdPe1DtM/RxrOnLkCPr164f8/HwAQL9+/TBo0CA0btwYRUVFOHToEFavXo2CggJMnjwZjo6OGDduXKV+RFHEiBEj8McffwBQvffDhg1Dnz594O/vj4KCApw7dw7bt29HXFyc9LM2x98UXf7++2+MGDEC5eXlAIDIyEiMGDEC/v7+SEpKwk8//YTTp08jOTkZkZGROHr0KFq1aqW3z1mzZmHt2rVo0aIFxowZg+bNmyMvLw8bNmzAtm3boFQqMXnyZDzwwANo0aKFUfESkQ2ybp6DiIjOnj0r3TFydHQUS0pKjO5j3rx5Uh9RUVGV9ps6okEUVXds1ccOGzbM6NhEURQvXLgg3Zl0dHQUd+7cWanNxYsXK93RNWVEw5QpU6T9a9eu1RlTWVmZ+O+//1Z6XvMu5NixY6t8bZojGgCIbdu2FVNTU/UeY8yIBgBinz59xLy8vErtvvzyS6lNUFCQ1jbmGNGgpvl7tGfPnir7q2pEw9q1a6X9AQEBWkfjJCYmik2aNJHaLVmyROu5NN8vBwcH8c8//6zU5ubNm2JoaKjU7ujRo1W+Bl3WrVsn9ePl5aX3/bhw4YJ4+vRpvTHb2dmJGzZs0NnHwYMHpVEIrq6u4r59+yq1uXX
  1205. "text/plain": [
  1206. "<Figure size 1200x800 with 1 Axes>"
  1207. ]
  1208. },
  1209. "metadata": {},
  1210. "output_type": "display_data"
  1211. },
  1212. {
  1213. "name": "stdout",
  1214. "output_type": "stream",
  1215. "text": [
  1216. "Parameters([('BEC_amplitude', <Parameter 'BEC_amplitude', value=449.95823450592684, bounds=[0:inf]>), ('thermal_amplitude', <Parameter 'thermal_amplitude', value=234.346332071024, bounds=[0:inf]>), ('BEC_centerx', <Parameter 'BEC_centerx', value=600.4901284357314, bounds=[560.5420779016479:640.438178969815]>), ('BEC_centery', <Parameter 'BEC_centery', value=960.6538995040197, bounds=[915.3423064697963:1005.9654925382431]>), ('thermal_centerx', <Parameter 'thermal_centerx', value=600.3018356023492, bounds=[499.70580257202505:700.8978686326734]>), ('thermal_centery', <Parameter 'thermal_centery', value=960.5575103290612, bounds=[858.7135761857239:1062.4014444723985]>), ('BEC_sigmax', <Parameter 'BEC_sigmax', value=3.9948050534083563, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>), ('BEC_sigmay', <Parameter 'BEC_sigmay', value=4.531159303422342, bounds=[0:22.65579651711171]>), ('thermal_sigmax', <Parameter 'thermal_sigmax', value=33.53201101010806, bounds=[0:167.66005505054028]>), ('thermal_sigmay', <Parameter 'thermal_sigmay', value=33.94797804777908, bounds=[-inf:inf], expr='thermalAspectRatio * thermal_sigmax'>), ('deltax', <Parameter 'deltax', value=96.60122797691582, bounds=[0:inf]>), ('thermalAspectRatio', <Parameter 'thermalAspectRatio', value=1.012405072798814, bounds=[0.8:1.2]>), ('condensate_fraction', <Parameter 'condensate_fraction', value=0.6575408911220945, bounds=[-inf:inf], expr='BEC_amplitude / (BEC_amplitude + thermal_amplitude)'>)])\n"
  1217. ]
  1218. }
  1219. ],
  1220. "source": [
  1221. "i = 4\n",
  1222. "print(i)\n",
  1223. "sim_fT_flatfield = xr.DataArray(\n",
  1224. "data = sim_fT_flatfield_np[i], \n",
  1225. "dims = [\"x\", \"y\"],\n",
  1226. "coords = dict(\n",
  1227. " x = (\"x\", x),\n",
  1228. " y = (\"y\", y),\n",
  1229. " )\n",
  1230. ")\n",
  1231. "# perform the fit for one simulation with flatfield\n",
  1232. "params = fitAnalyser.guess(sim_fT_flatfield, dask=\"parallelized\", guess_kwargs=dict(pureBECThreshold=20))\n",
  1233. "fitResult = fitAnalyser.fit(sim_fT_flatfield, params, dask=\"parallelized\").load()\n",
  1234. "fitCurve = fitAnalyser.eval(fitResult, x=x, y=y).load()\n",
  1235. "fitValue = fitAnalyser.get_fit_value(fitResult)\n",
  1236. "fitStd = fitAnalyser.get_fit_std(fitResult)\n",
  1237. "# store the results as numpy array\n",
  1238. "fit_fT_flatfield = fitCurve.to_numpy()\n",
  1239. "fitValue_array = fitValue.to_array()\n",
  1240. "fitStd_array = fitStd.to_array()\n",
  1241. "fit_fT_flatfield_result[i] = fitValue_array.to_numpy()\n",
  1242. "fit_fT_flatfield_std[i] = fitStd_array.to_numpy()\n",
  1243. "# plot fit\n",
  1244. "plt.figure(figsize=(12,8))\n",
  1245. "plt.errorbar(x, sim_fT_flatfield_np[i,100], fmt = '.', label = \"simulated data\")\n",
  1246. "plt.plot(x, fit_fT_flatfield[100], label = \"BEC fit\")\n",
  1247. "plt.xlabel(\"y axis [px]\")\n",
  1248. "plt.ylabel(\"OD\")\n",
  1249. "plt.title(\"OD distribution cross-section \\n f={}, flatfield lightsource\".format(str(f[i])))\n",
  1250. "plt.legend()\n",
  1251. "plt.show()\n",
  1252. "\n",
  1253. "print(params.item())"
  1254. ]
  1255. },
  1256. {
  1257. "cell_type": "code",
  1258. "execution_count": 25,
  1259. "metadata": {},
  1260. "outputs": [
  1261. {
  1262. "data": {
  1263. "image/png": "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
  1264. "text/plain": [
  1265. "<Figure size 1200x800 with 1 Axes>"
  1266. ]
  1267. },
  1268. "metadata": {},
  1269. "output_type": "display_data"
  1270. }
  1271. ],
  1272. "source": [
  1273. "plt.figure(figsize=(12,8))\n",
  1274. "plt.errorbar(x, np.sum(sim_fT_flatfield_np[i], axis=0), fmt = '.', label = \"simulated data\")\n",
  1275. "plt.plot(x, np.sum(fit_fT_flatfield, axis=0), label = \"BEC fit\")\n",
  1276. "plt.show()"
  1277. ]
  1278. },
  1279. {
  1280. "cell_type": "code",
  1281. "execution_count": 26,
  1282. "metadata": {},
  1283. "outputs": [
  1284. {
  1285. "data": {
  1286. "image/png": "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
  1287. "text/plain": [
  1288. "<Figure size 640x480 with 1 Axes>"
  1289. ]
  1290. },
  1291. "metadata": {},
  1292. "output_type": "display_data"
  1293. }
  1294. ],
  1295. "source": [
  1296. "from matplotlib import cm\n",
  1297. "\n",
  1298. "X, Y = np.meshgrid(x, y)\n",
  1299. "\n",
  1300. "fig, ax = plt.subplots(subplot_kw={\"projection\": \"3d\"})\n",
  1301. "\n",
  1302. "ax.plot_surface(X, Y, sim_fT_flatfield_np[i], cmap=cm.coolwarm,\n",
  1303. " linewidth=0, antialiased=False)\n",
  1304. "# plt.plot(x, fit_fT_flatfield[100], label = \"BEC fit\")\n",
  1305. "# plt.xlabel(\"y axis [px]\")\n",
  1306. "# plt.ylabel(\"OD\")\n",
  1307. "# plt.title(\"OD distribution cross-section \\n f={}, flatfield lightsource\".format(str(f[i])))\n",
  1308. "# plt.legend()\n",
  1309. "plt.show()"
  1310. ]
  1311. },
  1312. {
  1313. "cell_type": "code",
  1314. "execution_count": 27,
  1315. "metadata": {},
  1316. "outputs": [
  1317. {
  1318. "data": {
  1319. "text/html": [
  1320. "<table><tr><th> name </th><th> value </th><th> initial value </th><th> min </th><th> max </th><th> vary </th><th> expression </th></tr><tr><td> BEC_amplitude </td><td> 449.958235 </td><td> None </td><td> 0.00000000 </td><td> inf </td><td> True </td><td> </td></tr><tr><td> thermal_amplitude </td><td> 234.346332 </td><td> None </td><td> 0.00000000 </td><td> inf </td><td> True </td><td> </td></tr><tr><td> BEC_centerx </td><td> 600.490128 </td><td> None </td><td> 560.542078 </td><td> 640.438179 </td><td> True </td><td> </td></tr><tr><td> BEC_centery </td><td> 960.653900 </td><td> None </td><td> 915.342306 </td><td> 1005.96549 </td><td> True </td><td> </td></tr><tr><td> thermal_centerx </td><td> 600.301836 </td><td> None </td><td> 499.705803 </td><td> 700.897869 </td><td> True </td><td> </td></tr><tr><td> thermal_centery </td><td> 960.557510 </td><td> None </td><td> 858.713576 </td><td> 1062.40144 </td><td> True </td><td> </td></tr><tr><td> BEC_sigmax </td><td> 3.99480505 </td><td> None </td><td> -inf </td><td> inf </td><td> False </td><td> 3 * thermal_sigmax - deltax </td></tr><tr><td> BEC_sigmay </td><td> 4.53115930 </td><td> None </td><td> 0.00000000 </td><td> 22.6557965 </td><td> True </td><td> </td></tr><tr><td> thermal_sigmax </td><td> 33.5320110 </td><td> None </td><td> 0.00000000 </td><td> 167.660055 </td><td> True </td><td> </td></tr><tr><td> thermal_sigmay </td><td> 33.9479780 </td><td> None </td><td> -inf </td><td> inf </td><td> False </td><td> thermalAspectRatio * thermal_sigmax </td></tr><tr><td> deltax </td><td> 96.6012280 </td><td> None </td><td> 0.00000000 </td><td> inf </td><td> True </td><td> </td></tr><tr><td> thermalAspectRatio </td><td> 1.01240507 </td><td> None </td><td> 0.80000000 </td><td> 1.20000000 </td><td> True </td><td> </td></tr><tr><td> condensate_fraction </td><td> 0.65754089 </td><td> None </td><td> -inf </td><td> inf </td><td> False </td><td> BEC_amplitude / (BEC_amplitude + thermal_amplitude) </td></tr></table>"
  1321. ],
  1322. "text/plain": [
  1323. "Parameters([('BEC_amplitude', <Parameter 'BEC_amplitude', value=449.95823450592684, bounds=[0:inf]>), ('thermal_amplitude', <Parameter 'thermal_amplitude', value=234.346332071024, bounds=[0:inf]>), ('BEC_centerx', <Parameter 'BEC_centerx', value=600.4901284357314, bounds=[560.5420779016479:640.438178969815]>), ('BEC_centery', <Parameter 'BEC_centery', value=960.6538995040197, bounds=[915.3423064697963:1005.9654925382431]>), ('thermal_centerx', <Parameter 'thermal_centerx', value=600.3018356023492, bounds=[499.70580257202505:700.8978686326734]>), ('thermal_centery', <Parameter 'thermal_centery', value=960.5575103290612, bounds=[858.7135761857239:1062.4014444723985]>), ('BEC_sigmax', <Parameter 'BEC_sigmax', value=3.9948050534083563, bounds=[-inf:inf], expr='3 * thermal_sigmax - deltax'>), ('BEC_sigmay', <Parameter 'BEC_sigmay', value=4.531159303422342, bounds=[0:22.65579651711171]>), ('thermal_sigmax', <Parameter 'thermal_sigmax', value=33.53201101010806, bounds=[0:167.66005505054028]>), ('thermal_sigmay', <Parameter 'thermal_sigmay', value=33.94797804777908, bounds=[-inf:inf], expr='thermalAspectRatio * thermal_sigmax'>), ('deltax', <Parameter 'deltax', value=96.60122797691582, bounds=[0:inf]>), ('thermalAspectRatio', <Parameter 'thermalAspectRatio', value=1.012405072798814, bounds=[0.8:1.2]>), ('condensate_fraction', <Parameter 'condensate_fraction', value=0.6575408911220945, bounds=[-inf:inf], expr='BEC_amplitude / (BEC_amplitude + thermal_amplitude)'>)])"
  1324. ]
  1325. },
  1326. "execution_count": 27,
  1327. "metadata": {},
  1328. "output_type": "execute_result"
  1329. }
  1330. ],
  1331. "source": [
  1332. "params.item()"
  1333. ]
  1334. },
  1335. {
  1336. "cell_type": "code",
  1337. "execution_count": 28,
  1338. "metadata": {},
  1339. "outputs": [
  1340. {
  1341. "name": "stderr",
  1342. "output_type": "stream",
  1343. "text": [
  1344. "C:\\Users\\data\\AppData\\Roaming\\Python\\Python39\\site-packages\\numpy\\lib\\function_base.py:2246: RuntimeWarning: invalid value encountered in _get_fit_full_result_single (vectorized)\n",
  1345. " outputs = ufunc(*inputs)\n"
  1346. ]
  1347. },
  1348. {
  1349. "data": {
  1350. "text/html": [
  1351. "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
  1352. "<defs>\n",
  1353. "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
  1354. "<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
  1355. "<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
  1356. "<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
  1357. "</symbol>\n",
  1358. "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
  1359. "<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
  1360. "<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
  1361. "<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
  1362. "<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
  1363. "</symbol>\n",
  1364. "</defs>\n",
  1365. "</svg>\n",
  1366. "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
  1367. " *\n",
  1368. " */\n",
  1369. "\n",
  1370. ":root {\n",
  1371. " --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
  1372. " --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
  1373. " --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
  1374. " --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
  1375. " --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
  1376. " --xr-background-color: var(--jp-layout-color0, white);\n",
  1377. " --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
  1378. " --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
  1379. "}\n",
  1380. "\n",
  1381. "html[theme=dark],\n",
  1382. "body[data-theme=dark],\n",
  1383. "body.vscode-dark {\n",
  1384. " --xr-font-color0: rgba(255, 255, 255, 1);\n",
  1385. " --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
  1386. " --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
  1387. " --xr-border-color: #1F1F1F;\n",
  1388. " --xr-disabled-color: #515151;\n",
  1389. " --xr-background-color: #111111;\n",
  1390. " --xr-background-color-row-even: #111111;\n",
  1391. " --xr-background-color-row-odd: #313131;\n",
  1392. "}\n",
  1393. "\n",
  1394. ".xr-wrap {\n",
  1395. " display: block !important;\n",
  1396. " min-width: 300px;\n",
  1397. " max-width: 700px;\n",
  1398. "}\n",
  1399. "\n",
  1400. ".xr-text-repr-fallback {\n",
  1401. " /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
  1402. " display: none;\n",
  1403. "}\n",
  1404. "\n",
  1405. ".xr-header {\n",
  1406. " padding-top: 6px;\n",
  1407. " padding-bottom: 6px;\n",
  1408. " margin-bottom: 4px;\n",
  1409. " border-bottom: solid 1px var(--xr-border-color);\n",
  1410. "}\n",
  1411. "\n",
  1412. ".xr-header > div,\n",
  1413. ".xr-header > ul {\n",
  1414. " display: inline;\n",
  1415. " margin-top: 0;\n",
  1416. " margin-bottom: 0;\n",
  1417. "}\n",
  1418. "\n",
  1419. ".xr-obj-type,\n",
  1420. ".xr-array-name {\n",
  1421. " margin-left: 2px;\n",
  1422. " margin-right: 10px;\n",
  1423. "}\n",
  1424. "\n",
  1425. ".xr-obj-type {\n",
  1426. " color: var(--xr-font-color2);\n",
  1427. "}\n",
  1428. "\n",
  1429. ".xr-sections {\n",
  1430. " padding-left: 0 !important;\n",
  1431. " display: grid;\n",
  1432. " grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
  1433. "}\n",
  1434. "\n",
  1435. ".xr-section-item {\n",
  1436. " display: contents;\n",
  1437. "}\n",
  1438. "\n",
  1439. ".xr-section-item input {\n",
  1440. " display: none;\n",
  1441. "}\n",
  1442. "\n",
  1443. ".xr-section-item input + label {\n",
  1444. " color: var(--xr-disabled-color);\n",
  1445. "}\n",
  1446. "\n",
  1447. ".xr-section-item input:enabled + label {\n",
  1448. " cursor: pointer;\n",
  1449. " color: var(--xr-font-color2);\n",
  1450. "}\n",
  1451. "\n",
  1452. ".xr-section-item input:enabled + label:hover {\n",
  1453. " color: var(--xr-font-color0);\n",
  1454. "}\n",
  1455. "\n",
  1456. ".xr-section-summary {\n",
  1457. " grid-column: 1;\n",
  1458. " color: var(--xr-font-color2);\n",
  1459. " font-weight: 500;\n",
  1460. "}\n",
  1461. "\n",
  1462. ".xr-section-summary > span {\n",
  1463. " display: inline-block;\n",
  1464. " padding-left: 0.5em;\n",
  1465. "}\n",
  1466. "\n",
  1467. ".xr-section-summary-in:disabled + label {\n",
  1468. " color: var(--xr-font-color2);\n",
  1469. "}\n",
  1470. "\n",
  1471. ".xr-section-summary-in + label:before {\n",
  1472. " display: inline-block;\n",
  1473. " content: 'â–º';\n",
  1474. " font-size: 11px;\n",
  1475. " width: 15px;\n",
  1476. " text-align: center;\n",
  1477. "}\n",
  1478. "\n",
  1479. ".xr-section-summary-in:disabled + label:before {\n",
  1480. " color: var(--xr-disabled-color);\n",
  1481. "}\n",
  1482. "\n",
  1483. ".xr-section-summary-in:checked + label:before {\n",
  1484. " content: 'â–¼';\n",
  1485. "}\n",
  1486. "\n",
  1487. ".xr-section-summary-in:checked + label > span {\n",
  1488. " display: none;\n",
  1489. "}\n",
  1490. "\n",
  1491. ".xr-section-summary,\n",
  1492. ".xr-section-inline-details {\n",
  1493. " padding-top: 4px;\n",
  1494. " padding-bottom: 4px;\n",
  1495. "}\n",
  1496. "\n",
  1497. ".xr-section-inline-details {\n",
  1498. " grid-column: 2 / -1;\n",
  1499. "}\n",
  1500. "\n",
  1501. ".xr-section-details {\n",
  1502. " display: none;\n",
  1503. " grid-column: 1 / -1;\n",
  1504. " margin-bottom: 5px;\n",
  1505. "}\n",
  1506. "\n",
  1507. ".xr-section-summary-in:checked ~ .xr-section-details {\n",
  1508. " display: contents;\n",
  1509. "}\n",
  1510. "\n",
  1511. ".xr-array-wrap {\n",
  1512. " grid-column: 1 / -1;\n",
  1513. " display: grid;\n",
  1514. " grid-template-columns: 20px auto;\n",
  1515. "}\n",
  1516. "\n",
  1517. ".xr-array-wrap > label {\n",
  1518. " grid-column: 1;\n",
  1519. " vertical-align: top;\n",
  1520. "}\n",
  1521. "\n",
  1522. ".xr-preview {\n",
  1523. " color: var(--xr-font-color3);\n",
  1524. "}\n",
  1525. "\n",
  1526. ".xr-array-preview,\n",
  1527. ".xr-array-data {\n",
  1528. " padding: 0 5px !important;\n",
  1529. " grid-column: 2;\n",
  1530. "}\n",
  1531. "\n",
  1532. ".xr-array-data,\n",
  1533. ".xr-array-in:checked ~ .xr-array-preview {\n",
  1534. " display: none;\n",
  1535. "}\n",
  1536. "\n",
  1537. ".xr-array-in:checked ~ .xr-array-data,\n",
  1538. ".xr-array-preview {\n",
  1539. " display: inline-block;\n",
  1540. "}\n",
  1541. "\n",
  1542. ".xr-dim-list {\n",
  1543. " display: inline-block !important;\n",
  1544. " list-style: none;\n",
  1545. " padding: 0 !important;\n",
  1546. " margin: 0;\n",
  1547. "}\n",
  1548. "\n",
  1549. ".xr-dim-list li {\n",
  1550. " display: inline-block;\n",
  1551. " padding: 0;\n",
  1552. " margin: 0;\n",
  1553. "}\n",
  1554. "\n",
  1555. ".xr-dim-list:before {\n",
  1556. " content: '(';\n",
  1557. "}\n",
  1558. "\n",
  1559. ".xr-dim-list:after {\n",
  1560. " content: ')';\n",
  1561. "}\n",
  1562. "\n",
  1563. ".xr-dim-list li:not(:last-child):after {\n",
  1564. " content: ',';\n",
  1565. " padding-right: 5px;\n",
  1566. "}\n",
  1567. "\n",
  1568. ".xr-has-index {\n",
  1569. " font-weight: bold;\n",
  1570. "}\n",
  1571. "\n",
  1572. ".xr-var-list,\n",
  1573. ".xr-var-item {\n",
  1574. " display: contents;\n",
  1575. "}\n",
  1576. "\n",
  1577. ".xr-var-item > div,\n",
  1578. ".xr-var-item label,\n",
  1579. ".xr-var-item > .xr-var-name span {\n",
  1580. " background-color: var(--xr-background-color-row-even);\n",
  1581. " margin-bottom: 0;\n",
  1582. "}\n",
  1583. "\n",
  1584. ".xr-var-item > .xr-var-name:hover span {\n",
  1585. " padding-right: 5px;\n",
  1586. "}\n",
  1587. "\n",
  1588. ".xr-var-list > li:nth-child(odd) > div,\n",
  1589. ".xr-var-list > li:nth-child(odd) > label,\n",
  1590. ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
  1591. " background-color: var(--xr-background-color-row-odd);\n",
  1592. "}\n",
  1593. "\n",
  1594. ".xr-var-name {\n",
  1595. " grid-column: 1;\n",
  1596. "}\n",
  1597. "\n",
  1598. ".xr-var-dims {\n",
  1599. " grid-column: 2;\n",
  1600. "}\n",
  1601. "\n",
  1602. ".xr-var-dtype {\n",
  1603. " grid-column: 3;\n",
  1604. " text-align: right;\n",
  1605. " color: var(--xr-font-color2);\n",
  1606. "}\n",
  1607. "\n",
  1608. ".xr-var-preview {\n",
  1609. " grid-column: 4;\n",
  1610. "}\n",
  1611. "\n",
  1612. ".xr-index-preview {\n",
  1613. " grid-column: 2 / 5;\n",
  1614. " color: var(--xr-font-color2);\n",
  1615. "}\n",
  1616. "\n",
  1617. ".xr-var-name,\n",
  1618. ".xr-var-dims,\n",
  1619. ".xr-var-dtype,\n",
  1620. ".xr-preview,\n",
  1621. ".xr-attrs dt {\n",
  1622. " white-space: nowrap;\n",
  1623. " overflow: hidden;\n",
  1624. " text-overflow: ellipsis;\n",
  1625. " padding-right: 10px;\n",
  1626. "}\n",
  1627. "\n",
  1628. ".xr-var-name:hover,\n",
  1629. ".xr-var-dims:hover,\n",
  1630. ".xr-var-dtype:hover,\n",
  1631. ".xr-attrs dt:hover {\n",
  1632. " overflow: visible;\n",
  1633. " width: auto;\n",
  1634. " z-index: 1;\n",
  1635. "}\n",
  1636. "\n",
  1637. ".xr-var-attrs,\n",
  1638. ".xr-var-data,\n",
  1639. ".xr-index-data {\n",
  1640. " display: none;\n",
  1641. " background-color: var(--xr-background-color) !important;\n",
  1642. " padding-bottom: 5px !important;\n",
  1643. "}\n",
  1644. "\n",
  1645. ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
  1646. ".xr-var-data-in:checked ~ .xr-var-data,\n",
  1647. ".xr-index-data-in:checked ~ .xr-index-data {\n",
  1648. " display: block;\n",
  1649. "}\n",
  1650. "\n",
  1651. ".xr-var-data > table {\n",
  1652. " float: right;\n",
  1653. "}\n",
  1654. "\n",
  1655. ".xr-var-name span,\n",
  1656. ".xr-var-data,\n",
  1657. ".xr-index-name div,\n",
  1658. ".xr-index-data,\n",
  1659. ".xr-attrs {\n",
  1660. " padding-left: 25px !important;\n",
  1661. "}\n",
  1662. "\n",
  1663. ".xr-attrs,\n",
  1664. ".xr-var-attrs,\n",
  1665. ".xr-var-data,\n",
  1666. ".xr-index-data {\n",
  1667. " grid-column: 1 / -1;\n",
  1668. "}\n",
  1669. "\n",
  1670. "dl.xr-attrs {\n",
  1671. " padding: 0;\n",
  1672. " margin: 0;\n",
  1673. " display: grid;\n",
  1674. " grid-template-columns: 125px auto;\n",
  1675. "}\n",
  1676. "\n",
  1677. ".xr-attrs dt,\n",
  1678. ".xr-attrs dd {\n",
  1679. " padding: 0;\n",
  1680. " margin: 0;\n",
  1681. " float: left;\n",
  1682. " padding-right: 10px;\n",
  1683. " width: auto;\n",
  1684. "}\n",
  1685. "\n",
  1686. ".xr-attrs dt {\n",
  1687. " font-weight: normal;\n",
  1688. " grid-column: 1;\n",
  1689. "}\n",
  1690. "\n",
  1691. ".xr-attrs dt:hover span {\n",
  1692. " display: inline-block;\n",
  1693. " background: var(--xr-background-color);\n",
  1694. " padding-right: 10px;\n",
  1695. "}\n",
  1696. "\n",
  1697. ".xr-attrs dd {\n",
  1698. " grid-column: 2;\n",
  1699. " white-space: pre-wrap;\n",
  1700. " word-break: break-all;\n",
  1701. "}\n",
  1702. "\n",
  1703. ".xr-icon-database,\n",
  1704. ".xr-icon-file-text2,\n",
  1705. ".xr-no-icon {\n",
  1706. " display: inline-block;\n",
  1707. " vertical-align: middle;\n",
  1708. " width: 1em;\n",
  1709. " height: 1.5em !important;\n",
  1710. " stroke-width: 0;\n",
  1711. " stroke: currentColor;\n",
  1712. " fill: currentColor;\n",
  1713. "}\n",
  1714. "</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
  1715. "Dimensions: ()\n",
  1716. "Data variables: (12/13)\n",
  1717. " BEC_amplitude object 0.0005808768046449142+/-nan\n",
  1718. " thermal_amplitude object 588.5963406894194+/-nan\n",
  1719. " BEC_centerx object 600.511601780056+/-nan\n",
  1720. " BEC_centery object 960.6113364263412+/-nan\n",
  1721. " thermal_centerx object 600.4841611552301+/-nan\n",
  1722. " thermal_centery object 960.6425220578551+/-nan\n",
  1723. " ... ...\n",
  1724. " BEC_sigmay object 5.279015683706861+/-nan\n",
  1725. " thermal_sigmax object 11.152763795479629+/-nan\n",
  1726. " thermal_sigmay object 13.231941010349708+/-nan\n",
  1727. " deltax object 19.549896361379112+/-nan\n",
  1728. " thermalAspectRatio object 1.1864270823804945+/-nan\n",
  1729. " condensate_fraction object (9.868838645965612+/-nan)e-07</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-63557ffa-e3b5-4773-810c-266fa087ce33' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-63557ffa-e3b5-4773-810c-266fa087ce33' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-4dfa7f99-04f5-436a-84f5-b9397742ba7f' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-4dfa7f99-04f5-436a-84f5-b9397742ba7f' class='xr-section-summary' title='Expand/collapse section'>Coordinates: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'></ul></div></li><li class='xr-section-item'><input id='section-af0244dd-0669-4ce9-b80d-6f812388606d' class='xr-section-summary-in' type='checkbox' checked><label for='section-af0244dd-0669-4ce9-b80d-6f812388606d' class='xr-section-summary' >Data variables: <span>(13)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>BEC_amplitude</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>0.0005808768046449142+/-nan</div><input id='attrs-34bd94b7-52ac-4f36-a49d-b6f672e2b23e' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-34bd94b7-52ac-4f36-a49d-b6f672e2b23e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-bed0e479-26cd-4fb5-b2cf-a23b86dba17e' class='xr-var-data-in' type='checkbox'><label for='data-bed0e479-26cd-4fb5-b2cf-a23b86dba17e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array(0.0005808768046449142+/-nan, dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>thermal_amplitude</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>588.5963406894194+/-nan</div><input id='attrs-1b6fbad9-a3cf-4588-9f9b-4937e8762f61' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-1b6fbad9-a3cf-4588-9f9b-4937e8762f61' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5271c939-2859-479e-94a7-a9d037ab6713' class='xr-var-data-in' type='checkbox'><label for='data-5271c939-2859-479e-94a7-a9d037ab6713' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array(588.5963406894194+/-nan, dtype=object)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>BEC_centerx</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>object</div><div class='xr-var-preview xr-preview'>600.511601780056+/-nan</div><input id='attrs-4f90806c-441e-46d7-b982-0424724b696a' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-4f90806c-441e-46d7-b982-0424724b696a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5e965908-0549-42f2-80c0-6b208be35523' class='xr-var-data-in' type='checkbox'><label for='data-5e965908-0549-42f2-80c0-6b208be35523' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array(600.511601780056+/-nan, dtype=object)
  1730. ],
  1731. "text/plain": [
  1732. "<xarray.Dataset>\n",
  1733. "Dimensions: ()\n",
  1734. "Data variables: (12/13)\n",
  1735. " BEC_amplitude object 0.0005808768046449142+/-nan\n",
  1736. " thermal_amplitude object 588.5963406894194+/-nan\n",
  1737. " BEC_centerx object 600.511601780056+/-nan\n",
  1738. " BEC_centery object 960.6113364263412+/-nan\n",
  1739. " thermal_centerx object 600.4841611552301+/-nan\n",
  1740. " thermal_centery object 960.6425220578551+/-nan\n",
  1741. " ... ...\n",
  1742. " BEC_sigmay object 5.279015683706861+/-nan\n",
  1743. " thermal_sigmax object 11.152763795479629+/-nan\n",
  1744. " thermal_sigmay object 13.231941010349708+/-nan\n",
  1745. " deltax object 19.549896361379112+/-nan\n",
  1746. " thermalAspectRatio object 1.1864270823804945+/-nan\n",
  1747. " condensate_fraction object (9.868838645965612+/-nan)e-07"
  1748. ]
  1749. },
  1750. "execution_count": 28,
  1751. "metadata": {},
  1752. "output_type": "execute_result"
  1753. }
  1754. ],
  1755. "source": [
  1756. "fitAnalyser.get_fit_full_result(fitResult)"
  1757. ]
  1758. },
  1759. {
  1760. "attachments": {},
  1761. "cell_type": "markdown",
  1762. "metadata": {},
  1763. "source": [
  1764. "### Calculate the parameter"
  1765. ]
  1766. },
  1767. {
  1768. "cell_type": "code",
  1769. "execution_count": 12,
  1770. "metadata": {},
  1771. "outputs": [
  1772. {
  1773. "data": {
  1774. "text/plain": [
  1775. "'\\nfit_fT_flatfield_x1000_result = fit_fT_flatfield_x1000_result.T\\nfit_fT_flatfield_x1000_std = fit_fT_flatfield_x1000_std.T\\n'"
  1776. ]
  1777. },
  1778. "execution_count": 12,
  1779. "metadata": {},
  1780. "output_type": "execute_result"
  1781. }
  1782. ],
  1783. "source": [
  1784. "'''\n",
  1785. "fit_fT_flatfield_x1000_result = fit_fT_flatfield_x1000_result.T\n",
  1786. "fit_fT_flatfield_x1000_std = fit_fT_flatfield_x1000_std.T\n",
  1787. "'''"
  1788. ]
  1789. },
  1790. {
  1791. "cell_type": "code",
  1792. "execution_count": 13,
  1793. "metadata": {},
  1794. "outputs": [
  1795. {
  1796. "data": {
  1797. "text/plain": [
  1798. "'\\n## calculate the peak densities and the radii\\nlam = 421e-9\\nsig0 = 3*lam**2/(2*np.pi)\\neff_px_size = 2.493e-6\\n\\n\\nRxc_fit = fit_fT_flatfield_x1000_result[6]*eff_px_size\\nRxc_err = Rxc_fit*fit_fT_flatfield_x1000_std[6]/fit_fT_flatfield_x1000_std[6]\\nRyc_fit = fit_fT_flatfield_x1000_result[7]*eff_px_size\\nRyc_err = Ryc_fit*fit_fT_flatfield_x1000_std[7]/fit_fT_flatfield_x1000_result[7]\\nRxth_fit = fit_fT_flatfield_x1000_result[8]*np.sqrt(2)*eff_px_size\\nRxth_err = Rxth_fit*fit_fT_flatfield_x1000_std[8]/Rxth_fit*fit_fT_flatfield_x1000_result[8]\\nRyth_fit = fit_fT_flatfield_x1000_result[9]*np.sqrt(2)*eff_px_size\\nRyth_err = Ryth_fit*fit_fT_flatfield_x1000_std[9]/fit_fT_flatfield_x1000_result[9]\\nNc_fit = fit_fT_flatfield_x1000_result[0]/sig0*eff_px_size*eff_px_size\\nNc_err = Nc_fit*fit_fT_flatfield_x1000_std[0]/fit_fT_flatfield_x1000_result[0]\\nNth_fit = fit_fT_flatfield_x1000_result[1]/sig0*eff_px_size*eff_px_size\\nNth_err = Nth_fit*fit_fT_flatfield_x1000_std[1]/fit_fT_flatfield_x1000_result[1]\\nN_fit = Nc_fit + Nth_fit\\nN_err = np.sqrt(Nth_err**2 + Nc_err**2)\\nn2D0c_fit = Nc_fit*5/(2*np.pi*Rxc_fit*Ryc_fit)\\nn2D0th_fit =Nth_fit/(2*np.pi*1.20206*Rxth_fit/np.sqrt(2)*Ryth_fit/np.sqrt(2))\\nf_fit = fit_fT_flatfield_x1000_result[11]\\nf_err = fit_fT_flatfield_x1000_std[11]\\n\\n## Assumed to be given\\ntof = 20e-3\\nomgx = 2*np.pi*200\\nomgy = 2*np.pi*100\\nomgz = 2*np.pi*200\\nomg = (omgx*omgy*omgz)**(1/3)\\nm = 164*const.u \\na0 = 4*np.pi*const.epsilon_0*const.hbar**2/(const.e**2*const.electron_mass)\\n\\n## Calculate T\\nT_x_fit = Rxth_fit**2*m/(const.k)*(1/omg**2+tof**2)**(-1)\\nT_x_err = T_x_fit * 2*Rxth_err/Rxth_fit\\nT_y_fit = Ryth_fit**2*m/(const.k)*(1/omg**2+tof**2)**(-1)\\nT_y_err = T_y_fit * 2*Ryth_err/Ryth_fit\\nT_fit = (T_x_fit + T_y_fit)/2\\nT_err = 1/2*np.sqrt(T_x_err**2+T_y_err**2)\\n\\n## Calculate scattering lenght a\\naho = np.sqrt(const.hbar/(m*omg))\\nahox = np.sqrt(const.hbar/(m*omgx))\\nahoy = np.sqrt(const.hbar/(m*omgy))\\nahoz = np.sqrt(const.hbar/(m*omgz))\\na_x = Ryc_fit**5*ahox/(15*Nc_fit)*(const.hbar*omgx/m*(1+omgx**2*tof**2)/omgx**2)**(-5/2)\\na_x_err = a_x*5*Ryc_err/Ryc_fit\\na_y = Rxc_fit**5*ahoy/(15*Nc_fit)*(const.hbar*omgy/m*(1+omgy**2*tof**2)/omgy**2)**(-5/2)\\na_y_err = a_y*5*Rxc_err/Rxc_fit\\na_fac_fit = (a_x+a_y)/2/a0\\na_fac_err =1/2/a0*np.sqrt(a_x_err**2+a_y_err**2)\\n'"
  1799. ]
  1800. },
  1801. "execution_count": 13,
  1802. "metadata": {},
  1803. "output_type": "execute_result"
  1804. }
  1805. ],
  1806. "source": [
  1807. "'''\n",
  1808. "## calculate the peak densities and the radii\n",
  1809. "lam = 421e-9\n",
  1810. "sig0 = 3*lam**2/(2*np.pi)\n",
  1811. "eff_px_size = 2.493e-6\n",
  1812. "\n",
  1813. "\n",
  1814. "Rxc_fit = fit_fT_flatfield_x1000_result[6]*eff_px_size\n",
  1815. "Rxc_err = Rxc_fit*fit_fT_flatfield_x1000_std[6]/fit_fT_flatfield_x1000_std[6]\n",
  1816. "Ryc_fit = fit_fT_flatfield_x1000_result[7]*eff_px_size\n",
  1817. "Ryc_err = Ryc_fit*fit_fT_flatfield_x1000_std[7]/fit_fT_flatfield_x1000_result[7]\n",
  1818. "Rxth_fit = fit_fT_flatfield_x1000_result[8]*np.sqrt(2)*eff_px_size\n",
  1819. "Rxth_err = Rxth_fit*fit_fT_flatfield_x1000_std[8]/Rxth_fit*fit_fT_flatfield_x1000_result[8]\n",
  1820. "Ryth_fit = fit_fT_flatfield_x1000_result[9]*np.sqrt(2)*eff_px_size\n",
  1821. "Ryth_err = Ryth_fit*fit_fT_flatfield_x1000_std[9]/fit_fT_flatfield_x1000_result[9]\n",
  1822. "Nc_fit = fit_fT_flatfield_x1000_result[0]/sig0*eff_px_size*eff_px_size\n",
  1823. "Nc_err = Nc_fit*fit_fT_flatfield_x1000_std[0]/fit_fT_flatfield_x1000_result[0]\n",
  1824. "Nth_fit = fit_fT_flatfield_x1000_result[1]/sig0*eff_px_size*eff_px_size\n",
  1825. "Nth_err = Nth_fit*fit_fT_flatfield_x1000_std[1]/fit_fT_flatfield_x1000_result[1]\n",
  1826. "N_fit = Nc_fit + Nth_fit\n",
  1827. "N_err = np.sqrt(Nth_err**2 + Nc_err**2)\n",
  1828. "n2D0c_fit = Nc_fit*5/(2*np.pi*Rxc_fit*Ryc_fit)\n",
  1829. "n2D0th_fit =Nth_fit/(2*np.pi*1.20206*Rxth_fit/np.sqrt(2)*Ryth_fit/np.sqrt(2))\n",
  1830. "f_fit = fit_fT_flatfield_x1000_result[11]\n",
  1831. "f_err = fit_fT_flatfield_x1000_std[11]\n",
  1832. "\n",
  1833. "## Assumed to be given\n",
  1834. "tof = 20e-3\n",
  1835. "omgx = 2*np.pi*200\n",
  1836. "omgy = 2*np.pi*100\n",
  1837. "omgz = 2*np.pi*200\n",
  1838. "omg = (omgx*omgy*omgz)**(1/3)\n",
  1839. "m = 164*const.u \n",
  1840. "a0 = 4*np.pi*const.epsilon_0*const.hbar**2/(const.e**2*const.electron_mass)\n",
  1841. "\n",
  1842. "## Calculate T\n",
  1843. "T_x_fit = Rxth_fit**2*m/(const.k)*(1/omg**2+tof**2)**(-1)\n",
  1844. "T_x_err = T_x_fit * 2*Rxth_err/Rxth_fit\n",
  1845. "T_y_fit = Ryth_fit**2*m/(const.k)*(1/omg**2+tof**2)**(-1)\n",
  1846. "T_y_err = T_y_fit * 2*Ryth_err/Ryth_fit\n",
  1847. "T_fit = (T_x_fit + T_y_fit)/2\n",
  1848. "T_err = 1/2*np.sqrt(T_x_err**2+T_y_err**2)\n",
  1849. "\n",
  1850. "## Calculate scattering lenght a\n",
  1851. "aho = np.sqrt(const.hbar/(m*omg))\n",
  1852. "ahox = np.sqrt(const.hbar/(m*omgx))\n",
  1853. "ahoy = np.sqrt(const.hbar/(m*omgy))\n",
  1854. "ahoz = np.sqrt(const.hbar/(m*omgz))\n",
  1855. "a_x = Ryc_fit**5*ahox/(15*Nc_fit)*(const.hbar*omgx/m*(1+omgx**2*tof**2)/omgx**2)**(-5/2)\n",
  1856. "a_x_err = a_x*5*Ryc_err/Ryc_fit\n",
  1857. "a_y = Rxc_fit**5*ahoy/(15*Nc_fit)*(const.hbar*omgy/m*(1+omgy**2*tof**2)/omgy**2)**(-5/2)\n",
  1858. "a_y_err = a_y*5*Rxc_err/Rxc_fit\n",
  1859. "a_fac_fit = (a_x+a_y)/2/a0\n",
  1860. "a_fac_err =1/2/a0*np.sqrt(a_x_err**2+a_y_err**2)\n",
  1861. "'''\n"
  1862. ]
  1863. },
  1864. {
  1865. "cell_type": "code",
  1866. "execution_count": 18,
  1867. "metadata": {},
  1868. "outputs": [
  1869. {
  1870. "ename": "IndexError",
  1871. "evalue": "index 12 is out of bounds for axis 0 with size 11",
  1872. "output_type": "error",
  1873. "traceback": [
  1874. "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
  1875. "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)",
  1876. "\u001b[1;32mf:\\Jianshun\\analyseScript\\test_fit.ipynb Cell 21\u001b[0m in \u001b[0;36m2\n\u001b[0;32m <a href='vscode-notebook-cell:/f%3A/Jianshun/analyseScript/test_fit.ipynb#X36sZmlsZQ%3D%3D?line=23'>24</a>\u001b[0m n2D0c_fit \u001b[39m=\u001b[39m Nc_fit\u001b[39m*\u001b[39m\u001b[39m5\u001b[39m\u001b[39m/\u001b[39m(\u001b[39m2\u001b[39m\u001b[39m*\u001b[39mnp\u001b[39m.\u001b[39mpi\u001b[39m*\u001b[39mRxc_fit\u001b[39m*\u001b[39mRyc_fit)\n\u001b[0;32m <a href='vscode-notebook-cell:/f%3A/Jianshun/analyseScript/test_fit.ipynb#X36sZmlsZQ%3D%3D?line=24'>25</a>\u001b[0m n2D0th_fit \u001b[39m=\u001b[39mNth_fit\u001b[39m/\u001b[39m(\u001b[39m2\u001b[39m\u001b[39m*\u001b[39mnp\u001b[39m.\u001b[39mpi\u001b[39m*\u001b[39m\u001b[39m1.20206\u001b[39m\u001b[39m*\u001b[39mRxth_fit\u001b[39m/\u001b[39mnp\u001b[39m.\u001b[39msqrt(\u001b[39m2\u001b[39m)\u001b[39m*\u001b[39mRyth_fit\u001b[39m/\u001b[39mnp\u001b[39m.\u001b[39msqrt(\u001b[39m2\u001b[39m))\n\u001b[1;32m---> <a href='vscode-notebook-cell:/f%3A/Jianshun/analyseScript/test_fit.ipynb#X36sZmlsZQ%3D%3D?line=25'>26</a>\u001b[0m f_fit \u001b[39m=\u001b[39m fit_fT_flatfield_result[\u001b[39m12\u001b[39;49m]\n\u001b[0;32m <a href='vscode-notebook-cell:/f%3A/Jianshun/analyseScript/test_fit.ipynb#X36sZmlsZQ%3D%3D?line=26'>27</a>\u001b[0m f_err \u001b[39m=\u001b[39m fit_fT_flatfield_std[\u001b[39m12\u001b[39m]\n\u001b[0;32m <a href='vscode-notebook-cell:/f%3A/Jianshun/analyseScript/test_fit.ipynb#X36sZmlsZQ%3D%3D?line=28'>29</a>\u001b[0m \u001b[39m## Assumed to be given\u001b[39;00m\n",
  1877. "\u001b[1;31mIndexError\u001b[0m: index 12 is out of bounds for axis 0 with size 11"
  1878. ]
  1879. }
  1880. ],
  1881. "source": [
  1882. "fit_fT_flatfield_result = fit_fT_flatfield_result.T\n",
  1883. "fit_fT_flatfield_std = fit_fT_flatfield_std.T\n",
  1884. "\n",
  1885. "## calculate the peak densities and the radii\n",
  1886. "lam = 421e-9\n",
  1887. "sig0 = 3*lam**2/(2*np.pi)\n",
  1888. "eff_px_size = 2.493e-6\n",
  1889. "\n",
  1890. "\n",
  1891. "Rxc_fit = fit_fT_flatfield_result[6]*eff_px_size\n",
  1892. "Rxc_err = Rxc_fit*fit_fT_flatfield_std[6]/fit_fT_flatfield_std[6]\n",
  1893. "Ryc_fit = fit_fT_flatfield_result[7]*eff_px_size\n",
  1894. "Ryc_err = Ryc_fit*fit_fT_flatfield_std[7]/fit_fT_flatfield_result[7]\n",
  1895. "Rxth_fit = fit_fT_flatfield_result[8]*np.sqrt(2)*eff_px_size\n",
  1896. "Rxth_err = Rxth_fit*fit_fT_flatfield_std[8]/Rxth_fit*fit_fT_flatfield_result[8]\n",
  1897. "Ryth_fit = fit_fT_flatfield_result[9]*np.sqrt(2)*eff_px_size\n",
  1898. "Ryth_err = Ryth_fit*fit_fT_flatfield_std[9]/fit_fT_flatfield_result[9]\n",
  1899. "Nc_fit = fit_fT_flatfield_result[0]/sig0*eff_px_size*eff_px_size\n",
  1900. "Nc_err = Nc_fit*fit_fT_flatfield_std[0]/fit_fT_flatfield_result[0]\n",
  1901. "Nth_fit = fit_fT_flatfield_result[1]/sig0*eff_px_size*eff_px_size\n",
  1902. "Nth_err = Nth_fit*fit_fT_flatfield_std[1]/fit_fT_flatfield_result[1]\n",
  1903. "N_fit = Nc_fit + Nth_fit\n",
  1904. "N_err = np.sqrt(Nth_err**2 + Nc_err**2)\n",
  1905. "n2D0c_fit = Nc_fit*5/(2*np.pi*Rxc_fit*Ryc_fit)\n",
  1906. "n2D0th_fit =Nth_fit/(2*np.pi*1.20206*Rxth_fit/np.sqrt(2)*Ryth_fit/np.sqrt(2))\n",
  1907. "f_fit = fit_fT_flatfield_result[12]\n",
  1908. "f_err = fit_fT_flatfield_std[12]\n",
  1909. "\n",
  1910. "## Assumed to be given\n",
  1911. "tof = 20e-3\n",
  1912. "omgx = 2*np.pi*200\n",
  1913. "omgy = 2*np.pi*100\n",
  1914. "omgz = 2*np.pi*200\n",
  1915. "omg = (omgx*omgy*omgz)**(1/3)\n",
  1916. "m = 164*const.u \n",
  1917. "a0 = 4*np.pi*const.epsilon_0*const.hbar**2/(const.e**2*const.electron_mass)\n",
  1918. "\n",
  1919. "## Calculate T\n",
  1920. "T_x_fit = Rxth_fit**2*m/(const.k)*(1/omg**2+tof**2)**(-1)\n",
  1921. "T_x_err = T_x_fit * 2*Rxth_err/Rxth_fit\n",
  1922. "T_y_fit = Ryth_fit**2*m/(const.k)*(1/omg**2+tof**2)**(-1)\n",
  1923. "T_y_err = T_y_fit * 2*Ryth_err/Ryth_fit\n",
  1924. "T_fit = (T_x_fit + T_y_fit)/2\n",
  1925. "T_err = 1/2*np.sqrt(T_x_err**2+T_y_err**2)\n",
  1926. "\n",
  1927. "## Calculate scattering lenght a\n",
  1928. "aho = np.sqrt(const.hbar/(m*omg))\n",
  1929. "ahox = np.sqrt(const.hbar/(m*omgx))\n",
  1930. "ahoy = np.sqrt(const.hbar/(m*omgy))\n",
  1931. "ahoz = np.sqrt(const.hbar/(m*omgz))\n",
  1932. "a_x = Ryc_fit**5*ahox/(15*Nc_fit)*(const.hbar*omgx/m*(1+omgx**2*tof**2)/omgx**2)**(-5/2)\n",
  1933. "a_x_err = a_x*5*Ryc_err/Ryc_fit\n",
  1934. "a_y = Rxc_fit**5*ahoy/(15*Nc_fit)*(const.hbar*omgy/m*(1+omgy**2*tof**2)/omgy**2)**(-5/2)\n",
  1935. "a_y_err = a_y*5*Rxc_err/Rxc_fit\n",
  1936. "a_fac_fit = (a_x+a_y)/2/a0\n",
  1937. "a_fac_err =1/2/a0*np.sqrt(a_x_err**2+a_y_err**2)"
  1938. ]
  1939. },
  1940. {
  1941. "attachments": {},
  1942. "cell_type": "markdown",
  1943. "metadata": {},
  1944. "source": [
  1945. "### Plot the results"
  1946. ]
  1947. },
  1948. {
  1949. "cell_type": "code",
  1950. "execution_count": 15,
  1951. "metadata": {},
  1952. "outputs": [
  1953. {
  1954. "data": {
  1955. "text/plain": [
  1956. "Text(0.5, 1.0, 'Peak density Thermal cloud n2D0th')"
  1957. ]
  1958. },
  1959. "execution_count": 15,
  1960. "metadata": {},
  1961. "output_type": "execute_result"
  1962. },
  1963. {
  1964. "data": {
  1965. "image/png": "iVBORw0KGgoAAAANSUhEUgAABlMAAAfCCAYAAAAYmgorAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1gUV9sG8Hup0kFRQZFiBRuighXBhsZubNixJBqjxnSNiSWJGhPja4yJXdHYNcYWNVEEe0cRewMBG1Kkd+b7g4/JLmyj7gL377q42Jk9c+aZ3Z3dmXnmnCMRBEEAERERERERERERERERyaWj6QCIiIiIiIiIiIiIiIi0GZMpRERERERERERERERESjCZQkREREREREREREREpASTKUREREREREREREREREowmUJERERERERERERERKQEkylERERERERERERERERKMJlCRERERERERERERESkBJMpRERERERERERERERESjCZQkREREREREREREREpASTKUREBG9vb0gkEkgkEnh7e2s6HNKwBQsWiJ8HiUSi6XDKzaNHj/Dxxx+jdevWqF69OnR1dcXXoFWrVpoOr9w9efIEe/bswW+//YZFixbhxx9/xO+//46DBw8iNDQUmZmZatdVVT9TRVFZXiP+nmiv8vqMVaXPQHh4uMxr6u/vr+mQSkwQBBw8eBDDhw9H/fr1YWpqKrONK1asEMv6+fmJ8x0dHTUWMwA4OjqKsfj5+ZV6/WX5Xhelbn9/f5my4eHhpRZHUVXGzz8REZEqepoOgIiIii48PBxOTk4lquPGjRtaf4E4KCgIXbt2VVpGV1cX5ubmsLKyQtOmTeHh4YHRo0ejfv365RQlVQZr1qzBjBkzkJ2drelQNComJgarVq3Chg0b8Pz5c6VlDQwM4OrqCm9vb/Tq1QvdunWr0EkAIqq8/P39MWHChGIvb2Fhgbdv35ZeQFoqOTkZw4YNw/HjxzUdChEREZFWYjKFiIiKZMGCBeJjb29vjd91mpOTg/j4eMTHx+Pp06c4cuQI5s+fj+HDh2PVqlWwtrbWaHyVnb+/v3hXpKOjY5ncDVrWgoKCMG3aNAiCIDNfR0dHTA7o6VX+Q6aDBw/ivffew5s3b9Qqn5mZiatXr+Lq1av46aefkJSUBFNT0zKOksrDihUrxAvHrVq1wqBBgzQaD5W/yvDdXtUE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
  1966. "text/plain": [
  1967. "<Figure size 1600x2000 with 10 Axes>"
  1968. ]
  1969. },
  1970. "metadata": {},
  1971. "output_type": "display_data"
  1972. }
  1973. ],
  1974. "source": [
  1975. "fig, axs = plt.subplots(nrows = 5, ncols = 2, figsize = (16,20))\n",
  1976. "fig.suptitle(\"Fit Results for Simulation with Flatfield light source\", fontsize = 28)\n",
  1977. "fig.tight_layout(h_pad=4)\n",
  1978. "plt.subplots_adjust(wspace = 0.25, hspace = 0.6, top=0.9)\n",
  1979. "\n",
  1980. "# Plot the results for f\n",
  1981. "x_axis = np.linspace(0, 1, 10000)\n",
  1982. "\n",
  1983. "axs[0,0].errorbar(f, f_fit, fmt = '.', yerr = f_err)\n",
  1984. "axs[0,0].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  1985. "axs[0,0].set_ylabel(\"fitted condensate fraction $f_{fit}$\")\n",
  1986. "axs[0,0].set_ylim(0, 1)\n",
  1987. "axs[0,0].plot(x_axis, x_axis)\n",
  1988. "axs[0,0].set_title(\"Condensate Fraction f\")\n",
  1989. "\n",
  1990. "# Plot the results for T\n",
  1991. "Tc = 400e-9 \n",
  1992. "T_sim = (np.ones(len(x_axis))-x_axis**(1/3)) * Tc \n",
  1993. "\n",
  1994. "axs[0,1].errorbar(f, T_fit/1e-9, fmt = '.', yerr = T_err)\n",
  1995. "axs[0,1].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  1996. "axs[0,1].set_ylabel(\"fitted Temperature $T_{fit}$ [nK]\")\n",
  1997. "axs[0,1].set_ylim(0, 600)\n",
  1998. "axs[0,1].plot(x_axis, T_sim/1e-9)\n",
  1999. "axs[0,1].set_title(\"Temperature T\")\n",
  2000. "\n",
  2001. "# Plot the results for a\n",
  2002. "\n",
  2003. "axs[1,0].errorbar(f, a_fac_fit, fmt = '.', yerr = a_fac_err)\n",
  2004. "axs[1,0].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2005. "axs[1,0].set_ylim(-50, 500)\n",
  2006. "axs[1,0].set_ylabel(\"fitted scattering length $a_{fit}$ [a0]\")\n",
  2007. "axs[1,0].plot(x_axis, np.ones(len(x_axis))*300)\n",
  2008. "axs[1,0].set_title(\"Scattering Length a\")\n",
  2009. "\n",
  2010. "# Plot the results for N\n",
  2011. "\n",
  2012. "axs[1,1].errorbar(f, N_fit/1000, fmt = '.', yerr = N_err/1000)\n",
  2013. "axs[1,1].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2014. "axs[1,1].set_ylabel(\"fitted total atom number \\n $N_{fit}$ [$10^3$]\")\n",
  2015. "axs[1,1].set_ylim(0.5e5/1000, 2e5/1000)\n",
  2016. "axs[1,1].plot(x_axis, np.ones(len(x_axis))*1e5/1000)\n",
  2017. "axs[1,1].set_title(\"Total Atom Number N\")\n",
  2018. "\n",
  2019. "# plot the results for N condensate\n",
  2020. "\n",
  2021. "axs[2,0].errorbar(f, Nc_fit/1000, fmt = '.', yerr = Nc_err/1000)\n",
  2022. "axs[2,0].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2023. "axs[2,0].set_ylabel(\"fitted atom number \\n in the condensate $Nc_{fit}$ [$10^3$]\")\n",
  2024. "axs[2,0].set_ylim(0, 1.2e5/1000)\n",
  2025. "axs[2,0].plot(x_axis, x_axis*1e5/1000)\n",
  2026. "axs[2,0].set_title(\"Atom Number in the Condensate Nc\")\n",
  2027. "\n",
  2028. "# Plot the results for N thermal\n",
  2029. "\n",
  2030. "axs[2,1].errorbar(f, Nth_fit/1000, fmt = '.', yerr = Nth_err/1000)\n",
  2031. "axs[2,1].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2032. "axs[2,1].set_ylabel(\"fitted atom number \\n in the thermal gas $Nth_{fit}$ [$10^3$]\")\n",
  2033. "axs[2,1].set_ylim(0, 1.2e5/1000)\n",
  2034. "axs[2,1].plot(x_axis, 1e5*(np.ones(len(x_axis))-x_axis)/1000)\n",
  2035. "axs[2,1].set_title(\"Atom Number in the Thermal Part Nth\")\n",
  2036. "\n",
  2037. "# plot the results for R condensate\n",
  2038. "\n",
  2039. "a = 300 * a0\n",
  2040. "N = 1e5\n",
  2041. "Rxc_sim = np.sqrt(const.hbar*omgy/m)*np.sqrt((1+omgy**2*tof**2)/omgy**2)*(15*N*x_axis*a/ahoy)**(1/5)\n",
  2042. "Ryc_sim = np.sqrt(const.hbar*omgx/m)*np.sqrt((1+omgx**2*tof**2)/omgx**2)*(15*N*x_axis*a/ahox)**(1/5)\n",
  2043. "axs[3,0].errorbar(f, Rxc_fit/1e-6, fmt = '.', yerr = Rxc_err/1e-6)\n",
  2044. "axs[3,0].errorbar(f, Ryc_fit/1e-6, fmt = '.', yerr = Ryc_err/1e-6)\n",
  2045. "axs[3,0].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2046. "axs[3,0].set_ylabel(\"Radius condensate \\n $Rc_{fit}$ [$\\mu$m]\")\n",
  2047. "axs[3,0].plot(x_axis, Rxc_sim/1e-6)\n",
  2048. "axs[3,0].plot(x_axis, Ryc_sim/1e-6)\n",
  2049. "axs[3,0].set_title(\"Radius of the Condensate Rc\")\n",
  2050. "\n",
  2051. "# plot the results for R thermal\n",
  2052. "\n",
  2053. "Rth_sim = np.sqrt(const.k*T_sim/m*(1/omg**2+tof**2))\n",
  2054. "axs[3,1].errorbar(f, Rxth_fit/1e-6, fmt = '.', yerr = Rxc_err/1e-6)\n",
  2055. "axs[3,1].errorbar(f, Ryth_fit/1e-6, fmt = '.', yerr = Ryc_err/1e-6)\n",
  2056. "axs[3,1].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2057. "axs[3,1].set_ylabel(\"Radius thermal cloud \\n $Rth_{fit}$ [$\\mu$m]\")\n",
  2058. "axs[3,1].plot(x_axis, Rth_sim/1e-6)\n",
  2059. "axs[3,1].set_title(\"Radius of the Thermal Cloud Rth\")\n",
  2060. "\n",
  2061. "# plot the results for n2D condensate\n",
  2062. "\n",
  2063. "mu = const.hbar*omg/2*(15*N*x_axis*a/aho)**(2/5)\n",
  2064. "g = 4*const.pi*const.hbar**2*a/m\n",
  2065. "Rzc = np.sqrt(const.hbar*omgz/m)*np.sqrt((1+omgz**2*tof**2)/omgz**2)*(15*N*x_axis*a/ahoz)**(1/5)\n",
  2066. "n2D0c_sim = 4/3*Rzc*mu/g*1/(1+omg**2*tof**2)**(3/2)\n",
  2067. "axs[4,0].errorbar(f, n2D0c_fit, fmt = '.', yerr = Rxc_err/1e-13)\n",
  2068. "axs[4,0].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2069. "axs[4,0].set_ylabel(\"Peak density condensate\\n $n2Dc_{fit}$ [$10^{13}m^{-2}$]\")\n",
  2070. "axs[4,0].plot(x_axis, n2D0c_sim)\n",
  2071. "axs[4,0].set_title(\"Peak density Condensate n2D0c\")\n",
  2072. "\n",
  2073. "# plot the results for n2D thermal\n",
  2074. "\n",
  2075. "# n2D0th_sim = (1-x_axis)*N*integrate.nquad(lambda x,y: np.real(Li2_vec(np.exp(-(x/Rth_sim)**2-(y/Rth_sim)**2))), \n",
  2076. "# [[-6/np.sqrt(2)*Rth_sim, 6/np.sqrt(2)*Rth_sim], [-6/np.sqrt(2)*Rth_sim, 6/np.sqrt(2)*Rth_sim]])[0]**(-1) \n",
  2077. "axs[4,1].errorbar(f, n2D0th_fit/1e-13, fmt = '.', yerr = Rxc_err/1e-13)\n",
  2078. "axs[4,1].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2079. "axs[4,1].set_ylabel(\"Peak density thermal cloud\\n $n2Dth_{fit}$ [$10^{13} m^{-2}$]\")\n",
  2080. "# axs[4,1].plot(x_axis, Rth_sim/1e-13)\n",
  2081. "axs[4,1].set_title(\"Peak density Thermal cloud n2D0th\")"
  2082. ]
  2083. },
  2084. {
  2085. "attachments": {},
  2086. "cell_type": "markdown",
  2087. "metadata": {},
  2088. "source": [
  2089. "## Manual Light Source"
  2090. ]
  2091. },
  2092. {
  2093. "cell_type": "code",
  2094. "execution_count": 16,
  2095. "metadata": {},
  2096. "outputs": [
  2097. {
  2098. "ename": "FileNotFoundError",
  2099. "evalue": "[Errno 2] No such file or directory: 'C:/Users/QFBri/Code/analyseScript-Master III/Data/Simulations/OD_fT_manual.npy'",
  2100. "output_type": "error",
  2101. "traceback": [
  2102. "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
  2103. "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
  2104. "\u001b[1;32mf:\\Jianshun\\analyseScript\\test_fit.ipynb Cell 25\u001b[0m in \u001b[0;36m2\n\u001b[0;32m <a href='vscode-notebook-cell:/f%3A/Jianshun/analyseScript/test_fit.ipynb#X43sZmlsZQ%3D%3D?line=0'>1</a>\u001b[0m \u001b[39m# load the data\u001b[39;00m\n\u001b[1;32m----> <a href='vscode-notebook-cell:/f%3A/Jianshun/analyseScript/test_fit.ipynb#X43sZmlsZQ%3D%3D?line=1'>2</a>\u001b[0m sim_fT_manual_np \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39;49mload(\u001b[39m\"\u001b[39;49m\u001b[39mC:/Users/QFBri/Code/analyseScript-Master III/Data/Simulations/OD_fT_manual.npy\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n\u001b[0;32m <a href='vscode-notebook-cell:/f%3A/Jianshun/analyseScript/test_fit.ipynb#X43sZmlsZQ%3D%3D?line=2'>3</a>\u001b[0m sim_fT_manual_np \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mnan_to_num(sim_fT_manual_np)\n\u001b[0;32m <a href='vscode-notebook-cell:/f%3A/Jianshun/analyseScript/test_fit.ipynb#X43sZmlsZQ%3D%3D?line=4'>5</a>\u001b[0m \u001b[39m# define axis\u001b[39;00m\n",
  2105. "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python39\\site-packages\\numpy\\lib\\npyio.py:417\u001b[0m, in \u001b[0;36mload\u001b[1;34m(file, mmap_mode, allow_pickle, fix_imports, encoding)\u001b[0m\n\u001b[0;32m 415\u001b[0m own_fid \u001b[39m=\u001b[39m \u001b[39mFalse\u001b[39;00m\n\u001b[0;32m 416\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m--> 417\u001b[0m fid \u001b[39m=\u001b[39m stack\u001b[39m.\u001b[39menter_context(\u001b[39mopen\u001b[39;49m(os_fspath(file), \u001b[39m\"\u001b[39;49m\u001b[39mrb\u001b[39;49m\u001b[39m\"\u001b[39;49m))\n\u001b[0;32m 418\u001b[0m own_fid \u001b[39m=\u001b[39m \u001b[39mTrue\u001b[39;00m\n\u001b[0;32m 420\u001b[0m \u001b[39m# Code to distinguish from NumPy binary files and pickles.\u001b[39;00m\n",
  2106. "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'C:/Users/QFBri/Code/analyseScript-Master III/Data/Simulations/OD_fT_manual.npy'"
  2107. ]
  2108. }
  2109. ],
  2110. "source": [
  2111. "# load the data\n",
  2112. "sim_fT_manual_np = np.load(\"C:/Users/QFBri/Code/analyseScript-Master III/Data/Simulations/OD_fT_manual.npy\")\n",
  2113. "sim_fT_manual_np = np.nan_to_num(sim_fT_manual_np)\n",
  2114. "\n",
  2115. "# define axis\n",
  2116. "x = np.linspace(0, 1201, 1200)\n",
  2117. "y = np.linspace(0, 1921, 1920)"
  2118. ]
  2119. },
  2120. {
  2121. "cell_type": "code",
  2122. "execution_count": null,
  2123. "metadata": {},
  2124. "outputs": [],
  2125. "source": [
  2126. "# crop the data around the center to get manly the area of the cloud\n",
  2127. "sim_fT_manual_np = sim_fT_manual_np[0:12, 470:-470, 830:-830]\n",
  2128. "\n",
  2129. "f = np.array([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])\n",
  2130. "x = x[470:-470]\n",
  2131. "y = y[830:-830]"
  2132. ]
  2133. },
  2134. {
  2135. "cell_type": "code",
  2136. "execution_count": null,
  2137. "metadata": {},
  2138. "outputs": [],
  2139. "source": [
  2140. "## perform the BEC fit\n",
  2141. "\n",
  2142. "# set the fit Model\n",
  2143. "fitModel = DensityProfileBEC2dModel()\n",
  2144. "fitAnalyser = FitAnalyser(fitModel, fitDim=2)\n",
  2145. "\n",
  2146. "fit_fT_manual_result = np.empty((11,12))\n",
  2147. "fit_fT_manual_std = np.empty((11,12))\n",
  2148. "\n",
  2149. "# params = fitAnalyser.guess(data_sim, dask=\"parallelized\")\n",
  2150. "params = fitAnalyser.fitModel.make_params()\n",
  2151. "params.add(name=\"A_amplitude\", value= 1000, max=np.inf, min=-np.inf, vary=True)\n",
  2152. "params.add(name=\"A_centerx\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  2153. "params.add(name=\"A_centery\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  2154. "params.add(name=\"A_sigmax\", value= 23, max= 0, min=-np.inf, vary=True)\n",
  2155. "params.add(name=\"A_sigmay\", value= 30, max=np.inf, min=-np.inf, vary=True)\n",
  2156. "params.add(name=\"B_amplitude\", value= 3300, max=np.inf, min=-np.inf, vary=True)\n",
  2157. "params.add(name=\"B_centerx\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  2158. "params.add(name=\"B_centery\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  2159. "params.add(name=\"B_sigmax\", value= 30, max=np.inf, min=-np.inf, vary=True)\n",
  2160. "params.add(name=\"B_sigmay\", value= 30, max=np.inf, min=-np.inf, vary=True)\n",
  2161. "\n",
  2162. "for i in range (11):\n",
  2163. " print(i)\n",
  2164. " sim_fT_manual = xr.DataArray(\n",
  2165. " data = sim_fT_manual_np[i], \n",
  2166. " dims = [\"x\", \"y\"],\n",
  2167. " coords = dict(\n",
  2168. " x = (\"x\", x),\n",
  2169. " y = (\"y\", y),\n",
  2170. " )\n",
  2171. " )\n",
  2172. " # perform the fit for one simulation with flatfield\n",
  2173. " params = fitAnalyser.guess(sim_fT_manual, dask=\"parallelized\")\n",
  2174. " fitResult = fitAnalyser.fit(sim_fT_manual, params, dask=\"parallelized\").load()\n",
  2175. " fitCurve = fitAnalyser.eval(fitResult, x=x, y=y).load()\n",
  2176. " fitValue = fitAnalyser.get_fit_value(fitResult)\n",
  2177. " fitStd = fitAnalyser.get_fit_std(fitResult)\n",
  2178. " # store the results as numpy array\n",
  2179. " fit_fT_manual = fitCurve.to_numpy()\n",
  2180. " fitValue_array = fitValue.to_array()\n",
  2181. " fitStd_array = fitStd.to_array()\n",
  2182. " fit_fT_manual_result[i] = fitValue_array.to_numpy()\n",
  2183. " fit_fT_manual_std[i] = fitStd_array.to_numpy()\n",
  2184. " # plot fit\n",
  2185. " plt.figure(figsize=(12,8))\n",
  2186. " plt.errorbar(x, sim_fT_manual_np[i,130], fmt = '.', label = \"simulated data\")\n",
  2187. " plt.plot(x, fit_fT_manual[130], label = \"BEC fit\")\n",
  2188. " plt.xlabel(\"y axis [px]\")\n",
  2189. " plt.ylabel(\"OD\")\n",
  2190. " plt.title(\"OD distribution cross-section \\n f={}, mnanual light source\".format(str(f[i])))\n",
  2191. " plt.legend()\n",
  2192. " plt.show()"
  2193. ]
  2194. },
  2195. {
  2196. "cell_type": "code",
  2197. "execution_count": null,
  2198. "metadata": {},
  2199. "outputs": [],
  2200. "source": [
  2201. "fit_fT_manual_result = fit_fT_manual_result.T\n",
  2202. "fit_fT_manual_std = fit_fT_manual_std.T\n",
  2203. "\n",
  2204. "## calculate the peak densities and the radii\n",
  2205. "lam = 421e-9\n",
  2206. "sig0 = 3*lam**2/(2*np.pi)\n",
  2207. "eff_px_size = 2.493e-6\n",
  2208. "\n",
  2209. "\n",
  2210. "Rxc_fit = fit_fT_manual_result[6]*eff_px_size\n",
  2211. "Rxc_err = Rxc_fit*fit_fT_manual_std[6]/fit_fT_manual_std[6]\n",
  2212. "Ryc_fit = fit_fT_manual_result[7]*eff_px_size\n",
  2213. "Ryc_err = Ryc_fit*fit_fT_manual_std[7]/fit_fT_manual_result[7]\n",
  2214. "Rxth_fit = fit_fT_manual_result[8]*np.sqrt(2)*eff_px_size\n",
  2215. "Rxth_err = Rxth_fit*fit_fT_manual_std[8]/Rxth_fit*fit_fT_manual_result[8]\n",
  2216. "Ryth_fit = fit_fT_manual_result[9]*np.sqrt(2)*eff_px_size\n",
  2217. "Ryth_err = Ryth_fit*fit_fT_manual_std[9]/fit_fT_manual_result[9]\n",
  2218. "Nc_fit = fit_fT_manual_result[0]/sig0*eff_px_size*eff_px_size\n",
  2219. "Nc_err = Nc_fit*fit_fT_manual_std[0]/fit_fT_manual_result[0]\n",
  2220. "Nth_fit = fit_fT_manual_result[1]/sig0*eff_px_size*eff_px_size\n",
  2221. "Nth_err = Nth_fit*fit_fT_manual_std[1]/fit_fT_manual_result[1]\n",
  2222. "N_fit = Nc_fit + Nth_fit\n",
  2223. "N_err = np.sqrt(Nth_err**2 + Nc_err**2)\n",
  2224. "n2D0c_fit = Nc_fit*5/(2*np.pi*Rxc_fit*Ryc_fit)\n",
  2225. "n2D0th_fit =Nth_fit/(2*np.pi*1.20206*Rxth_fit/np.sqrt(2)*Ryth_fit/np.sqrt(2))\n",
  2226. "f_fit = fit_fT_manual_result[11]\n",
  2227. "f_err = fit_fT_manual_std[11]\n",
  2228. "\n",
  2229. "## Assumed to be given\n",
  2230. "tof = 20e-3\n",
  2231. "omgx = 2*np.pi*200\n",
  2232. "omgy = 2*np.pi*100\n",
  2233. "omgz = 2*np.pi*200\n",
  2234. "omg = (omgx*omgy*omgz)**(1/3)\n",
  2235. "m = 164*const.u \n",
  2236. "a0 = 4*np.pi*const.epsilon_0*const.hbar**2/(const.e**2*const.electron_mass)\n",
  2237. "\n",
  2238. "## Calculate T\n",
  2239. "T_x_fit = Rxth_fit**2*m/(const.k)*(1/omg**2+tof**2)**(-1)\n",
  2240. "T_x_err = T_x_fit * 2*Rxth_err/Rxth_fit\n",
  2241. "T_y_fit = Ryth_fit**2*m/(const.k)*(1/omg**2+tof**2)**(-1)\n",
  2242. "T_y_err = T_y_fit * 2*Ryth_err/Ryth_fit\n",
  2243. "T_fit = (T_x_fit + T_y_fit)/2\n",
  2244. "T_err = 1/2*np.sqrt(T_x_err**2+T_y_err**2)\n",
  2245. "\n",
  2246. "## Calculate scattering lenght a\n",
  2247. "aho = np.sqrt(const.hbar/(m*omg))\n",
  2248. "ahox = np.sqrt(const.hbar/(m*omgx))\n",
  2249. "ahoy = np.sqrt(const.hbar/(m*omgy))\n",
  2250. "ahoz = np.sqrt(const.hbar/(m*omgz))\n",
  2251. "a_x = Ryc_fit**5*ahox/(15*Nc_fit)*(const.hbar*omgx/m*(1+omgx**2*tof**2)/omgx**2)**(-5/2)\n",
  2252. "a_x_err = a_x*5*Ryc_err/Ryc_fit\n",
  2253. "a_y = Rxc_fit**5*ahoy/(15*Nc_fit)*(const.hbar*omgy/m*(1+omgy**2*tof**2)/omgy**2)**(-5/2)\n",
  2254. "a_y_err = a_y*5*Rxc_err/Rxc_fit\n",
  2255. "a_fac_fit = (a_x+a_y)/2/a0\n",
  2256. "a_fac_err =1/2/a0*np.sqrt(a_x_err**2+a_y_err**2)"
  2257. ]
  2258. },
  2259. {
  2260. "cell_type": "code",
  2261. "execution_count": null,
  2262. "metadata": {},
  2263. "outputs": [],
  2264. "source": [
  2265. "fig, axs = plt.subplots(nrows = 5, ncols = 2, figsize = (16,20))\n",
  2266. "fig.suptitle(\"Fit Results for Simulation with manual light source\", fontsize = 28)\n",
  2267. "fig.tight_layout(h_pad=4)\n",
  2268. "plt.subplots_adjust(wspace = 0.25, hspace = 0.6, top=0.9)\n",
  2269. "\n",
  2270. "# Plot the results for f\n",
  2271. "x_axis = np.linspace(0, 1, 10000)\n",
  2272. "\n",
  2273. "axs[0,0].errorbar(f, f_fit, fmt = '.', yerr = f_err)\n",
  2274. "axs[0,0].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2275. "axs[0,0].set_ylabel(\"fitted condensate fraction $f_{fit}$\")\n",
  2276. "axs[0,0].set_ylim(0, 1)\n",
  2277. "axs[0,0].plot(x_axis, x_axis)\n",
  2278. "axs[0,0].set_title(\"Condensate Fraction f\")\n",
  2279. "\n",
  2280. "# Plot the results for T\n",
  2281. "Tc = 400e-9 \n",
  2282. "T_sim = (np.ones(len(x_axis))-x_axis**(1/3)) * Tc \n",
  2283. "\n",
  2284. "axs[0,1].errorbar(f, T_fit/1e-9, fmt = '.', yerr = T_err)\n",
  2285. "axs[0,1].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2286. "axs[0,1].set_ylabel(\"fitted Temperature $T_{fit}$ [nK]\")\n",
  2287. "axs[0,1].set_ylim(0, 600)\n",
  2288. "axs[0,1].plot(x_axis, T_sim/1e-9)\n",
  2289. "axs[0,1].set_title(\"Temperature T\")\n",
  2290. "\n",
  2291. "# Plot the results for a\n",
  2292. "\n",
  2293. "axs[1,0].errorbar(f, a_fac_fit, fmt = '.', yerr = a_fac_err)\n",
  2294. "axs[1,0].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2295. "axs[1,0].set_ylim(-50, 500)\n",
  2296. "axs[1,0].set_ylabel(\"fitted scattering length $a_{fit}$ [a0]\")\n",
  2297. "axs[1,0].plot(x_axis, np.ones(len(x_axis))*300)\n",
  2298. "axs[1,0].set_title(\"Scattering Length a\")\n",
  2299. "\n",
  2300. "# Plot the results for N\n",
  2301. "\n",
  2302. "axs[1,1].errorbar(f, N_fit/1000, fmt = '.', yerr = N_err/1000)\n",
  2303. "axs[1,1].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2304. "axs[1,1].set_ylabel(\"fitted total atom number \\n $N_{fit}$ [$10^3$]\")\n",
  2305. "axs[1,1].set_ylim(0.5e5/1000, 2e5/1000)\n",
  2306. "axs[1,1].plot(x_axis, np.ones(len(x_axis))*1e5/1000)\n",
  2307. "axs[1,1].set_title(\"Total Atom Number N\")\n",
  2308. "\n",
  2309. "# plot the results for N condensate\n",
  2310. "\n",
  2311. "axs[2,0].errorbar(f, Nc_fit/1000, fmt = '.', yerr = Nc_err/1000)\n",
  2312. "axs[2,0].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2313. "axs[2,0].set_ylabel(\"fitted atom number \\n in the condensate $Nc_{fit}$ [$10^3$]\")\n",
  2314. "axs[2,0].set_ylim(0, 1.2e5/1000)\n",
  2315. "axs[2,0].plot(x_axis, x_axis*1e5/1000)\n",
  2316. "axs[2,0].set_title(\"Atom Number in the Condensate Nc\")\n",
  2317. "\n",
  2318. "# Plot the results for N thermal\n",
  2319. "\n",
  2320. "axs[2,1].errorbar(f, Nth_fit/1000, fmt = '.', yerr = Nth_err/1000)\n",
  2321. "axs[2,1].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2322. "axs[2,1].set_ylabel(\"fitted atom number \\n in the thermal gas $Nth_{fit}$ [$10^3$]\")\n",
  2323. "axs[2,1].set_ylim(0, 1.2e5/1000)\n",
  2324. "axs[2,1].plot(x_axis, 1e5*(np.ones(len(x_axis))-x_axis)/1000)\n",
  2325. "axs[2,1].set_title(\"Atom Number in the Thermal Part Nth\")\n",
  2326. "\n",
  2327. "# plot the results for R condensate\n",
  2328. "\n",
  2329. "a = 300 * a0\n",
  2330. "N = 1e5\n",
  2331. "Rxc_sim = np.sqrt(const.hbar*omgy/m)*np.sqrt((1+omgy**2*tof**2)/omgy**2)*(15*N*x_axis*a/ahoy)**(1/5)\n",
  2332. "Ryc_sim = np.sqrt(const.hbar*omgx/m)*np.sqrt((1+omgx**2*tof**2)/omgx**2)*(15*N*x_axis*a/ahox)**(1/5)\n",
  2333. "axs[3,0].errorbar(f, Rxc_fit/1e-6, fmt = '.', yerr = Rxc_err/1e-6)\n",
  2334. "axs[3,0].errorbar(f, Ryc_fit/1e-6, fmt = '.', yerr = Ryc_err/1e-6)\n",
  2335. "axs[3,0].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2336. "axs[3,0].set_ylabel(\"Radius condensate \\n $Rc_{fit}$ [$\\mu$m]\")\n",
  2337. "axs[3,0].plot(x_axis, Rxc_sim/1e-6)\n",
  2338. "axs[3,0].plot(x_axis, Ryc_sim/1e-6)\n",
  2339. "axs[3,0].set_title(\"Radius of the Condensate Rc\")\n",
  2340. "\n",
  2341. "# plot the results for R thermal\n",
  2342. "\n",
  2343. "Rth_sim = np.sqrt(const.k*T_sim/m*(1/omg**2+tof**2))\n",
  2344. "axs[3,1].errorbar(f, Rxth_fit/1e-6, fmt = '.', yerr = Rxc_err/1e-6)\n",
  2345. "axs[3,1].errorbar(f, Ryth_fit/1e-6, fmt = '.', yerr = Ryc_err/1e-6)\n",
  2346. "axs[3,1].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2347. "axs[3,1].set_ylabel(\"Radius thermal cloud \\n $Rth_{fit}$ [$\\mu$m]\")\n",
  2348. "axs[3,1].plot(x_axis, Rth_sim/1e-6)\n",
  2349. "axs[3,1].set_title(\"Radius of the Thermal Cloud Rth\")\n",
  2350. "\n",
  2351. "# plot the results for n2D condensate\n",
  2352. "\n",
  2353. "mu = const.hbar*omg/2*(15*N*x_axis*a/aho)**(2/5)\n",
  2354. "g = 4*const.pi*const.hbar**2*a/m\n",
  2355. "Rzc = np.sqrt(const.hbar*omgz/m)*np.sqrt((1+omgz**2*tof**2)/omgz**2)*(15*N*x_axis*a/ahoz)**(1/5)\n",
  2356. "n2D0c_sim = 4/3*Rzc*mu/g*1/(1+omg**2*tof**2)**(3/2)\n",
  2357. "axs[4,0].errorbar(f, n2D0c_fit, fmt = '.', yerr = Rxc_err/1e-13)\n",
  2358. "axs[4,0].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2359. "axs[4,0].set_ylabel(\"Peak density condensate\\n $n2Dc_{fit}$ [$10^{13}m^{-2}$]\")\n",
  2360. "axs[4,0].plot(x_axis, n2D0c_sim)\n",
  2361. "axs[4,0].set_title(\"Peak density Condensate n2D0c\")\n",
  2362. "\n",
  2363. "# plot the results for n2D thermal\n",
  2364. "\n",
  2365. "# n2D0th_sim = (1-x_axis)*N*integrate.nquad(lambda x,y: np.real(Li2_vec(np.exp(-(x/Rth_sim)**2-(y/Rth_sim)**2))), \n",
  2366. "# [[-6/np.sqrt(2)*Rth_sim, 6/np.sqrt(2)*Rth_sim], [-6/np.sqrt(2)*Rth_sim, 6/np.sqrt(2)*Rth_sim]])[0]**(-1) \n",
  2367. "axs[4,1].errorbar(f, n2D0th_fit/1e-13, fmt = '.', yerr = Rxc_err/1e-13)\n",
  2368. "axs[4,1].set_xlabel(\"input condensate fraction $f_{sim}$\")\n",
  2369. "axs[4,1].set_ylabel(\"Peak density thermal cloud\\n $n2Dth_{fit}$ [$10^{13} m^{-2}$]\")\n",
  2370. "# axs[4,1].plot(x_axis, Rth_sim/1e-13)\n",
  2371. "axs[4,1].set_title(\"Peak density Thermal cloud n2D0th\")\n",
  2372. "\n",
  2373. "# plt.savefig(\"C:/Users/QFBri/Code/analyseScript-Master III/Data/Fit_Results/FitResults_fT_flatfield_PureBECThreshold{}.jpg\".format(str(PureBECThreshold*10)), dpi = 300, bbox_inches='tight')"
  2374. ]
  2375. },
  2376. {
  2377. "cell_type": "code",
  2378. "execution_count": null,
  2379. "metadata": {},
  2380. "outputs": [],
  2381. "source": []
  2382. },
  2383. {
  2384. "cell_type": "code",
  2385. "execution_count": null,
  2386. "metadata": {},
  2387. "outputs": [],
  2388. "source": []
  2389. },
  2390. {
  2391. "attachments": {},
  2392. "cell_type": "markdown",
  2393. "metadata": {},
  2394. "source": [
  2395. "## Real Data"
  2396. ]
  2397. },
  2398. {
  2399. "cell_type": "code",
  2400. "execution_count": null,
  2401. "metadata": {},
  2402. "outputs": [],
  2403. "source": [
  2404. "groupList = [\n",
  2405. " \"images/MOT_3D_Camera/in_situ_absorption\",\n",
  2406. " \"images/ODT_1_Axis_Camera/in_situ_absorption\",\n",
  2407. " \"images/ODT_2_Axis_Camera/in_situ_absorption\",\n",
  2408. "]\n",
  2409. "\n",
  2410. "dskey = {\n",
  2411. " \"images/MOT_3D_Camera/in_situ_absorption\": \"camera_1\",\n",
  2412. " \"images/ODT_1_Axis_Camera/in_situ_absorption\": \"camera_2\",\n",
  2413. " \"images/ODT_2_Axis_Camera/in_situ_absorption\": \"camera_3\",\n",
  2414. "}\n",
  2415. "\n",
  2416. "img_dir = '//DyLabNAS/Data/'\n",
  2417. "SequenceName = \"Evaporative_Cooling\" + \"/\"\n",
  2418. "folderPath = img_dir + SequenceName + '2023/05/12'# get_date()\n",
  2419. "\n",
  2420. "shotNum = \"0065\"\n",
  2421. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  2422. "\n",
  2423. "dataSetDict = {\n",
  2424. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
  2425. " for i in [0] # range(len(groupList))\n",
  2426. "}\n",
  2427. "\n",
  2428. "dataSet = dataSetDict[\"camera_1\"]\n",
  2429. "dataSet = swap_xy(dataSet)\n",
  2430. "\n",
  2431. "scanAxis = get_scanAxis(dataSet)\n",
  2432. "\n",
  2433. "dataSet = auto_rechunk(dataSet)\n",
  2434. "\n",
  2435. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  2436. "\n",
  2437. "dataSet\n",
  2438. "\n",
  2439. "OD = dataSet[\"OD\"]\n",
  2440. "\n",
  2441. "OD_np = OD.to_numpy()\n",
  2442. "\n",
  2443. "dataSet"
  2444. ]
  2445. },
  2446. {
  2447. "cell_type": "code",
  2448. "execution_count": null,
  2449. "metadata": {},
  2450. "outputs": [],
  2451. "source": [
  2452. "# crop image\n",
  2453. "OD_np = OD_np[6, 151:451, 800:1100]\n",
  2454. "y = np.linspace(800, 1100, 300)\n",
  2455. "x = np.linspace(151, 451, 300)\n",
  2456. "plt.imshow(OD_np)"
  2457. ]
  2458. },
  2459. {
  2460. "cell_type": "code",
  2461. "execution_count": null,
  2462. "metadata": {},
  2463. "outputs": [],
  2464. "source": [
  2465. "## perform the BEC fit\n",
  2466. "\n",
  2467. "# set the fit Model\n",
  2468. "fitModel = DensityProfileBEC2dModel()\n",
  2469. "fitAnalyser = FitAnalyser(fitModel, fitDim=2)\n",
  2470. "\n",
  2471. "OD = xr.DataArray(\n",
  2472. " data = OD_np, \n",
  2473. " dims = [\"x\", \"y\"],\n",
  2474. " coords = dict(\n",
  2475. " x = (\"x\", x),\n",
  2476. " y = (\"y\", y),\n",
  2477. " )\n",
  2478. " )\n",
  2479. "\n",
  2480. "# perform the fit for one simulation with flatfield\n",
  2481. "params = fitAnalyser.guess(OD, dask=\"parallelized\", guess_kwargs=dict(pureBECThreshold=0.6))\n",
  2482. "'''\n",
  2483. "params = fitAnalyser.fitModel.make_params()\n",
  2484. "params.add(name=\"A_amplitude\", value= 1000, max=np.inf, min=-np.inf, vary=True)\n",
  2485. "params.add(name=\"A_centerx\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  2486. "params.add(name=\"A_centery\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  2487. "params.add(name=\"A_sigmax\", value= 23, max= 0, min=-np.inf, vary=True)\n",
  2488. "params.add(name=\"A_sigmay\", value= 30, max=np.inf, min=-np.inf, vary=True)\n",
  2489. "params.add(name=\"B_amplitude\", value= 3300, max=np.inf, min=-np.inf, vary=True)\n",
  2490. "params.add(name=\"B_centerx\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  2491. "params.add(name=\"B_centery\", value= 0, max=np.inf, min=-np.inf, vary=True)\n",
  2492. "params.add(name=\"B_sigmax\", value= 30, max=np.inf, min=-np.inf, vary=True)\n",
  2493. "params.add(name=\"B_sigmay\", value= 30, max=np.inf, min=-np.inf, vary=True)\n",
  2494. "'''\n",
  2495. "fitResult = fitAnalyser.fit(OD, params, dask=\"parallelized\").load()\n",
  2496. "fitCurve = fitAnalyser.eval(fitResult, x=x, y=y).load()\n",
  2497. "fitValue = fitAnalyser.get_fit_value(fitResult)\n",
  2498. "fitStd = fitAnalyser.get_fit_std(fitResult)\n",
  2499. "\n",
  2500. "# store the results as numpy array\n",
  2501. "fit = fitCurve.to_numpy()\n",
  2502. "fitValue_array = fitValue.to_array()\n",
  2503. "fitStd_array = fitStd.to_array()\n",
  2504. "fit_result = fitValue_array.to_numpy()\n",
  2505. "fit_std = fitStd_array.to_numpy()"
  2506. ]
  2507. },
  2508. {
  2509. "cell_type": "code",
  2510. "execution_count": null,
  2511. "metadata": {},
  2512. "outputs": [],
  2513. "source": [
  2514. "# print(np.shape(OD_np))\n",
  2515. "plt.figure(figsize = (12, 8))\n",
  2516. "plt.plot(x, OD_np[135], marker = \"o\", linewidth = 0)\n",
  2517. "plt.plot(x, fit[135], label = \"BEC fit\")\n",
  2518. "plt.xlabel(\"pixel\")\n",
  2519. "plt.ylabel(\"OD\")\n",
  2520. "plt.title(\"Simulated Data\")\n",
  2521. "plt.xlabel(\"y axis [px]\")\n",
  2522. "plt.ylabel(\"OD\")\n",
  2523. "plt.title(\"OD distribution cross-section \\n real Data\")\n",
  2524. "plt.legend()\n",
  2525. "plt.show()"
  2526. ]
  2527. },
  2528. {
  2529. "cell_type": "code",
  2530. "execution_count": null,
  2531. "metadata": {},
  2532. "outputs": [],
  2533. "source": [
  2534. "from Analyser.FitAnalyser import ThomasFermi2dModel, Polylog22dModel\n",
  2535. "\n",
  2536. "# fitModel_draw = ThomasFermi2dModel(prefix='BEC_')\n",
  2537. "fitModel_draw = Polylog22dModel(prefix='thermal_')\n",
  2538. "\n",
  2539. "fitAnalyser_draw = FitAnalyser(fitModel_draw, fitDim=2)\n",
  2540. "\n",
  2541. "fitCurve = fitAnalyser_draw.eval(fitResult, x=x, y=y).load()\n",
  2542. "\n",
  2543. "fit = fitCurve.to_numpy()\n",
  2544. "\n",
  2545. "# print(np.shape(OD_np))\n",
  2546. "plt.figure(figsize = (12, 8))\n",
  2547. "plt.plot(x, OD_np[135], marker = \"o\", linewidth = 0)\n",
  2548. "plt.plot(x, fit[135], label = \"BEC fit\")\n",
  2549. "plt.xlabel(\"pixel\")\n",
  2550. "plt.ylabel(\"OD\")\n",
  2551. "plt.title(\"Simulated Data\")\n",
  2552. "plt.xlabel(\"y axis [px]\")\n",
  2553. "plt.ylabel(\"OD\")\n",
  2554. "plt.title(\"OD distribution cross-section \\n real Data\")\n",
  2555. "plt.legend()\n",
  2556. "plt.show()"
  2557. ]
  2558. },
  2559. {
  2560. "cell_type": "code",
  2561. "execution_count": null,
  2562. "metadata": {},
  2563. "outputs": [],
  2564. "source": [
  2565. "fitAnalyser.get_fit_full_result(fitResult)"
  2566. ]
  2567. },
  2568. {
  2569. "cell_type": "code",
  2570. "execution_count": null,
  2571. "metadata": {},
  2572. "outputs": [],
  2573. "source": [
  2574. "fitValue"
  2575. ]
  2576. },
  2577. {
  2578. "cell_type": "code",
  2579. "execution_count": null,
  2580. "metadata": {},
  2581. "outputs": [],
  2582. "source": [
  2583. "print(\"sigxc:\", fit_result[6])\n",
  2584. "print(\"sigyc:\", fit_result[7])\n",
  2585. "print(\"sigxth:\", fit_result[8])\n",
  2586. "print(\"sigyth:\", fit_result[9])\n",
  2587. "print(\"BEC amplitude\", fit_result[0])\n",
  2588. "print(\"thermal amplitude:\", fit_result[1])\n",
  2589. "print(\"condensate fraction:\", fit_result[11])"
  2590. ]
  2591. }
  2592. ],
  2593. "metadata": {
  2594. "kernelspec": {
  2595. "display_name": "base",
  2596. "language": "python",
  2597. "name": "python3"
  2598. },
  2599. "language_info": {
  2600. "codemirror_mode": {
  2601. "name": "ipython",
  2602. "version": 3
  2603. },
  2604. "file_extension": ".py",
  2605. "mimetype": "text/x-python",
  2606. "name": "python",
  2607. "nbconvert_exporter": "python",
  2608. "pygments_lexer": "ipython3",
  2609. "version": "3.9.12"
  2610. },
  2611. "orig_nbformat": 4
  2612. },
  2613. "nbformat": 4,
  2614. "nbformat_minor": 2
  2615. }