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.

5681 lines
2.8 MiB

  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. "# Import supporting package"
  8. ]
  9. },
  10. {
  11. "cell_type": "code",
  12. "execution_count": 1,
  13. "metadata": {},
  14. "outputs": [],
  15. "source": [
  16. "import xarray as xr\n",
  17. "import numpy as np\n",
  18. "import copy\n",
  19. "\n",
  20. "from uncertainties import ufloat\n",
  21. "from uncertainties import unumpy as unp\n",
  22. "from uncertainties import umath\n",
  23. "import random\n",
  24. "import matplotlib.pyplot as plt\n",
  25. "plt.rcParams['font.size'] = 12\n",
  26. "\n",
  27. "from DataContainer.ReadData import read_hdf5_file\n",
  28. "from Analyser.ImagingAnalyser import ImageAnalyser\n",
  29. "from Analyser.FitAnalyser import FitAnalyser\n",
  30. "from Analyser.FitAnalyser import NewFitModel, DensityProfileBEC2dModel\n",
  31. "from ToolFunction.ToolFunction import *\n",
  32. "\n",
  33. "from scipy.optimize import curve_fit\n",
  34. "\n",
  35. "from ToolFunction.HomeMadeXarrayFunction import errorbar, dataarray_plot_errorbar\n",
  36. "xr.plot.dataarray_plot.errorbar = errorbar\n",
  37. "xr.plot.accessor.DataArrayPlotAccessor.errorbar = dataarray_plot_errorbar\n",
  38. "\n",
  39. "imageAnalyser = ImageAnalyser()\n",
  40. "\n",
  41. "# %matplotlib notebook"
  42. ]
  43. },
  44. {
  45. "cell_type": "markdown",
  46. "metadata": {},
  47. "source": [
  48. "## Start a client for parallel computing"
  49. ]
  50. },
  51. {
  52. "cell_type": "code",
  53. "execution_count": 2,
  54. "metadata": {},
  55. "outputs": [
  56. {
  57. "data": {
  58. "text/html": [
  59. "<div>\n",
  60. " <div style=\"width: 24px; height: 24px; background-color: #e1e1e1; border: 3px solid #9D9D9D; border-radius: 5px; position: absolute;\"> </div>\n",
  61. " <div style=\"margin-left: 48px;\">\n",
  62. " <h3 style=\"margin-bottom: 0px;\">Client</h3>\n",
  63. " <p style=\"color: #9D9D9D; margin-bottom: 0px;\">Client-a5e5cea6-2fbd-11ee-8430-80e82ce2fa8e</p>\n",
  64. " <table style=\"width: 100%; text-align: left;\">\n",
  65. "\n",
  66. " <tr>\n",
  67. " \n",
  68. " <td style=\"text-align: left;\"><strong>Connection method:</strong> Cluster object</td>\n",
  69. " <td style=\"text-align: left;\"><strong>Cluster type:</strong> distributed.LocalCluster</td>\n",
  70. " \n",
  71. " </tr>\n",
  72. "\n",
  73. " \n",
  74. " <tr>\n",
  75. " <td style=\"text-align: left;\">\n",
  76. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:8787/status\" target=\"_blank\">http://127.0.0.1:8787/status</a>\n",
  77. " </td>\n",
  78. " <td style=\"text-align: left;\"></td>\n",
  79. " </tr>\n",
  80. " \n",
  81. "\n",
  82. " </table>\n",
  83. "\n",
  84. " \n",
  85. "\n",
  86. " \n",
  87. " <details>\n",
  88. " <summary style=\"margin-bottom: 20px;\"><h3 style=\"display: inline;\">Cluster Info</h3></summary>\n",
  89. " <div class=\"jp-RenderedHTMLCommon jp-RenderedHTML jp-mod-trusted jp-OutputArea-output\">\n",
  90. " <div style=\"width: 24px; height: 24px; background-color: #e1e1e1; border: 3px solid #9D9D9D; border-radius: 5px; position: absolute;\">\n",
  91. " </div>\n",
  92. " <div style=\"margin-left: 48px;\">\n",
  93. " <h3 style=\"margin-bottom: 0px; margin-top: 0px;\">LocalCluster</h3>\n",
  94. " <p style=\"color: #9D9D9D; margin-bottom: 0px;\">49266936</p>\n",
  95. " <table style=\"width: 100%; text-align: left;\">\n",
  96. " <tr>\n",
  97. " <td style=\"text-align: left;\">\n",
  98. " <strong>Dashboard:</strong> <a href=\"http://127.0.0.1:8787/status\" target=\"_blank\">http://127.0.0.1:8787/status</a>\n",
  99. " </td>\n",
  100. " <td style=\"text-align: left;\">\n",
  101. " <strong>Workers:</strong> 8\n",
  102. " </td>\n",
  103. " </tr>\n",
  104. " <tr>\n",
  105. " <td style=\"text-align: left;\">\n",
  106. " <strong>Total threads:</strong> 128\n",
  107. " </td>\n",
  108. " <td style=\"text-align: left;\">\n",
  109. " <strong>Total memory:</strong> 149.01 GiB\n",
  110. " </td>\n",
  111. " </tr>\n",
  112. " \n",
  113. " <tr>\n",
  114. " <td style=\"text-align: left;\"><strong>Status:</strong> running</td>\n",
  115. " <td style=\"text-align: left;\"><strong>Using processes:</strong> True</td>\n",
  116. "</tr>\n",
  117. "\n",
  118. " \n",
  119. " </table>\n",
  120. "\n",
  121. " <details>\n",
  122. " <summary style=\"margin-bottom: 20px;\">\n",
  123. " <h3 style=\"display: inline;\">Scheduler Info</h3>\n",
  124. " </summary>\n",
  125. "\n",
  126. " <div style=\"\">\n",
  127. " <div>\n",
  128. " <div style=\"width: 24px; height: 24px; background-color: #FFF7E5; border: 3px solid #FF6132; border-radius: 5px; position: absolute;\"> </div>\n",
  129. " <div style=\"margin-left: 48px;\">\n",
  130. " <h3 style=\"margin-bottom: 0px;\">Scheduler</h3>\n",
  131. " <p style=\"color: #9D9D9D; margin-bottom: 0px;\">Scheduler-6db1fb2d-d8be-4f76-9fcf-6a7cc9ed86ee</p>\n",
  132. " <table style=\"width: 100%; text-align: left;\">\n",
  133. " <tr>\n",
  134. " <td style=\"text-align: left;\">\n",
  135. " <strong>Comm:</strong> tcp://127.0.0.1:63903\n",
  136. " </td>\n",
  137. " <td style=\"text-align: left;\">\n",
  138. " <strong>Workers:</strong> 8\n",
  139. " </td>\n",
  140. " </tr>\n",
  141. " <tr>\n",
  142. " <td style=\"text-align: left;\">\n",
  143. " <strong>Dashboard:</strong> <a href=\"http://127.0.0.1:8787/status\" target=\"_blank\">http://127.0.0.1:8787/status</a>\n",
  144. " </td>\n",
  145. " <td style=\"text-align: left;\">\n",
  146. " <strong>Total threads:</strong> 128\n",
  147. " </td>\n",
  148. " </tr>\n",
  149. " <tr>\n",
  150. " <td style=\"text-align: left;\">\n",
  151. " <strong>Started:</strong> Just now\n",
  152. " </td>\n",
  153. " <td style=\"text-align: left;\">\n",
  154. " <strong>Total memory:</strong> 149.01 GiB\n",
  155. " </td>\n",
  156. " </tr>\n",
  157. " </table>\n",
  158. " </div>\n",
  159. " </div>\n",
  160. "\n",
  161. " <details style=\"margin-left: 48px;\">\n",
  162. " <summary style=\"margin-bottom: 20px;\">\n",
  163. " <h3 style=\"display: inline;\">Workers</h3>\n",
  164. " </summary>\n",
  165. "\n",
  166. " \n",
  167. " <div style=\"margin-bottom: 20px;\">\n",
  168. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  169. " <div style=\"margin-left: 48px;\">\n",
  170. " <details>\n",
  171. " <summary>\n",
  172. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 0</h4>\n",
  173. " </summary>\n",
  174. " <table style=\"width: 100%; text-align: left;\">\n",
  175. " <tr>\n",
  176. " <td style=\"text-align: left;\">\n",
  177. " <strong>Comm: </strong> tcp://127.0.0.1:63943\n",
  178. " </td>\n",
  179. " <td style=\"text-align: left;\">\n",
  180. " <strong>Total threads: </strong> 16\n",
  181. " </td>\n",
  182. " </tr>\n",
  183. " <tr>\n",
  184. " <td style=\"text-align: left;\">\n",
  185. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:63946/status\" target=\"_blank\">http://127.0.0.1:63946/status</a>\n",
  186. " </td>\n",
  187. " <td style=\"text-align: left;\">\n",
  188. " <strong>Memory: </strong> 18.63 GiB\n",
  189. " </td>\n",
  190. " </tr>\n",
  191. " <tr>\n",
  192. " <td style=\"text-align: left;\">\n",
  193. " <strong>Nanny: </strong> tcp://127.0.0.1:63906\n",
  194. " </td>\n",
  195. " <td style=\"text-align: left;\"></td>\n",
  196. " </tr>\n",
  197. " <tr>\n",
  198. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  199. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-sctehcfb\n",
  200. " </td>\n",
  201. " </tr>\n",
  202. "\n",
  203. " \n",
  204. "\n",
  205. " \n",
  206. "\n",
  207. " </table>\n",
  208. " </details>\n",
  209. " </div>\n",
  210. " </div>\n",
  211. " \n",
  212. " <div style=\"margin-bottom: 20px;\">\n",
  213. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  214. " <div style=\"margin-left: 48px;\">\n",
  215. " <details>\n",
  216. " <summary>\n",
  217. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 1</h4>\n",
  218. " </summary>\n",
  219. " <table style=\"width: 100%; text-align: left;\">\n",
  220. " <tr>\n",
  221. " <td style=\"text-align: left;\">\n",
  222. " <strong>Comm: </strong> tcp://127.0.0.1:63957\n",
  223. " </td>\n",
  224. " <td style=\"text-align: left;\">\n",
  225. " <strong>Total threads: </strong> 16\n",
  226. " </td>\n",
  227. " </tr>\n",
  228. " <tr>\n",
  229. " <td style=\"text-align: left;\">\n",
  230. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:63959/status\" target=\"_blank\">http://127.0.0.1:63959/status</a>\n",
  231. " </td>\n",
  232. " <td style=\"text-align: left;\">\n",
  233. " <strong>Memory: </strong> 18.63 GiB\n",
  234. " </td>\n",
  235. " </tr>\n",
  236. " <tr>\n",
  237. " <td style=\"text-align: left;\">\n",
  238. " <strong>Nanny: </strong> tcp://127.0.0.1:63907\n",
  239. " </td>\n",
  240. " <td style=\"text-align: left;\"></td>\n",
  241. " </tr>\n",
  242. " <tr>\n",
  243. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  244. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-b1kdawd2\n",
  245. " </td>\n",
  246. " </tr>\n",
  247. "\n",
  248. " \n",
  249. "\n",
  250. " \n",
  251. "\n",
  252. " </table>\n",
  253. " </details>\n",
  254. " </div>\n",
  255. " </div>\n",
  256. " \n",
  257. " <div style=\"margin-bottom: 20px;\">\n",
  258. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  259. " <div style=\"margin-left: 48px;\">\n",
  260. " <details>\n",
  261. " <summary>\n",
  262. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 2</h4>\n",
  263. " </summary>\n",
  264. " <table style=\"width: 100%; text-align: left;\">\n",
  265. " <tr>\n",
  266. " <td style=\"text-align: left;\">\n",
  267. " <strong>Comm: </strong> tcp://127.0.0.1:63948\n",
  268. " </td>\n",
  269. " <td style=\"text-align: left;\">\n",
  270. " <strong>Total threads: </strong> 16\n",
  271. " </td>\n",
  272. " </tr>\n",
  273. " <tr>\n",
  274. " <td style=\"text-align: left;\">\n",
  275. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:63951/status\" target=\"_blank\">http://127.0.0.1:63951/status</a>\n",
  276. " </td>\n",
  277. " <td style=\"text-align: left;\">\n",
  278. " <strong>Memory: </strong> 18.63 GiB\n",
  279. " </td>\n",
  280. " </tr>\n",
  281. " <tr>\n",
  282. " <td style=\"text-align: left;\">\n",
  283. " <strong>Nanny: </strong> tcp://127.0.0.1:63908\n",
  284. " </td>\n",
  285. " <td style=\"text-align: left;\"></td>\n",
  286. " </tr>\n",
  287. " <tr>\n",
  288. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  289. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-845evwbp\n",
  290. " </td>\n",
  291. " </tr>\n",
  292. "\n",
  293. " \n",
  294. "\n",
  295. " \n",
  296. "\n",
  297. " </table>\n",
  298. " </details>\n",
  299. " </div>\n",
  300. " </div>\n",
  301. " \n",
  302. " <div style=\"margin-bottom: 20px;\">\n",
  303. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  304. " <div style=\"margin-left: 48px;\">\n",
  305. " <details>\n",
  306. " <summary>\n",
  307. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 3</h4>\n",
  308. " </summary>\n",
  309. " <table style=\"width: 100%; text-align: left;\">\n",
  310. " <tr>\n",
  311. " <td style=\"text-align: left;\">\n",
  312. " <strong>Comm: </strong> tcp://127.0.0.1:63942\n",
  313. " </td>\n",
  314. " <td style=\"text-align: left;\">\n",
  315. " <strong>Total threads: </strong> 16\n",
  316. " </td>\n",
  317. " </tr>\n",
  318. " <tr>\n",
  319. " <td style=\"text-align: left;\">\n",
  320. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:63944/status\" target=\"_blank\">http://127.0.0.1:63944/status</a>\n",
  321. " </td>\n",
  322. " <td style=\"text-align: left;\">\n",
  323. " <strong>Memory: </strong> 18.63 GiB\n",
  324. " </td>\n",
  325. " </tr>\n",
  326. " <tr>\n",
  327. " <td style=\"text-align: left;\">\n",
  328. " <strong>Nanny: </strong> tcp://127.0.0.1:63909\n",
  329. " </td>\n",
  330. " <td style=\"text-align: left;\"></td>\n",
  331. " </tr>\n",
  332. " <tr>\n",
  333. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  334. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-xneexydx\n",
  335. " </td>\n",
  336. " </tr>\n",
  337. "\n",
  338. " \n",
  339. "\n",
  340. " \n",
  341. "\n",
  342. " </table>\n",
  343. " </details>\n",
  344. " </div>\n",
  345. " </div>\n",
  346. " \n",
  347. " <div style=\"margin-bottom: 20px;\">\n",
  348. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  349. " <div style=\"margin-left: 48px;\">\n",
  350. " <details>\n",
  351. " <summary>\n",
  352. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 4</h4>\n",
  353. " </summary>\n",
  354. " <table style=\"width: 100%; text-align: left;\">\n",
  355. " <tr>\n",
  356. " <td style=\"text-align: left;\">\n",
  357. " <strong>Comm: </strong> tcp://127.0.0.1:63949\n",
  358. " </td>\n",
  359. " <td style=\"text-align: left;\">\n",
  360. " <strong>Total threads: </strong> 16\n",
  361. " </td>\n",
  362. " </tr>\n",
  363. " <tr>\n",
  364. " <td style=\"text-align: left;\">\n",
  365. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:63953/status\" target=\"_blank\">http://127.0.0.1:63953/status</a>\n",
  366. " </td>\n",
  367. " <td style=\"text-align: left;\">\n",
  368. " <strong>Memory: </strong> 18.63 GiB\n",
  369. " </td>\n",
  370. " </tr>\n",
  371. " <tr>\n",
  372. " <td style=\"text-align: left;\">\n",
  373. " <strong>Nanny: </strong> tcp://127.0.0.1:63910\n",
  374. " </td>\n",
  375. " <td style=\"text-align: left;\"></td>\n",
  376. " </tr>\n",
  377. " <tr>\n",
  378. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  379. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-zb64b79v\n",
  380. " </td>\n",
  381. " </tr>\n",
  382. "\n",
  383. " \n",
  384. "\n",
  385. " \n",
  386. "\n",
  387. " </table>\n",
  388. " </details>\n",
  389. " </div>\n",
  390. " </div>\n",
  391. " \n",
  392. " <div style=\"margin-bottom: 20px;\">\n",
  393. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  394. " <div style=\"margin-left: 48px;\">\n",
  395. " <details>\n",
  396. " <summary>\n",
  397. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 5</h4>\n",
  398. " </summary>\n",
  399. " <table style=\"width: 100%; text-align: left;\">\n",
  400. " <tr>\n",
  401. " <td style=\"text-align: left;\">\n",
  402. " <strong>Comm: </strong> tcp://127.0.0.1:63950\n",
  403. " </td>\n",
  404. " <td style=\"text-align: left;\">\n",
  405. " <strong>Total threads: </strong> 16\n",
  406. " </td>\n",
  407. " </tr>\n",
  408. " <tr>\n",
  409. " <td style=\"text-align: left;\">\n",
  410. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:63954/status\" target=\"_blank\">http://127.0.0.1:63954/status</a>\n",
  411. " </td>\n",
  412. " <td style=\"text-align: left;\">\n",
  413. " <strong>Memory: </strong> 18.63 GiB\n",
  414. " </td>\n",
  415. " </tr>\n",
  416. " <tr>\n",
  417. " <td style=\"text-align: left;\">\n",
  418. " <strong>Nanny: </strong> tcp://127.0.0.1:63911\n",
  419. " </td>\n",
  420. " <td style=\"text-align: left;\"></td>\n",
  421. " </tr>\n",
  422. " <tr>\n",
  423. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  424. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-q6lyanmx\n",
  425. " </td>\n",
  426. " </tr>\n",
  427. "\n",
  428. " \n",
  429. "\n",
  430. " \n",
  431. "\n",
  432. " </table>\n",
  433. " </details>\n",
  434. " </div>\n",
  435. " </div>\n",
  436. " \n",
  437. " <div style=\"margin-bottom: 20px;\">\n",
  438. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  439. " <div style=\"margin-left: 48px;\">\n",
  440. " <details>\n",
  441. " <summary>\n",
  442. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 6</h4>\n",
  443. " </summary>\n",
  444. " <table style=\"width: 100%; text-align: left;\">\n",
  445. " <tr>\n",
  446. " <td style=\"text-align: left;\">\n",
  447. " <strong>Comm: </strong> tcp://127.0.0.1:63925\n",
  448. " </td>\n",
  449. " <td style=\"text-align: left;\">\n",
  450. " <strong>Total threads: </strong> 16\n",
  451. " </td>\n",
  452. " </tr>\n",
  453. " <tr>\n",
  454. " <td style=\"text-align: left;\">\n",
  455. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:63934/status\" target=\"_blank\">http://127.0.0.1:63934/status</a>\n",
  456. " </td>\n",
  457. " <td style=\"text-align: left;\">\n",
  458. " <strong>Memory: </strong> 18.63 GiB\n",
  459. " </td>\n",
  460. " </tr>\n",
  461. " <tr>\n",
  462. " <td style=\"text-align: left;\">\n",
  463. " <strong>Nanny: </strong> tcp://127.0.0.1:63912\n",
  464. " </td>\n",
  465. " <td style=\"text-align: left;\"></td>\n",
  466. " </tr>\n",
  467. " <tr>\n",
  468. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  469. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-1cvfk3q5\n",
  470. " </td>\n",
  471. " </tr>\n",
  472. "\n",
  473. " \n",
  474. "\n",
  475. " \n",
  476. "\n",
  477. " </table>\n",
  478. " </details>\n",
  479. " </div>\n",
  480. " </div>\n",
  481. " \n",
  482. " <div style=\"margin-bottom: 20px;\">\n",
  483. " <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
  484. " <div style=\"margin-left: 48px;\">\n",
  485. " <details>\n",
  486. " <summary>\n",
  487. " <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 7</h4>\n",
  488. " </summary>\n",
  489. " <table style=\"width: 100%; text-align: left;\">\n",
  490. " <tr>\n",
  491. " <td style=\"text-align: left;\">\n",
  492. " <strong>Comm: </strong> tcp://127.0.0.1:63958\n",
  493. " </td>\n",
  494. " <td style=\"text-align: left;\">\n",
  495. " <strong>Total threads: </strong> 16\n",
  496. " </td>\n",
  497. " </tr>\n",
  498. " <tr>\n",
  499. " <td style=\"text-align: left;\">\n",
  500. " <strong>Dashboard: </strong> <a href=\"http://127.0.0.1:63961/status\" target=\"_blank\">http://127.0.0.1:63961/status</a>\n",
  501. " </td>\n",
  502. " <td style=\"text-align: left;\">\n",
  503. " <strong>Memory: </strong> 18.63 GiB\n",
  504. " </td>\n",
  505. " </tr>\n",
  506. " <tr>\n",
  507. " <td style=\"text-align: left;\">\n",
  508. " <strong>Nanny: </strong> tcp://127.0.0.1:63913\n",
  509. " </td>\n",
  510. " <td style=\"text-align: left;\"></td>\n",
  511. " </tr>\n",
  512. " <tr>\n",
  513. " <td colspan=\"2\" style=\"text-align: left;\">\n",
  514. " <strong>Local directory: </strong> C:\\Users\\data\\AppData\\Local\\Temp\\dask-worker-space\\worker-0agsu53e\n",
  515. " </td>\n",
  516. " </tr>\n",
  517. "\n",
  518. " \n",
  519. "\n",
  520. " \n",
  521. "\n",
  522. " </table>\n",
  523. " </details>\n",
  524. " </div>\n",
  525. " </div>\n",
  526. " \n",
  527. "\n",
  528. " </details>\n",
  529. "</div>\n",
  530. "\n",
  531. " </details>\n",
  532. " </div>\n",
  533. "</div>\n",
  534. " </details>\n",
  535. " \n",
  536. "\n",
  537. " </div>\n",
  538. "</div>"
  539. ],
  540. "text/plain": [
  541. "<Client: 'tcp://127.0.0.1:63903' processes=8 threads=128, memory=149.01 GiB>"
  542. ]
  543. },
  544. "execution_count": 2,
  545. "metadata": {},
  546. "output_type": "execute_result"
  547. }
  548. ],
  549. "source": [
  550. "from dask.distributed import Client\n",
  551. "client = Client(n_workers=8, threads_per_worker=16, processes=True, memory_limit='20GB')\n",
  552. "client"
  553. ]
  554. },
  555. {
  556. "cell_type": "markdown",
  557. "metadata": {},
  558. "source": [
  559. "## Start a client for Mongo DB"
  560. ]
  561. },
  562. {
  563. "cell_type": "code",
  564. "execution_count": 3,
  565. "metadata": {},
  566. "outputs": [],
  567. "source": [
  568. "import pymongo\n",
  569. "import xarray_mongodb\n",
  570. "\n",
  571. "from DataContainer.MongoDB import MongoDB\n",
  572. "\n",
  573. "mongoClient = pymongo.MongoClient('mongodb://control:DyLab2021@127.0.0.1:27017/?authMechanism=DEFAULT')"
  574. ]
  575. },
  576. {
  577. "cell_type": "markdown",
  578. "metadata": {},
  579. "source": [
  580. "## Set global path for experiment"
  581. ]
  582. },
  583. {
  584. "cell_type": "code",
  585. "execution_count": 4,
  586. "metadata": {},
  587. "outputs": [],
  588. "source": [
  589. "groupList = [\n",
  590. " \"images/MOT_3D_Camera/in_situ_absorption\",\n",
  591. " \"images/ODT_1_Axis_Camera/in_situ_absorption\",\n",
  592. " \"images/ODT_2_Axis_Camera/in_situ_absorption\",\n",
  593. "]\n",
  594. "\n",
  595. "dskey = {\n",
  596. " \"images/MOT_3D_Camera/in_situ_absorption\": \"camera_0\",\n",
  597. " \"images/ODT_1_Axis_Camera/in_situ_absorption\": \"camera_1\",\n",
  598. " \"images/ODT_2_Axis_Camera/in_situ_absorption\": \"camera_2\",\n",
  599. "}\n"
  600. ]
  601. },
  602. {
  603. "cell_type": "code",
  604. "execution_count": 5,
  605. "metadata": {},
  606. "outputs": [],
  607. "source": [
  608. "img_dir = 'C:/Users/control/DyLab/Experiments/DyBEC/'\n",
  609. "SequenceName = \"Repetition_scan\"\n",
  610. "folderPath = img_dir + SequenceName + \"/\" + get_date()\n",
  611. "\n",
  612. "mongoDB = mongoClient[SequenceName]\n",
  613. "\n",
  614. "DB = MongoDB(mongoClient, mongoDB, date=get_date())"
  615. ]
  616. },
  617. {
  618. "cell_type": "markdown",
  619. "metadata": {},
  620. "source": [
  621. "# Repetition Scans"
  622. ]
  623. },
  624. {
  625. "cell_type": "markdown",
  626. "metadata": {},
  627. "source": [
  628. "## scan MOT freq"
  629. ]
  630. },
  631. {
  632. "cell_type": "code",
  633. "execution_count": 13,
  634. "metadata": {},
  635. "outputs": [
  636. {
  637. "name": "stdout",
  638. "output_type": "stream",
  639. "text": [
  640. "The detected scaning axes and values are: \n",
  641. "\n",
  642. "{'initial_horz_freq': array([102.75, 102.8 , 102.85, 102.9 , 102.95, 103. , 103.05]), 'initial_vert_freq': array([101.8 , 101.85, 101.9 , 101.95, 102. , 102.05, 102.1 , 102.15,\n",
  643. " 102.2 , 102.25])}\n"
  644. ]
  645. },
  646. {
  647. "data": {
  648. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  649. "text/plain": [
  650. "<IPython.core.display.Javascript object>"
  651. ]
  652. },
  653. "metadata": {},
  654. "output_type": "display_data"
  655. },
  656. {
  657. "data": {
  658. "text/html": [
  659. "<img src=\"data:image/png;base64,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
  660. ],
  661. "text/plain": [
  662. "<IPython.core.display.HTML object>"
  663. ]
  664. },
  665. "metadata": {},
  666. "output_type": "display_data"
  667. }
  668. ],
  669. "source": [
  670. "%matplotlib notebook\n",
  671. "shotNum = \"0014\"\n",
  672. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  673. "\n",
  674. "dataSetDict = {\n",
  675. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
  676. " for i in [0,1]\n",
  677. "}\n",
  678. "\n",
  679. "dataSet = dataSetDict[\"camera_1\"]\n",
  680. "\n",
  681. "print_scanAxis(dataSet)\n",
  682. "\n",
  683. "scanAxis = get_scanAxis(dataSet)\n",
  684. "\n",
  685. "dataSet = auto_rechunk(dataSet)\n",
  686. "\n",
  687. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  688. "\n",
  689. "imageAnalyser.center = (310, 815)\n",
  690. "imageAnalyser.span = (550, 1275)\n",
  691. "imageAnalyser.fraction = (0.1, 0.1)\n",
  692. "\n",
  693. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  694. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  695. "\n",
  696. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  697. "Ncount_mean = calculate_mean(Ncount)\n",
  698. "Ncount_std = calculate_std(Ncount)\n",
  699. "\n",
  700. "fig = plt.figure()\n",
  701. "ax = fig.gca()\n",
  702. "Ncount_mean.plot.pcolormesh(ax=ax, vmin=0, cmap='jet', cbar_kwargs = dict(label='NCount'))\n",
  703. "plt.xlabel('Vert AOM Frequency')\n",
  704. "plt.ylabel('Horz AOM Frequency')\n",
  705. "plt.tight_layout()\n",
  706. "plt.show()\n",
  707. "\n",
  708. "# DB.create_global(shotNum, dataSet)\n",
  709. "# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
  710. ]
  711. },
  712. {
  713. "cell_type": "code",
  714. "execution_count": 14,
  715. "metadata": {},
  716. "outputs": [
  717. {
  718. "data": {
  719. "text/html": [
  720. "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
  721. "<defs>\n",
  722. "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
  723. "<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",
  724. "<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",
  725. "<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",
  726. "</symbol>\n",
  727. "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
  728. "<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",
  729. "<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",
  730. "<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",
  731. "<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",
  732. "</symbol>\n",
  733. "</defs>\n",
  734. "</svg>\n",
  735. "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
  736. " *\n",
  737. " */\n",
  738. "\n",
  739. ":root {\n",
  740. " --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
  741. " --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
  742. " --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
  743. " --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
  744. " --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
  745. " --xr-background-color: var(--jp-layout-color0, white);\n",
  746. " --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
  747. " --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
  748. "}\n",
  749. "\n",
  750. "html[theme=dark],\n",
  751. "body[data-theme=dark],\n",
  752. "body.vscode-dark {\n",
  753. " --xr-font-color0: rgba(255, 255, 255, 1);\n",
  754. " --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
  755. " --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
  756. " --xr-border-color: #1F1F1F;\n",
  757. " --xr-disabled-color: #515151;\n",
  758. " --xr-background-color: #111111;\n",
  759. " --xr-background-color-row-even: #111111;\n",
  760. " --xr-background-color-row-odd: #313131;\n",
  761. "}\n",
  762. "\n",
  763. ".xr-wrap {\n",
  764. " display: block !important;\n",
  765. " min-width: 300px;\n",
  766. " max-width: 700px;\n",
  767. "}\n",
  768. "\n",
  769. ".xr-text-repr-fallback {\n",
  770. " /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
  771. " display: none;\n",
  772. "}\n",
  773. "\n",
  774. ".xr-header {\n",
  775. " padding-top: 6px;\n",
  776. " padding-bottom: 6px;\n",
  777. " margin-bottom: 4px;\n",
  778. " border-bottom: solid 1px var(--xr-border-color);\n",
  779. "}\n",
  780. "\n",
  781. ".xr-header > div,\n",
  782. ".xr-header > ul {\n",
  783. " display: inline;\n",
  784. " margin-top: 0;\n",
  785. " margin-bottom: 0;\n",
  786. "}\n",
  787. "\n",
  788. ".xr-obj-type,\n",
  789. ".xr-array-name {\n",
  790. " margin-left: 2px;\n",
  791. " margin-right: 10px;\n",
  792. "}\n",
  793. "\n",
  794. ".xr-obj-type {\n",
  795. " color: var(--xr-font-color2);\n",
  796. "}\n",
  797. "\n",
  798. ".xr-sections {\n",
  799. " padding-left: 0 !important;\n",
  800. " display: grid;\n",
  801. " grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
  802. "}\n",
  803. "\n",
  804. ".xr-section-item {\n",
  805. " display: contents;\n",
  806. "}\n",
  807. "\n",
  808. ".xr-section-item input {\n",
  809. " display: none;\n",
  810. "}\n",
  811. "\n",
  812. ".xr-section-item input + label {\n",
  813. " color: var(--xr-disabled-color);\n",
  814. "}\n",
  815. "\n",
  816. ".xr-section-item input:enabled + label {\n",
  817. " cursor: pointer;\n",
  818. " color: var(--xr-font-color2);\n",
  819. "}\n",
  820. "\n",
  821. ".xr-section-item input:enabled + label:hover {\n",
  822. " color: var(--xr-font-color0);\n",
  823. "}\n",
  824. "\n",
  825. ".xr-section-summary {\n",
  826. " grid-column: 1;\n",
  827. " color: var(--xr-font-color2);\n",
  828. " font-weight: 500;\n",
  829. "}\n",
  830. "\n",
  831. ".xr-section-summary > span {\n",
  832. " display: inline-block;\n",
  833. " padding-left: 0.5em;\n",
  834. "}\n",
  835. "\n",
  836. ".xr-section-summary-in:disabled + label {\n",
  837. " color: var(--xr-font-color2);\n",
  838. "}\n",
  839. "\n",
  840. ".xr-section-summary-in + label:before {\n",
  841. " display: inline-block;\n",
  842. " content: 'â–º';\n",
  843. " font-size: 11px;\n",
  844. " width: 15px;\n",
  845. " text-align: center;\n",
  846. "}\n",
  847. "\n",
  848. ".xr-section-summary-in:disabled + label:before {\n",
  849. " color: var(--xr-disabled-color);\n",
  850. "}\n",
  851. "\n",
  852. ".xr-section-summary-in:checked + label:before {\n",
  853. " content: 'â–¼';\n",
  854. "}\n",
  855. "\n",
  856. ".xr-section-summary-in:checked + label > span {\n",
  857. " display: none;\n",
  858. "}\n",
  859. "\n",
  860. ".xr-section-summary,\n",
  861. ".xr-section-inline-details {\n",
  862. " padding-top: 4px;\n",
  863. " padding-bottom: 4px;\n",
  864. "}\n",
  865. "\n",
  866. ".xr-section-inline-details {\n",
  867. " grid-column: 2 / -1;\n",
  868. "}\n",
  869. "\n",
  870. ".xr-section-details {\n",
  871. " display: none;\n",
  872. " grid-column: 1 / -1;\n",
  873. " margin-bottom: 5px;\n",
  874. "}\n",
  875. "\n",
  876. ".xr-section-summary-in:checked ~ .xr-section-details {\n",
  877. " display: contents;\n",
  878. "}\n",
  879. "\n",
  880. ".xr-array-wrap {\n",
  881. " grid-column: 1 / -1;\n",
  882. " display: grid;\n",
  883. " grid-template-columns: 20px auto;\n",
  884. "}\n",
  885. "\n",
  886. ".xr-array-wrap > label {\n",
  887. " grid-column: 1;\n",
  888. " vertical-align: top;\n",
  889. "}\n",
  890. "\n",
  891. ".xr-preview {\n",
  892. " color: var(--xr-font-color3);\n",
  893. "}\n",
  894. "\n",
  895. ".xr-array-preview,\n",
  896. ".xr-array-data {\n",
  897. " padding: 0 5px !important;\n",
  898. " grid-column: 2;\n",
  899. "}\n",
  900. "\n",
  901. ".xr-array-data,\n",
  902. ".xr-array-in:checked ~ .xr-array-preview {\n",
  903. " display: none;\n",
  904. "}\n",
  905. "\n",
  906. ".xr-array-in:checked ~ .xr-array-data,\n",
  907. ".xr-array-preview {\n",
  908. " display: inline-block;\n",
  909. "}\n",
  910. "\n",
  911. ".xr-dim-list {\n",
  912. " display: inline-block !important;\n",
  913. " list-style: none;\n",
  914. " padding: 0 !important;\n",
  915. " margin: 0;\n",
  916. "}\n",
  917. "\n",
  918. ".xr-dim-list li {\n",
  919. " display: inline-block;\n",
  920. " padding: 0;\n",
  921. " margin: 0;\n",
  922. "}\n",
  923. "\n",
  924. ".xr-dim-list:before {\n",
  925. " content: '(';\n",
  926. "}\n",
  927. "\n",
  928. ".xr-dim-list:after {\n",
  929. " content: ')';\n",
  930. "}\n",
  931. "\n",
  932. ".xr-dim-list li:not(:last-child):after {\n",
  933. " content: ',';\n",
  934. " padding-right: 5px;\n",
  935. "}\n",
  936. "\n",
  937. ".xr-has-index {\n",
  938. " font-weight: bold;\n",
  939. "}\n",
  940. "\n",
  941. ".xr-var-list,\n",
  942. ".xr-var-item {\n",
  943. " display: contents;\n",
  944. "}\n",
  945. "\n",
  946. ".xr-var-item > div,\n",
  947. ".xr-var-item label,\n",
  948. ".xr-var-item > .xr-var-name span {\n",
  949. " background-color: var(--xr-background-color-row-even);\n",
  950. " margin-bottom: 0;\n",
  951. "}\n",
  952. "\n",
  953. ".xr-var-item > .xr-var-name:hover span {\n",
  954. " padding-right: 5px;\n",
  955. "}\n",
  956. "\n",
  957. ".xr-var-list > li:nth-child(odd) > div,\n",
  958. ".xr-var-list > li:nth-child(odd) > label,\n",
  959. ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
  960. " background-color: var(--xr-background-color-row-odd);\n",
  961. "}\n",
  962. "\n",
  963. ".xr-var-name {\n",
  964. " grid-column: 1;\n",
  965. "}\n",
  966. "\n",
  967. ".xr-var-dims {\n",
  968. " grid-column: 2;\n",
  969. "}\n",
  970. "\n",
  971. ".xr-var-dtype {\n",
  972. " grid-column: 3;\n",
  973. " text-align: right;\n",
  974. " color: var(--xr-font-color2);\n",
  975. "}\n",
  976. "\n",
  977. ".xr-var-preview {\n",
  978. " grid-column: 4;\n",
  979. "}\n",
  980. "\n",
  981. ".xr-index-preview {\n",
  982. " grid-column: 2 / 5;\n",
  983. " color: var(--xr-font-color2);\n",
  984. "}\n",
  985. "\n",
  986. ".xr-var-name,\n",
  987. ".xr-var-dims,\n",
  988. ".xr-var-dtype,\n",
  989. ".xr-preview,\n",
  990. ".xr-attrs dt {\n",
  991. " white-space: nowrap;\n",
  992. " overflow: hidden;\n",
  993. " text-overflow: ellipsis;\n",
  994. " padding-right: 10px;\n",
  995. "}\n",
  996. "\n",
  997. ".xr-var-name:hover,\n",
  998. ".xr-var-dims:hover,\n",
  999. ".xr-var-dtype:hover,\n",
  1000. ".xr-attrs dt:hover {\n",
  1001. " overflow: visible;\n",
  1002. " width: auto;\n",
  1003. " z-index: 1;\n",
  1004. "}\n",
  1005. "\n",
  1006. ".xr-var-attrs,\n",
  1007. ".xr-var-data,\n",
  1008. ".xr-index-data {\n",
  1009. " display: none;\n",
  1010. " background-color: var(--xr-background-color) !important;\n",
  1011. " padding-bottom: 5px !important;\n",
  1012. "}\n",
  1013. "\n",
  1014. ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
  1015. ".xr-var-data-in:checked ~ .xr-var-data,\n",
  1016. ".xr-index-data-in:checked ~ .xr-index-data {\n",
  1017. " display: block;\n",
  1018. "}\n",
  1019. "\n",
  1020. ".xr-var-data > table {\n",
  1021. " float: right;\n",
  1022. "}\n",
  1023. "\n",
  1024. ".xr-var-name span,\n",
  1025. ".xr-var-data,\n",
  1026. ".xr-index-name div,\n",
  1027. ".xr-index-data,\n",
  1028. ".xr-attrs {\n",
  1029. " padding-left: 25px !important;\n",
  1030. "}\n",
  1031. "\n",
  1032. ".xr-attrs,\n",
  1033. ".xr-var-attrs,\n",
  1034. ".xr-var-data,\n",
  1035. ".xr-index-data {\n",
  1036. " grid-column: 1 / -1;\n",
  1037. "}\n",
  1038. "\n",
  1039. "dl.xr-attrs {\n",
  1040. " padding: 0;\n",
  1041. " margin: 0;\n",
  1042. " display: grid;\n",
  1043. " grid-template-columns: 125px auto;\n",
  1044. "}\n",
  1045. "\n",
  1046. ".xr-attrs dt,\n",
  1047. ".xr-attrs dd {\n",
  1048. " padding: 0;\n",
  1049. " margin: 0;\n",
  1050. " float: left;\n",
  1051. " padding-right: 10px;\n",
  1052. " width: auto;\n",
  1053. "}\n",
  1054. "\n",
  1055. ".xr-attrs dt {\n",
  1056. " font-weight: normal;\n",
  1057. " grid-column: 1;\n",
  1058. "}\n",
  1059. "\n",
  1060. ".xr-attrs dt:hover span {\n",
  1061. " display: inline-block;\n",
  1062. " background: var(--xr-background-color);\n",
  1063. " padding-right: 10px;\n",
  1064. "}\n",
  1065. "\n",
  1066. ".xr-attrs dd {\n",
  1067. " grid-column: 2;\n",
  1068. " white-space: pre-wrap;\n",
  1069. " word-break: break-all;\n",
  1070. "}\n",
  1071. "\n",
  1072. ".xr-icon-database,\n",
  1073. ".xr-icon-file-text2,\n",
  1074. ".xr-no-icon {\n",
  1075. " display: inline-block;\n",
  1076. " vertical-align: middle;\n",
  1077. " width: 1em;\n",
  1078. " height: 1.5em !important;\n",
  1079. " stroke-width: 0;\n",
  1080. " stroke: currentColor;\n",
  1081. " fill: currentColor;\n",
  1082. "}\n",
  1083. "</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;OD&#x27; (initial_horz_freq: 1, initial_vert_freq: 1)&gt;\n",
  1084. "array([[65351.30239154]])\n",
  1085. "Coordinates:\n",
  1086. " * initial_horz_freq (initial_horz_freq) float64 103.0\n",
  1087. " * initial_vert_freq (initial_vert_freq) float64 101.8</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'OD'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>initial_horz_freq</span>: 1</li><li><span class='xr-has-index'>initial_vert_freq</span>: 1</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-1a84307d-0552-4450-aa56-34b422ac9c57' class='xr-array-in' type='checkbox' checked><label for='section-1a84307d-0552-4450-aa56-34b422ac9c57' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>6.535e+04</span></div><div class='xr-array-data'><pre>array([[65351.30239154]])</pre></div></div></li><li class='xr-section-item'><input id='section-fc5fcc47-c424-4595-8493-b6fb33ab058a' class='xr-section-summary-in' type='checkbox' checked><label for='section-fc5fcc47-c424-4595-8493-b6fb33ab058a' class='xr-section-summary' >Coordinates: <span>(2)</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 class='xr-has-index'>initial_horz_freq</span></div><div class='xr-var-dims'>(initial_horz_freq)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>103.0</div><input id='attrs-2cb7430e-3fbe-4518-a5b0-c4ffa0684653' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-2cb7430e-3fbe-4518-a5b0-c4ffa0684653' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-601e3bd6-edb0-4887-b832-a015a068cfbd' class='xr-var-data-in' type='checkbox'><label for='data-601e3bd6-edb0-4887-b832-a015a068cfbd' 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([103.05])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>initial_vert_freq</span></div><div class='xr-var-dims'>(initial_vert_freq)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>101.8</div><input id='attrs-ceb926a9-c49d-45f6-b305-c3026f758a01' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-ceb926a9-c49d-45f6-b305-c3026f758a01' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-cdbc3fd8-77d8-4bda-8dc6-706f8c67e989' class='xr-var-data-in' type='checkbox'><label for='data-cdbc3fd8-77d8-4bda-8dc6-706f8c67e989' 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([101.85])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-510b5835-0192-48da-a654-eee9ac81726a' class='xr-section-summary-in' type='checkbox' ><label for='section-510b5835-0192-48da-a654-eee9ac81726a' class='xr-section-summary' >Indexes: <span>(2)</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-index-name'><div>initial_horz_freq</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-7f10b146-9ec5-442b-9b19-2080607460c7' class='xr-index-data-in' type='checkbox'/><label for='index-7f10b146-9ec5-442b-9b19-2080607460c7' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Float64Index([103.05], dtype=&#x27;float64&#x27;, name=&#x27;initial_horz_freq&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>initial_vert_freq</div></div><div class='xr
  1088. ],
  1089. "text/plain": [
  1090. "<xarray.DataArray 'OD' (initial_horz_freq: 1, initial_vert_freq: 1)>\n",
  1091. "array([[65351.30239154]])\n",
  1092. "Coordinates:\n",
  1093. " * initial_horz_freq (initial_horz_freq) float64 103.0\n",
  1094. " * initial_vert_freq (initial_vert_freq) float64 101.8"
  1095. ]
  1096. },
  1097. "execution_count": 14,
  1098. "metadata": {},
  1099. "output_type": "execute_result"
  1100. }
  1101. ],
  1102. "source": [
  1103. "Ncount_mean.where(Ncount_mean==Ncount_mean.max(), drop=True)"
  1104. ]
  1105. },
  1106. {
  1107. "cell_type": "markdown",
  1108. "metadata": {},
  1109. "source": [
  1110. "## scan MOT amp"
  1111. ]
  1112. },
  1113. {
  1114. "cell_type": "code",
  1115. "execution_count": 15,
  1116. "metadata": {},
  1117. "outputs": [
  1118. {
  1119. "name": "stdout",
  1120. "output_type": "stream",
  1121. "text": [
  1122. "The detected scaning axes and values are: \n",
  1123. "\n",
  1124. "{'initial_horz_amp': array([0.45, 0.49, 0.53, 0.57, 0.61, 0.65, 0.69, 0.73, 0.77, 0.81]), 'initial_vert_amp': array([0.35, 0.39, 0.43, 0.47, 0.51, 0.55, 0.59, 0.63, 0.67, 0.71])}\n"
  1125. ]
  1126. },
  1127. {
  1128. "data": {
  1129. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  1130. "text/plain": [
  1131. "<IPython.core.display.Javascript object>"
  1132. ]
  1133. },
  1134. "metadata": {},
  1135. "output_type": "display_data"
  1136. },
  1137. {
  1138. "data": {
  1139. "text/html": [
  1140. "<img src=\"data:image/png;base64,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
  1141. ],
  1142. "text/plain": [
  1143. "<IPython.core.display.HTML object>"
  1144. ]
  1145. },
  1146. "metadata": {},
  1147. "output_type": "display_data"
  1148. }
  1149. ],
  1150. "source": [
  1151. "%matplotlib notebook\n",
  1152. "shotNum = \"0015\"\n",
  1153. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  1154. "\n",
  1155. "dataSetDict = {\n",
  1156. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
  1157. " for i in [0,1]\n",
  1158. "}\n",
  1159. "\n",
  1160. "dataSet = dataSetDict[\"camera_1\"]\n",
  1161. "\n",
  1162. "print_scanAxis(dataSet)\n",
  1163. "\n",
  1164. "scanAxis = get_scanAxis(dataSet)\n",
  1165. "\n",
  1166. "dataSet = auto_rechunk(dataSet)\n",
  1167. "\n",
  1168. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  1169. "\n",
  1170. "imageAnalyser.center = (310, 815)\n",
  1171. "imageAnalyser.span = (550, 1275)\n",
  1172. "imageAnalyser.fraction = (0.1, 0.1)\n",
  1173. "\n",
  1174. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  1175. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  1176. "\n",
  1177. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  1178. "Ncount_mean = calculate_mean(Ncount)\n",
  1179. "Ncount_std = calculate_std(Ncount)\n",
  1180. "\n",
  1181. "fig = plt.figure()\n",
  1182. "ax = fig.gca()\n",
  1183. "Ncount_mean.plot.pcolormesh(ax=ax, vmin=0, cmap='jet', cbar_kwargs = dict(label='NCount'))\n",
  1184. "plt.xlabel('Vert AOM Frequency')\n",
  1185. "plt.ylabel('Horz AOM Frequency')\n",
  1186. "plt.tight_layout()\n",
  1187. "plt.show()\n",
  1188. "\n",
  1189. "# DB.create_global(shotNum, dataSet)\n",
  1190. "# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
  1191. ]
  1192. },
  1193. {
  1194. "cell_type": "code",
  1195. "execution_count": 16,
  1196. "metadata": {},
  1197. "outputs": [
  1198. {
  1199. "data": {
  1200. "text/html": [
  1201. "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
  1202. "<defs>\n",
  1203. "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
  1204. "<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",
  1205. "<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",
  1206. "<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",
  1207. "</symbol>\n",
  1208. "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
  1209. "<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",
  1210. "<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",
  1211. "<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",
  1212. "<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",
  1213. "</symbol>\n",
  1214. "</defs>\n",
  1215. "</svg>\n",
  1216. "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
  1217. " *\n",
  1218. " */\n",
  1219. "\n",
  1220. ":root {\n",
  1221. " --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
  1222. " --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
  1223. " --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
  1224. " --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
  1225. " --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
  1226. " --xr-background-color: var(--jp-layout-color0, white);\n",
  1227. " --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
  1228. " --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
  1229. "}\n",
  1230. "\n",
  1231. "html[theme=dark],\n",
  1232. "body[data-theme=dark],\n",
  1233. "body.vscode-dark {\n",
  1234. " --xr-font-color0: rgba(255, 255, 255, 1);\n",
  1235. " --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
  1236. " --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
  1237. " --xr-border-color: #1F1F1F;\n",
  1238. " --xr-disabled-color: #515151;\n",
  1239. " --xr-background-color: #111111;\n",
  1240. " --xr-background-color-row-even: #111111;\n",
  1241. " --xr-background-color-row-odd: #313131;\n",
  1242. "}\n",
  1243. "\n",
  1244. ".xr-wrap {\n",
  1245. " display: block !important;\n",
  1246. " min-width: 300px;\n",
  1247. " max-width: 700px;\n",
  1248. "}\n",
  1249. "\n",
  1250. ".xr-text-repr-fallback {\n",
  1251. " /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
  1252. " display: none;\n",
  1253. "}\n",
  1254. "\n",
  1255. ".xr-header {\n",
  1256. " padding-top: 6px;\n",
  1257. " padding-bottom: 6px;\n",
  1258. " margin-bottom: 4px;\n",
  1259. " border-bottom: solid 1px var(--xr-border-color);\n",
  1260. "}\n",
  1261. "\n",
  1262. ".xr-header > div,\n",
  1263. ".xr-header > ul {\n",
  1264. " display: inline;\n",
  1265. " margin-top: 0;\n",
  1266. " margin-bottom: 0;\n",
  1267. "}\n",
  1268. "\n",
  1269. ".xr-obj-type,\n",
  1270. ".xr-array-name {\n",
  1271. " margin-left: 2px;\n",
  1272. " margin-right: 10px;\n",
  1273. "}\n",
  1274. "\n",
  1275. ".xr-obj-type {\n",
  1276. " color: var(--xr-font-color2);\n",
  1277. "}\n",
  1278. "\n",
  1279. ".xr-sections {\n",
  1280. " padding-left: 0 !important;\n",
  1281. " display: grid;\n",
  1282. " grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
  1283. "}\n",
  1284. "\n",
  1285. ".xr-section-item {\n",
  1286. " display: contents;\n",
  1287. "}\n",
  1288. "\n",
  1289. ".xr-section-item input {\n",
  1290. " display: none;\n",
  1291. "}\n",
  1292. "\n",
  1293. ".xr-section-item input + label {\n",
  1294. " color: var(--xr-disabled-color);\n",
  1295. "}\n",
  1296. "\n",
  1297. ".xr-section-item input:enabled + label {\n",
  1298. " cursor: pointer;\n",
  1299. " color: var(--xr-font-color2);\n",
  1300. "}\n",
  1301. "\n",
  1302. ".xr-section-item input:enabled + label:hover {\n",
  1303. " color: var(--xr-font-color0);\n",
  1304. "}\n",
  1305. "\n",
  1306. ".xr-section-summary {\n",
  1307. " grid-column: 1;\n",
  1308. " color: var(--xr-font-color2);\n",
  1309. " font-weight: 500;\n",
  1310. "}\n",
  1311. "\n",
  1312. ".xr-section-summary > span {\n",
  1313. " display: inline-block;\n",
  1314. " padding-left: 0.5em;\n",
  1315. "}\n",
  1316. "\n",
  1317. ".xr-section-summary-in:disabled + label {\n",
  1318. " color: var(--xr-font-color2);\n",
  1319. "}\n",
  1320. "\n",
  1321. ".xr-section-summary-in + label:before {\n",
  1322. " display: inline-block;\n",
  1323. " content: 'â–º';\n",
  1324. " font-size: 11px;\n",
  1325. " width: 15px;\n",
  1326. " text-align: center;\n",
  1327. "}\n",
  1328. "\n",
  1329. ".xr-section-summary-in:disabled + label:before {\n",
  1330. " color: var(--xr-disabled-color);\n",
  1331. "}\n",
  1332. "\n",
  1333. ".xr-section-summary-in:checked + label:before {\n",
  1334. " content: 'â–¼';\n",
  1335. "}\n",
  1336. "\n",
  1337. ".xr-section-summary-in:checked + label > span {\n",
  1338. " display: none;\n",
  1339. "}\n",
  1340. "\n",
  1341. ".xr-section-summary,\n",
  1342. ".xr-section-inline-details {\n",
  1343. " padding-top: 4px;\n",
  1344. " padding-bottom: 4px;\n",
  1345. "}\n",
  1346. "\n",
  1347. ".xr-section-inline-details {\n",
  1348. " grid-column: 2 / -1;\n",
  1349. "}\n",
  1350. "\n",
  1351. ".xr-section-details {\n",
  1352. " display: none;\n",
  1353. " grid-column: 1 / -1;\n",
  1354. " margin-bottom: 5px;\n",
  1355. "}\n",
  1356. "\n",
  1357. ".xr-section-summary-in:checked ~ .xr-section-details {\n",
  1358. " display: contents;\n",
  1359. "}\n",
  1360. "\n",
  1361. ".xr-array-wrap {\n",
  1362. " grid-column: 1 / -1;\n",
  1363. " display: grid;\n",
  1364. " grid-template-columns: 20px auto;\n",
  1365. "}\n",
  1366. "\n",
  1367. ".xr-array-wrap > label {\n",
  1368. " grid-column: 1;\n",
  1369. " vertical-align: top;\n",
  1370. "}\n",
  1371. "\n",
  1372. ".xr-preview {\n",
  1373. " color: var(--xr-font-color3);\n",
  1374. "}\n",
  1375. "\n",
  1376. ".xr-array-preview,\n",
  1377. ".xr-array-data {\n",
  1378. " padding: 0 5px !important;\n",
  1379. " grid-column: 2;\n",
  1380. "}\n",
  1381. "\n",
  1382. ".xr-array-data,\n",
  1383. ".xr-array-in:checked ~ .xr-array-preview {\n",
  1384. " display: none;\n",
  1385. "}\n",
  1386. "\n",
  1387. ".xr-array-in:checked ~ .xr-array-data,\n",
  1388. ".xr-array-preview {\n",
  1389. " display: inline-block;\n",
  1390. "}\n",
  1391. "\n",
  1392. ".xr-dim-list {\n",
  1393. " display: inline-block !important;\n",
  1394. " list-style: none;\n",
  1395. " padding: 0 !important;\n",
  1396. " margin: 0;\n",
  1397. "}\n",
  1398. "\n",
  1399. ".xr-dim-list li {\n",
  1400. " display: inline-block;\n",
  1401. " padding: 0;\n",
  1402. " margin: 0;\n",
  1403. "}\n",
  1404. "\n",
  1405. ".xr-dim-list:before {\n",
  1406. " content: '(';\n",
  1407. "}\n",
  1408. "\n",
  1409. ".xr-dim-list:after {\n",
  1410. " content: ')';\n",
  1411. "}\n",
  1412. "\n",
  1413. ".xr-dim-list li:not(:last-child):after {\n",
  1414. " content: ',';\n",
  1415. " padding-right: 5px;\n",
  1416. "}\n",
  1417. "\n",
  1418. ".xr-has-index {\n",
  1419. " font-weight: bold;\n",
  1420. "}\n",
  1421. "\n",
  1422. ".xr-var-list,\n",
  1423. ".xr-var-item {\n",
  1424. " display: contents;\n",
  1425. "}\n",
  1426. "\n",
  1427. ".xr-var-item > div,\n",
  1428. ".xr-var-item label,\n",
  1429. ".xr-var-item > .xr-var-name span {\n",
  1430. " background-color: var(--xr-background-color-row-even);\n",
  1431. " margin-bottom: 0;\n",
  1432. "}\n",
  1433. "\n",
  1434. ".xr-var-item > .xr-var-name:hover span {\n",
  1435. " padding-right: 5px;\n",
  1436. "}\n",
  1437. "\n",
  1438. ".xr-var-list > li:nth-child(odd) > div,\n",
  1439. ".xr-var-list > li:nth-child(odd) > label,\n",
  1440. ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
  1441. " background-color: var(--xr-background-color-row-odd);\n",
  1442. "}\n",
  1443. "\n",
  1444. ".xr-var-name {\n",
  1445. " grid-column: 1;\n",
  1446. "}\n",
  1447. "\n",
  1448. ".xr-var-dims {\n",
  1449. " grid-column: 2;\n",
  1450. "}\n",
  1451. "\n",
  1452. ".xr-var-dtype {\n",
  1453. " grid-column: 3;\n",
  1454. " text-align: right;\n",
  1455. " color: var(--xr-font-color2);\n",
  1456. "}\n",
  1457. "\n",
  1458. ".xr-var-preview {\n",
  1459. " grid-column: 4;\n",
  1460. "}\n",
  1461. "\n",
  1462. ".xr-index-preview {\n",
  1463. " grid-column: 2 / 5;\n",
  1464. " color: var(--xr-font-color2);\n",
  1465. "}\n",
  1466. "\n",
  1467. ".xr-var-name,\n",
  1468. ".xr-var-dims,\n",
  1469. ".xr-var-dtype,\n",
  1470. ".xr-preview,\n",
  1471. ".xr-attrs dt {\n",
  1472. " white-space: nowrap;\n",
  1473. " overflow: hidden;\n",
  1474. " text-overflow: ellipsis;\n",
  1475. " padding-right: 10px;\n",
  1476. "}\n",
  1477. "\n",
  1478. ".xr-var-name:hover,\n",
  1479. ".xr-var-dims:hover,\n",
  1480. ".xr-var-dtype:hover,\n",
  1481. ".xr-attrs dt:hover {\n",
  1482. " overflow: visible;\n",
  1483. " width: auto;\n",
  1484. " z-index: 1;\n",
  1485. "}\n",
  1486. "\n",
  1487. ".xr-var-attrs,\n",
  1488. ".xr-var-data,\n",
  1489. ".xr-index-data {\n",
  1490. " display: none;\n",
  1491. " background-color: var(--xr-background-color) !important;\n",
  1492. " padding-bottom: 5px !important;\n",
  1493. "}\n",
  1494. "\n",
  1495. ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
  1496. ".xr-var-data-in:checked ~ .xr-var-data,\n",
  1497. ".xr-index-data-in:checked ~ .xr-index-data {\n",
  1498. " display: block;\n",
  1499. "}\n",
  1500. "\n",
  1501. ".xr-var-data > table {\n",
  1502. " float: right;\n",
  1503. "}\n",
  1504. "\n",
  1505. ".xr-var-name span,\n",
  1506. ".xr-var-data,\n",
  1507. ".xr-index-name div,\n",
  1508. ".xr-index-data,\n",
  1509. ".xr-attrs {\n",
  1510. " padding-left: 25px !important;\n",
  1511. "}\n",
  1512. "\n",
  1513. ".xr-attrs,\n",
  1514. ".xr-var-attrs,\n",
  1515. ".xr-var-data,\n",
  1516. ".xr-index-data {\n",
  1517. " grid-column: 1 / -1;\n",
  1518. "}\n",
  1519. "\n",
  1520. "dl.xr-attrs {\n",
  1521. " padding: 0;\n",
  1522. " margin: 0;\n",
  1523. " display: grid;\n",
  1524. " grid-template-columns: 125px auto;\n",
  1525. "}\n",
  1526. "\n",
  1527. ".xr-attrs dt,\n",
  1528. ".xr-attrs dd {\n",
  1529. " padding: 0;\n",
  1530. " margin: 0;\n",
  1531. " float: left;\n",
  1532. " padding-right: 10px;\n",
  1533. " width: auto;\n",
  1534. "}\n",
  1535. "\n",
  1536. ".xr-attrs dt {\n",
  1537. " font-weight: normal;\n",
  1538. " grid-column: 1;\n",
  1539. "}\n",
  1540. "\n",
  1541. ".xr-attrs dt:hover span {\n",
  1542. " display: inline-block;\n",
  1543. " background: var(--xr-background-color);\n",
  1544. " padding-right: 10px;\n",
  1545. "}\n",
  1546. "\n",
  1547. ".xr-attrs dd {\n",
  1548. " grid-column: 2;\n",
  1549. " white-space: pre-wrap;\n",
  1550. " word-break: break-all;\n",
  1551. "}\n",
  1552. "\n",
  1553. ".xr-icon-database,\n",
  1554. ".xr-icon-file-text2,\n",
  1555. ".xr-no-icon {\n",
  1556. " display: inline-block;\n",
  1557. " vertical-align: middle;\n",
  1558. " width: 1em;\n",
  1559. " height: 1.5em !important;\n",
  1560. " stroke-width: 0;\n",
  1561. " stroke: currentColor;\n",
  1562. " fill: currentColor;\n",
  1563. "}\n",
  1564. "</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;OD&#x27; (initial_horz_amp: 1, initial_vert_amp: 1)&gt;\n",
  1565. "array([[70751.40524034]])\n",
  1566. "Coordinates:\n",
  1567. " * initial_horz_amp (initial_horz_amp) float64 0.81\n",
  1568. " * initial_vert_amp (initial_vert_amp) float64 0.59</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'OD'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>initial_horz_amp</span>: 1</li><li><span class='xr-has-index'>initial_vert_amp</span>: 1</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-177509d9-805b-470b-a14d-b81705fd4a60' class='xr-array-in' type='checkbox' checked><label for='section-177509d9-805b-470b-a14d-b81705fd4a60' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>7.075e+04</span></div><div class='xr-array-data'><pre>array([[70751.40524034]])</pre></div></div></li><li class='xr-section-item'><input id='section-76e14a22-fe3b-447b-b2dd-2bb3ba9aabbf' class='xr-section-summary-in' type='checkbox' checked><label for='section-76e14a22-fe3b-447b-b2dd-2bb3ba9aabbf' class='xr-section-summary' >Coordinates: <span>(2)</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 class='xr-has-index'>initial_horz_amp</span></div><div class='xr-var-dims'>(initial_horz_amp)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.81</div><input id='attrs-94907e0a-18ce-4351-bfaf-d564533bd62f' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-94907e0a-18ce-4351-bfaf-d564533bd62f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e22171f2-c0a0-45f8-84b3-b4e8ef1bb135' class='xr-var-data-in' type='checkbox'><label for='data-e22171f2-c0a0-45f8-84b3-b4e8ef1bb135' 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.81])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>initial_vert_amp</span></div><div class='xr-var-dims'>(initial_vert_amp)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.59</div><input id='attrs-8ec82677-4202-4a42-869f-e24cda492fcb' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-8ec82677-4202-4a42-869f-e24cda492fcb' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-d4611850-9260-41d7-b5c7-4bf79a2b8bba' class='xr-var-data-in' type='checkbox'><label for='data-d4611850-9260-41d7-b5c7-4bf79a2b8bba' 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.59])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-4f941a64-d6be-490e-8286-4af1fee95797' class='xr-section-summary-in' type='checkbox' ><label for='section-4f941a64-d6be-490e-8286-4af1fee95797' class='xr-section-summary' >Indexes: <span>(2)</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-index-name'><div>initial_horz_amp</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-7335d05f-250d-4928-af8b-4bf9e657a1f1' class='xr-index-data-in' type='checkbox'/><label for='index-7335d05f-250d-4928-af8b-4bf9e657a1f1' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Float64Index([0.81], dtype=&#x27;float64&#x27;, name=&#x27;initial_horz_amp&#x27;))</pre></div></li><li class='xr-var-item'><div class='xr-index-name'><div>initial_vert_amp</div></div><div class='xr-index-preview'>Pand
  1569. ],
  1570. "text/plain": [
  1571. "<xarray.DataArray 'OD' (initial_horz_amp: 1, initial_vert_amp: 1)>\n",
  1572. "array([[70751.40524034]])\n",
  1573. "Coordinates:\n",
  1574. " * initial_horz_amp (initial_horz_amp) float64 0.81\n",
  1575. " * initial_vert_amp (initial_vert_amp) float64 0.59"
  1576. ]
  1577. },
  1578. "execution_count": 16,
  1579. "metadata": {},
  1580. "output_type": "execute_result"
  1581. }
  1582. ],
  1583. "source": [
  1584. "Ncount_mean.where(Ncount_mean==Ncount_mean.max(), drop=True)"
  1585. ]
  1586. },
  1587. {
  1588. "cell_type": "markdown",
  1589. "metadata": {},
  1590. "source": [
  1591. "## Scan final Z Comp Current"
  1592. ]
  1593. },
  1594. {
  1595. "cell_type": "code",
  1596. "execution_count": 25,
  1597. "metadata": {},
  1598. "outputs": [
  1599. {
  1600. "name": "stdout",
  1601. "output_type": "stream",
  1602. "text": [
  1603. "The detected scaning axes and values are: \n",
  1604. "\n",
  1605. "{'compZ_final_current': array([0.233, 0.234, 0.235, 0.236, 0.237, 0.238, 0.239, 0.24 , 0.241,\n",
  1606. " 0.242]), 'runs': array([0., 1., 2.])}\n"
  1607. ]
  1608. },
  1609. {
  1610. "data": {
  1611. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  1612. "text/plain": [
  1613. "<IPython.core.display.Javascript object>"
  1614. ]
  1615. },
  1616. "metadata": {},
  1617. "output_type": "display_data"
  1618. },
  1619. {
  1620. "data": {
  1621. "text/html": [
  1622. "<img src=\"data:image/png;base64,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
  1623. ],
  1624. "text/plain": [
  1625. "<IPython.core.display.HTML object>"
  1626. ]
  1627. },
  1628. "metadata": {},
  1629. "output_type": "display_data"
  1630. }
  1631. ],
  1632. "source": [
  1633. "%matplotlib notebook\n",
  1634. "shotNum = \"0018\"\n",
  1635. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  1636. "\n",
  1637. "dataSetDict = {\n",
  1638. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
  1639. " for i in [0, 1]\n",
  1640. "}\n",
  1641. "\n",
  1642. "dataSet = dataSetDict[\"camera_1\"]\n",
  1643. "\n",
  1644. "print_scanAxis(dataSet)\n",
  1645. "\n",
  1646. "scanAxis = get_scanAxis(dataSet)\n",
  1647. "\n",
  1648. "dataSet = auto_rechunk(dataSet)\n",
  1649. "\n",
  1650. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  1651. "\n",
  1652. "imageAnalyser.center = (325, 875)\n",
  1653. "imageAnalyser.span = (500, 500)\n",
  1654. "imageAnalyser.fraction = (0.1, 0.1)\n",
  1655. "\n",
  1656. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  1657. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  1658. "\n",
  1659. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  1660. "Ncount_mean = calculate_mean(Ncount)\n",
  1661. "Ncount_std = calculate_std(Ncount)\n",
  1662. "\n",
  1663. "fig = plt.figure()\n",
  1664. "ax = fig.gca()\n",
  1665. "Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
  1666. "#plt.xlabel('')\n",
  1667. "plt.ylabel('NCount')\n",
  1668. "plt.tight_layout()\n",
  1669. "plt.grid(visible=1)\n",
  1670. "plt.show()\n",
  1671. "\n",
  1672. "# DB.create_global(shotNum, dataSet)\n",
  1673. "# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
  1674. ]
  1675. },
  1676. {
  1677. "cell_type": "code",
  1678. "execution_count": 26,
  1679. "metadata": {},
  1680. "outputs": [
  1681. {
  1682. "data": {
  1683. "text/html": [
  1684. "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
  1685. "<defs>\n",
  1686. "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
  1687. "<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",
  1688. "<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",
  1689. "<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",
  1690. "</symbol>\n",
  1691. "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
  1692. "<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",
  1693. "<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",
  1694. "<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",
  1695. "<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",
  1696. "</symbol>\n",
  1697. "</defs>\n",
  1698. "</svg>\n",
  1699. "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
  1700. " *\n",
  1701. " */\n",
  1702. "\n",
  1703. ":root {\n",
  1704. " --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
  1705. " --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
  1706. " --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
  1707. " --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
  1708. " --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
  1709. " --xr-background-color: var(--jp-layout-color0, white);\n",
  1710. " --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
  1711. " --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
  1712. "}\n",
  1713. "\n",
  1714. "html[theme=dark],\n",
  1715. "body[data-theme=dark],\n",
  1716. "body.vscode-dark {\n",
  1717. " --xr-font-color0: rgba(255, 255, 255, 1);\n",
  1718. " --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
  1719. " --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
  1720. " --xr-border-color: #1F1F1F;\n",
  1721. " --xr-disabled-color: #515151;\n",
  1722. " --xr-background-color: #111111;\n",
  1723. " --xr-background-color-row-even: #111111;\n",
  1724. " --xr-background-color-row-odd: #313131;\n",
  1725. "}\n",
  1726. "\n",
  1727. ".xr-wrap {\n",
  1728. " display: block !important;\n",
  1729. " min-width: 300px;\n",
  1730. " max-width: 700px;\n",
  1731. "}\n",
  1732. "\n",
  1733. ".xr-text-repr-fallback {\n",
  1734. " /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
  1735. " display: none;\n",
  1736. "}\n",
  1737. "\n",
  1738. ".xr-header {\n",
  1739. " padding-top: 6px;\n",
  1740. " padding-bottom: 6px;\n",
  1741. " margin-bottom: 4px;\n",
  1742. " border-bottom: solid 1px var(--xr-border-color);\n",
  1743. "}\n",
  1744. "\n",
  1745. ".xr-header > div,\n",
  1746. ".xr-header > ul {\n",
  1747. " display: inline;\n",
  1748. " margin-top: 0;\n",
  1749. " margin-bottom: 0;\n",
  1750. "}\n",
  1751. "\n",
  1752. ".xr-obj-type,\n",
  1753. ".xr-array-name {\n",
  1754. " margin-left: 2px;\n",
  1755. " margin-right: 10px;\n",
  1756. "}\n",
  1757. "\n",
  1758. ".xr-obj-type {\n",
  1759. " color: var(--xr-font-color2);\n",
  1760. "}\n",
  1761. "\n",
  1762. ".xr-sections {\n",
  1763. " padding-left: 0 !important;\n",
  1764. " display: grid;\n",
  1765. " grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
  1766. "}\n",
  1767. "\n",
  1768. ".xr-section-item {\n",
  1769. " display: contents;\n",
  1770. "}\n",
  1771. "\n",
  1772. ".xr-section-item input {\n",
  1773. " display: none;\n",
  1774. "}\n",
  1775. "\n",
  1776. ".xr-section-item input + label {\n",
  1777. " color: var(--xr-disabled-color);\n",
  1778. "}\n",
  1779. "\n",
  1780. ".xr-section-item input:enabled + label {\n",
  1781. " cursor: pointer;\n",
  1782. " color: var(--xr-font-color2);\n",
  1783. "}\n",
  1784. "\n",
  1785. ".xr-section-item input:enabled + label:hover {\n",
  1786. " color: var(--xr-font-color0);\n",
  1787. "}\n",
  1788. "\n",
  1789. ".xr-section-summary {\n",
  1790. " grid-column: 1;\n",
  1791. " color: var(--xr-font-color2);\n",
  1792. " font-weight: 500;\n",
  1793. "}\n",
  1794. "\n",
  1795. ".xr-section-summary > span {\n",
  1796. " display: inline-block;\n",
  1797. " padding-left: 0.5em;\n",
  1798. "}\n",
  1799. "\n",
  1800. ".xr-section-summary-in:disabled + label {\n",
  1801. " color: var(--xr-font-color2);\n",
  1802. "}\n",
  1803. "\n",
  1804. ".xr-section-summary-in + label:before {\n",
  1805. " display: inline-block;\n",
  1806. " content: 'â–º';\n",
  1807. " font-size: 11px;\n",
  1808. " width: 15px;\n",
  1809. " text-align: center;\n",
  1810. "}\n",
  1811. "\n",
  1812. ".xr-section-summary-in:disabled + label:before {\n",
  1813. " color: var(--xr-disabled-color);\n",
  1814. "}\n",
  1815. "\n",
  1816. ".xr-section-summary-in:checked + label:before {\n",
  1817. " content: 'â–¼';\n",
  1818. "}\n",
  1819. "\n",
  1820. ".xr-section-summary-in:checked + label > span {\n",
  1821. " display: none;\n",
  1822. "}\n",
  1823. "\n",
  1824. ".xr-section-summary,\n",
  1825. ".xr-section-inline-details {\n",
  1826. " padding-top: 4px;\n",
  1827. " padding-bottom: 4px;\n",
  1828. "}\n",
  1829. "\n",
  1830. ".xr-section-inline-details {\n",
  1831. " grid-column: 2 / -1;\n",
  1832. "}\n",
  1833. "\n",
  1834. ".xr-section-details {\n",
  1835. " display: none;\n",
  1836. " grid-column: 1 / -1;\n",
  1837. " margin-bottom: 5px;\n",
  1838. "}\n",
  1839. "\n",
  1840. ".xr-section-summary-in:checked ~ .xr-section-details {\n",
  1841. " display: contents;\n",
  1842. "}\n",
  1843. "\n",
  1844. ".xr-array-wrap {\n",
  1845. " grid-column: 1 / -1;\n",
  1846. " display: grid;\n",
  1847. " grid-template-columns: 20px auto;\n",
  1848. "}\n",
  1849. "\n",
  1850. ".xr-array-wrap > label {\n",
  1851. " grid-column: 1;\n",
  1852. " vertical-align: top;\n",
  1853. "}\n",
  1854. "\n",
  1855. ".xr-preview {\n",
  1856. " color: var(--xr-font-color3);\n",
  1857. "}\n",
  1858. "\n",
  1859. ".xr-array-preview,\n",
  1860. ".xr-array-data {\n",
  1861. " padding: 0 5px !important;\n",
  1862. " grid-column: 2;\n",
  1863. "}\n",
  1864. "\n",
  1865. ".xr-array-data,\n",
  1866. ".xr-array-in:checked ~ .xr-array-preview {\n",
  1867. " display: none;\n",
  1868. "}\n",
  1869. "\n",
  1870. ".xr-array-in:checked ~ .xr-array-data,\n",
  1871. ".xr-array-preview {\n",
  1872. " display: inline-block;\n",
  1873. "}\n",
  1874. "\n",
  1875. ".xr-dim-list {\n",
  1876. " display: inline-block !important;\n",
  1877. " list-style: none;\n",
  1878. " padding: 0 !important;\n",
  1879. " margin: 0;\n",
  1880. "}\n",
  1881. "\n",
  1882. ".xr-dim-list li {\n",
  1883. " display: inline-block;\n",
  1884. " padding: 0;\n",
  1885. " margin: 0;\n",
  1886. "}\n",
  1887. "\n",
  1888. ".xr-dim-list:before {\n",
  1889. " content: '(';\n",
  1890. "}\n",
  1891. "\n",
  1892. ".xr-dim-list:after {\n",
  1893. " content: ')';\n",
  1894. "}\n",
  1895. "\n",
  1896. ".xr-dim-list li:not(:last-child):after {\n",
  1897. " content: ',';\n",
  1898. " padding-right: 5px;\n",
  1899. "}\n",
  1900. "\n",
  1901. ".xr-has-index {\n",
  1902. " font-weight: bold;\n",
  1903. "}\n",
  1904. "\n",
  1905. ".xr-var-list,\n",
  1906. ".xr-var-item {\n",
  1907. " display: contents;\n",
  1908. "}\n",
  1909. "\n",
  1910. ".xr-var-item > div,\n",
  1911. ".xr-var-item label,\n",
  1912. ".xr-var-item > .xr-var-name span {\n",
  1913. " background-color: var(--xr-background-color-row-even);\n",
  1914. " margin-bottom: 0;\n",
  1915. "}\n",
  1916. "\n",
  1917. ".xr-var-item > .xr-var-name:hover span {\n",
  1918. " padding-right: 5px;\n",
  1919. "}\n",
  1920. "\n",
  1921. ".xr-var-list > li:nth-child(odd) > div,\n",
  1922. ".xr-var-list > li:nth-child(odd) > label,\n",
  1923. ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
  1924. " background-color: var(--xr-background-color-row-odd);\n",
  1925. "}\n",
  1926. "\n",
  1927. ".xr-var-name {\n",
  1928. " grid-column: 1;\n",
  1929. "}\n",
  1930. "\n",
  1931. ".xr-var-dims {\n",
  1932. " grid-column: 2;\n",
  1933. "}\n",
  1934. "\n",
  1935. ".xr-var-dtype {\n",
  1936. " grid-column: 3;\n",
  1937. " text-align: right;\n",
  1938. " color: var(--xr-font-color2);\n",
  1939. "}\n",
  1940. "\n",
  1941. ".xr-var-preview {\n",
  1942. " grid-column: 4;\n",
  1943. "}\n",
  1944. "\n",
  1945. ".xr-index-preview {\n",
  1946. " grid-column: 2 / 5;\n",
  1947. " color: var(--xr-font-color2);\n",
  1948. "}\n",
  1949. "\n",
  1950. ".xr-var-name,\n",
  1951. ".xr-var-dims,\n",
  1952. ".xr-var-dtype,\n",
  1953. ".xr-preview,\n",
  1954. ".xr-attrs dt {\n",
  1955. " white-space: nowrap;\n",
  1956. " overflow: hidden;\n",
  1957. " text-overflow: ellipsis;\n",
  1958. " padding-right: 10px;\n",
  1959. "}\n",
  1960. "\n",
  1961. ".xr-var-name:hover,\n",
  1962. ".xr-var-dims:hover,\n",
  1963. ".xr-var-dtype:hover,\n",
  1964. ".xr-attrs dt:hover {\n",
  1965. " overflow: visible;\n",
  1966. " width: auto;\n",
  1967. " z-index: 1;\n",
  1968. "}\n",
  1969. "\n",
  1970. ".xr-var-attrs,\n",
  1971. ".xr-var-data,\n",
  1972. ".xr-index-data {\n",
  1973. " display: none;\n",
  1974. " background-color: var(--xr-background-color) !important;\n",
  1975. " padding-bottom: 5px !important;\n",
  1976. "}\n",
  1977. "\n",
  1978. ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
  1979. ".xr-var-data-in:checked ~ .xr-var-data,\n",
  1980. ".xr-index-data-in:checked ~ .xr-index-data {\n",
  1981. " display: block;\n",
  1982. "}\n",
  1983. "\n",
  1984. ".xr-var-data > table {\n",
  1985. " float: right;\n",
  1986. "}\n",
  1987. "\n",
  1988. ".xr-var-name span,\n",
  1989. ".xr-var-data,\n",
  1990. ".xr-index-name div,\n",
  1991. ".xr-index-data,\n",
  1992. ".xr-attrs {\n",
  1993. " padding-left: 25px !important;\n",
  1994. "}\n",
  1995. "\n",
  1996. ".xr-attrs,\n",
  1997. ".xr-var-attrs,\n",
  1998. ".xr-var-data,\n",
  1999. ".xr-index-data {\n",
  2000. " grid-column: 1 / -1;\n",
  2001. "}\n",
  2002. "\n",
  2003. "dl.xr-attrs {\n",
  2004. " padding: 0;\n",
  2005. " margin: 0;\n",
  2006. " display: grid;\n",
  2007. " grid-template-columns: 125px auto;\n",
  2008. "}\n",
  2009. "\n",
  2010. ".xr-attrs dt,\n",
  2011. ".xr-attrs dd {\n",
  2012. " padding: 0;\n",
  2013. " margin: 0;\n",
  2014. " float: left;\n",
  2015. " padding-right: 10px;\n",
  2016. " width: auto;\n",
  2017. "}\n",
  2018. "\n",
  2019. ".xr-attrs dt {\n",
  2020. " font-weight: normal;\n",
  2021. " grid-column: 1;\n",
  2022. "}\n",
  2023. "\n",
  2024. ".xr-attrs dt:hover span {\n",
  2025. " display: inline-block;\n",
  2026. " background: var(--xr-background-color);\n",
  2027. " padding-right: 10px;\n",
  2028. "}\n",
  2029. "\n",
  2030. ".xr-attrs dd {\n",
  2031. " grid-column: 2;\n",
  2032. " white-space: pre-wrap;\n",
  2033. " word-break: break-all;\n",
  2034. "}\n",
  2035. "\n",
  2036. ".xr-icon-database,\n",
  2037. ".xr-icon-file-text2,\n",
  2038. ".xr-no-icon {\n",
  2039. " display: inline-block;\n",
  2040. " vertical-align: middle;\n",
  2041. " width: 1em;\n",
  2042. " height: 1.5em !important;\n",
  2043. " stroke-width: 0;\n",
  2044. " stroke: currentColor;\n",
  2045. " fill: currentColor;\n",
  2046. "}\n",
  2047. "</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;OD&#x27; (compZ_final_current: 1)&gt;\n",
  2048. "array([26642.0066982])\n",
  2049. "Coordinates:\n",
  2050. " * compZ_final_current (compZ_final_current) float64 0.238</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'OD'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>compZ_final_current</span>: 1</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-c81e0e81-6867-48a8-817b-0270bf8320f5' class='xr-array-in' type='checkbox' checked><label for='section-c81e0e81-6867-48a8-817b-0270bf8320f5' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>2.664e+04</span></div><div class='xr-array-data'><pre>array([26642.0066982])</pre></div></div></li><li class='xr-section-item'><input id='section-213a9602-e7c9-4a8d-872a-0a9a224c9c77' class='xr-section-summary-in' type='checkbox' checked><label for='section-213a9602-e7c9-4a8d-872a-0a9a224c9c77' class='xr-section-summary' >Coordinates: <span>(1)</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 class='xr-has-index'>compZ_final_current</span></div><div class='xr-var-dims'>(compZ_final_current)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.238</div><input id='attrs-97b5d183-12a2-43d2-bc55-2ce7784bfe38' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-97b5d183-12a2-43d2-bc55-2ce7784bfe38' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ac436865-f3d0-4ffc-8f65-960c2f4ccf32' class='xr-var-data-in' type='checkbox'><label for='data-ac436865-f3d0-4ffc-8f65-960c2f4ccf32' 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.238])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-084aa2db-fadf-4f9c-9080-822a3683ad63' class='xr-section-summary-in' type='checkbox' ><label for='section-084aa2db-fadf-4f9c-9080-822a3683ad63' class='xr-section-summary' >Indexes: <span>(1)</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-index-name'><div>compZ_final_current</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-8f148761-2dbb-435d-b8e1-c7a944c677c6' class='xr-index-data-in' type='checkbox'/><label for='index-8f148761-2dbb-435d-b8e1-c7a944c677c6' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Float64Index([0.238], dtype=&#x27;float64&#x27;, name=&#x27;compZ_final_current&#x27;))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-e55ccffc-8a2c-4845-bb7e-8ecd0686637c' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-e55ccffc-8a2c-4845-bb7e-8ecd0686637c' class='xr-section-summary' title='Expand/collapse section'>Attributes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'></dl></div></li></ul></div></div>"
  2051. ],
  2052. "text/plain": [
  2053. "<xarray.DataArray 'OD' (compZ_final_current: 1)>\n",
  2054. "array([26642.0066982])\n",
  2055. "Coordinates:\n",
  2056. " * compZ_final_current (compZ_final_current) float64 0.238"
  2057. ]
  2058. },
  2059. "execution_count": 26,
  2060. "metadata": {},
  2061. "output_type": "execute_result"
  2062. }
  2063. ],
  2064. "source": [
  2065. "Ncount_mean.where(Ncount_mean==Ncount_mean.max(), drop=True)"
  2066. ]
  2067. },
  2068. {
  2069. "cell_type": "markdown",
  2070. "metadata": {},
  2071. "source": [
  2072. "## Scan final horz amp"
  2073. ]
  2074. },
  2075. {
  2076. "cell_type": "code",
  2077. "execution_count": 27,
  2078. "metadata": {
  2079. "scrolled": false
  2080. },
  2081. "outputs": [
  2082. {
  2083. "name": "stdout",
  2084. "output_type": "stream",
  2085. "text": [
  2086. "The detected scaning axes and values are: \n",
  2087. "\n",
  2088. "{'final_horz_amp': array([5.0e-05, 7.0e-05, 9.0e-05, 1.1e-04, 1.3e-04, 1.5e-04, 1.7e-04,\n",
  2089. " 1.9e-04, 2.1e-04, 2.3e-04, 2.5e-04]), 'runs': array([0., 1., 2.])}\n"
  2090. ]
  2091. },
  2092. {
  2093. "data": {
  2094. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  2095. "text/plain": [
  2096. "<IPython.core.display.Javascript object>"
  2097. ]
  2098. },
  2099. "metadata": {},
  2100. "output_type": "display_data"
  2101. },
  2102. {
  2103. "data": {
  2104. "text/html": [
  2105. "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c6QAAIABJREFUeF7tfQvYVVW59YuIJnJV0EBQPIQWWkAXBE2Do4KYRw0NhToimZiaqFwENE3ySniBg5p4SkQNsAwFFBWPitewUvP4J0gmilwSL4CioMHhf95J+2t/Hx+svdeeY6659jvW8/AIfnPOd44x3nft8c255toNtmzZskV4kQEyQAbIABkgA2SADJhhoAENoBmtCZQMkAEyQAbIABkgA44BGkAmAhkgA2SADJABMkAGjDFAA2hMcMIlA2SADJABMkAGyAANIHOADJABMkAGyAAZIAPGGKABNCY44ZIBMkAGyAAZIANkgAaQOUAGyAAZIANkgAyQAWMM0AAaE5xwyQAZIANkgAyQATJAA8gcIANkgAyQATJABsiAMQZoAI0JTrhkgAyQATJABsgAGaABZA6QATJABsgAGSADZMAYAzSAxgQnXDJABsgAGSADZIAM0AAyB8gAGSADZIAMkAEyYIwBGkBjghMuGSADZIAMkAEyQAZoAJkDZIAMkAEyQAbIABkwxgANoDHBCZcMkAEyQAbIABkgA9EZwF/84heif958802nzkEHHSSXXXaZ9OvXz/17y5YtMm7cOLnttttkzZo1csghh8jNN9/s2hWuTz/9VEaOHCkzZsyQDRs2yJFHHim33HKLtGvXrqaN9h02bJjMmTPH/b/jjz9eJk+eLC1atKhps2zZMjn33HPl8ccfl912200GDRok1113neyyyy7MHDJABsgAGSADZIAM5JaB6Azg3LlzpWHDhvKFL3zBkTpt2jSZMGGCvPTSS87kjR8/Xq666iq544475IADDpArr7xSnnrqKXnttdekadOmrs/ZZ58tOo622XPPPWXEiBHywQcfyAsvvODG1ksN5fLly52R1Gvo0KHSoUMH10+vzZs3S9euXaV169Zy/fXXy/vvvy+DBw+W/v37O6NY6vV///d/snLlSje3Bg0alNqN7cgAGSADZIAMkAFjDOgi10cffSRt27aVnXbaCYo+OgNYH9o99tjDmcAf/OAHjpQLLrhARo8e7Zrqat/ee+/tjOFZZ50l69atc6btrrvuklNOOcW1UQPWvn17mTdvnvTt21cWLVoknTt3loULF7oVRL307z179pTFixfLgQceKA899JAc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
  2106. ],
  2107. "text/plain": [
  2108. "<IPython.core.display.HTML object>"
  2109. ]
  2110. },
  2111. "metadata": {},
  2112. "output_type": "display_data"
  2113. }
  2114. ],
  2115. "source": [
  2116. "%matplotlib notebook\n",
  2117. "shotNum = \"0019\"\n",
  2118. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  2119. "\n",
  2120. "dataSetDict = {\n",
  2121. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
  2122. " for i in [0, 1]\n",
  2123. "}\n",
  2124. "\n",
  2125. "dataSet = dataSetDict[\"camera_1\"]\n",
  2126. "\n",
  2127. "print_scanAxis(dataSet)\n",
  2128. "\n",
  2129. "scanAxis = get_scanAxis(dataSet)\n",
  2130. "\n",
  2131. "dataSet = auto_rechunk(dataSet)\n",
  2132. "\n",
  2133. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  2134. "\n",
  2135. "imageAnalyser.center = (325, 875)\n",
  2136. "imageAnalyser.span = (500, 500)\n",
  2137. "imageAnalyser.fraction = (0.1, 0.1)\n",
  2138. "\n",
  2139. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  2140. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  2141. "\n",
  2142. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  2143. "Ncount_mean = calculate_mean(Ncount)\n",
  2144. "Ncount_std = calculate_std(Ncount)\n",
  2145. "\n",
  2146. "fig = plt.figure()\n",
  2147. "ax = fig.gca()\n",
  2148. "Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
  2149. "#plt.xlabel('')\n",
  2150. "plt.ylabel('NCount')\n",
  2151. "plt.tight_layout()\n",
  2152. "plt.grid(visible=1)\n",
  2153. "plt.show()\n",
  2154. "\n",
  2155. "# DB.create_global(shotNum, dataSet)\n",
  2156. "# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
  2157. ]
  2158. },
  2159. {
  2160. "cell_type": "code",
  2161. "execution_count": null,
  2162. "metadata": {},
  2163. "outputs": [],
  2164. "source": [
  2165. "Ncount_mean.where(Ncount_mean==Ncount_mean.max(), drop=True)"
  2166. ]
  2167. },
  2168. {
  2169. "cell_type": "markdown",
  2170. "metadata": {},
  2171. "source": [
  2172. "## Scan final horz freq"
  2173. ]
  2174. },
  2175. {
  2176. "cell_type": "code",
  2177. "execution_count": 28,
  2178. "metadata": {},
  2179. "outputs": [
  2180. {
  2181. "name": "stdout",
  2182. "output_type": "stream",
  2183. "text": [
  2184. "The detected scaning axes and values are: \n",
  2185. "\n",
  2186. "{'final_horz_freq': array([104.05 , 104.055, 104.06 , 104.065, 104.07 , 104.075, 104.08 ,\n",
  2187. " 104.085, 104.09 , 104.095, 104.1 ]), 'runs': array([0., 1., 2.])}\n"
  2188. ]
  2189. },
  2190. {
  2191. "data": {
  2192. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  2193. "text/plain": [
  2194. "<IPython.core.display.Javascript object>"
  2195. ]
  2196. },
  2197. "metadata": {},
  2198. "output_type": "display_data"
  2199. },
  2200. {
  2201. "data": {
  2202. "text/html": [
  2203. "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c6QAAIABJREFUeF7svQu4VlW1/z8AkUDlJmogKBwDTO2AmYhoBkcuogRIxK3jAY6JCYkKopBKmoaRIhhmQD4gSICl3AXBEkTzYP2wiH9yEUPuhnLzAmgg/2dMfHd7v/sy195jjTnHu/d3PY+PwFzvGmN9P2O86/vOdat0/Pjx44QFCkABKAAFoAAUgAJQoMIoUAkGsMKwxo5CASgABaAAFIACUMApAAOIQoACUAAKQAEoAAWgQAVTAAawggHH7kIBKAAFoAAUgAJQAAYQNQAFoAAUgAJQAApAgQqmAAxgBQOO3YUCUAAKQAEoAAWgAAwgagAKQAEoAAWgABSAAhVMARjACgYcuwsFoAAUgAJQAApAARhA1AAUgAJQAApAASgABSqYAjCAFQw4dhcKQAEoAAWgABSAAjCAqAEoAAWgABSAAlAAClQwBWAAKxhw7C4UgAJQAApAASgABWAAUQNQAApAASgABaAAFKhgCsAAVjDg2F0oAAWgABSAAlAACsAAKtfA559/Trt27aLTTjuNKlWqpBwNm4cCUAAKQAEoAAUqggLHjx+njz76iBo0aECVK1cu9S7DAJZastJ9YMeOHdSoUaPSfQhrQwEoAAWgABSAAlAggQLbt2+nhg0bJliz4CowgKWWrHQfOHjwINWuXZsYUM2aNUv34QRr/+tf/6Lly5dTx44dqWrVqgk+gVU0FAAHDVVLt00wKJ1eWmuDg5ayybcLBsm10lxTm8OHH37oJpgOHDhAtWrVKvWuwACWWrLSfYABMRg2gloGcMmSJXTttdfCAJYOTaprc6ODQ6qSlnpjYFBqyVQ+AA4qspZqo2BQKrnUVtbmIPUXMIBq6E9sWArIl552gfniY/yEAuAQvxLAID4D9AIY2FDARhba30lSfwEDqFwnUkC+9LQLzBcf4zCAVmoAvWCDBDjE5wAG8RmE+DEk9RcwgMp1IgXkSw+N7lMozDg4hNG5pChgEJ9BiIOejb20nQV6wQYfbQ5SfwEDqFwnUkC+9LQLzBcf45gBtFID6AUbJMAhPgcwiM8gxI8hqb+AAVSuEykgX3podJ9CYcbBIYzOmAGMr7MvA/SCTyH9cTDQ1zhJBG0OUn8BA5iEomAdKSBfaO0C88XHOGYArdQAesEGCXCIzwEM4jPADKANBlGzgAGMKn+w4PjCDSZ1sYHAID6DEAc9G3tpOwv0gg0+2hyk/gIzgMp1IgXkS0+7wHzxMY4ZQCs1gF6wQQIc4nMAg/gMQvwYkvoLGEDlOpEC8qWHRvcpFGYcHMLoXFIUMIjPIMRBz8Ze2s4CvWCDjzYHqb+AAVSuEykgX3raBeaLj3HMAFqpAfSCDRLgEJ8DGMRnEOLHkNRfwAAq14kUkC89NLpPoTDj4BBGZ8wAxtfZlwF6waeQ/jgY6GucJII2B6m/gAFMQlGwjhSQL7R2gfniYxwzgFZqAL1ggwQ4xOcABvEZYAbQBoOoWcAARpU/WHB84QaTuthAYBCfQYiDno29tJ0FesEGH20OUn+BGUDlOpEC8qWnXWC++BjHDKCVGkAv2CABDvE5gEF8BiF+DEn9BQygcp1IAfnSQ6P7FAozDg5hdC4pChjEZxDioGdjL21ngV6wwUebg9RfwAAq14kUkC897QLzxcc40SefEJ166gkl9u//F9WuXRWyRFAAvRBB9CJCgkN8DmAQn0GIH0NSfwEDqFwnUkC+9NDoPoX0x2EA9TVOEgG9kEQl/XXAQV9jXwQw8CkUZlybg9RfwAAq14EUkC897QLzxcd47s8A5jewH39MdMopuUkVvWCDGzjE5wAG8RlgBtAGg6hZwABGlT9I8FyfAYQBDFImFSYIzEd81GAQnwEMoA0GUbOAAYwqf5DgMIBBZPYGwUHPK1GQFcAhiMwlBgGD+AxgAG0wiJoFDGBU+YME//BDolq1ToRatOgode58ElWpEiR0KkEwA5iKjNjIFwrAfMQvBTCIzwAG0AaDqFnAAEaVXz343LlEQ4cS7dz571ANGxI9/jhRjx7q4VMJAAOYiozYCAygmRqAAbSBQpuD1F/gJhDlOpEC8qWnXWC++BV5nM1fz55Ex48XVKFSpRN/f+653DCBMIAVuYrT33d8J6WvaWm3CAalVUxnfW0OUn8BA6jDPW+rUkC+9LQLzBe/oo4fO0bUuDHRjh1FK8AmkGcCt2wh86eD85/CXrKEqGNH+zkXpTp6wUY3gkN8DmAQnwFnoM1B6i9gAJXrRArIl552gfniS8dzdfZp5Uqidu38e79iBVHbtv71Yq1RHk5hZ7TL9V6IVQNpxwWHtBUt/fbAoPSaaXxCm4PUX8AAalDPt00pIF962gXmiy8dz1UDOHs2Ub9+/r2fNYuob1//ejHWKC+nsGEAY1RP8TFz/TvJlpplywYMyqZb2p/S5iD1FzCAaRPP2p4UkC897QLzxZeO56oBzPUZwPJ0ChsGUNqF6X4+17+T0lUjztbAII7u2VG1OUj9BQygcp1IAfnS0y4wX3zpeK4awIyB4rt/s28CYU2sXwOY6wa2qLrL9V6Q9pKVz4NDfBJgEJ8BZ6DNQeovYACV60QKyJeedoH54kvHc/kGhMwpVNYgvwnMhbuAy8Mp7NC/tqW1XlE+n+vfSeWBExjYoKjNQeovYACV60QKyJeedoH54kvGy8MNCEXtQ6NGRBMm2H4EDGYAJZWLz5akQC5/J5UXsmBgg6Q2B6m/gAFUrhMpIF962gXmi1/W8fJ0A0Iuvgkk109h4xRwWTtP/3O5+p2kr0y4CGAQTuuYP4ak/gIGULlOpIB86eVio5e3GxBy9V3AuXwKGwbQ980QbzwXv5PiqaUTGQx0dC3tVrU5SP0FDGBpiZZyfSkgXzjtAvPFL8t4eTv9mKsGkNnl6ilsGMCydF6Yz+Tid1IYZcJFAYNwWmMG0IbWJrOAASyMpbzdgJDLBpDp5PKNOPmrCwc9G1+B4BCfAxjEZ8AZaHOQ+gvMACrXiRSQLz3tAvPFL8t4eZsBDNHoZdE56Wdy9VE82fuXi72QlFEurQcO8WmBQXwGIY4LUn8BA6hcJ1JAvvRysdFxA4KPathxGMCwepf3aLn4nVTemICBDaLaHKT+AgZQuU6kgEpKL5dPPeIGBOXCK8XmYQBLIRZW9SqgfdDzJoAV1E89QuJkCmj3gtRfwAAm41jmtaSAyqsB5P3CDQhlLqtUPwgDmKqcFX5j2ge9Ci9wAgHAIIFIAVbR5iD1FzCAykUgBVSeDSDvG25AUC7ACrR57S/bCiSlaFfBQSRfKh8Gg1RkFG9Em4PUX8AAihGXvAEpoPJuADH7pFyAFWjz2l+2FUhK0a6Cg0i+VD4MBqnIKN6INgepv4ABFCOGAZRICAMoUQ+fza+A9pct1E6mADgk00lzLTDQVDf5trU5wAAmZxFlTSkgzABGwVbqoNqNXuqEKuAHwMAGdHCIzwEM4jPgDLQ5SP0FZgCV60QKqLwbQGX5g21eu9GD7UgOBwIDG/DAIT4HMIjPAAbQBoOoWcAARpU/WHB84QaTuthAYBCfQYiDno29tJ0FesEGH20OUn+BGUDlOpECwgygMqCUNq/d6CmlWa43AwY28IJDfA5gEJ9BiB9DUn8BA6hcJ1JAMIDKgFLaPL5wUxJSsBkwEIiX4kfBIUUxy7gpMCijcCl/TJuD1F/AAKYMPHtzUkAwgMqAUtq8dqOnlGa53gwY2MALDvE5gEF8BpgBtMEgahYwgFHlDxYcX7jBpC42EBjEZxDioGdjL21ngV6wwUebg9RfYAZQuU6kgDADqAwopc1rN3pKaZbbzeTye7HLGxT0QnyiYBCfQYgfQ1J/AQOoXCdSQDCAyoBS2jy+cFMSsoybgQEso3AKH0MvKIhayk2CQSkFU1pdm4PUX8AAKoHPbFYKCAZQGVBKm9du9JTSLLebgQG0gxa9EJ8FGMRngBlAGwyiZgEDGFX+YMHxhRtM6iIDwQDG1T9/dPRCfBZgEJ8BDGAZGDz88MM0d+
  2204. ],
  2205. "text/plain": [
  2206. "<IPython.core.display.HTML object>"
  2207. ]
  2208. },
  2209. "metadata": {},
  2210. "output_type": "display_data"
  2211. }
  2212. ],
  2213. "source": [
  2214. "%matplotlib notebook\n",
  2215. "shotNum = \"0020\"\n",
  2216. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  2217. "\n",
  2218. "dataSetDict = {\n",
  2219. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
  2220. " for i in [0, 1]\n",
  2221. "}\n",
  2222. "\n",
  2223. "dataSet = dataSetDict[\"camera_1\"]\n",
  2224. "\n",
  2225. "print_scanAxis(dataSet)\n",
  2226. "\n",
  2227. "scanAxis = get_scanAxis(dataSet)\n",
  2228. "\n",
  2229. "dataSet = auto_rechunk(dataSet)\n",
  2230. "\n",
  2231. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  2232. "\n",
  2233. "imageAnalyser.center = (325, 875)\n",
  2234. "imageAnalyser.span = (500, 500)\n",
  2235. "imageAnalyser.fraction = (0.1, 0.1)\n",
  2236. "\n",
  2237. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  2238. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  2239. "\n",
  2240. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  2241. "Ncount_mean = calculate_mean(Ncount)\n",
  2242. "Ncount_std = calculate_std(Ncount)\n",
  2243. "\n",
  2244. "fig = plt.figure()\n",
  2245. "ax = fig.gca()\n",
  2246. "Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
  2247. "#plt.xlabel('')\n",
  2248. "plt.ylabel('NCount')\n",
  2249. "plt.tight_layout()\n",
  2250. "plt.grid(visible=1)\n",
  2251. "plt.show()\n",
  2252. "\n",
  2253. "# DB.create_global(shotNum, dataSet)\n",
  2254. "# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
  2255. ]
  2256. },
  2257. {
  2258. "cell_type": "code",
  2259. "execution_count": 29,
  2260. "metadata": {},
  2261. "outputs": [
  2262. {
  2263. "data": {
  2264. "text/html": [
  2265. "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
  2266. "<defs>\n",
  2267. "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
  2268. "<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",
  2269. "<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",
  2270. "<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",
  2271. "</symbol>\n",
  2272. "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
  2273. "<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",
  2274. "<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",
  2275. "<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",
  2276. "<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",
  2277. "</symbol>\n",
  2278. "</defs>\n",
  2279. "</svg>\n",
  2280. "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
  2281. " *\n",
  2282. " */\n",
  2283. "\n",
  2284. ":root {\n",
  2285. " --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
  2286. " --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
  2287. " --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
  2288. " --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
  2289. " --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
  2290. " --xr-background-color: var(--jp-layout-color0, white);\n",
  2291. " --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
  2292. " --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
  2293. "}\n",
  2294. "\n",
  2295. "html[theme=dark],\n",
  2296. "body[data-theme=dark],\n",
  2297. "body.vscode-dark {\n",
  2298. " --xr-font-color0: rgba(255, 255, 255, 1);\n",
  2299. " --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
  2300. " --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
  2301. " --xr-border-color: #1F1F1F;\n",
  2302. " --xr-disabled-color: #515151;\n",
  2303. " --xr-background-color: #111111;\n",
  2304. " --xr-background-color-row-even: #111111;\n",
  2305. " --xr-background-color-row-odd: #313131;\n",
  2306. "}\n",
  2307. "\n",
  2308. ".xr-wrap {\n",
  2309. " display: block !important;\n",
  2310. " min-width: 300px;\n",
  2311. " max-width: 700px;\n",
  2312. "}\n",
  2313. "\n",
  2314. ".xr-text-repr-fallback {\n",
  2315. " /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
  2316. " display: none;\n",
  2317. "}\n",
  2318. "\n",
  2319. ".xr-header {\n",
  2320. " padding-top: 6px;\n",
  2321. " padding-bottom: 6px;\n",
  2322. " margin-bottom: 4px;\n",
  2323. " border-bottom: solid 1px var(--xr-border-color);\n",
  2324. "}\n",
  2325. "\n",
  2326. ".xr-header > div,\n",
  2327. ".xr-header > ul {\n",
  2328. " display: inline;\n",
  2329. " margin-top: 0;\n",
  2330. " margin-bottom: 0;\n",
  2331. "}\n",
  2332. "\n",
  2333. ".xr-obj-type,\n",
  2334. ".xr-array-name {\n",
  2335. " margin-left: 2px;\n",
  2336. " margin-right: 10px;\n",
  2337. "}\n",
  2338. "\n",
  2339. ".xr-obj-type {\n",
  2340. " color: var(--xr-font-color2);\n",
  2341. "}\n",
  2342. "\n",
  2343. ".xr-sections {\n",
  2344. " padding-left: 0 !important;\n",
  2345. " display: grid;\n",
  2346. " grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
  2347. "}\n",
  2348. "\n",
  2349. ".xr-section-item {\n",
  2350. " display: contents;\n",
  2351. "}\n",
  2352. "\n",
  2353. ".xr-section-item input {\n",
  2354. " display: none;\n",
  2355. "}\n",
  2356. "\n",
  2357. ".xr-section-item input + label {\n",
  2358. " color: var(--xr-disabled-color);\n",
  2359. "}\n",
  2360. "\n",
  2361. ".xr-section-item input:enabled + label {\n",
  2362. " cursor: pointer;\n",
  2363. " color: var(--xr-font-color2);\n",
  2364. "}\n",
  2365. "\n",
  2366. ".xr-section-item input:enabled + label:hover {\n",
  2367. " color: var(--xr-font-color0);\n",
  2368. "}\n",
  2369. "\n",
  2370. ".xr-section-summary {\n",
  2371. " grid-column: 1;\n",
  2372. " color: var(--xr-font-color2);\n",
  2373. " font-weight: 500;\n",
  2374. "}\n",
  2375. "\n",
  2376. ".xr-section-summary > span {\n",
  2377. " display: inline-block;\n",
  2378. " padding-left: 0.5em;\n",
  2379. "}\n",
  2380. "\n",
  2381. ".xr-section-summary-in:disabled + label {\n",
  2382. " color: var(--xr-font-color2);\n",
  2383. "}\n",
  2384. "\n",
  2385. ".xr-section-summary-in + label:before {\n",
  2386. " display: inline-block;\n",
  2387. " content: 'â–º';\n",
  2388. " font-size: 11px;\n",
  2389. " width: 15px;\n",
  2390. " text-align: center;\n",
  2391. "}\n",
  2392. "\n",
  2393. ".xr-section-summary-in:disabled + label:before {\n",
  2394. " color: var(--xr-disabled-color);\n",
  2395. "}\n",
  2396. "\n",
  2397. ".xr-section-summary-in:checked + label:before {\n",
  2398. " content: 'â–¼';\n",
  2399. "}\n",
  2400. "\n",
  2401. ".xr-section-summary-in:checked + label > span {\n",
  2402. " display: none;\n",
  2403. "}\n",
  2404. "\n",
  2405. ".xr-section-summary,\n",
  2406. ".xr-section-inline-details {\n",
  2407. " padding-top: 4px;\n",
  2408. " padding-bottom: 4px;\n",
  2409. "}\n",
  2410. "\n",
  2411. ".xr-section-inline-details {\n",
  2412. " grid-column: 2 / -1;\n",
  2413. "}\n",
  2414. "\n",
  2415. ".xr-section-details {\n",
  2416. " display: none;\n",
  2417. " grid-column: 1 / -1;\n",
  2418. " margin-bottom: 5px;\n",
  2419. "}\n",
  2420. "\n",
  2421. ".xr-section-summary-in:checked ~ .xr-section-details {\n",
  2422. " display: contents;\n",
  2423. "}\n",
  2424. "\n",
  2425. ".xr-array-wrap {\n",
  2426. " grid-column: 1 / -1;\n",
  2427. " display: grid;\n",
  2428. " grid-template-columns: 20px auto;\n",
  2429. "}\n",
  2430. "\n",
  2431. ".xr-array-wrap > label {\n",
  2432. " grid-column: 1;\n",
  2433. " vertical-align: top;\n",
  2434. "}\n",
  2435. "\n",
  2436. ".xr-preview {\n",
  2437. " color: var(--xr-font-color3);\n",
  2438. "}\n",
  2439. "\n",
  2440. ".xr-array-preview,\n",
  2441. ".xr-array-data {\n",
  2442. " padding: 0 5px !important;\n",
  2443. " grid-column: 2;\n",
  2444. "}\n",
  2445. "\n",
  2446. ".xr-array-data,\n",
  2447. ".xr-array-in:checked ~ .xr-array-preview {\n",
  2448. " display: none;\n",
  2449. "}\n",
  2450. "\n",
  2451. ".xr-array-in:checked ~ .xr-array-data,\n",
  2452. ".xr-array-preview {\n",
  2453. " display: inline-block;\n",
  2454. "}\n",
  2455. "\n",
  2456. ".xr-dim-list {\n",
  2457. " display: inline-block !important;\n",
  2458. " list-style: none;\n",
  2459. " padding: 0 !important;\n",
  2460. " margin: 0;\n",
  2461. "}\n",
  2462. "\n",
  2463. ".xr-dim-list li {\n",
  2464. " display: inline-block;\n",
  2465. " padding: 0;\n",
  2466. " margin: 0;\n",
  2467. "}\n",
  2468. "\n",
  2469. ".xr-dim-list:before {\n",
  2470. " content: '(';\n",
  2471. "}\n",
  2472. "\n",
  2473. ".xr-dim-list:after {\n",
  2474. " content: ')';\n",
  2475. "}\n",
  2476. "\n",
  2477. ".xr-dim-list li:not(:last-child):after {\n",
  2478. " content: ',';\n",
  2479. " padding-right: 5px;\n",
  2480. "}\n",
  2481. "\n",
  2482. ".xr-has-index {\n",
  2483. " font-weight: bold;\n",
  2484. "}\n",
  2485. "\n",
  2486. ".xr-var-list,\n",
  2487. ".xr-var-item {\n",
  2488. " display: contents;\n",
  2489. "}\n",
  2490. "\n",
  2491. ".xr-var-item > div,\n",
  2492. ".xr-var-item label,\n",
  2493. ".xr-var-item > .xr-var-name span {\n",
  2494. " background-color: var(--xr-background-color-row-even);\n",
  2495. " margin-bottom: 0;\n",
  2496. "}\n",
  2497. "\n",
  2498. ".xr-var-item > .xr-var-name:hover span {\n",
  2499. " padding-right: 5px;\n",
  2500. "}\n",
  2501. "\n",
  2502. ".xr-var-list > li:nth-child(odd) > div,\n",
  2503. ".xr-var-list > li:nth-child(odd) > label,\n",
  2504. ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
  2505. " background-color: var(--xr-background-color-row-odd);\n",
  2506. "}\n",
  2507. "\n",
  2508. ".xr-var-name {\n",
  2509. " grid-column: 1;\n",
  2510. "}\n",
  2511. "\n",
  2512. ".xr-var-dims {\n",
  2513. " grid-column: 2;\n",
  2514. "}\n",
  2515. "\n",
  2516. ".xr-var-dtype {\n",
  2517. " grid-column: 3;\n",
  2518. " text-align: right;\n",
  2519. " color: var(--xr-font-color2);\n",
  2520. "}\n",
  2521. "\n",
  2522. ".xr-var-preview {\n",
  2523. " grid-column: 4;\n",
  2524. "}\n",
  2525. "\n",
  2526. ".xr-index-preview {\n",
  2527. " grid-column: 2 / 5;\n",
  2528. " color: var(--xr-font-color2);\n",
  2529. "}\n",
  2530. "\n",
  2531. ".xr-var-name,\n",
  2532. ".xr-var-dims,\n",
  2533. ".xr-var-dtype,\n",
  2534. ".xr-preview,\n",
  2535. ".xr-attrs dt {\n",
  2536. " white-space: nowrap;\n",
  2537. " overflow: hidden;\n",
  2538. " text-overflow: ellipsis;\n",
  2539. " padding-right: 10px;\n",
  2540. "}\n",
  2541. "\n",
  2542. ".xr-var-name:hover,\n",
  2543. ".xr-var-dims:hover,\n",
  2544. ".xr-var-dtype:hover,\n",
  2545. ".xr-attrs dt:hover {\n",
  2546. " overflow: visible;\n",
  2547. " width: auto;\n",
  2548. " z-index: 1;\n",
  2549. "}\n",
  2550. "\n",
  2551. ".xr-var-attrs,\n",
  2552. ".xr-var-data,\n",
  2553. ".xr-index-data {\n",
  2554. " display: none;\n",
  2555. " background-color: var(--xr-background-color) !important;\n",
  2556. " padding-bottom: 5px !important;\n",
  2557. "}\n",
  2558. "\n",
  2559. ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
  2560. ".xr-var-data-in:checked ~ .xr-var-data,\n",
  2561. ".xr-index-data-in:checked ~ .xr-index-data {\n",
  2562. " display: block;\n",
  2563. "}\n",
  2564. "\n",
  2565. ".xr-var-data > table {\n",
  2566. " float: right;\n",
  2567. "}\n",
  2568. "\n",
  2569. ".xr-var-name span,\n",
  2570. ".xr-var-data,\n",
  2571. ".xr-index-name div,\n",
  2572. ".xr-index-data,\n",
  2573. ".xr-attrs {\n",
  2574. " padding-left: 25px !important;\n",
  2575. "}\n",
  2576. "\n",
  2577. ".xr-attrs,\n",
  2578. ".xr-var-attrs,\n",
  2579. ".xr-var-data,\n",
  2580. ".xr-index-data {\n",
  2581. " grid-column: 1 / -1;\n",
  2582. "}\n",
  2583. "\n",
  2584. "dl.xr-attrs {\n",
  2585. " padding: 0;\n",
  2586. " margin: 0;\n",
  2587. " display: grid;\n",
  2588. " grid-template-columns: 125px auto;\n",
  2589. "}\n",
  2590. "\n",
  2591. ".xr-attrs dt,\n",
  2592. ".xr-attrs dd {\n",
  2593. " padding: 0;\n",
  2594. " margin: 0;\n",
  2595. " float: left;\n",
  2596. " padding-right: 10px;\n",
  2597. " width: auto;\n",
  2598. "}\n",
  2599. "\n",
  2600. ".xr-attrs dt {\n",
  2601. " font-weight: normal;\n",
  2602. " grid-column: 1;\n",
  2603. "}\n",
  2604. "\n",
  2605. ".xr-attrs dt:hover span {\n",
  2606. " display: inline-block;\n",
  2607. " background: var(--xr-background-color);\n",
  2608. " padding-right: 10px;\n",
  2609. "}\n",
  2610. "\n",
  2611. ".xr-attrs dd {\n",
  2612. " grid-column: 2;\n",
  2613. " white-space: pre-wrap;\n",
  2614. " word-break: break-all;\n",
  2615. "}\n",
  2616. "\n",
  2617. ".xr-icon-database,\n",
  2618. ".xr-icon-file-text2,\n",
  2619. ".xr-no-icon {\n",
  2620. " display: inline-block;\n",
  2621. " vertical-align: middle;\n",
  2622. " width: 1em;\n",
  2623. " height: 1.5em !important;\n",
  2624. " stroke-width: 0;\n",
  2625. " stroke: currentColor;\n",
  2626. " fill: currentColor;\n",
  2627. "}\n",
  2628. "</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;OD&#x27; (final_horz_freq: 1)&gt;\n",
  2629. "array([28952.76637914])\n",
  2630. "Coordinates:\n",
  2631. " * final_horz_freq (final_horz_freq) float64 104.1</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'OD'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>final_horz_freq</span>: 1</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-ed0434fd-e803-4855-844d-70b0c3e842c8' class='xr-array-in' type='checkbox' checked><label for='section-ed0434fd-e803-4855-844d-70b0c3e842c8' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>2.895e+04</span></div><div class='xr-array-data'><pre>array([28952.76637914])</pre></div></div></li><li class='xr-section-item'><input id='section-d2a4729c-d36d-44fa-a8c1-4885a8e7593b' class='xr-section-summary-in' type='checkbox' checked><label for='section-d2a4729c-d36d-44fa-a8c1-4885a8e7593b' class='xr-section-summary' >Coordinates: <span>(1)</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 class='xr-has-index'>final_horz_freq</span></div><div class='xr-var-dims'>(final_horz_freq)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>104.1</div><input id='attrs-6f10bdef-1163-4796-8266-ab9332d89ea4' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-6f10bdef-1163-4796-8266-ab9332d89ea4' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-343afb05-ab34-4141-92a8-e56c8c309e66' class='xr-var-data-in' type='checkbox'><label for='data-343afb05-ab34-4141-92a8-e56c8c309e66' 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([104.06])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-d4d0971f-b5b7-4977-91e5-3ef6807a4b2f' class='xr-section-summary-in' type='checkbox' ><label for='section-d4d0971f-b5b7-4977-91e5-3ef6807a4b2f' class='xr-section-summary' >Indexes: <span>(1)</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-index-name'><div>final_horz_freq</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-81425834-189f-4154-bdb4-8c5e8e7207d1' class='xr-index-data-in' type='checkbox'/><label for='index-81425834-189f-4154-bdb4-8c5e8e7207d1' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Float64Index([104.06], dtype=&#x27;float64&#x27;, name=&#x27;final_horz_freq&#x27;))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-813756c4-49be-4230-a482-541103019f9c' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-813756c4-49be-4230-a482-541103019f9c' class='xr-section-summary' title='Expand/collapse section'>Attributes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'></dl></div></li></ul></div></div>"
  2632. ],
  2633. "text/plain": [
  2634. "<xarray.DataArray 'OD' (final_horz_freq: 1)>\n",
  2635. "array([28952.76637914])\n",
  2636. "Coordinates:\n",
  2637. " * final_horz_freq (final_horz_freq) float64 104.1"
  2638. ]
  2639. },
  2640. "execution_count": 29,
  2641. "metadata": {},
  2642. "output_type": "execute_result"
  2643. }
  2644. ],
  2645. "source": [
  2646. "Ncount_mean.where(Ncount_mean==Ncount_mean.max(), drop=True)"
  2647. ]
  2648. },
  2649. {
  2650. "cell_type": "markdown",
  2651. "metadata": {},
  2652. "source": [
  2653. "## Scan final vert amp"
  2654. ]
  2655. },
  2656. {
  2657. "cell_type": "code",
  2658. "execution_count": 30,
  2659. "metadata": {},
  2660. "outputs": [
  2661. {
  2662. "name": "stdout",
  2663. "output_type": "stream",
  2664. "text": [
  2665. "The detected scaning axes and values are: \n",
  2666. "\n",
  2667. "{'final_vert_amp': array([0.035, 0.037, 0.039, 0.041, 0.043, 0.045, 0.047, 0.049, 0.051,\n",
  2668. " 0.053, 0.055, 0.057, 0.059, 0.061, 0.063]), 'runs': array([0., 1., 2.])}\n"
  2669. ]
  2670. },
  2671. {
  2672. "data": {
  2673. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  2674. "text/plain": [
  2675. "<IPython.core.display.Javascript object>"
  2676. ]
  2677. },
  2678. "metadata": {},
  2679. "output_type": "display_data"
  2680. },
  2681. {
  2682. "data": {
  2683. "text/html": [
  2684. "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3QuQVdWVPvCFBI0PQFQ0IK0YoyZoIubhc0igjBAyRg06Kp2ZqDHiqBPw/UpicHzFIAqjMeqkVNR044RBBYSIo7RiHJ0qNcYaQWOCjwZGoyJqBP1L+Nc+pJt+wXfXt+6mb9/+blWqIuuss8/9rb0vi3PuObfH2rVr15peEpCABCQgAQlIQALdRqCHGsBuU2u9UQlIQAISkIAEJFAIqAHURJCABCQgAQlIQALdTEANYDcruN6uBCQgAQlIQAISUAOoOSABCUhAAhKQgAS6mYAawG5WcL1dCUhAAhKQgAQkoAZQc0ACEpCABCQgAQl0MwE1gN2s4Hq7EpCABCQgAQlIQA2g5oAEJCABCUhAAhLoZgJqALtZwfV2JSABCUhAAhKQgBpAzQEJSEACEpCABCTQzQTUAHazguvtSkACEpCABCQgATWAmgMSkIAEJCABCUigmwmoAexmBdfblYAEJCABCUhAAmoAM8+Bv/71r7Zs2TLr3bu39ejRI/No2r0EJCABCUhAAt1BYO3atfbee+/ZwIEDbbPNNnO/ZTWAbjJfQmNjo9XU1PiStLUEJCABCUhAAhIoQeC1116zQYMGlbBl603UALrJfAkrV660bbfd1lKB+vTp40suYev/9//+n82fP99GjhxpvXr1KiFDm5QqINtSpfzbydZvVmqGbEuV8m8nW79ZqRmyLVVq/XbvvvtucYLpnXfesb59+7p3oAbQTeZLSAVKhUmNYK4GcO7cufbNb35TDaCvNHDr9IEkW8hEbSBbiq2kJNmWxERtJFuKraQk2ZbE1GqjaH+hBtBv7sqIFggNpkWDhPi4bHk7lClbJMTHZcvboUzZIiE+Llu/XbS/UAPoN3dlRAuEBtOiQUJ8XLa8HcqULRLi47Ll7VCmbJEQH5et3y7aX6gB9Ju7MqIFQoNp0SAhPi5b3g5lyhYJ8XHZ8nYoU7ZIiI/L1m8X7S/UAPrNXRnRAqHBtGiQEB+XLW+HMmWLhPi4bHk7lClbJMTHZeu3i/YXagD95q6MaIHQYFo0SIiPy5a3Q5myRUJ8XLa8HcqULRLi47L120X7CzWAfnNXRrRAaDAtGiTEx2XL26FM2SIhPi5b3g5lyhYJ8XHZ+u2i/YUaQL+5KyNaIDSYFg0S4uOy5e1QpmyREB+XLW+HMmWLhPi4bP120f5CDaDf3JURLRAaTIsGCfFx2fJ2KFO2SIiPy5a3Q5myRUJ8XLZ+u2h/oQbQb+7KiBYIDaZFg4T4uGx5O5QpWyTEx2XL26FM2SIhPi5bv120v6i4BvAXv/iFpf+9/PLLhcbee+9tl1xyiY0ePbr47/Tjx5deeqndcssttmLFCjvggAPs5z//ebFd0+vDDz+0c8891+rr623VqlV26KGH2o033tjqt/JS7vjx423WrFlF2hFHHGHXX3998bNtTa9XX33VzjjjDHv44Ydtyy23tNraWrvmmmts8803L7lS0QKhgbRokBAfly1vhzJli4T4uGx5O5QpWyTEx2Xrt4v2FxXXAM6ePdt69uxpn/nMZwqNadOm2aRJk+yZZ54pmryrr77arrjiCrv99tttzz33tMsvv9weffRRe+GFF6x3795FzmmnnWZpP2mb7bff3s455xx7++237amnnir2nV6poWxsbCwayfQaN26cDR48uMhLrzVr1tjQoUOtf//+NnnyZHvrrbfshBNOsDFjxhSNYqmvaIHQOFo0SIiPy5a3Q5myRUJ8XLa8HcqULRLi47L120X7i4prADsi2G677Yom8Hvf+54NHDjQzjzzTLvggguKTdPZvp122qloDE899dTiN3dT03bnnXfacccdV2yzbNmy4geT0++6jho1yhYtWmRDhgyxJ554ojiDmF7p/x900EG2ePFi22uvvWzevHl2+OGH22uvvVaMmV7Tp0+3E0880d54442Sf9c3WiA0JbRokBAfly1vhzJli4T4uGx5O5QpWyTEx2Xrt4v2FxXdAKazcL/+9a+LM2/pDOAnP/lJ23333e3pp5+2/fbbr1nryCOPLC7dprOF6XJtuuSbzvj169eveZt9993XjjrqqOLy8a233mpnn322vfPOO63E0z6uu+46O+mkk4rLzvfdd589++yzzduky8apGU1jjBgxoqRqRQuEBtGiQUJ8XLa8HcqULRLi47Ll7VCmbJEQH5et3y7aX1RkA/jcc88VZ+NWr15t22yzjdXV1dk3v/lNe/zxx+2QQw6xpUuXNp+VS2Tp8u0rr7xiDzzwQLFtauDSmcGWr5EjR9puu+1mN998s1155ZXF5eEXX3yx1TbpknLKveiii4p9pu8hzp8/v9U2W2yxRZE7duzYDquVxm05dipQOvv45ptvlnzW0DMN0qJ58MEH7bDDDrNevXp5UrUtEJBtvikiW9nmE8i3Z81b2eYT8O859Rc77LBDceWzT58+7h1UZAP40UcfWboBI52h+8///E/75S9/aY888kjx36kBTJd0BwwY0PxmTznllOJS7W9+85sNNoCpQUpnD2+66aaiAUxnC9P3Blu+9thjDzv55JPtwgsvbNVUttwm3QByxx132PHHH98h9sSJE4uzjG1fqTHdaqut3AVSggSqTWDNGrPnn9/eVqz4pPXrt9qGDHnL/vbV3Gp7q3o/EpCABLIJfPDBB8XNqVXVALbV+vrXv140b+l7f5V+CVhnALPN9U2+Y/1rv/zk99zTw846q6ctW9ajeec777zWrr12jX3722vLP2A33KPmbb6iy1a2+QT8e67KM4BtGdJ3+tJl1Ntuu6249HvWWWfZ+eefX2yWzhbuuOOO7W4Cueuuu+zYY48ttlm+fHnxCJi2N4E8+eSTtv/++xfbpP9/4IEHtrsJJN0p3HS28e677y6+j6ibQPwTtStm6Dsp5a3azJlmxxyTHuXUer89/tYLzphhNmZMecfsjnvTvM1XddnKNp+Af89V9x3Aiy++uHhES2r43nvvveLO25/+9KfF5d10GTfd7XvVVVcVzWC6ZJsu5zY0NLR7DMycOXOK7+qlmzbSMwHTY1zaPgYmXUpO3wlMr/Sdv1133bXdY2DSHcbpDuR0U0m6AzjdSKLHwPgnalfM0Id9+aqWLvsOHmzW2NjxPlMTOGiQ2ZIlpsvBQXbN2yDgRtJlK9t8Av49V10DmL6D99BDDxVn7fr27Wtf+MIXiku/qflLr6YHQafGreWDoPfZZ59mvXTzyHnnnVd8H7Dlg6BTU9n0Sg1d2wdB33DDDe0eBH366ae3exB0uhGk1Fe0QGgcfSAhIT4uW96ubWZDg1kpN84vWGA2fHj5xu2Oe9K8zVd12co2n4B/z9H+oiJvAvEzVG5GtEDonekDCQnxcdnydm0z6+vNamvx/urqzDZwgz1O1haFgOZtvokgW9nmE/DvOdpfqAH0m7syogVCg+kDCQnxcdnydl3lDGC6NL1wYfqesFl6sMCwYV3/ErTmbfnmbds9yVa2+QT8e472F2oA/eaujGiB0GD6QEJCfFy2vF3bzKbvAC5d2v4mkLRtZ3wHMN2UMmFC6+8lpu8hTp3atW9G0bwt37xVA5jPUrZx22h/oQYwXoON7iFaIHR4+rBHQnxctrxdR5lNdwGnWMs7gTvjLuBqviNZ87a887bl3mQr23wC/j1H+ws1gH5zV0a0QGgwfSAhIT4uW95uQ5kdnXVL92ZNmbLpzrpV+x3Jmrfln7dNe5StbPMJ+Pcc7S/UAPrNXRnRAqHB9IGEhPi4bHm7jWWmBmzBgo9t3rzf2ejRQ23EiE9s0ke/VPsdyZq3eeZt2qtsZZtPwL/naH+hBtBv7sqIFggNpg8kJMTHZcvboczOtK32O5I70xbVvavHZZuvgrL120b7CzWAfnNXRrRAaDAtGiTEx2XL26HMzrTVGUBUHcU3JNCZ87baqyJbf4Wj/YUaQL+5KyNaIDSYFg0S4uOy5e1QZmfaVuIdycjLE+9MW89xdsVtZZuvarL120b7Cz
  2685. ],
  2686. "text/plain": [
  2687. "<IPython.core.display.HTML object>"
  2688. ]
  2689. },
  2690. "metadata": {},
  2691. "output_type": "display_data"
  2692. }
  2693. ],
  2694. "source": [
  2695. "%matplotlib notebook\n",
  2696. "shotNum = \"0021\"\n",
  2697. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  2698. "\n",
  2699. "dataSetDict = {\n",
  2700. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
  2701. " for i in [0, 1]\n",
  2702. "}\n",
  2703. "\n",
  2704. "dataSet = dataSetDict[\"camera_1\"]\n",
  2705. "\n",
  2706. "print_scanAxis(dataSet)\n",
  2707. "\n",
  2708. "scanAxis = get_scanAxis(dataSet)\n",
  2709. "\n",
  2710. "dataSet = auto_rechunk(dataSet)\n",
  2711. "\n",
  2712. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  2713. "\n",
  2714. "imageAnalyser.center = (325, 875)\n",
  2715. "imageAnalyser.span = (500, 500)\n",
  2716. "imageAnalyser.fraction = (0.1, 0.1)\n",
  2717. "\n",
  2718. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  2719. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  2720. "\n",
  2721. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  2722. "Ncount_mean = calculate_mean(Ncount)\n",
  2723. "Ncount_std = calculate_std(Ncount)\n",
  2724. "\n",
  2725. "fig = plt.figure()\n",
  2726. "ax = fig.gca()\n",
  2727. "Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
  2728. "#plt.xlabel('')\n",
  2729. "plt.ylabel('NCount')\n",
  2730. "plt.tight_layout()\n",
  2731. "plt.grid(visible=1)\n",
  2732. "plt.show()\n",
  2733. "\n",
  2734. "# DB.create_global(shotNum, dataSet)\n",
  2735. "# DB.add_data(shotNum, dataSet_cropOD, engine='xarray')"
  2736. ]
  2737. },
  2738. {
  2739. "cell_type": "code",
  2740. "execution_count": 31,
  2741. "metadata": {},
  2742. "outputs": [
  2743. {
  2744. "data": {
  2745. "text/html": [
  2746. "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
  2747. "<defs>\n",
  2748. "<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
  2749. "<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",
  2750. "<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",
  2751. "<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",
  2752. "</symbol>\n",
  2753. "<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
  2754. "<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",
  2755. "<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",
  2756. "<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",
  2757. "<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",
  2758. "</symbol>\n",
  2759. "</defs>\n",
  2760. "</svg>\n",
  2761. "<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
  2762. " *\n",
  2763. " */\n",
  2764. "\n",
  2765. ":root {\n",
  2766. " --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
  2767. " --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
  2768. " --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
  2769. " --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
  2770. " --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
  2771. " --xr-background-color: var(--jp-layout-color0, white);\n",
  2772. " --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
  2773. " --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
  2774. "}\n",
  2775. "\n",
  2776. "html[theme=dark],\n",
  2777. "body[data-theme=dark],\n",
  2778. "body.vscode-dark {\n",
  2779. " --xr-font-color0: rgba(255, 255, 255, 1);\n",
  2780. " --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
  2781. " --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
  2782. " --xr-border-color: #1F1F1F;\n",
  2783. " --xr-disabled-color: #515151;\n",
  2784. " --xr-background-color: #111111;\n",
  2785. " --xr-background-color-row-even: #111111;\n",
  2786. " --xr-background-color-row-odd: #313131;\n",
  2787. "}\n",
  2788. "\n",
  2789. ".xr-wrap {\n",
  2790. " display: block !important;\n",
  2791. " min-width: 300px;\n",
  2792. " max-width: 700px;\n",
  2793. "}\n",
  2794. "\n",
  2795. ".xr-text-repr-fallback {\n",
  2796. " /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
  2797. " display: none;\n",
  2798. "}\n",
  2799. "\n",
  2800. ".xr-header {\n",
  2801. " padding-top: 6px;\n",
  2802. " padding-bottom: 6px;\n",
  2803. " margin-bottom: 4px;\n",
  2804. " border-bottom: solid 1px var(--xr-border-color);\n",
  2805. "}\n",
  2806. "\n",
  2807. ".xr-header > div,\n",
  2808. ".xr-header > ul {\n",
  2809. " display: inline;\n",
  2810. " margin-top: 0;\n",
  2811. " margin-bottom: 0;\n",
  2812. "}\n",
  2813. "\n",
  2814. ".xr-obj-type,\n",
  2815. ".xr-array-name {\n",
  2816. " margin-left: 2px;\n",
  2817. " margin-right: 10px;\n",
  2818. "}\n",
  2819. "\n",
  2820. ".xr-obj-type {\n",
  2821. " color: var(--xr-font-color2);\n",
  2822. "}\n",
  2823. "\n",
  2824. ".xr-sections {\n",
  2825. " padding-left: 0 !important;\n",
  2826. " display: grid;\n",
  2827. " grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
  2828. "}\n",
  2829. "\n",
  2830. ".xr-section-item {\n",
  2831. " display: contents;\n",
  2832. "}\n",
  2833. "\n",
  2834. ".xr-section-item input {\n",
  2835. " display: none;\n",
  2836. "}\n",
  2837. "\n",
  2838. ".xr-section-item input + label {\n",
  2839. " color: var(--xr-disabled-color);\n",
  2840. "}\n",
  2841. "\n",
  2842. ".xr-section-item input:enabled + label {\n",
  2843. " cursor: pointer;\n",
  2844. " color: var(--xr-font-color2);\n",
  2845. "}\n",
  2846. "\n",
  2847. ".xr-section-item input:enabled + label:hover {\n",
  2848. " color: var(--xr-font-color0);\n",
  2849. "}\n",
  2850. "\n",
  2851. ".xr-section-summary {\n",
  2852. " grid-column: 1;\n",
  2853. " color: var(--xr-font-color2);\n",
  2854. " font-weight: 500;\n",
  2855. "}\n",
  2856. "\n",
  2857. ".xr-section-summary > span {\n",
  2858. " display: inline-block;\n",
  2859. " padding-left: 0.5em;\n",
  2860. "}\n",
  2861. "\n",
  2862. ".xr-section-summary-in:disabled + label {\n",
  2863. " color: var(--xr-font-color2);\n",
  2864. "}\n",
  2865. "\n",
  2866. ".xr-section-summary-in + label:before {\n",
  2867. " display: inline-block;\n",
  2868. " content: 'â–º';\n",
  2869. " font-size: 11px;\n",
  2870. " width: 15px;\n",
  2871. " text-align: center;\n",
  2872. "}\n",
  2873. "\n",
  2874. ".xr-section-summary-in:disabled + label:before {\n",
  2875. " color: var(--xr-disabled-color);\n",
  2876. "}\n",
  2877. "\n",
  2878. ".xr-section-summary-in:checked + label:before {\n",
  2879. " content: 'â–¼';\n",
  2880. "}\n",
  2881. "\n",
  2882. ".xr-section-summary-in:checked + label > span {\n",
  2883. " display: none;\n",
  2884. "}\n",
  2885. "\n",
  2886. ".xr-section-summary,\n",
  2887. ".xr-section-inline-details {\n",
  2888. " padding-top: 4px;\n",
  2889. " padding-bottom: 4px;\n",
  2890. "}\n",
  2891. "\n",
  2892. ".xr-section-inline-details {\n",
  2893. " grid-column: 2 / -1;\n",
  2894. "}\n",
  2895. "\n",
  2896. ".xr-section-details {\n",
  2897. " display: none;\n",
  2898. " grid-column: 1 / -1;\n",
  2899. " margin-bottom: 5px;\n",
  2900. "}\n",
  2901. "\n",
  2902. ".xr-section-summary-in:checked ~ .xr-section-details {\n",
  2903. " display: contents;\n",
  2904. "}\n",
  2905. "\n",
  2906. ".xr-array-wrap {\n",
  2907. " grid-column: 1 / -1;\n",
  2908. " display: grid;\n",
  2909. " grid-template-columns: 20px auto;\n",
  2910. "}\n",
  2911. "\n",
  2912. ".xr-array-wrap > label {\n",
  2913. " grid-column: 1;\n",
  2914. " vertical-align: top;\n",
  2915. "}\n",
  2916. "\n",
  2917. ".xr-preview {\n",
  2918. " color: var(--xr-font-color3);\n",
  2919. "}\n",
  2920. "\n",
  2921. ".xr-array-preview,\n",
  2922. ".xr-array-data {\n",
  2923. " padding: 0 5px !important;\n",
  2924. " grid-column: 2;\n",
  2925. "}\n",
  2926. "\n",
  2927. ".xr-array-data,\n",
  2928. ".xr-array-in:checked ~ .xr-array-preview {\n",
  2929. " display: none;\n",
  2930. "}\n",
  2931. "\n",
  2932. ".xr-array-in:checked ~ .xr-array-data,\n",
  2933. ".xr-array-preview {\n",
  2934. " display: inline-block;\n",
  2935. "}\n",
  2936. "\n",
  2937. ".xr-dim-list {\n",
  2938. " display: inline-block !important;\n",
  2939. " list-style: none;\n",
  2940. " padding: 0 !important;\n",
  2941. " margin: 0;\n",
  2942. "}\n",
  2943. "\n",
  2944. ".xr-dim-list li {\n",
  2945. " display: inline-block;\n",
  2946. " padding: 0;\n",
  2947. " margin: 0;\n",
  2948. "}\n",
  2949. "\n",
  2950. ".xr-dim-list:before {\n",
  2951. " content: '(';\n",
  2952. "}\n",
  2953. "\n",
  2954. ".xr-dim-list:after {\n",
  2955. " content: ')';\n",
  2956. "}\n",
  2957. "\n",
  2958. ".xr-dim-list li:not(:last-child):after {\n",
  2959. " content: ',';\n",
  2960. " padding-right: 5px;\n",
  2961. "}\n",
  2962. "\n",
  2963. ".xr-has-index {\n",
  2964. " font-weight: bold;\n",
  2965. "}\n",
  2966. "\n",
  2967. ".xr-var-list,\n",
  2968. ".xr-var-item {\n",
  2969. " display: contents;\n",
  2970. "}\n",
  2971. "\n",
  2972. ".xr-var-item > div,\n",
  2973. ".xr-var-item label,\n",
  2974. ".xr-var-item > .xr-var-name span {\n",
  2975. " background-color: var(--xr-background-color-row-even);\n",
  2976. " margin-bottom: 0;\n",
  2977. "}\n",
  2978. "\n",
  2979. ".xr-var-item > .xr-var-name:hover span {\n",
  2980. " padding-right: 5px;\n",
  2981. "}\n",
  2982. "\n",
  2983. ".xr-var-list > li:nth-child(odd) > div,\n",
  2984. ".xr-var-list > li:nth-child(odd) > label,\n",
  2985. ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
  2986. " background-color: var(--xr-background-color-row-odd);\n",
  2987. "}\n",
  2988. "\n",
  2989. ".xr-var-name {\n",
  2990. " grid-column: 1;\n",
  2991. "}\n",
  2992. "\n",
  2993. ".xr-var-dims {\n",
  2994. " grid-column: 2;\n",
  2995. "}\n",
  2996. "\n",
  2997. ".xr-var-dtype {\n",
  2998. " grid-column: 3;\n",
  2999. " text-align: right;\n",
  3000. " color: var(--xr-font-color2);\n",
  3001. "}\n",
  3002. "\n",
  3003. ".xr-var-preview {\n",
  3004. " grid-column: 4;\n",
  3005. "}\n",
  3006. "\n",
  3007. ".xr-index-preview {\n",
  3008. " grid-column: 2 / 5;\n",
  3009. " color: var(--xr-font-color2);\n",
  3010. "}\n",
  3011. "\n",
  3012. ".xr-var-name,\n",
  3013. ".xr-var-dims,\n",
  3014. ".xr-var-dtype,\n",
  3015. ".xr-preview,\n",
  3016. ".xr-attrs dt {\n",
  3017. " white-space: nowrap;\n",
  3018. " overflow: hidden;\n",
  3019. " text-overflow: ellipsis;\n",
  3020. " padding-right: 10px;\n",
  3021. "}\n",
  3022. "\n",
  3023. ".xr-var-name:hover,\n",
  3024. ".xr-var-dims:hover,\n",
  3025. ".xr-var-dtype:hover,\n",
  3026. ".xr-attrs dt:hover {\n",
  3027. " overflow: visible;\n",
  3028. " width: auto;\n",
  3029. " z-index: 1;\n",
  3030. "}\n",
  3031. "\n",
  3032. ".xr-var-attrs,\n",
  3033. ".xr-var-data,\n",
  3034. ".xr-index-data {\n",
  3035. " display: none;\n",
  3036. " background-color: var(--xr-background-color) !important;\n",
  3037. " padding-bottom: 5px !important;\n",
  3038. "}\n",
  3039. "\n",
  3040. ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
  3041. ".xr-var-data-in:checked ~ .xr-var-data,\n",
  3042. ".xr-index-data-in:checked ~ .xr-index-data {\n",
  3043. " display: block;\n",
  3044. "}\n",
  3045. "\n",
  3046. ".xr-var-data > table {\n",
  3047. " float: right;\n",
  3048. "}\n",
  3049. "\n",
  3050. ".xr-var-name span,\n",
  3051. ".xr-var-data,\n",
  3052. ".xr-index-name div,\n",
  3053. ".xr-index-data,\n",
  3054. ".xr-attrs {\n",
  3055. " padding-left: 25px !important;\n",
  3056. "}\n",
  3057. "\n",
  3058. ".xr-attrs,\n",
  3059. ".xr-var-attrs,\n",
  3060. ".xr-var-data,\n",
  3061. ".xr-index-data {\n",
  3062. " grid-column: 1 / -1;\n",
  3063. "}\n",
  3064. "\n",
  3065. "dl.xr-attrs {\n",
  3066. " padding: 0;\n",
  3067. " margin: 0;\n",
  3068. " display: grid;\n",
  3069. " grid-template-columns: 125px auto;\n",
  3070. "}\n",
  3071. "\n",
  3072. ".xr-attrs dt,\n",
  3073. ".xr-attrs dd {\n",
  3074. " padding: 0;\n",
  3075. " margin: 0;\n",
  3076. " float: left;\n",
  3077. " padding-right: 10px;\n",
  3078. " width: auto;\n",
  3079. "}\n",
  3080. "\n",
  3081. ".xr-attrs dt {\n",
  3082. " font-weight: normal;\n",
  3083. " grid-column: 1;\n",
  3084. "}\n",
  3085. "\n",
  3086. ".xr-attrs dt:hover span {\n",
  3087. " display: inline-block;\n",
  3088. " background: var(--xr-background-color);\n",
  3089. " padding-right: 10px;\n",
  3090. "}\n",
  3091. "\n",
  3092. ".xr-attrs dd {\n",
  3093. " grid-column: 2;\n",
  3094. " white-space: pre-wrap;\n",
  3095. " word-break: break-all;\n",
  3096. "}\n",
  3097. "\n",
  3098. ".xr-icon-database,\n",
  3099. ".xr-icon-file-text2,\n",
  3100. ".xr-no-icon {\n",
  3101. " display: inline-block;\n",
  3102. " vertical-align: middle;\n",
  3103. " width: 1em;\n",
  3104. " height: 1.5em !important;\n",
  3105. " stroke-width: 0;\n",
  3106. " stroke: currentColor;\n",
  3107. " fill: currentColor;\n",
  3108. "}\n",
  3109. "</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;OD&#x27; (final_vert_amp: 1)&gt;\n",
  3110. "array([29676.45060443])\n",
  3111. "Coordinates:\n",
  3112. " * final_vert_amp (final_vert_amp) float64 0.045</pre><div class='xr-wrap' style='display:none'><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'OD'</div><ul class='xr-dim-list'><li><span class='xr-has-index'>final_vert_amp</span>: 1</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-afcf31cf-2ab4-4ec0-bbe4-f6342cf64b8b' class='xr-array-in' type='checkbox' checked><label for='section-afcf31cf-2ab4-4ec0-bbe4-f6342cf64b8b' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>2.968e+04</span></div><div class='xr-array-data'><pre>array([29676.45060443])</pre></div></div></li><li class='xr-section-item'><input id='section-3064ec8b-148e-48c2-a58b-98b70a9fbf8e' class='xr-section-summary-in' type='checkbox' checked><label for='section-3064ec8b-148e-48c2-a58b-98b70a9fbf8e' class='xr-section-summary' >Coordinates: <span>(1)</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 class='xr-has-index'>final_vert_amp</span></div><div class='xr-var-dims'>(final_vert_amp)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.045</div><input id='attrs-6fa74f1c-255e-4f85-9eda-30c219bff7d4' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-6fa74f1c-255e-4f85-9eda-30c219bff7d4' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a737f7e3-553a-4474-9fc0-5c8fa128a3ec' class='xr-var-data-in' type='checkbox'><label for='data-a737f7e3-553a-4474-9fc0-5c8fa128a3ec' 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.045])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-4343ca55-551c-45a4-a744-a92bbc669a71' class='xr-section-summary-in' type='checkbox' ><label for='section-4343ca55-551c-45a4-a744-a92bbc669a71' class='xr-section-summary' >Indexes: <span>(1)</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-index-name'><div>final_vert_amp</div></div><div class='xr-index-preview'>PandasIndex</div><div></div><input id='index-e63c7b75-53c2-4eec-8e4c-e6725f45889a' class='xr-index-data-in' type='checkbox'/><label for='index-e63c7b75-53c2-4eec-8e4c-e6725f45889a' title='Show/Hide index repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-index-data'><pre>PandasIndex(Float64Index([0.045], dtype=&#x27;float64&#x27;, name=&#x27;final_vert_amp&#x27;))</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-e98f96d0-b3a2-4063-9b37-a341ae427357' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-e98f96d0-b3a2-4063-9b37-a341ae427357' class='xr-section-summary' title='Expand/collapse section'>Attributes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'></dl></div></li></ul></div></div>"
  3113. ],
  3114. "text/plain": [
  3115. "<xarray.DataArray 'OD' (final_vert_amp: 1)>\n",
  3116. "array([29676.45060443])\n",
  3117. "Coordinates:\n",
  3118. " * final_vert_amp (final_vert_amp) float64 0.045"
  3119. ]
  3120. },
  3121. "execution_count": 31,
  3122. "metadata": {},
  3123. "output_type": "execute_result"
  3124. }
  3125. ],
  3126. "source": [
  3127. "Ncount_mean.where(Ncount_mean==Ncount_mean.max(), drop=True)"
  3128. ]
  3129. },
  3130. {
  3131. "cell_type": "markdown",
  3132. "metadata": {},
  3133. "source": [
  3134. "## Evaporative Cooling"
  3135. ]
  3136. },
  3137. {
  3138. "cell_type": "code",
  3139. "execution_count": 32,
  3140. "metadata": {},
  3141. "outputs": [],
  3142. "source": [
  3143. "img_dir = 'C:/Users/control/DyLab/Experiments/DyBEC/'\n",
  3144. "# img_dir = '//DyLabNAS/Data/'\n",
  3145. "SequenceName = \"Evaporative_Cooling\"\n",
  3146. "folderPath = img_dir + SequenceName + \"/\" + get_date()\n",
  3147. "\n",
  3148. "mongoDB = mongoClient[SequenceName]\n",
  3149. "\n",
  3150. "DB = MongoDB(mongoClient, mongoDB, date=get_date())"
  3151. ]
  3152. },
  3153. {
  3154. "cell_type": "markdown",
  3155. "metadata": {},
  3156. "source": [
  3157. "# Measure trap frequency at various points of evap 2"
  3158. ]
  3159. },
  3160. {
  3161. "cell_type": "markdown",
  3162. "metadata": {},
  3163. "source": [
  3164. "## Horz TF due to arm 1: blink on modulation = 0, blink_off_modulation = 0.35 in 700 µs, hold of 1 s"
  3165. ]
  3166. },
  3167. {
  3168. "cell_type": "markdown",
  3169. "metadata": {},
  3170. "source": [
  3171. "## Truncation: 0.5"
  3172. ]
  3173. },
  3174. {
  3175. "cell_type": "code",
  3176. "execution_count": 56,
  3177. "metadata": {},
  3178. "outputs": [
  3179. {
  3180. "name": "stdout",
  3181. "output_type": "stream",
  3182. "text": [
  3183. "The detected scaning axes and values are: \n",
  3184. "\n",
  3185. "{'mod_blink_on_time': array([0.005, 0.006, 0.007, 0.008, 0.009, 0.01 , 0.011, 0.012, 0.013,\n",
  3186. " 0.014, 0.015, 0.016, 0.017, 0.018, 0.019]), 'runs': array([0., 1., 2., 3.])}\n"
  3187. ]
  3188. },
  3189. {
  3190. "data": {
  3191. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3192. "text/plain": [
  3193. "<IPython.core.display.Javascript object>"
  3194. ]
  3195. },
  3196. "metadata": {},
  3197. "output_type": "display_data"
  3198. },
  3199. {
  3200. "data": {
  3201. "text/html": [
  3202. "<img src=\"data:image/png;base64,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
  3203. ],
  3204. "text/plain": [
  3205. "<IPython.core.display.HTML object>"
  3206. ]
  3207. },
  3208. "metadata": {},
  3209. "output_type": "display_data"
  3210. }
  3211. ],
  3212. "source": [
  3213. "%matplotlib notebook\n",
  3214. "shotNum = \"0004\"\n",
  3215. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  3216. "\n",
  3217. "dataSetDict = {\n",
  3218. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  3219. " for i in [0]\n",
  3220. "}\n",
  3221. "\n",
  3222. "dataSet = dataSetDict[\"camera_0\"]\n",
  3223. "\n",
  3224. "print_scanAxis(dataSet)\n",
  3225. "\n",
  3226. "scanAxis = get_scanAxis(dataSet)\n",
  3227. "\n",
  3228. "dataSet = auto_rechunk(dataSet)\n",
  3229. "\n",
  3230. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  3231. "\n",
  3232. "imageAnalyser.center = (800, 900)\n",
  3233. "imageAnalyser.span = (300, 300)\n",
  3234. "imageAnalyser.fraction = (0.1, 0.1)\n",
  3235. "\n",
  3236. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  3237. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  3238. "\n",
  3239. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  3240. "Ncount_mean = calculate_mean(Ncount)\n",
  3241. "Ncount_std = calculate_std(Ncount)\n",
  3242. "\n",
  3243. "fig = plt.figure()\n",
  3244. "ax = fig.gca()\n",
  3245. "Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='ob')\n",
  3246. "plt.ylabel('NCount')\n",
  3247. "plt.tight_layout()\n",
  3248. "plt.grid(visible=1)\n",
  3249. "plt.show()"
  3250. ]
  3251. },
  3252. {
  3253. "cell_type": "code",
  3254. "execution_count": 57,
  3255. "metadata": {},
  3256. "outputs": [],
  3257. "source": [
  3258. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 300, 300))\n",
  3259. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  3260. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  3261. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  3262. ]
  3263. },
  3264. {
  3265. "cell_type": "code",
  3266. "execution_count": 58,
  3267. "metadata": {},
  3268. "outputs": [
  3269. {
  3270. "data": {
  3271. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3272. "text/plain": [
  3273. "<IPython.core.display.Javascript object>"
  3274. ]
  3275. },
  3276. "metadata": {},
  3277. "output_type": "display_data"
  3278. },
  3279. {
  3280. "data": {
  3281. "text/html": [
  3282. "<img src=\"data:image/png;base64,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
  3283. ],
  3284. "text/plain": [
  3285. "<IPython.core.display.HTML object>"
  3286. ]
  3287. },
  3288. "metadata": {},
  3289. "output_type": "display_data"
  3290. }
  3291. ],
  3292. "source": [
  3293. "val = fitAnalyser.get_fit_value(fitResult)\n",
  3294. "std = fitAnalyser.get_fit_std(fitResult)\n",
  3295. "\n",
  3296. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  3297. "\n",
  3298. "# dataKey = 'sigmax'\n",
  3299. "# dataKey = 'centerx'\n",
  3300. "# dataKey = 'sigmay'\n",
  3301. "dataKey = 'centery'\n",
  3302. "\n",
  3303. "# val_mean = val[dataKey].mean(dim='runs')\n",
  3304. "# std_mean = val[dataKey].std(dim='runs')\n",
  3305. "\n",
  3306. "val_mean = calculate_mean(val[dataKey])\n",
  3307. "std_mean = calculate_std(val[dataKey])\n",
  3308. "\n",
  3309. "fig = plt.figure()\n",
  3310. "ax = fig.gca()\n",
  3311. "\n",
  3312. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  3313. "\n",
  3314. "plt.grid()\n",
  3315. "plt.show()"
  3316. ]
  3317. },
  3318. {
  3319. "cell_type": "code",
  3320. "execution_count": 61,
  3321. "metadata": {},
  3322. "outputs": [
  3323. {
  3324. "data": {
  3325. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3326. "text/plain": [
  3327. "<IPython.core.display.Javascript object>"
  3328. ]
  3329. },
  3330. "metadata": {},
  3331. "output_type": "display_data"
  3332. },
  3333. {
  3334. "data": {
  3335. "text/html": [
  3336. "<img src=\"data:image/png;base64,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
  3337. ],
  3338. "text/plain": [
  3339. "<IPython.core.display.HTML object>"
  3340. ]
  3341. },
  3342. "metadata": {},
  3343. "output_type": "display_data"
  3344. },
  3345. {
  3346. "name": "stdout",
  3347. "output_type": "stream",
  3348. "text": [
  3349. "f = 303.5930 ± 6.9704 Hz\n"
  3350. ]
  3351. }
  3352. ],
  3353. "source": [
  3354. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  3355. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  3356. "\n",
  3357. "#yvals = val_mean.sel(blink_on_time=slice(0.005, 0.025))\n",
  3358. "#yvals_std = std_mean.sel(blink_on_time=slice(0.005, 0.025))\n",
  3359. "#xvals = dataSet_cropOD[scanAxis[0]].sel(blink_on_time=slice(0.005, 0.025))\n",
  3360. "\n",
  3361. "fitted_qtys_1 = val_mean.to_numpy()\n",
  3362. "fitted_qtys_err_1 = std_mean.to_numpy()\n",
  3363. "scan_para = dataSet_cropOD[scanAxis[0]].to_numpy()\n",
  3364. "\n",
  3365. "plt.figure()\n",
  3366. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 1, 148, 1e2, 0.1]))\n",
  3367. "freqdata = np.linspace(0.005, 20e-3, 500)\n",
  3368. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  3369. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  3370. "plt.xlabel('hold time after switch on the trap (s)')\n",
  3371. "plt.ylabel('Center along gravity direction (pixels)')\n",
  3372. "plt.tight_layout()\n",
  3373. "plt.grid(visible=1)\n",
  3374. "#plt.ylim([0,750])\n",
  3375. "#plt.xlim([0.004, 0.025])\n",
  3376. "#plt.legend(prop={'size': 14})\n",
  3377. "plt.show()\n",
  3378. "\n",
  3379. "f_x = popt_x[3]\n",
  3380. "df_x = pcov_x[3][3]**0.5\n",
  3381. "\n",
  3382. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  3383. ]
  3384. },
  3385. {
  3386. "cell_type": "markdown",
  3387. "metadata": {},
  3388. "source": [
  3389. "## Truncation: 0.55"
  3390. ]
  3391. },
  3392. {
  3393. "cell_type": "code",
  3394. "execution_count": 62,
  3395. "metadata": {},
  3396. "outputs": [
  3397. {
  3398. "name": "stdout",
  3399. "output_type": "stream",
  3400. "text": [
  3401. "The detected scaning axes and values are: \n",
  3402. "\n",
  3403. "{'mod_blink_on_time': array([0.005, 0.006, 0.007, 0.008, 0.009, 0.01 , 0.011, 0.012, 0.013,\n",
  3404. " 0.014, 0.015, 0.016, 0.017, 0.018, 0.019]), 'runs': array([0., 1., 2., 3.])}\n"
  3405. ]
  3406. },
  3407. {
  3408. "data": {
  3409. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3410. "text/plain": [
  3411. "<IPython.core.display.Javascript object>"
  3412. ]
  3413. },
  3414. "metadata": {},
  3415. "output_type": "display_data"
  3416. },
  3417. {
  3418. "data": {
  3419. "text/html": [
  3420. "<img src=\"data:image/png;base64,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
  3421. ],
  3422. "text/plain": [
  3423. "<IPython.core.display.HTML object>"
  3424. ]
  3425. },
  3426. "metadata": {},
  3427. "output_type": "display_data"
  3428. }
  3429. ],
  3430. "source": [
  3431. "%matplotlib notebook\n",
  3432. "shotNum = \"0005\"\n",
  3433. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  3434. "\n",
  3435. "dataSetDict = {\n",
  3436. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  3437. " for i in [0]\n",
  3438. "}\n",
  3439. "\n",
  3440. "dataSet = dataSetDict[\"camera_0\"]\n",
  3441. "\n",
  3442. "print_scanAxis(dataSet)\n",
  3443. "\n",
  3444. "scanAxis = get_scanAxis(dataSet)\n",
  3445. "\n",
  3446. "dataSet = auto_rechunk(dataSet)\n",
  3447. "\n",
  3448. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  3449. "\n",
  3450. "imageAnalyser.center = (800, 900)\n",
  3451. "imageAnalyser.span = (300, 300)\n",
  3452. "imageAnalyser.fraction = (0.1, 0.1)\n",
  3453. "\n",
  3454. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  3455. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  3456. "\n",
  3457. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  3458. "Ncount_mean = calculate_mean(Ncount)\n",
  3459. "Ncount_std = calculate_std(Ncount)\n",
  3460. "\n",
  3461. "fig = plt.figure()\n",
  3462. "ax = fig.gca()\n",
  3463. "Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
  3464. "plt.ylabel('NCount')\n",
  3465. "plt.tight_layout()\n",
  3466. "plt.grid(visible=1)\n",
  3467. "plt.show()"
  3468. ]
  3469. },
  3470. {
  3471. "cell_type": "code",
  3472. "execution_count": 63,
  3473. "metadata": {},
  3474. "outputs": [],
  3475. "source": [
  3476. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 1, 300, 300))\n",
  3477. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  3478. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  3479. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  3480. ]
  3481. },
  3482. {
  3483. "cell_type": "code",
  3484. "execution_count": 64,
  3485. "metadata": {},
  3486. "outputs": [
  3487. {
  3488. "data": {
  3489. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3490. "text/plain": [
  3491. "<IPython.core.display.Javascript object>"
  3492. ]
  3493. },
  3494. "metadata": {},
  3495. "output_type": "display_data"
  3496. },
  3497. {
  3498. "data": {
  3499. "text/html": [
  3500. "<img src=\"data:image/png;base64,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
  3501. ],
  3502. "text/plain": [
  3503. "<IPython.core.display.HTML object>"
  3504. ]
  3505. },
  3506. "metadata": {},
  3507. "output_type": "display_data"
  3508. }
  3509. ],
  3510. "source": [
  3511. "val = fitAnalyser.get_fit_value(fitResult)\n",
  3512. "std = fitAnalyser.get_fit_std(fitResult)\n",
  3513. "\n",
  3514. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  3515. "\n",
  3516. "# dataKey = 'sigmax'\n",
  3517. "# dataKey = 'centerx'\n",
  3518. "# dataKey = 'sigmay'\n",
  3519. "dataKey = 'centery'\n",
  3520. "\n",
  3521. "# val_mean = val[dataKey].mean(dim='runs')\n",
  3522. "# std_mean = val[dataKey].std(dim='runs')\n",
  3523. "\n",
  3524. "val_mean = calculate_mean(val[dataKey])\n",
  3525. "std_mean = calculate_std(val[dataKey])\n",
  3526. "\n",
  3527. "fig = plt.figure()\n",
  3528. "ax = fig.gca()\n",
  3529. "\n",
  3530. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  3531. "\n",
  3532. "plt.grid()\n",
  3533. "plt.show()"
  3534. ]
  3535. },
  3536. {
  3537. "cell_type": "code",
  3538. "execution_count": 67,
  3539. "metadata": {},
  3540. "outputs": [
  3541. {
  3542. "data": {
  3543. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3544. "text/plain": [
  3545. "<IPython.core.display.Javascript object>"
  3546. ]
  3547. },
  3548. "metadata": {},
  3549. "output_type": "display_data"
  3550. },
  3551. {
  3552. "data": {
  3553. "text/html": [
  3554. "<img src=\"data:image/png;base64,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
  3555. ],
  3556. "text/plain": [
  3557. "<IPython.core.display.HTML object>"
  3558. ]
  3559. },
  3560. "metadata": {},
  3561. "output_type": "display_data"
  3562. },
  3563. {
  3564. "name": "stdout",
  3565. "output_type": "stream",
  3566. "text": [
  3567. "f = 286.0152 ± 2.5433 Hz\n"
  3568. ]
  3569. }
  3570. ],
  3571. "source": [
  3572. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  3573. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  3574. "\n",
  3575. "yvals = val_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  3576. "yvals_std = std_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  3577. "xvals = dataSet_cropOD[scanAxis[0]]#.sel(blink_on_time=slice(0.005, 0.025))\n",
  3578. "\n",
  3579. "fitted_qtys_1 = yvals.to_numpy()\n",
  3580. "fitted_qtys_err_1 = yvals_std.to_numpy()\n",
  3581. "scan_para = xvals.to_numpy()\n",
  3582. "\n",
  3583. "plt.figure()\n",
  3584. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 3, 145, 1e2, 0.1]))\n",
  3585. "freqdata = np.linspace(0.005,19e-3, 500)\n",
  3586. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  3587. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  3588. "plt.xlabel('hold time after switch on the trap (s)')\n",
  3589. "plt.ylabel('Center along gravity direction (pixels)')\n",
  3590. "plt.tight_layout()\n",
  3591. "plt.grid(visible=1)\n",
  3592. "#plt.ylim([0,750])\n",
  3593. "#plt.xlim([0.004, 0.025])\n",
  3594. "#plt.legend(prop={'size': 14})\n",
  3595. "plt.show()\n",
  3596. "\n",
  3597. "f_x = popt_x[3]\n",
  3598. "df_x = pcov_x[3][3]**0.5\n",
  3599. "\n",
  3600. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  3601. ]
  3602. },
  3603. {
  3604. "cell_type": "markdown",
  3605. "metadata": {},
  3606. "source": [
  3607. "## Truncation: 0.6"
  3608. ]
  3609. },
  3610. {
  3611. "cell_type": "code",
  3612. "execution_count": 69,
  3613. "metadata": {},
  3614. "outputs": [
  3615. {
  3616. "name": "stdout",
  3617. "output_type": "stream",
  3618. "text": [
  3619. "The detected scaning axes and values are: \n",
  3620. "\n",
  3621. "{'mod_blink_on_time': array([0.005 , 0.0057, 0.0064, 0.0071, 0.0078, 0.0085, 0.0092, 0.0099,\n",
  3622. " 0.0106, 0.0113, 0.012 , 0.0127, 0.0134, 0.0141, 0.0148, 0.0155,\n",
  3623. " 0.0162, 0.0169, 0.0176, 0.0183, 0.019 , 0.0197]), 'runs': array([0., 1., 2., 3.])}\n"
  3624. ]
  3625. },
  3626. {
  3627. "data": {
  3628. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3629. "text/plain": [
  3630. "<IPython.core.display.Javascript object>"
  3631. ]
  3632. },
  3633. "metadata": {},
  3634. "output_type": "display_data"
  3635. },
  3636. {
  3637. "data": {
  3638. "text/html": [
  3639. "<img src=\"data:image/png;base64,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
  3640. ],
  3641. "text/plain": [
  3642. "<IPython.core.display.HTML object>"
  3643. ]
  3644. },
  3645. "metadata": {},
  3646. "output_type": "display_data"
  3647. }
  3648. ],
  3649. "source": [
  3650. "%matplotlib notebook\n",
  3651. "shotNum = \"0008\"\n",
  3652. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  3653. "\n",
  3654. "dataSetDict = {\n",
  3655. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  3656. " for i in [0]\n",
  3657. "}\n",
  3658. "\n",
  3659. "dataSet = dataSetDict[\"camera_0\"]\n",
  3660. "\n",
  3661. "print_scanAxis(dataSet)\n",
  3662. "\n",
  3663. "scanAxis = get_scanAxis(dataSet)\n",
  3664. "\n",
  3665. "dataSet = auto_rechunk(dataSet)\n",
  3666. "\n",
  3667. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  3668. "\n",
  3669. "imageAnalyser.center = (800, 900)\n",
  3670. "imageAnalyser.span = (300, 300)\n",
  3671. "imageAnalyser.fraction = (0.1, 0.1)\n",
  3672. "\n",
  3673. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  3674. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  3675. "\n",
  3676. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  3677. "Ncount_mean = calculate_mean(Ncount)\n",
  3678. "Ncount_std = calculate_std(Ncount)\n",
  3679. "\n",
  3680. "fig = plt.figure()\n",
  3681. "ax = fig.gca()\n",
  3682. "Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='ob')\n",
  3683. "plt.ylabel('NCount')\n",
  3684. "plt.tight_layout()\n",
  3685. "plt.grid(visible=1)\n",
  3686. "plt.show()"
  3687. ]
  3688. },
  3689. {
  3690. "cell_type": "code",
  3691. "execution_count": 70,
  3692. "metadata": {},
  3693. "outputs": [],
  3694. "source": [
  3695. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 1, 300, 300))\n",
  3696. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  3697. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  3698. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  3699. ]
  3700. },
  3701. {
  3702. "cell_type": "code",
  3703. "execution_count": 71,
  3704. "metadata": {},
  3705. "outputs": [
  3706. {
  3707. "data": {
  3708. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3709. "text/plain": [
  3710. "<IPython.core.display.Javascript object>"
  3711. ]
  3712. },
  3713. "metadata": {},
  3714. "output_type": "display_data"
  3715. },
  3716. {
  3717. "data": {
  3718. "text/html": [
  3719. "<img src=\"data:image/png;base64,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
  3720. ],
  3721. "text/plain": [
  3722. "<IPython.core.display.HTML object>"
  3723. ]
  3724. },
  3725. "metadata": {},
  3726. "output_type": "display_data"
  3727. }
  3728. ],
  3729. "source": [
  3730. "val = fitAnalyser.get_fit_value(fitResult)\n",
  3731. "std = fitAnalyser.get_fit_std(fitResult)\n",
  3732. "\n",
  3733. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  3734. "\n",
  3735. "# dataKey = 'sigmax'\n",
  3736. "# dataKey = 'centerx'\n",
  3737. "# dataKey = 'sigmay'\n",
  3738. "dataKey = 'centery'\n",
  3739. "\n",
  3740. "# val_mean = val[dataKey].mean(dim='runs')\n",
  3741. "# std_mean = val[dataKey].std(dim='runs')\n",
  3742. "\n",
  3743. "val_mean = calculate_mean(val[dataKey])\n",
  3744. "std_mean = calculate_std(val[dataKey])\n",
  3745. "\n",
  3746. "fig = plt.figure()\n",
  3747. "ax = fig.gca()\n",
  3748. "\n",
  3749. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  3750. "\n",
  3751. "plt.grid()\n",
  3752. "plt.show()"
  3753. ]
  3754. },
  3755. {
  3756. "cell_type": "code",
  3757. "execution_count": 73,
  3758. "metadata": {},
  3759. "outputs": [
  3760. {
  3761. "data": {
  3762. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3763. "text/plain": [
  3764. "<IPython.core.display.Javascript object>"
  3765. ]
  3766. },
  3767. "metadata": {},
  3768. "output_type": "display_data"
  3769. },
  3770. {
  3771. "data": {
  3772. "text/html": [
  3773. "<img src=\"data:image/png;base64,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
  3774. ],
  3775. "text/plain": [
  3776. "<IPython.core.display.HTML object>"
  3777. ]
  3778. },
  3779. "metadata": {},
  3780. "output_type": "display_data"
  3781. },
  3782. {
  3783. "name": "stdout",
  3784. "output_type": "stream",
  3785. "text": [
  3786. "f = 272.6675 ± 0.6739 Hz\n"
  3787. ]
  3788. }
  3789. ],
  3790. "source": [
  3791. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  3792. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  3793. "\n",
  3794. "yvals = val_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  3795. "yvals_std = std_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  3796. "xvals = dataSet_cropOD[scanAxis[0]]#.sel(blink_on_time=slice(0.005, 0.025))\n",
  3797. "\n",
  3798. "fitted_qtys_1 = yvals.to_numpy()\n",
  3799. "fitted_qtys_err_1 = yvals_std.to_numpy()\n",
  3800. "scan_para = xvals.to_numpy()\n",
  3801. "\n",
  3802. "plt.figure()\n",
  3803. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 3, 145, 1e2, 0.1]))\n",
  3804. "freqdata = np.linspace(0.005, 20e-3, 500)\n",
  3805. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  3806. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  3807. "plt.xlabel('hold time after switch on the trap (s)')\n",
  3808. "plt.ylabel('Center along gravity direction (pixels)')\n",
  3809. "plt.tight_layout()\n",
  3810. "plt.grid(visible=1)\n",
  3811. "#plt.ylim([0,750])\n",
  3812. "#plt.xlim([0.004, 0.025])\n",
  3813. "#plt.legend(prop={'size': 14})\n",
  3814. "plt.show()\n",
  3815. "\n",
  3816. "f_x = popt_x[3]\n",
  3817. "df_x = pcov_x[3][3]**0.5\n",
  3818. "\n",
  3819. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  3820. ]
  3821. },
  3822. {
  3823. "cell_type": "markdown",
  3824. "metadata": {},
  3825. "source": [
  3826. "## Truncation: 0.65"
  3827. ]
  3828. },
  3829. {
  3830. "cell_type": "code",
  3831. "execution_count": 74,
  3832. "metadata": {},
  3833. "outputs": [
  3834. {
  3835. "name": "stdout",
  3836. "output_type": "stream",
  3837. "text": [
  3838. "The detected scaning axes and values are: \n",
  3839. "\n",
  3840. "{'mod_blink_on_time': array([0.005 , 0.0057, 0.0064, 0.0071, 0.0078, 0.0085, 0.0092, 0.0099,\n",
  3841. " 0.0106, 0.0113, 0.012 , 0.0127, 0.0134, 0.0141, 0.0148, 0.0155,\n",
  3842. " 0.0162, 0.0169, 0.0176, 0.0183, 0.019 , 0.0197]), 'runs': array([0., 1., 2., 3.])}\n"
  3843. ]
  3844. },
  3845. {
  3846. "data": {
  3847. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3848. "text/plain": [
  3849. "<IPython.core.display.Javascript object>"
  3850. ]
  3851. },
  3852. "metadata": {},
  3853. "output_type": "display_data"
  3854. },
  3855. {
  3856. "data": {
  3857. "text/html": [
  3858. "<img src=\"data:image/png;base64,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
  3859. ],
  3860. "text/plain": [
  3861. "<IPython.core.display.HTML object>"
  3862. ]
  3863. },
  3864. "metadata": {},
  3865. "output_type": "display_data"
  3866. }
  3867. ],
  3868. "source": [
  3869. "%matplotlib notebook\n",
  3870. "shotNum = \"0009\"\n",
  3871. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  3872. "\n",
  3873. "dataSetDict = {\n",
  3874. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  3875. " for i in [0]\n",
  3876. "}\n",
  3877. "\n",
  3878. "dataSet = dataSetDict[\"camera_0\"]\n",
  3879. "\n",
  3880. "print_scanAxis(dataSet)\n",
  3881. "\n",
  3882. "scanAxis = get_scanAxis(dataSet)\n",
  3883. "\n",
  3884. "dataSet = auto_rechunk(dataSet)\n",
  3885. "\n",
  3886. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  3887. "\n",
  3888. "imageAnalyser.center = (800, 900)\n",
  3889. "imageAnalyser.span = (300, 300)\n",
  3890. "imageAnalyser.fraction = (0.1, 0.1)\n",
  3891. "\n",
  3892. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  3893. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  3894. "\n",
  3895. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  3896. "Ncount_mean = calculate_mean(Ncount)\n",
  3897. "Ncount_std = calculate_std(Ncount)\n",
  3898. "\n",
  3899. "fig = plt.figure()\n",
  3900. "ax = fig.gca()\n",
  3901. "Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='ob')\n",
  3902. "plt.ylabel('NCount')\n",
  3903. "plt.tight_layout()\n",
  3904. "plt.grid(visible=1)\n",
  3905. "plt.show()"
  3906. ]
  3907. },
  3908. {
  3909. "cell_type": "code",
  3910. "execution_count": 75,
  3911. "metadata": {},
  3912. "outputs": [],
  3913. "source": [
  3914. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 1, 300, 300))\n",
  3915. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  3916. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  3917. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  3918. ]
  3919. },
  3920. {
  3921. "cell_type": "code",
  3922. "execution_count": 76,
  3923. "metadata": {},
  3924. "outputs": [
  3925. {
  3926. "data": {
  3927. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3928. "text/plain": [
  3929. "<IPython.core.display.Javascript object>"
  3930. ]
  3931. },
  3932. "metadata": {},
  3933. "output_type": "display_data"
  3934. },
  3935. {
  3936. "data": {
  3937. "text/html": [
  3938. "<img src=\"data:image/png;base64,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
  3939. ],
  3940. "text/plain": [
  3941. "<IPython.core.display.HTML object>"
  3942. ]
  3943. },
  3944. "metadata": {},
  3945. "output_type": "display_data"
  3946. }
  3947. ],
  3948. "source": [
  3949. "val = fitAnalyser.get_fit_value(fitResult)\n",
  3950. "std = fitAnalyser.get_fit_std(fitResult)\n",
  3951. "\n",
  3952. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  3953. "\n",
  3954. "# dataKey = 'sigmax'\n",
  3955. "# dataKey = 'centerx'\n",
  3956. "# dataKey = 'sigmay'\n",
  3957. "dataKey = 'centery'\n",
  3958. "\n",
  3959. "# val_mean = val[dataKey].mean(dim='runs')\n",
  3960. "# std_mean = val[dataKey].std(dim='runs')\n",
  3961. "\n",
  3962. "val_mean = calculate_mean(val[dataKey])\n",
  3963. "std_mean = calculate_std(val[dataKey])\n",
  3964. "\n",
  3965. "fig = plt.figure()\n",
  3966. "ax = fig.gca()\n",
  3967. "\n",
  3968. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  3969. "\n",
  3970. "plt.grid()\n",
  3971. "plt.show()"
  3972. ]
  3973. },
  3974. {
  3975. "cell_type": "code",
  3976. "execution_count": 79,
  3977. "metadata": {},
  3978. "outputs": [
  3979. {
  3980. "data": {
  3981. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  3982. "text/plain": [
  3983. "<IPython.core.display.Javascript object>"
  3984. ]
  3985. },
  3986. "metadata": {},
  3987. "output_type": "display_data"
  3988. },
  3989. {
  3990. "data": {
  3991. "text/html": [
  3992. "<img src=\"data:image/png;base64,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
  3993. ],
  3994. "text/plain": [
  3995. "<IPython.core.display.HTML object>"
  3996. ]
  3997. },
  3998. "metadata": {},
  3999. "output_type": "display_data"
  4000. },
  4001. {
  4002. "name": "stdout",
  4003. "output_type": "stream",
  4004. "text": [
  4005. "f = 253.6669 ± 0.5183 Hz\n"
  4006. ]
  4007. }
  4008. ],
  4009. "source": [
  4010. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  4011. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  4012. "\n",
  4013. "yvals = val_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4014. "yvals_std = std_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4015. "xvals = dataSet_cropOD[scanAxis[0]]#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4016. "\n",
  4017. "fitted_qtys_1 = yvals.to_numpy()\n",
  4018. "fitted_qtys_err_1 = yvals_std.to_numpy()\n",
  4019. "scan_para = xvals.to_numpy()\n",
  4020. "\n",
  4021. "plt.figure()\n",
  4022. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 3, 145, 1e2, 0.1]))\n",
  4023. "freqdata = np.linspace(0.005, 20e-3, 500)\n",
  4024. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  4025. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  4026. "plt.xlabel('hold time after switch on the trap (s)')\n",
  4027. "plt.ylabel('Center along gravity direction (pixels)')\n",
  4028. "plt.tight_layout()\n",
  4029. "plt.grid(visible=1)\n",
  4030. "#plt.ylim([0,750])\n",
  4031. "#plt.xlim([0.004, 0.025])\n",
  4032. "#plt.legend(prop={'size': 14})\n",
  4033. "plt.show()\n",
  4034. "\n",
  4035. "f_x = popt_x[3]\n",
  4036. "df_x = pcov_x[3][3]**0.5\n",
  4037. "\n",
  4038. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  4039. ]
  4040. },
  4041. {
  4042. "cell_type": "markdown",
  4043. "metadata": {},
  4044. "source": [
  4045. "## Truncation: 0.7"
  4046. ]
  4047. },
  4048. {
  4049. "cell_type": "code",
  4050. "execution_count": 83,
  4051. "metadata": {},
  4052. "outputs": [
  4053. {
  4054. "name": "stdout",
  4055. "output_type": "stream",
  4056. "text": [
  4057. "The detected scaning axes and values are: \n",
  4058. "\n",
  4059. "{'mod_blink_on_time': array([0.005 , 0.0057, 0.0064, 0.0071, 0.0078, 0.0085, 0.0092, 0.0099,\n",
  4060. " 0.0106, 0.0113, 0.012 , 0.0127, 0.0134, 0.0141, 0.0148, 0.0155,\n",
  4061. " 0.0162, 0.0169, 0.0176, 0.0183, 0.019 , 0.0197]), 'runs': array([0., 1., 2., 3.])}\n"
  4062. ]
  4063. },
  4064. {
  4065. "data": {
  4066. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  4067. "text/plain": [
  4068. "<IPython.core.display.Javascript object>"
  4069. ]
  4070. },
  4071. "metadata": {},
  4072. "output_type": "display_data"
  4073. },
  4074. {
  4075. "data": {
  4076. "text/html": [
  4077. "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAAXNSR0IArs4c6QAAIABJREFUeF7tnQm4VlX1/xci4sTgLMpFHCn9mUPOiXKfQoNyQlOhfpZZ/LJBzFlzxiGzEn6apvZTSQU0wgHDAQsQNc1M+zuAlFF6ATUnci70/p918L3cezkv57xnrf2ec+77Oc/jI3D23med71rru79n7bPP2621tbVVOEAABEAABEAABEAABBoGgW4IwIbxNTcKAiAAAiAAAiAAAhECCEACAQRAAARAAARAAAQaDAEEYIM5nNsFARAAARAAARAAAQQgMQACIAACIAACIAACDYYAArDBHM7tggAIgAAIgAAIgAACkBgAARAAARAAARAAgQZDAAHYYA7ndkEABEAABEAABEAAAUgMgAAIgAAIgAAIgECDIYAAbDCHc7sgAAIgAAIgAAIggAAkBkAABEAABEAABECgwRBAADaYw7ldEAABEAABEAABEEAAEgMgAAIgAAIgAAIg0GAIIAAbzOHcLgiAAAiAAAiAAAggAA0x8NFHH8miRYukV69e0q1bN8NIdAUBEAABEAABEACBjgi0trbKW2+9JZtssomsssoqrvAgAA1wtrS0SFNTk2EEuoIACIAACIAACIDAyhF48cUXpX///q4wIQANcC5ZskT69u0r6pjevXsbRip21//85z9y3333yX777Sc9evQotrEBrQOH5eCCxTIswIGYiKMc4oL86BwXWWPiX//6V1RoevPNN6VPnz6uMxwC0ACnOkYdokKwqwvA6dOny/DhwxteAILDcmIHi2UCEByIibjJnrggP9rHRVauCKkzEIAIwEQEsgZu4sAlawAOHas9THBMcB4TXMloIJW5cAUPBV4PBQjAVClX/0YhHVP/u6l+RcgMMvMisyLFtYct5AYPBdWWgHlA4gHJ4wEppM6gAmiYBUI6xmCWe1cmOQQgAjA+rcgNBCACkOJBmkk3K1eE1BkIwDSeq9ImpGMMZrl3zRq47obkPCA4MNkjhJns09AQXMFDsxdXhNQZCMA02YwA5EX3j3d8sqwDsXss6xhop7BdET08IHmJnsIGucGwrPmBADSAHrJrSMeEtLvWsbMGbq3XKXp7cGCCY4KjApiGp+AKHhS9uCKkzqACmCabqQBSAaQC2CELmOCY4LwmOAMFF7Yr+UF+eOUH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
  4078. ],
  4079. "text/plain": [
  4080. "<IPython.core.display.HTML object>"
  4081. ]
  4082. },
  4083. "metadata": {},
  4084. "output_type": "display_data"
  4085. }
  4086. ],
  4087. "source": [
  4088. "%matplotlib notebook\n",
  4089. "shotNum = \"0010\"\n",
  4090. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  4091. "\n",
  4092. "dataSetDict = {\n",
  4093. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  4094. " for i in [0]\n",
  4095. "}\n",
  4096. "\n",
  4097. "dataSet = dataSetDict[\"camera_0\"]\n",
  4098. "\n",
  4099. "print_scanAxis(dataSet)\n",
  4100. "\n",
  4101. "scanAxis = get_scanAxis(dataSet)\n",
  4102. "\n",
  4103. "dataSet = auto_rechunk(dataSet)\n",
  4104. "\n",
  4105. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  4106. "\n",
  4107. "imageAnalyser.center = (800, 900)\n",
  4108. "imageAnalyser.span = (300, 300)\n",
  4109. "imageAnalyser.fraction = (0.1, 0.1)\n",
  4110. "\n",
  4111. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  4112. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  4113. "\n",
  4114. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  4115. "Ncount_mean = calculate_mean(Ncount)\n",
  4116. "Ncount_std = calculate_std(Ncount)\n",
  4117. "\n",
  4118. "fig = plt.figure()\n",
  4119. "ax = fig.gca()\n",
  4120. "Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='ob')\n",
  4121. "plt.ylabel('NCount')\n",
  4122. "plt.tight_layout()\n",
  4123. "plt.grid(visible=1)\n",
  4124. "plt.show()"
  4125. ]
  4126. },
  4127. {
  4128. "cell_type": "code",
  4129. "execution_count": 84,
  4130. "metadata": {},
  4131. "outputs": [],
  4132. "source": [
  4133. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 1, 300, 300))\n",
  4134. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  4135. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  4136. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  4137. ]
  4138. },
  4139. {
  4140. "cell_type": "code",
  4141. "execution_count": 85,
  4142. "metadata": {},
  4143. "outputs": [
  4144. {
  4145. "data": {
  4146. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  4147. "text/plain": [
  4148. "<IPython.core.display.Javascript object>"
  4149. ]
  4150. },
  4151. "metadata": {},
  4152. "output_type": "display_data"
  4153. },
  4154. {
  4155. "data": {
  4156. "text/html": [
  4157. "<img src=\"data:image/png;base64,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
  4158. ],
  4159. "text/plain": [
  4160. "<IPython.core.display.HTML object>"
  4161. ]
  4162. },
  4163. "metadata": {},
  4164. "output_type": "display_data"
  4165. }
  4166. ],
  4167. "source": [
  4168. "val = fitAnalyser.get_fit_value(fitResult)\n",
  4169. "std = fitAnalyser.get_fit_std(fitResult)\n",
  4170. "\n",
  4171. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  4172. "\n",
  4173. "# dataKey = 'sigmax'\n",
  4174. "# dataKey = 'centerx'\n",
  4175. "# dataKey = 'sigmay'\n",
  4176. "dataKey = 'centery'\n",
  4177. "\n",
  4178. "# val_mean = val[dataKey].mean(dim='runs')\n",
  4179. "# std_mean = val[dataKey].std(dim='runs')\n",
  4180. "\n",
  4181. "val_mean = calculate_mean(val[dataKey])\n",
  4182. "std_mean = calculate_std(val[dataKey])\n",
  4183. "\n",
  4184. "fig = plt.figure()\n",
  4185. "ax = fig.gca()\n",
  4186. "\n",
  4187. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  4188. "\n",
  4189. "plt.grid()\n",
  4190. "plt.show()"
  4191. ]
  4192. },
  4193. {
  4194. "cell_type": "code",
  4195. "execution_count": 87,
  4196. "metadata": {},
  4197. "outputs": [
  4198. {
  4199. "data": {
  4200. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  4201. "text/plain": [
  4202. "<IPython.core.display.Javascript object>"
  4203. ]
  4204. },
  4205. "metadata": {},
  4206. "output_type": "display_data"
  4207. },
  4208. {
  4209. "data": {
  4210. "text/html": [
  4211. "<img src=\"data:image/png;base64,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
  4212. ],
  4213. "text/plain": [
  4214. "<IPython.core.display.HTML object>"
  4215. ]
  4216. },
  4217. "metadata": {},
  4218. "output_type": "display_data"
  4219. },
  4220. {
  4221. "name": "stdout",
  4222. "output_type": "stream",
  4223. "text": [
  4224. "f = 238.8665 ± 0.3901 Hz\n"
  4225. ]
  4226. }
  4227. ],
  4228. "source": [
  4229. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  4230. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  4231. "\n",
  4232. "yvals = val_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4233. "yvals_std = std_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4234. "xvals = dataSet_cropOD[scanAxis[0]]#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4235. "\n",
  4236. "fitted_qtys_1 = yvals.to_numpy()\n",
  4237. "scan_para = xvals.to_numpy()\n",
  4238. "fitted_qtys_err_1 = yvals_std.to_numpy()\n",
  4239. "\n",
  4240. "\n",
  4241. "plt.figure()\n",
  4242. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 3, 147, 3e2, 0.1]))\n",
  4243. "freqdata = np.linspace(0.005, 20e-3, 500)\n",
  4244. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  4245. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  4246. "plt.xlabel('hold time after switch on the trap (s)')\n",
  4247. "plt.ylabel('Center along gravity direction (pixels)')\n",
  4248. "plt.tight_layout()\n",
  4249. "plt.grid(visible=1)\n",
  4250. "#plt.ylim([0,750])\n",
  4251. "#plt.xlim([0.004, 0.025])\n",
  4252. "#plt.legend(prop={'size': 14})\n",
  4253. "plt.show()\n",
  4254. "\n",
  4255. "f_x = popt_x[3]\n",
  4256. "df_x = pcov_x[3][3]**0.5\n",
  4257. "\n",
  4258. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  4259. ]
  4260. },
  4261. {
  4262. "cell_type": "markdown",
  4263. "metadata": {},
  4264. "source": [
  4265. "## Truncation: 0.725"
  4266. ]
  4267. },
  4268. {
  4269. "cell_type": "code",
  4270. "execution_count": 93,
  4271. "metadata": {},
  4272. "outputs": [
  4273. {
  4274. "name": "stdout",
  4275. "output_type": "stream",
  4276. "text": [
  4277. "The detected scaning axes and values are: \n",
  4278. "\n",
  4279. "{'mod_blink_on_time': array([0.005 , 0.0057, 0.0064, 0.0071, 0.0078, 0.0085, 0.0092, 0.0099,\n",
  4280. " 0.0106, 0.0113, 0.012 , 0.0127, 0.0134, 0.0141, 0.0148, 0.0155,\n",
  4281. " 0.0162, 0.0169, 0.0176, 0.0183, 0.019 , 0.0197]), 'runs': array([0., 1., 2., 3.])}\n"
  4282. ]
  4283. },
  4284. {
  4285. "data": {
  4286. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  4287. "text/plain": [
  4288. "<IPython.core.display.Javascript object>"
  4289. ]
  4290. },
  4291. "metadata": {},
  4292. "output_type": "display_data"
  4293. },
  4294. {
  4295. "data": {
  4296. "text/html": [
  4297. "<img src=\"data:image/png;base64,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
  4298. ],
  4299. "text/plain": [
  4300. "<IPython.core.display.HTML object>"
  4301. ]
  4302. },
  4303. "metadata": {},
  4304. "output_type": "display_data"
  4305. }
  4306. ],
  4307. "source": [
  4308. "%matplotlib notebook\n",
  4309. "shotNum = \"0011\"\n",
  4310. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  4311. "\n",
  4312. "dataSetDict = {\n",
  4313. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  4314. " for i in [0]\n",
  4315. "}\n",
  4316. "\n",
  4317. "dataSet = dataSetDict[\"camera_0\"]\n",
  4318. "\n",
  4319. "print_scanAxis(dataSet)\n",
  4320. "\n",
  4321. "scanAxis = get_scanAxis(dataSet)\n",
  4322. "\n",
  4323. "dataSet = auto_rechunk(dataSet)\n",
  4324. "\n",
  4325. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  4326. "\n",
  4327. "imageAnalyser.center = (800, 900)\n",
  4328. "imageAnalyser.span = (300, 300)\n",
  4329. "imageAnalyser.fraction = (0.1, 0.1)\n",
  4330. "\n",
  4331. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  4332. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  4333. "\n",
  4334. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  4335. "Ncount_mean = calculate_mean(Ncount)\n",
  4336. "Ncount_std = calculate_std(Ncount)\n",
  4337. "\n",
  4338. "fig = plt.figure()\n",
  4339. "ax = fig.gca()\n",
  4340. "Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='ob')\n",
  4341. "plt.ylabel('NCount')\n",
  4342. "plt.tight_layout()\n",
  4343. "plt.grid(visible=1)\n",
  4344. "plt.show()"
  4345. ]
  4346. },
  4347. {
  4348. "cell_type": "code",
  4349. "execution_count": 94,
  4350. "metadata": {},
  4351. "outputs": [],
  4352. "source": [
  4353. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 1, 300, 300))\n",
  4354. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  4355. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  4356. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  4357. ]
  4358. },
  4359. {
  4360. "cell_type": "code",
  4361. "execution_count": 95,
  4362. "metadata": {},
  4363. "outputs": [
  4364. {
  4365. "data": {
  4366. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  4367. "text/plain": [
  4368. "<IPython.core.display.Javascript object>"
  4369. ]
  4370. },
  4371. "metadata": {},
  4372. "output_type": "display_data"
  4373. },
  4374. {
  4375. "data": {
  4376. "text/html": [
  4377. "<img src=\"data:image/png;base64,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
  4378. ],
  4379. "text/plain": [
  4380. "<IPython.core.display.HTML object>"
  4381. ]
  4382. },
  4383. "metadata": {},
  4384. "output_type": "display_data"
  4385. }
  4386. ],
  4387. "source": [
  4388. "val = fitAnalyser.get_fit_value(fitResult)\n",
  4389. "std = fitAnalyser.get_fit_std(fitResult)\n",
  4390. "\n",
  4391. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  4392. "\n",
  4393. "# dataKey = 'sigmax'\n",
  4394. "# dataKey = 'centerx'\n",
  4395. "# dataKey = 'sigmay'\n",
  4396. "dataKey = 'centery'\n",
  4397. "\n",
  4398. "# val_mean = val[dataKey].mean(dim='runs')\n",
  4399. "# std_mean = val[dataKey].std(dim='runs')\n",
  4400. "\n",
  4401. "val_mean = calculate_mean(val[dataKey])\n",
  4402. "std_mean = calculate_std(val[dataKey])\n",
  4403. "\n",
  4404. "fig = plt.figure()\n",
  4405. "ax = fig.gca()\n",
  4406. "\n",
  4407. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  4408. "\n",
  4409. "plt.grid()\n",
  4410. "plt.show()"
  4411. ]
  4412. },
  4413. {
  4414. "cell_type": "code",
  4415. "execution_count": 98,
  4416. "metadata": {},
  4417. "outputs": [
  4418. {
  4419. "data": {
  4420. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  4421. "text/plain": [
  4422. "<IPython.core.display.Javascript object>"
  4423. ]
  4424. },
  4425. "metadata": {},
  4426. "output_type": "display_data"
  4427. },
  4428. {
  4429. "data": {
  4430. "text/html": [
  4431. "<img src=\"data:image/png;base64,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
  4432. ],
  4433. "text/plain": [
  4434. "<IPython.core.display.HTML object>"
  4435. ]
  4436. },
  4437. "metadata": {},
  4438. "output_type": "display_data"
  4439. },
  4440. {
  4441. "name": "stdout",
  4442. "output_type": "stream",
  4443. "text": [
  4444. "f = 232.4375 ± 0.3994 Hz\n"
  4445. ]
  4446. }
  4447. ],
  4448. "source": [
  4449. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  4450. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  4451. "\n",
  4452. "yvals = val_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4453. "yvals_std = std_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4454. "xvals = dataSet_cropOD[scanAxis[0]]#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4455. "\n",
  4456. "fitted_qtys_1 = yvals.to_numpy()\n",
  4457. "scan_para = xvals.to_numpy()\n",
  4458. "fitted_qtys_err_1 = yvals_std.to_numpy()\n",
  4459. "\n",
  4460. "\n",
  4461. "plt.figure()\n",
  4462. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 3, 147, 3e2, 0.1]))\n",
  4463. "freqdata = np.linspace(0.005, 20e-3, 500)\n",
  4464. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  4465. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  4466. "plt.xlabel('hold time after switch on the trap (s)')\n",
  4467. "plt.ylabel('Center along gravity direction (pixels)')\n",
  4468. "plt.tight_layout()\n",
  4469. "plt.grid(visible=1)\n",
  4470. "#plt.ylim([0,750])\n",
  4471. "#plt.xlim([0.004, 0.025])\n",
  4472. "#plt.legend(prop={'size': 14})\n",
  4473. "plt.show()\n",
  4474. "\n",
  4475. "f_x = popt_x[3]\n",
  4476. "df_x = pcov_x[3][3]**0.5\n",
  4477. "\n",
  4478. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  4479. ]
  4480. },
  4481. {
  4482. "cell_type": "markdown",
  4483. "metadata": {},
  4484. "source": [
  4485. "## Truncation: 0.75"
  4486. ]
  4487. },
  4488. {
  4489. "cell_type": "code",
  4490. "execution_count": 99,
  4491. "metadata": {},
  4492. "outputs": [
  4493. {
  4494. "name": "stdout",
  4495. "output_type": "stream",
  4496. "text": [
  4497. "The detected scaning axes and values are: \n",
  4498. "\n",
  4499. "{'mod_blink_on_time': array([0.005 , 0.0057, 0.0064, 0.0071, 0.0078, 0.0085, 0.0092, 0.0099,\n",
  4500. " 0.0106, 0.0113, 0.012 , 0.0127, 0.0134, 0.0141, 0.0148, 0.0155,\n",
  4501. " 0.0162, 0.0169, 0.0176, 0.0183, 0.019 , 0.0197]), 'runs': array([0., 1., 2., 3.])}\n"
  4502. ]
  4503. },
  4504. {
  4505. "data": {
  4506. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  4507. "text/plain": [
  4508. "<IPython.core.display.Javascript object>"
  4509. ]
  4510. },
  4511. "metadata": {},
  4512. "output_type": "display_data"
  4513. },
  4514. {
  4515. "data": {
  4516. "text/html": [
  4517. "<img src=\"data:image/png;base64,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
  4518. ],
  4519. "text/plain": [
  4520. "<IPython.core.display.HTML object>"
  4521. ]
  4522. },
  4523. "metadata": {},
  4524. "output_type": "display_data"
  4525. }
  4526. ],
  4527. "source": [
  4528. "%matplotlib notebook\n",
  4529. "shotNum = \"0012\"\n",
  4530. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  4531. "\n",
  4532. "dataSetDict = {\n",
  4533. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  4534. " for i in [0]\n",
  4535. "}\n",
  4536. "\n",
  4537. "dataSet = dataSetDict[\"camera_0\"]\n",
  4538. "\n",
  4539. "print_scanAxis(dataSet)\n",
  4540. "\n",
  4541. "scanAxis = get_scanAxis(dataSet)\n",
  4542. "\n",
  4543. "dataSet = auto_rechunk(dataSet)\n",
  4544. "\n",
  4545. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  4546. "\n",
  4547. "imageAnalyser.center = (800, 900)\n",
  4548. "imageAnalyser.span = (300, 300)\n",
  4549. "imageAnalyser.fraction = (0.1, 0.1)\n",
  4550. "\n",
  4551. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  4552. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  4553. "\n",
  4554. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  4555. "Ncount_mean = calculate_mean(Ncount)\n",
  4556. "Ncount_std = calculate_std(Ncount)\n",
  4557. "\n",
  4558. "fig = plt.figure()\n",
  4559. "ax = fig.gca()\n",
  4560. "Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='ob')\n",
  4561. "plt.ylabel('NCount')\n",
  4562. "plt.tight_layout()\n",
  4563. "plt.grid(visible=1)\n",
  4564. "plt.show()"
  4565. ]
  4566. },
  4567. {
  4568. "cell_type": "code",
  4569. "execution_count": 100,
  4570. "metadata": {},
  4571. "outputs": [],
  4572. "source": [
  4573. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 1, 300, 300))\n",
  4574. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  4575. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  4576. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  4577. ]
  4578. },
  4579. {
  4580. "cell_type": "code",
  4581. "execution_count": 101,
  4582. "metadata": {},
  4583. "outputs": [
  4584. {
  4585. "data": {
  4586. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  4587. "text/plain": [
  4588. "<IPython.core.display.Javascript object>"
  4589. ]
  4590. },
  4591. "metadata": {},
  4592. "output_type": "display_data"
  4593. },
  4594. {
  4595. "data": {
  4596. "text/html": [
  4597. "<img src=\"data:image/png;base64,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
  4598. ],
  4599. "text/plain": [
  4600. "<IPython.core.display.HTML object>"
  4601. ]
  4602. },
  4603. "metadata": {},
  4604. "output_type": "display_data"
  4605. }
  4606. ],
  4607. "source": [
  4608. "val = fitAnalyser.get_fit_value(fitResult)\n",
  4609. "std = fitAnalyser.get_fit_std(fitResult)\n",
  4610. "\n",
  4611. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  4612. "\n",
  4613. "# dataKey = 'sigmax'\n",
  4614. "# dataKey = 'centerx'\n",
  4615. "# dataKey = 'sigmay'\n",
  4616. "dataKey = 'centery'\n",
  4617. "\n",
  4618. "# val_mean = val[dataKey].mean(dim='runs')\n",
  4619. "# std_mean = val[dataKey].std(dim='runs')\n",
  4620. "\n",
  4621. "val_mean = calculate_mean(val[dataKey])\n",
  4622. "std_mean = calculate_std(val[dataKey])\n",
  4623. "\n",
  4624. "fig = plt.figure()\n",
  4625. "ax = fig.gca()\n",
  4626. "\n",
  4627. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  4628. "\n",
  4629. "plt.grid()\n",
  4630. "plt.show()"
  4631. ]
  4632. },
  4633. {
  4634. "cell_type": "code",
  4635. "execution_count": 103,
  4636. "metadata": {},
  4637. "outputs": [
  4638. {
  4639. "data": {
  4640. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  4641. "text/plain": [
  4642. "<IPython.core.display.Javascript object>"
  4643. ]
  4644. },
  4645. "metadata": {},
  4646. "output_type": "display_data"
  4647. },
  4648. {
  4649. "data": {
  4650. "text/html": [
  4651. "<img src=\"data:image/png;base64,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
  4652. ],
  4653. "text/plain": [
  4654. "<IPython.core.display.HTML object>"
  4655. ]
  4656. },
  4657. "metadata": {},
  4658. "output_type": "display_data"
  4659. },
  4660. {
  4661. "name": "stdout",
  4662. "output_type": "stream",
  4663. "text": [
  4664. "f = 224.9906 ± 0.4995 Hz\n"
  4665. ]
  4666. }
  4667. ],
  4668. "source": [
  4669. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  4670. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  4671. "\n",
  4672. "yvals = val_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4673. "yvals_std = std_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4674. "xvals = dataSet_cropOD[scanAxis[0]]#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4675. "\n",
  4676. "fitted_qtys_1 = yvals.to_numpy()\n",
  4677. "scan_para = xvals.to_numpy()\n",
  4678. "fitted_qtys_err_1 = yvals_std.to_numpy()\n",
  4679. "\n",
  4680. "\n",
  4681. "plt.figure()\n",
  4682. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 3, 147, 3e2, 0.1]))\n",
  4683. "freqdata = np.linspace(0.005, 20e-3, 500)\n",
  4684. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  4685. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  4686. "plt.xlabel('hold time after switch on the trap (s)')\n",
  4687. "plt.ylabel('Center along gravity direction (pixels)')\n",
  4688. "plt.tight_layout()\n",
  4689. "plt.grid(visible=1)\n",
  4690. "#plt.ylim([0,750])\n",
  4691. "#plt.xlim([0.004, 0.025])\n",
  4692. "#plt.legend(prop={'size': 14})\n",
  4693. "plt.show()\n",
  4694. "\n",
  4695. "f_x = popt_x[3]\n",
  4696. "df_x = pcov_x[3][3]**0.5\n",
  4697. "\n",
  4698. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  4699. ]
  4700. },
  4701. {
  4702. "cell_type": "markdown",
  4703. "metadata": {},
  4704. "source": [
  4705. "## Truncation: 0.775"
  4706. ]
  4707. },
  4708. {
  4709. "cell_type": "code",
  4710. "execution_count": 128,
  4711. "metadata": {},
  4712. "outputs": [
  4713. {
  4714. "ename": "OSError",
  4715. "evalue": "[Errno group not found: images] 'images'",
  4716. "output_type": "error",
  4717. "traceback": [
  4718. "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
  4719. "\u001b[1;31mOSError\u001b[0m Traceback (most recent call last)",
  4720. "Input \u001b[1;32mIn [128]\u001b[0m, in \u001b[0;36m<cell line: 5>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m shotNum \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m0013\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 3\u001b[0m filePath \u001b[38;5;241m=\u001b[39m folderPath \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m/\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m shotNum \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m/*.h5\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m----> 5\u001b[0m dataSetDict \u001b[38;5;241m=\u001b[39m {\n\u001b[0;32m 6\u001b[0m dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis \u001b[38;5;241m=\u001b[39m [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msweep_start_freq\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124msweep_stop_freq\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[0;32m 7\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;241m0\u001b[39m]\n\u001b[0;32m 8\u001b[0m }\n\u001b[0;32m 10\u001b[0m dataSet \u001b[38;5;241m=\u001b[39m dataSetDict[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcamera_0\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 12\u001b[0m print_scanAxis(dataSet)\n",
  4721. "Input \u001b[1;32mIn [128]\u001b[0m, in \u001b[0;36m<dictcomp>\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 2\u001b[0m shotNum \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m0013\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 3\u001b[0m filePath \u001b[38;5;241m=\u001b[39m folderPath \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m/\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m shotNum \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m/*.h5\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 5\u001b[0m dataSetDict \u001b[38;5;241m=\u001b[39m {\n\u001b[1;32m----> 6\u001b[0m dskey[groupList[i]]: \u001b[43mread_hdf5_file\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilePath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mgroupList\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mexcludeAxis\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43msweep_start_freq\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43msweep_stop_freq\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 7\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;241m0\u001b[39m]\n\u001b[0;32m 8\u001b[0m }\n\u001b[0;32m 10\u001b[0m dataSet \u001b[38;5;241m=\u001b[39m dataSetDict[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcamera_0\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 12\u001b[0m print_scanAxis(dataSet)\n",
  4722. "File \u001b[1;32mZ:\\Dy_Lab\\Data\\Analysis\\2023\\07\\31\\DataContainer\\ReadData.py:170\u001b[0m, in \u001b[0;36mread_hdf5_file\u001b[1;34m(filePath, group, datesetOfGlobal, preprocess, join, parallel, engine, phony_dims, excludeAxis, maxFileNum, **kwargs)\u001b[0m\n\u001b[0;32m 167\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 168\u001b[0m kwargs\u001b[38;5;241m.\u001b[39mupdate({\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpreprocess\u001b[39m\u001b[38;5;124m'\u001b[39m:preprocess})\n\u001b[1;32m--> 170\u001b[0m ds \u001b[38;5;241m=\u001b[39m xr\u001b[38;5;241m.\u001b[39mopen_mfdataset(fullFilePath, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 172\u001b[0m newDimKey \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mappend([\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mx\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124my\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mz\u001b[39m\u001b[38;5;124m'\u001b[39m], [ \u001b[38;5;28mchr\u001b[39m(i) \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m97\u001b[39m, \u001b[38;5;241m97\u001b[39m\u001b[38;5;241m+\u001b[39m\u001b[38;5;241m23\u001b[39m)])\n\u001b[0;32m 174\u001b[0m oldDimKey \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39msort(\n\u001b[0;32m 175\u001b[0m [\n\u001b[0;32m 176\u001b[0m key \n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 179\u001b[0m ]\n\u001b[0;32m 180\u001b[0m )\n",
  4723. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\xarray\\backends\\api.py:990\u001b[0m, in \u001b[0;36mopen_mfdataset\u001b[1;34m(paths, chunks, concat_dim, compat, preprocess, engine, data_vars, coords, combine, parallel, join, attrs_file, combine_attrs, **kwargs)\u001b[0m\n\u001b[0;32m 985\u001b[0m datasets \u001b[38;5;241m=\u001b[39m [preprocess(ds) \u001b[38;5;28;01mfor\u001b[39;00m ds \u001b[38;5;129;01min\u001b[39;00m datasets]\n\u001b[0;32m 987\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m parallel:\n\u001b[0;32m 988\u001b[0m \u001b[38;5;66;03m# calling compute here will return the datasets/file_objs lists,\u001b[39;00m\n\u001b[0;32m 989\u001b[0m \u001b[38;5;66;03m# the underlying datasets will still be stored as dask arrays\u001b[39;00m\n\u001b[1;32m--> 990\u001b[0m datasets, closers \u001b[38;5;241m=\u001b[39m \u001b[43mdask\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcompute\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdatasets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mclosers\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 992\u001b[0m \u001b[38;5;66;03m# Combine all datasets, closing them in case of a ValueError\u001b[39;00m\n\u001b[0;32m 993\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n",
  4724. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\dask\\base.py:599\u001b[0m, in \u001b[0;36mcompute\u001b[1;34m(traverse, optimize_graph, scheduler, get, *args, **kwargs)\u001b[0m\n\u001b[0;32m 596\u001b[0m keys\u001b[38;5;241m.\u001b[39mappend(x\u001b[38;5;241m.\u001b[39m__dask_keys__())\n\u001b[0;32m 597\u001b[0m postcomputes\u001b[38;5;241m.\u001b[39mappend(x\u001b[38;5;241m.\u001b[39m__dask_postcompute__())\n\u001b[1;32m--> 599\u001b[0m results \u001b[38;5;241m=\u001b[39m schedule(dsk, keys, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 600\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m repack([f(r, \u001b[38;5;241m*\u001b[39ma) \u001b[38;5;28;01mfor\u001b[39;00m r, (f, a) \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(results, postcomputes)])\n",
  4725. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\distributed\\client.py:3224\u001b[0m, in \u001b[0;36mClient.get\u001b[1;34m(self, dsk, keys, workers, allow_other_workers, resources, sync, asynchronous, direct, retries, priority, fifo_timeout, actors, **kwargs)\u001b[0m\n\u001b[0;32m 3222\u001b[0m should_rejoin \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m 3223\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m-> 3224\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgather\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpacked\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43masynchronous\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43masynchronous\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdirect\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdirect\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3225\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 3226\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m f \u001b[38;5;129;01min\u001b[39;00m futures\u001b[38;5;241m.\u001b[39mvalues():\n",
  4726. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\distributed\\client.py:2359\u001b[0m, in \u001b[0;36mClient.gather\u001b[1;34m(self, futures, errors, direct, asynchronous)\u001b[0m\n\u001b[0;32m 2357\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 2358\u001b[0m local_worker \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m-> 2359\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msync\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 2360\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_gather\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2361\u001b[0m \u001b[43m \u001b[49m\u001b[43mfutures\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2362\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43merrors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2363\u001b[0m \u001b[43m \u001b[49m\u001b[43mdirect\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdirect\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2364\u001b[0m \u001b[43m \u001b[49m\u001b[43mlocal_worker\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlocal_worker\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2365\u001b[0m \u001b[43m \u001b[49m\u001b[43masynchronous\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43masynchronous\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2366\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
  4727. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\distributed\\utils.py:351\u001b[0m, in \u001b[0;36mSyncMethodMixin.sync\u001b[1;34m(self, func, asynchronous, callback_timeout, *args, **kwargs)\u001b[0m\n\u001b[0;32m 349\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m future\n\u001b[0;32m 350\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m--> 351\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m sync(\n\u001b[0;32m 352\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mloop, func, \u001b[38;5;241m*\u001b[39margs, callback_timeout\u001b[38;5;241m=\u001b[39mcallback_timeout, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs\n\u001b[0;32m 353\u001b[0m )\n",
  4728. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\distributed\\utils.py:418\u001b[0m, in \u001b[0;36msync\u001b[1;34m(loop, func, callback_timeout, *args, **kwargs)\u001b[0m\n\u001b[0;32m 416\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m error:\n\u001b[0;32m 417\u001b[0m typ, exc, tb \u001b[38;5;241m=\u001b[39m error\n\u001b[1;32m--> 418\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\u001b[38;5;241m.\u001b[39mwith_traceback(tb)\n\u001b[0;32m 419\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 420\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m result\n",
  4729. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\distributed\\utils.py:391\u001b[0m, in \u001b[0;36msync.<locals>.f\u001b[1;34m()\u001b[0m\n\u001b[0;32m 389\u001b[0m future \u001b[38;5;241m=\u001b[39m wait_for(future, callback_timeout)\n\u001b[0;32m 390\u001b[0m future \u001b[38;5;241m=\u001b[39m asyncio\u001b[38;5;241m.\u001b[39mensure_future(future)\n\u001b[1;32m--> 391\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01myield\u001b[39;00m future\n\u001b[0;32m 392\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m:\n\u001b[0;32m 393\u001b[0m error \u001b[38;5;241m=\u001b[39m sys\u001b[38;5;241m.\u001b[39mexc_info()\n",
  4730. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\tornado\\gen.py:762\u001b[0m, in \u001b[0;36mRunner.run\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 759\u001b[0m exc_info \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 761\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 762\u001b[0m value \u001b[38;5;241m=\u001b[39m \u001b[43mfuture\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 763\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m:\n\u001b[0;32m 764\u001b[0m exc_info \u001b[38;5;241m=\u001b[39m sys\u001b[38;5;241m.\u001b[39mexc_info()\n",
  4731. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\distributed\\client.py:2222\u001b[0m, in \u001b[0;36mClient._gather\u001b[1;34m(self, futures, errors, direct, local_worker)\u001b[0m\n\u001b[0;32m 2220\u001b[0m exc \u001b[38;5;241m=\u001b[39m CancelledError(key)\n\u001b[0;32m 2221\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m-> 2222\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exception\u001b[38;5;241m.\u001b[39mwith_traceback(traceback)\n\u001b[0;32m 2223\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n\u001b[0;32m 2224\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m errors \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mskip\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n",
  4732. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\dask\\utils.py:73\u001b[0m, in \u001b[0;36mapply\u001b[1;34m()\u001b[0m\n\u001b[0;32m 42\u001b[0m \u001b[38;5;124;03m\"\"\"Apply a function given its positional and keyword arguments.\u001b[39;00m\n\u001b[0;32m 43\u001b[0m \n\u001b[0;32m 44\u001b[0m \u001b[38;5;124;03mEquivalent to ``func(*args, **kwargs)``\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 70\u001b[0m \u001b[38;5;124;03m>>> dsk = {'task-name': task} # adds the task to a low level Dask task graph\u001b[39;00m\n\u001b[0;32m 71\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 72\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m kwargs:\n\u001b[1;32m---> 73\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 74\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 75\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m func(\u001b[38;5;241m*\u001b[39margs)\n",
  4733. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\xarray\\backends\\api.py:525\u001b[0m, in \u001b[0;36mopen_dataset\u001b[1;34m()\u001b[0m\n\u001b[0;32m 513\u001b[0m decoders \u001b[38;5;241m=\u001b[39m _resolve_decoders_kwargs(\n\u001b[0;32m 514\u001b[0m decode_cf,\n\u001b[0;32m 515\u001b[0m open_backend_dataset_parameters\u001b[38;5;241m=\u001b[39mbackend\u001b[38;5;241m.\u001b[39mopen_dataset_parameters,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 521\u001b[0m decode_coords\u001b[38;5;241m=\u001b[39mdecode_coords,\n\u001b[0;32m 522\u001b[0m )\n\u001b[0;32m 524\u001b[0m overwrite_encoded_chunks \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124moverwrite_encoded_chunks\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m--> 525\u001b[0m backend_ds \u001b[38;5;241m=\u001b[39m backend\u001b[38;5;241m.\u001b[39mopen_dataset(\n\u001b[0;32m 526\u001b[0m filename_or_obj,\n\u001b[0;32m 527\u001b[0m drop_variables\u001b[38;5;241m=\u001b[39mdrop_variables,\n\u001b[0;32m 528\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdecoders,\n\u001b[0;32m 529\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[0;32m 530\u001b[0m )\n\u001b[0;32m 531\u001b[0m ds \u001b[38;5;241m=\u001b[39m _dataset_from_backend_dataset(\n\u001b[0;32m 532\u001b[0m backend_ds,\n\u001b[0;32m 533\u001b[0m filename_or_obj,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 541\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[0;32m 542\u001b[0m )\n\u001b[0;32m 543\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n",
  4734. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\xarray\\backends\\h5netcdf_.py:413\u001b[0m, in \u001b[0;36mopen_dataset\u001b[1;34m()\u001b[0m\n\u001b[0;32m 394\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mopen_dataset\u001b[39m( \u001b[38;5;66;03m# type: ignore[override] # allow LSP violation, not supporting **kwargs\u001b[39;00m\n\u001b[0;32m 395\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 396\u001b[0m filename_or_obj: \u001b[38;5;28mstr\u001b[39m \u001b[38;5;241m|\u001b[39m os\u001b[38;5;241m.\u001b[39mPathLike[Any] \u001b[38;5;241m|\u001b[39m BufferedIOBase \u001b[38;5;241m|\u001b[39m AbstractDataStore,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 410\u001b[0m decode_vlen_strings\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[0;32m 411\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Dataset:\n\u001b[0;32m 412\u001b[0m filename_or_obj \u001b[38;5;241m=\u001b[39m _normalize_path(filename_or_obj)\n\u001b[1;32m--> 413\u001b[0m store \u001b[38;5;241m=\u001b[39m H5NetCDFStore\u001b[38;5;241m.\u001b[39mopen(\n\u001b[0;32m 414\u001b[0m filename_or_obj,\n\u001b[0;32m 415\u001b[0m \u001b[38;5;28mformat\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mformat\u001b[39m,\n\u001b[0;32m 416\u001b[0m group\u001b[38;5;241m=\u001b[39mgroup,\n\u001b[0;32m 417\u001b[0m lock\u001b[38;5;241m=\u001b[39mlock,\n\u001b[0;32m 418\u001b[0m invalid_netcdf\u001b[38;5;241m=\u001b[39minvalid_netcdf,\n\u001b[0;32m 419\u001b[0m phony_dims\u001b[38;5;241m=\u001b[39mphony_dims,\n\u001b[0;32m 420\u001b[0m decode_vlen_strings\u001b[38;5;241m=\u001b[39mdecode_vlen_strings,\n\u001b[0;32m 421\u001b[0m )\n\u001b[0;32m 423\u001b[0m store_entrypoint \u001b[38;5;241m=\u001b[39m StoreBackendEntrypoint()\n\u001b[0;32m 425\u001b[0m ds \u001b[38;5;241m=\u001b[39m store_entrypoint\u001b[38;5;241m.\u001b[39mopen_dataset(\n\u001b[0;32m 426\u001b[0m store,\n\u001b[0;32m 427\u001b[0m mask_and_scale\u001b[38;5;241m=\u001b[39mmask_and_scale,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 433\u001b[0m decode_timedelta\u001b[38;5;241m=\u001b[39mdecode_timedelta,\n\u001b[0;32m 434\u001b[0m )\n",
  4735. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\xarray\\backends\\h5netcdf_.py:176\u001b[0m, in \u001b[0;36mopen\u001b[1;34m()\u001b[0m\n\u001b[0;32m 173\u001b[0m lock \u001b[38;5;241m=\u001b[39m combine_locks([HDF5_LOCK, get_write_lock(filename)])\n\u001b[0;32m 175\u001b[0m manager \u001b[38;5;241m=\u001b[39m CachingFileManager(h5netcdf\u001b[38;5;241m.\u001b[39mFile, filename, mode\u001b[38;5;241m=\u001b[39mmode, kwargs\u001b[38;5;241m=\u001b[39mkwargs)\n\u001b[1;32m--> 176\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mcls\u001b[39m(manager, group\u001b[38;5;241m=\u001b[39mgroup, mode\u001b[38;5;241m=\u001b[39mmode, lock\u001b[38;5;241m=\u001b[39mlock, autoclose\u001b[38;5;241m=\u001b[39mautoclose)\n",
  4736. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\xarray\\backends\\h5netcdf_.py:127\u001b[0m, in \u001b[0;36m__init__\u001b[1;34m()\u001b[0m\n\u001b[0;32m 124\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mformat \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 125\u001b[0m \u001b[38;5;66;03m# todo: utilizing find_root_and_group seems a bit clunky\u001b[39;00m\n\u001b[0;32m 126\u001b[0m \u001b[38;5;66;03m# making filename available on h5netcdf.Group seems better\u001b[39;00m\n\u001b[1;32m--> 127\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_filename \u001b[38;5;241m=\u001b[39m find_root_and_group(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mds)[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mfilename\n\u001b[0;32m 128\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mis_remote \u001b[38;5;241m=\u001b[39m is_remote_uri(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_filename)\n\u001b[0;32m 129\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlock \u001b[38;5;241m=\u001b[39m ensure_lock(lock)\n",
  4737. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\xarray\\backends\\h5netcdf_.py:187\u001b[0m, in \u001b[0;36mds\u001b[1;34m()\u001b[0m\n\u001b[0;32m 185\u001b[0m \u001b[38;5;129m@property\u001b[39m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mds\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m--> 187\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_acquire()\n",
  4738. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\xarray\\backends\\h5netcdf_.py:180\u001b[0m, in \u001b[0;36m_acquire\u001b[1;34m()\u001b[0m\n\u001b[0;32m 178\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_acquire\u001b[39m(\u001b[38;5;28mself\u001b[39m, needs_lock\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m):\n\u001b[0;32m 179\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_manager\u001b[38;5;241m.\u001b[39macquire_context(needs_lock) \u001b[38;5;28;01mas\u001b[39;00m root:\n\u001b[1;32m--> 180\u001b[0m ds \u001b[38;5;241m=\u001b[39m _nc4_require_group(\n\u001b[0;32m 181\u001b[0m root, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_group, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_mode, create_group\u001b[38;5;241m=\u001b[39m_h5netcdf_create_group\n\u001b[0;32m 182\u001b[0m )\n\u001b[0;32m 183\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n",
  4739. "File \u001b[1;32m~\\anaconda3\\envs\\py39\\lib\\site-packages\\xarray\\backends\\netCDF4_.py:191\u001b[0m, in \u001b[0;36m_nc4_require_group\u001b[1;34m()\u001b[0m\n\u001b[0;32m 188\u001b[0m ds \u001b[38;5;241m=\u001b[39m create_group(ds, key)\n\u001b[0;32m 189\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 190\u001b[0m \u001b[38;5;66;03m# wrap error to provide slightly more helpful message\u001b[39;00m\n\u001b[1;32m--> 191\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mOSError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mgroup not found: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mkey\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m, e)\n\u001b[0;32m 192\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ds\n",
  4740. "\u001b[1;31mOSError\u001b[0m: [Errno group not found: images] 'images'"
  4741. ]
  4742. }
  4743. ],
  4744. "source": [
  4745. "%matplotlib notebook\n",
  4746. "shotNum = \"0013\"\n",
  4747. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  4748. "\n",
  4749. "dataSetDict = {\n",
  4750. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  4751. " for i in [0]\n",
  4752. "}\n",
  4753. "\n",
  4754. "dataSet = dataSetDict[\"camera_0\"]\n",
  4755. "\n",
  4756. "print_scanAxis(dataSet)\n",
  4757. "\n",
  4758. "scanAxis = get_scanAxis(dataSet)\n",
  4759. "\n",
  4760. "dataSet = auto_rechunk(dataSet)\n",
  4761. "\n",
  4762. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  4763. "\n",
  4764. "imageAnalyser.center = (800, 900)\n",
  4765. "imageAnalyser.span = (300, 300)\n",
  4766. "imageAnalyser.fraction = (0.1, 0.1)\n",
  4767. "\n",
  4768. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  4769. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  4770. "\n",
  4771. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  4772. "Ncount_mean = calculate_mean(Ncount)\n",
  4773. "Ncount_std = calculate_std(Ncount)\n",
  4774. "\n",
  4775. "fig = plt.figure()\n",
  4776. "ax = fig.gca()\n",
  4777. "Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='ob')\n",
  4778. "plt.ylabel('NCount')\n",
  4779. "plt.tight_layout()\n",
  4780. "plt.grid(visible=1)\n",
  4781. "plt.show()"
  4782. ]
  4783. },
  4784. {
  4785. "cell_type": "code",
  4786. "execution_count": null,
  4787. "metadata": {},
  4788. "outputs": [],
  4789. "source": [
  4790. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 1, 300, 300))\n",
  4791. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  4792. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  4793. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  4794. ]
  4795. },
  4796. {
  4797. "cell_type": "code",
  4798. "execution_count": null,
  4799. "metadata": {},
  4800. "outputs": [],
  4801. "source": [
  4802. "val = fitAnalyser.get_fit_value(fitResult)\n",
  4803. "std = fitAnalyser.get_fit_std(fitResult)\n",
  4804. "\n",
  4805. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  4806. "\n",
  4807. "# dataKey = 'sigmax'\n",
  4808. "# dataKey = 'centerx'\n",
  4809. "# dataKey = 'sigmay'\n",
  4810. "dataKey = 'centery'\n",
  4811. "\n",
  4812. "# val_mean = val[dataKey].mean(dim='runs')\n",
  4813. "# std_mean = val[dataKey].std(dim='runs')\n",
  4814. "\n",
  4815. "val_mean = calculate_mean(val[dataKey])\n",
  4816. "std_mean = calculate_std(val[dataKey])\n",
  4817. "\n",
  4818. "fig = plt.figure()\n",
  4819. "ax = fig.gca()\n",
  4820. "\n",
  4821. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  4822. "\n",
  4823. "plt.grid()\n",
  4824. "plt.show()"
  4825. ]
  4826. },
  4827. {
  4828. "cell_type": "code",
  4829. "execution_count": 129,
  4830. "metadata": {},
  4831. "outputs": [
  4832. {
  4833. "data": {
  4834. "application/javascript": "/* Put everything inside the global mpl namespace */\n/* global mpl */\nwindow.mpl = {};\n\nmpl.get_websocket_type = function () {\n if (typeof WebSocket !== 'undefined') {\n return WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n return MozWebSocket;\n } else {\n alert(\n 'Your browser does not have WebSocket support. ' +\n 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n 'Firefox 4 and 5 are also supported but you ' +\n 'have to enable WebSockets in about:config.'\n );\n }\n};\n\nmpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n this.id = figure_id;\n\n this.ws = websocket;\n\n this.supports_binary = this.ws.binaryType !== undefined;\n\n if (!this.supports_binary) {\n var warnings = document.getElementById('mpl-warnings');\n if (warnings) {\n warnings.style.display = 'block';\n warnings.textContent =\n 'This browser does not support binary websocket messages. ' +\n 'Performance may be slow.';\n }\n }\n\n this.imageObj = new Image();\n\n this.context = undefined;\n this.message = undefined;\n this.canvas = undefined;\n this.rubberband_canvas = undefined;\n this.rubberband_context = undefined;\n this.format_dropdown = undefined;\n\n this.image_mode = 'full';\n\n this.root = document.createElement('div');\n this.root.setAttribute('style', 'display: inline-block');\n this._root_extra_style(this.root);\n\n parent_element.appendChild(this.root);\n\n this._init_header(this);\n this._init_canvas(this);\n this._init_toolbar(this);\n\n var fig = this;\n\n this.waiting = false;\n\n this.ws.onopen = function () {\n fig.send_message('supports_binary', { value: fig.supports_binary });\n fig.send_message('send_image_mode', {});\n if (fig.ratio !== 1) {\n fig.send_message('set_device_pixel_ratio', {\n device_pixel_ratio: fig.ratio,\n });\n }\n fig.send_message('refresh', {});\n };\n\n this.imageObj.onload = function () {\n if (fig.image_mode === 'full') {\n // Full images could contain transparency (where diff images\n // almost always do), so we need to clear the canvas so that\n // there is no ghosting.\n fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n }\n fig.context.drawImage(fig.imageObj, 0, 0);\n };\n\n this.imageObj.onunload = function () {\n fig.ws.close();\n };\n\n this.ws.onmessage = this._make_on_message_function(this);\n\n this.ondownload = ondownload;\n};\n\nmpl.figure.prototype._init_header = function () {\n var titlebar = document.createElement('div');\n titlebar.classList =\n 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n var titletext = document.createElement('div');\n titletext.classList = 'ui-dialog-title';\n titletext.setAttribute(\n 'style',\n 'width: 100%; text-align: center; padding: 3px;'\n );\n titlebar.appendChild(titletext);\n this.root.appendChild(titlebar);\n this.header = titletext;\n};\n\nmpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n\nmpl.figure.prototype._init_canvas = function () {\n var fig = this;\n\n var canvas_div = (this.canvas_div = document.createElement('div'));\n canvas_div.setAttribute(\n 'style',\n 'border: 1px solid #ddd;' +\n 'box-sizing: content-box;' +\n 'clear: both;' +\n 'min-height: 1px;' +\n 'min-width: 1px;' +\n 'outline: 0;' +\n 'overflow: hidden;' +\n 'position: relative;' +\n 'resize: both;'\n );\n\n function on_keyboard_event_closure(name) {\n return function (event) {\n return fig.key
  4835. "text/plain": [
  4836. "<IPython.core.display.Javascript object>"
  4837. ]
  4838. },
  4839. "metadata": {},
  4840. "output_type": "display_data"
  4841. },
  4842. {
  4843. "data": {
  4844. "text/html": [
  4845. "<img src=\"data:image/png;base64,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
  4846. ],
  4847. "text/plain": [
  4848. "<IPython.core.display.HTML object>"
  4849. ]
  4850. },
  4851. "metadata": {},
  4852. "output_type": "display_data"
  4853. },
  4854. {
  4855. "name": "stdout",
  4856. "output_type": "stream",
  4857. "text": [
  4858. "f = 224.9906 ± 0.4995 Hz\n"
  4859. ]
  4860. }
  4861. ],
  4862. "source": [
  4863. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  4864. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  4865. "\n",
  4866. "yvals = val_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4867. "yvals_std = std_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4868. "xvals = dataSet_cropOD[scanAxis[0]]#.sel(blink_on_time=slice(0.005, 0.025))\n",
  4869. "\n",
  4870. "fitted_qtys_1 = yvals.to_numpy()\n",
  4871. "scan_para = xvals.to_numpy()\n",
  4872. "fitted_qtys_err_1 = yvals_std.to_numpy()\n",
  4873. "\n",
  4874. "\n",
  4875. "plt.figure()\n",
  4876. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 3, 147, 3e2, 0.1]))\n",
  4877. "freqdata = np.linspace(0.005, 19e-3, 500)\n",
  4878. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  4879. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  4880. "plt.xlabel('hold time after switch on the trap (s)')\n",
  4881. "plt.ylabel('Center along gravity direction (pixels)')\n",
  4882. "plt.tight_layout()\n",
  4883. "plt.grid(visible=1)\n",
  4884. "#plt.ylim([0,750])\n",
  4885. "#plt.xlim([0.004, 0.025])\n",
  4886. "#plt.legend(prop={'size': 14})\n",
  4887. "plt.show()\n",
  4888. "\n",
  4889. "f_x = popt_x[3]\n",
  4890. "df_x = pcov_x[3][3]**0.5\n",
  4891. "\n",
  4892. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  4893. ]
  4894. },
  4895. {
  4896. "cell_type": "markdown",
  4897. "metadata": {},
  4898. "source": [
  4899. "## Truncation: 0.8"
  4900. ]
  4901. },
  4902. {
  4903. "cell_type": "code",
  4904. "execution_count": null,
  4905. "metadata": {},
  4906. "outputs": [],
  4907. "source": [
  4908. "%matplotlib notebook\n",
  4909. "shotNum = \"0036\"\n",
  4910. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  4911. "\n",
  4912. "dataSetDict = {\n",
  4913. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  4914. " for i in [0]\n",
  4915. "}\n",
  4916. "\n",
  4917. "dataSet = dataSetDict[\"camera_0\"]\n",
  4918. "\n",
  4919. "print_scanAxis(dataSet)\n",
  4920. "\n",
  4921. "scanAxis = get_scanAxis(dataSet)\n",
  4922. "\n",
  4923. "dataSet = auto_rechunk(dataSet)\n",
  4924. "\n",
  4925. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  4926. "\n",
  4927. "imageAnalyser.center = (800, 900)\n",
  4928. "imageAnalyser.span = (300, 300)\n",
  4929. "imageAnalyser.fraction = (0.1, 0.1)\n",
  4930. "\n",
  4931. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  4932. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  4933. "\n",
  4934. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  4935. "Ncount_mean = calculate_mean(Ncount)\n",
  4936. "Ncount_std = calculate_std(Ncount)\n",
  4937. "\n",
  4938. "fig = plt.figure()\n",
  4939. "ax = fig.gca()\n",
  4940. "Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='ob')\n",
  4941. "plt.ylabel('NCount')\n",
  4942. "plt.tight_layout()\n",
  4943. "plt.grid(visible=1)\n",
  4944. "plt.show()"
  4945. ]
  4946. },
  4947. {
  4948. "cell_type": "code",
  4949. "execution_count": null,
  4950. "metadata": {},
  4951. "outputs": [],
  4952. "source": [
  4953. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 1, 300, 300))\n",
  4954. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  4955. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  4956. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  4957. ]
  4958. },
  4959. {
  4960. "cell_type": "code",
  4961. "execution_count": null,
  4962. "metadata": {},
  4963. "outputs": [],
  4964. "source": [
  4965. "val = fitAnalyser.get_fit_value(fitResult)\n",
  4966. "std = fitAnalyser.get_fit_std(fitResult)\n",
  4967. "\n",
  4968. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  4969. "\n",
  4970. "# dataKey = 'sigmax'\n",
  4971. "# dataKey = 'centerx'\n",
  4972. "# dataKey = 'sigmay'\n",
  4973. "dataKey = 'centery'\n",
  4974. "\n",
  4975. "# val_mean = val[dataKey].mean(dim='runs')\n",
  4976. "# std_mean = val[dataKey].std(dim='runs')\n",
  4977. "\n",
  4978. "val_mean = calculate_mean(val[dataKey])\n",
  4979. "std_mean = calculate_std(val[dataKey])\n",
  4980. "\n",
  4981. "fig = plt.figure()\n",
  4982. "ax = fig.gca()\n",
  4983. "\n",
  4984. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  4985. "\n",
  4986. "plt.grid()\n",
  4987. "plt.show()"
  4988. ]
  4989. },
  4990. {
  4991. "cell_type": "code",
  4992. "execution_count": null,
  4993. "metadata": {},
  4994. "outputs": [],
  4995. "source": [
  4996. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  4997. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  4998. "\n",
  4999. "yvals = val_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  5000. "yvals_std = std_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  5001. "xvals = dataSet_cropOD[scanAxis[0]]#.sel(blink_on_time=slice(0.005, 0.025))\n",
  5002. "\n",
  5003. "fitted_qtys_1 = yvals.to_numpy()\n",
  5004. "scan_para = xvals.to_numpy()\n",
  5005. "fitted_qtys_err_1 = yvals_std.to_numpy()\n",
  5006. "\n",
  5007. "\n",
  5008. "plt.figure()\n",
  5009. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 3, 147, 2e2, 0.1]))\n",
  5010. "freqdata = np.linspace(0.005, 19e-3, 500)\n",
  5011. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  5012. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  5013. "plt.xlabel('hold time after switch on the trap (s)')\n",
  5014. "plt.ylabel('Center along gravity direction (pixels)')\n",
  5015. "plt.tight_layout()\n",
  5016. "plt.grid(visible=1)\n",
  5017. "#plt.ylim([0,750])\n",
  5018. "#plt.xlim([0.004, 0.025])\n",
  5019. "#plt.legend(prop={'size': 14})\n",
  5020. "plt.show()\n",
  5021. "\n",
  5022. "f_x = popt_x[3]\n",
  5023. "df_x = pcov_x[3][3]**0.5\n",
  5024. "\n",
  5025. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  5026. ]
  5027. },
  5028. {
  5029. "cell_type": "markdown",
  5030. "metadata": {},
  5031. "source": [
  5032. "## Truncation: 0.85"
  5033. ]
  5034. },
  5035. {
  5036. "cell_type": "code",
  5037. "execution_count": null,
  5038. "metadata": {},
  5039. "outputs": [],
  5040. "source": [
  5041. "%matplotlib notebook\n",
  5042. "shotNum = \"0038\"\n",
  5043. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  5044. "\n",
  5045. "dataSetDict = {\n",
  5046. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  5047. " for i in [0]\n",
  5048. "}\n",
  5049. "\n",
  5050. "dataSet = dataSetDict[\"camera_0\"]\n",
  5051. "\n",
  5052. "print_scanAxis(dataSet)\n",
  5053. "\n",
  5054. "scanAxis = get_scanAxis(dataSet)\n",
  5055. "\n",
  5056. "dataSet = auto_rechunk(dataSet)\n",
  5057. "\n",
  5058. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  5059. "\n",
  5060. "imageAnalyser.center = (800, 900)\n",
  5061. "imageAnalyser.span = (300, 300)\n",
  5062. "imageAnalyser.fraction = (0.1, 0.1)\n",
  5063. "\n",
  5064. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  5065. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  5066. "\n",
  5067. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  5068. "Ncount_mean = calculate_mean(Ncount)\n",
  5069. "Ncount_std = calculate_std(Ncount)\n",
  5070. "\n",
  5071. "fig = plt.figure()\n",
  5072. "ax = fig.gca()\n",
  5073. "Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='ob')\n",
  5074. "plt.ylabel('NCount')\n",
  5075. "plt.tight_layout()\n",
  5076. "plt.grid(visible=1)\n",
  5077. "plt.show()"
  5078. ]
  5079. },
  5080. {
  5081. "cell_type": "code",
  5082. "execution_count": null,
  5083. "metadata": {},
  5084. "outputs": [],
  5085. "source": [
  5086. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 1, 300, 300))\n",
  5087. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  5088. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  5089. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  5090. ]
  5091. },
  5092. {
  5093. "cell_type": "code",
  5094. "execution_count": null,
  5095. "metadata": {},
  5096. "outputs": [],
  5097. "source": [
  5098. "val = fitAnalyser.get_fit_value(fitResult)\n",
  5099. "std = fitAnalyser.get_fit_std(fitResult)\n",
  5100. "\n",
  5101. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  5102. "\n",
  5103. "# dataKey = 'sigmax'\n",
  5104. "# dataKey = 'centerx'\n",
  5105. "# dataKey = 'sigmay'\n",
  5106. "dataKey = 'centery'\n",
  5107. "\n",
  5108. "# val_mean = val[dataKey].mean(dim='runs')\n",
  5109. "# std_mean = val[dataKey].std(dim='runs')\n",
  5110. "\n",
  5111. "val_mean = calculate_mean(val[dataKey])\n",
  5112. "std_mean = calculate_std(val[dataKey])\n",
  5113. "\n",
  5114. "fig = plt.figure()\n",
  5115. "ax = fig.gca()\n",
  5116. "\n",
  5117. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  5118. "\n",
  5119. "plt.grid()\n",
  5120. "plt.show()"
  5121. ]
  5122. },
  5123. {
  5124. "cell_type": "code",
  5125. "execution_count": null,
  5126. "metadata": {},
  5127. "outputs": [],
  5128. "source": [
  5129. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  5130. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  5131. "\n",
  5132. "yvals = val_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  5133. "yvals_std = std_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  5134. "xvals = dataSet_cropOD[scanAxis[0]]#.sel(blink_on_time=slice(0.005, 0.025))\n",
  5135. "\n",
  5136. "fitted_qtys_1 = yvals.to_numpy()\n",
  5137. "scan_para = xvals.to_numpy()\n",
  5138. "fitted_qtys_err_1 = yvals_std.to_numpy()\n",
  5139. "\n",
  5140. "\n",
  5141. "plt.figure()\n",
  5142. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 3, 147, 2e2, 0.1]))\n",
  5143. "freqdata = np.linspace(0.005, 19e-3, 500)\n",
  5144. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  5145. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  5146. "plt.xlabel('hold time after switch on the trap (s)')\n",
  5147. "plt.ylabel('Center along gravity direction (pixels)')\n",
  5148. "plt.tight_layout()\n",
  5149. "plt.grid(visible=1)\n",
  5150. "#plt.ylim([0,750])\n",
  5151. "#plt.xlim([0.004, 0.025])\n",
  5152. "#plt.legend(prop={'size': 14})\n",
  5153. "plt.show()\n",
  5154. "\n",
  5155. "f_x = popt_x[3]\n",
  5156. "df_x = pcov_x[3][3]**0.5\n",
  5157. "\n",
  5158. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  5159. ]
  5160. },
  5161. {
  5162. "cell_type": "markdown",
  5163. "metadata": {},
  5164. "source": [
  5165. "## Truncation: 0.9"
  5166. ]
  5167. },
  5168. {
  5169. "cell_type": "code",
  5170. "execution_count": null,
  5171. "metadata": {},
  5172. "outputs": [],
  5173. "source": [
  5174. "%matplotlib notebook\n",
  5175. "shotNum = \"0040\"\n",
  5176. "filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
  5177. "\n",
  5178. "dataSetDict = {\n",
  5179. " dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
  5180. " for i in [0]\n",
  5181. "}\n",
  5182. "\n",
  5183. "dataSet = dataSetDict[\"camera_0\"]\n",
  5184. "\n",
  5185. "print_scanAxis(dataSet)\n",
  5186. "\n",
  5187. "scanAxis = get_scanAxis(dataSet)\n",
  5188. "\n",
  5189. "dataSet = auto_rechunk(dataSet)\n",
  5190. "\n",
  5191. "dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
  5192. "\n",
  5193. "imageAnalyser.center = (800, 900)\n",
  5194. "imageAnalyser.span = (300, 300)\n",
  5195. "imageAnalyser.fraction = (0.1, 0.1)\n",
  5196. "\n",
  5197. "dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
  5198. "dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
  5199. "\n",
  5200. "Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
  5201. "Ncount_mean = calculate_mean(Ncount)\n",
  5202. "Ncount_std = calculate_std(Ncount)\n",
  5203. "\n",
  5204. "fig = plt.figure()\n",
  5205. "ax = fig.gca()\n",
  5206. "Ncount_mean.plot.errorbar(ax=ax, yerr = None, fmt='ob')\n",
  5207. "plt.ylabel('NCount')\n",
  5208. "plt.tight_layout()\n",
  5209. "plt.grid(visible=1)\n",
  5210. "plt.show()"
  5211. ]
  5212. },
  5213. {
  5214. "cell_type": "code",
  5215. "execution_count": null,
  5216. "metadata": {},
  5217. "outputs": [],
  5218. "source": [
  5219. "dataSet_cropOD_chunk = dataSet_cropOD.chunk((1, 1, 300, 300))\n",
  5220. "fitAnalyser = FitAnalyser(\"Gaussian-2D\", fitDim=2)\n",
  5221. "params = fitAnalyser.guess(dataSet_cropOD_chunk, dask=\"parallelized\")\n",
  5222. "fitResult = fitAnalyser.fit(dataSet_cropOD_chunk, params, dask=\"parallelized\").load()"
  5223. ]
  5224. },
  5225. {
  5226. "cell_type": "code",
  5227. "execution_count": null,
  5228. "metadata": {},
  5229. "outputs": [],
  5230. "source": [
  5231. "val = fitAnalyser.get_fit_value(fitResult)\n",
  5232. "std = fitAnalyser.get_fit_std(fitResult)\n",
  5233. "\n",
  5234. "fitCurve = fitAnalyser.eval(fitResult, x=np.arange(300), y=np.arange(300), dask=\"parallelized\").load()\n",
  5235. "\n",
  5236. "# dataKey = 'sigmax'\n",
  5237. "# dataKey = 'centerx'\n",
  5238. "# dataKey = 'sigmay'\n",
  5239. "dataKey = 'centery'\n",
  5240. "\n",
  5241. "# val_mean = val[dataKey].mean(dim='runs')\n",
  5242. "# std_mean = val[dataKey].std(dim='runs')\n",
  5243. "\n",
  5244. "val_mean = calculate_mean(val[dataKey])\n",
  5245. "std_mean = calculate_std(val[dataKey])\n",
  5246. "\n",
  5247. "fig = plt.figure()\n",
  5248. "ax = fig.gca()\n",
  5249. "\n",
  5250. "val_mean.plot.errorbar(yerr=std_mean, fmt='--ob')\n",
  5251. "\n",
  5252. "plt.grid()\n",
  5253. "plt.show()"
  5254. ]
  5255. },
  5256. {
  5257. "cell_type": "code",
  5258. "execution_count": null,
  5259. "metadata": {},
  5260. "outputs": [],
  5261. "source": [
  5262. "def damp_osci(t, t0, A, B, nu, gamma):\n",
  5263. " return A * np.exp(-gamma*t)*np.sin(2*np.pi*nu*(t-t0)) + B\n",
  5264. "\n",
  5265. "yvals = val_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  5266. "yvals_std = std_mean#.sel(blink_on_time=slice(0.005, 0.025))\n",
  5267. "xvals = dataSet_cropOD[scanAxis[0]]#.sel(blink_on_time=slice(0.005, 0.025))\n",
  5268. "\n",
  5269. "fitted_qtys_1 = yvals.to_numpy()\n",
  5270. "scan_para = xvals.to_numpy()\n",
  5271. "fitted_qtys_err_1 = yvals_std.to_numpy()\n",
  5272. "\n",
  5273. "\n",
  5274. "plt.figure()\n",
  5275. "popt_x, pcov_x = curve_fit(damp_osci, scan_para, fitted_qtys_1, np.array([0, 3, 147, 2e2, 0.1]))\n",
  5276. "freqdata = np.linspace(0.005, 19e-3, 500)\n",
  5277. "plt.plot(freqdata, damp_osci(freqdata, *popt_x), 'g--',label='fit: t0=%5.3f, A=%5.3f, B=%5.3f, nu=%5.3f, Gamma=%5.3f' % tuple(popt_x))\n",
  5278. "plt.errorbar(scan_para, fitted_qtys_1, yerr=fitted_qtys_err_1, fmt='or')\n",
  5279. "plt.xlabel('hold time after switch on the trap (s)')\n",
  5280. "plt.ylabel('Center along gravity direction (pixels)')\n",
  5281. "plt.tight_layout()\n",
  5282. "plt.grid(visible=1)\n",
  5283. "#plt.ylim([0,750])\n",
  5284. "#plt.xlim([0.004, 0.025])\n",
  5285. "#plt.legend(prop={'size': 14})\n",
  5286. "plt.show()\n",
  5287. "\n",
  5288. "f_x = popt_x[3]\n",
  5289. "df_x = pcov_x[3][3]**0.5\n",
  5290. "\n",
  5291. "print('f = %.4f \\u00B1 %.4f Hz'% tuple([np.abs(f_x),df_x]))"
  5292. ]
  5293. },
  5294. {
  5295. "cell_type": "code",
  5296. "execution_count": null,
  5297. "metadata": {},
  5298. "outputs": [],
  5299. "source": []
  5300. },
  5301. {
  5302. "cell_type": "code",
  5303. "execution_count": null,
  5304. "metadata": {},
  5305. "outputs": [],
  5306. "source": []
  5307. },
  5308. {
  5309. "cell_type": "code",
  5310. "execution_count": null,
  5311. "metadata": {},
  5312. "outputs": [],
  5313. "source": []
  5314. },
  5315. {
  5316. "cell_type": "code",
  5317. "execution_count": null,
  5318. "metadata": {},
  5319. "outputs": [],
  5320. "source": []
  5321. },
  5322. {
  5323. "cell_type": "code",
  5324. "execution_count": null,
  5325. "metadata": {},
  5326. "outputs": [],
  5327. "source": []
  5328. },
  5329. {
  5330. "cell_type": "code",
  5331. "execution_count": null,
  5332. "metadata": {},
  5333. "outputs": [],
  5334. "source": []
  5335. },
  5336. {
  5337. "cell_type": "code",
  5338. "execution_count": null,
  5339. "metadata": {},
  5340. "outputs": [],
  5341. "source": []
  5342. },
  5343. {
  5344. "cell_type": "code",
  5345. "execution_count": 13,
  5346. "metadata": {},
  5347. "outputs": [
  5348. {
  5349. "data": {
  5350. "image/png": "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
  5351. "text/plain": [
  5352. "<Figure size 640x480 with 1 Axes>"
  5353. ]
  5354. },
  5355. "metadata": {},
  5356. "output_type": "display_data"
  5357. },
  5358. {
  5359. "data": {
  5360. "image/png": "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
  5361. "text/plain": [
  5362. "<Figure size 640x480 with 1 Axes>"
  5363. ]
  5364. },
  5365. "metadata": {},
  5366. "output_type": "display_data"
  5367. },
  5368. {
  5369. "data": {
  5370. "image/png": "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
  5371. "text/plain": [
  5372. "<Figure size 640x480 with 1 Axes>"
  5373. ]
  5374. },
  5375. "metadata": {},
  5376. "output_type": "display_data"
  5377. }
  5378. ],
  5379. "source": [
  5380. "tf_z = [299.3777, 288.1736, 272.4744, 259.5129, 241.8841, 233.8030, 229.2665, 219.5115, 211.4388, 199.3276, 184.9726]\n",
  5381. "dtf_z = [3.7588, 3.5503,1.2193, 0.7946, 1.7848, 1.4811, 0.7289, 1.0038, 0.7646, 1.0321, 1.0431]\n",
  5382. "trunc = [0.5, 0.55, 0.6, 0.65, 0.7, 0.725, 0.75, 0.775, 0.8, 0.85, 0.9]\n",
  5383. "p_1 = [0.507, 0.449, 0.398, 0.354, 0.315, 0.298, 0.282, 0.266, 0.252, 0.226, 0.204]\n",
  5384. "p_2 = [3.88, 3.38, 2.911, 2.474, 2.066, 1.873, 1.687, 1.507, 1.33, 1.003, 0.696]\n",
  5385. " \n",
  5386. "plt.figure()\n",
  5387. "plt.errorbar(p_1, tf_z, yerr = dtf_z, fmt = 'ob')\n",
  5388. "plt.xlabel('Power of Arm 1')\n",
  5389. "plt.ylabel('Vertical TF (Hz)')\n",
  5390. "plt.tight_layout()\n",
  5391. "plt.grid(visible=1)\n",
  5392. "\n",
  5393. "tf_y = [49.3970, 47.4535, 43.9127, 40.8258, 36.6638, 35.6111, 34.3650, 32.0196, 29.9294, 26.5413, 22.4257]\n",
  5394. "dtf_y = [1.5574, 0.5536, 0.3721, 0.4734, 0.9428, 0.7725, 0.3264, 0.2862, 0.1988, 0.2477, 0.3690]\n",
  5395. "trunc = [0.5, 0.55, 0.6, 0.65, 0.7, 0.725, 0.75, 0.775, 0.8, 0.85, 0.9]\n",
  5396. " \n",
  5397. "plt.figure()\n",
  5398. "plt.errorbar(p_2, tf_y, yerr = dtf_y, fmt = 'oy')\n",
  5399. "plt.xlabel('Power of Arm 2')\n",
  5400. "plt.ylabel('Axial TF (Hz)')\n",
  5401. "plt.tight_layout()\n",
  5402. "plt.grid(visible=1)\n",
  5403. "\n",
  5404. "tf_x = [303.5930, 286.0152, 272.6675, 253.6669, 238.8665, 232.4375, 224.9906, 218.7975, 210.9468, 196.7401, 180.0950]\n",
  5405. "dtf_x = [6.9704, 2.5433, 0.6739, 0.5183, 0.3901, 0.3994, 0.4995, 0.3777, 0.3864, 0.3636, 0.4790]\n",
  5406. "trunc = [0.5, 0.55, 0.6, 0.65, 0.7, 0.725, 0.75, 0.775, 0.8, 0.85, 0.9]\n",
  5407. " \n",
  5408. "plt.figure()\n",
  5409. "plt.errorbar(p_1, tf_x, yerr = dtf_x, fmt = 'og')\n",
  5410. "plt.xlabel('Power of Arm 1')\n",
  5411. "plt.ylabel('Horz TF (Hz)')\n",
  5412. "plt.tight_layout()\n",
  5413. "plt.grid(visible=1)"
  5414. ]
  5415. },
  5416. {
  5417. "cell_type": "code",
  5418. "execution_count": 17,
  5419. "metadata": {},
  5420. "outputs": [
  5421. {
  5422. "name": "stdout",
  5423. "output_type": "stream",
  5424. "text": [
  5425. "v_x = 27451.697 Hz\n"
  5426. ]
  5427. }
  5428. ],
  5429. "source": [
  5430. "import numpy as np\n",
  5431. "from astropy import units as u, constants as ac\n",
  5432. "\n",
  5433. "DY_POLARIZABILITY = 184.4 # in a.u, most precise measured value of Dy polarizability\n",
  5434. "DY_MASS = 164*u.u\n",
  5435. "\n",
  5436. "def horz_tf(x, w_x, w_z):\n",
  5437. " w_x = w_x*u.um\n",
  5438. " w_z = w_z*u.um\n",
  5439. " x = x * u.W\n",
  5440. " alpha = DY_POLARIZABILITY\n",
  5441. " m = DY_MASS\n",
  5442. " TrapDepth = 2*x/(np.pi*w_x*w_z) * (1 / (2 * ac.eps0 * ac.c)) * alpha * (4 * np.pi * ac.eps0 * ac.a0**3)\n",
  5443. " ret = ((1/(2 * np.pi)) * np.sqrt(4 * TrapDepth / (m*w_x**2))).decompose()\n",
  5444. " return ret.value\n",
  5445. " \n",
  5446. "def vert_tf(x, w_x, w_z):\n",
  5447. " w_x = w_x*u.um\n",
  5448. " w_z = w_z*u.um\n",
  5449. " x = x * u.W\n",
  5450. " alpha = DY_POLARIZABILITY\n",
  5451. " m = DY_MASS\n",
  5452. " TrapDepth = 2*x/(np.pi*w_x*w_z) * (1 / (2 * ac.eps0 * ac.c)) * alpha * (4 * np.pi * ac.eps0 * ac.a0**3)\n",
  5453. " ret = ((1/(2 * np.pi)) * np.sqrt(4 * TrapDepth / (m*w_z**2))).decompose()\n",
  5454. " return ret.value\n",
  5455. "\n",
  5456. "\n",
  5457. "v = horz_tf(30, 30, 0.2)\n",
  5458. "print('v_x = %.3f Hz' %(v))"
  5459. ]
  5460. },
  5461. {
  5462. "cell_type": "code",
  5463. "execution_count": 42,
  5464. "metadata": {},
  5465. "outputs": [
  5466. {
  5467. "data": {
  5468. "text/html": [
  5469. "<h2> Model</h2> Model(horz_tf) <h2>Fit Statistics</h2><table><tr><td>fitting method</td><td>leastsq</td><td></td></tr><tr><td># function evals</td><td>26</td><td></td></tr><tr><td># data points</td><td>9</td><td></td></tr><tr><td># variables</td><td>2</td><td></td></tr><tr><td>chi-square</td><td> 79.9011718</td><td></td></tr><tr><td>reduced chi-square</td><td> 11.4144531</td><td></td></tr><tr><td>Akaike info crit.</td><td> 23.6520935</td><td></td></tr><tr><td>Bayesian info crit.</td><td> 24.0465426</td><td></td></tr></table><h2>Variables</h2><table><tr><th> name </th><th> value </th><th> standard error </th><th> relative error </th><th> initial value </th><th> min </th><th> max </th><th> vary </th></tr><tr><td> w_x </td><td> 24.1519450 </td><td> 292150.064 </td><td> (1209633.69%) </td><td> 25 </td><td> 0.00000000 </td><td> 100.000000 </td><td> True </td></tr><tr><td> w_z </td><td> 52.4613985 </td><td> 1903772.36 </td><td> (3628901.28%) </td><td> 35 </td><td> 0.00000000 </td><td> 100.000000 </td><td> True </td></tr></table><h2>Correlations (unreported correlations are < 0.100)</h2><table><tr><td>w_x</td><td>w_z</td><td>-1.0000</td></tr></table>"
  5470. ],
  5471. "text/plain": [
  5472. "<lmfit.model.ModelResult at 0x1b68d072d60>"
  5473. ]
  5474. },
  5475. "execution_count": 42,
  5476. "metadata": {},
  5477. "output_type": "execute_result"
  5478. },
  5479. {
  5480. "data": {
  5481. "image/png": "iVBORw0KGgoAAAANSUhEUgAAAm8AAAHPCAYAAAAFwj37AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABjnklEQVR4nO3dfXzO9f///9uxmWNONmzIbISUbU56i0RRzs1J0ZLSmSakyJbIyYZNM50gcxIpjUrFm1GkOfdpnay3Nyl+VAphJszJFjbHttfvD1/H29GGbce2Y8d2v14uu1w6nq/n63k8Xg+v6eH5er2eL5NhGAYiIiIi4hRcHB2AiIiIiOSfijcRERERJ6LiTURERMSJqHgTERERcSIq3kRERESciIo3ERERESei4k1ERETEiVRwdAClWU5ODsePH8fDwwOTyeTocERERKQMMwyD9PR06tati4vL9efXVLzdwPHjx6lXr56jwxAREZFy5OjRo/j5+V13u4q3G/Dw8ACuJNHT07PQ41gsFjZu3Ej37t1xc3MrqvDKHeXRfsqh/ZRD+ymHRUN5tF9py2FaWhr16tWz1h/Xo+LtBq5eKvX09LS7eKtcuTKenp6l4uRwVsqj/ZRD+ymH9lMOi4byaL/SmsOb3aqlBxZEREREnIiKNxEREREnouJNRERExImoeBMRERFxIireRERERJyIijcRERERJ6LiTURERMSJqHgTERERcSIq3kRERESciIo3ERERESei4k1ERETEiah4ExEREXEiKt5EREREnIiKNxEREREnouJNRERExImoeBMRERG5gQuXL2CKMmGKMnHh8gVHh6PiTURERMSZqHgTERERcSIq3kRERESciIo3ERERESei4k1ERETEiah4ExEREXEiKt5EREREnIiKNxEREREnouJNRERExImoeBMRERFxIireRERERJyIijcRERERJ6LiTURERMSJqHgTERERuYGs7Cz4FciCr//8muycbIfGo+JNRERE5DoiP4ikVpNa8CmwC3p90osGsQ2I3x/vsJhUvImIiIj8w3/+8x9atGtB1HNRWI5awA3IurItOS2Z/iv6O6yAU/EmIiIi8v/s27eP4OBg7rnnHvYk7QFX4B4gFLj3Sh8DA4CwhDCHXEJV8SYiIiLy/4wdO5bVq1fj4uIC/wJeAnoCVW37GRgcTTtK4pHEEo+x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
  5482. "text/plain": [
  5483. "<Figure size 640x480 with 1 Axes>"
  5484. ]
  5485. },
  5486. "metadata": {},
  5487. "output_type": "display_data"
  5488. }
  5489. ],
  5490. "source": [
  5491. "from lmfit import Model\n",
  5492. "\n",
  5493. "fitModel = Model(horz_tf, independent_vars=['x'], param_names=['w_x', 'w_z'], nan_policy='raise')\n",
  5494. "params = fitModel.make_params()\n",
  5495. "params['w_x'].set(value=25, min=0, max=100)\n",
  5496. "params['w_z'].set(value=35, min=0, max=100)\n",
  5497. "fitResult = fitModel.fit(data=np.array(tf_z[:-2]), params=params, x=np.array(p_1[:-2]))\n",
  5498. "\n",
  5499. "plt.figure()\n",
  5500. "plt.errorbar(p_1, tf_x, yerr = dtf_x, fmt = 'og')\n",
  5501. "plt.errorbar(p_1[:-2], fitResult.best_fit, fmt = 'k--')\n",
  5502. "plt.xlabel('Power of Arm 1')\n",
  5503. "plt.ylabel('Horz TF (Hz)')\n",
  5504. "plt.tight_layout()\n",
  5505. "plt.grid(visible=1)\n",
  5506. "\n",
  5507. "fitResult"
  5508. ]
  5509. },
  5510. {
  5511. "cell_type": "code",
  5512. "execution_count": null,
  5513. "metadata": {},
  5514. "outputs": [],
  5515. "source": []
  5516. },
  5517. {
  5518. "cell_type": "code",
  5519. "execution_count": null,
  5520. "metadata": {},
  5521. "outputs": [],
  5522. "source": []
  5523. },
  5524. {
  5525. "cell_type": "code",
  5526. "execution_count": 68,
  5527. "metadata": {
  5528. "scrolled": true
  5529. },
  5530. "outputs": [
  5531. {
  5532. "name": "stdout",
  5533. "output_type": "stream",
  5534. "text": [
  5535. "[0.005, 0.0057, 0.0064, 0.0071, 0.0078, 0.0085, 0.0092, 0.0099, 0.0106, 0.0113, 0.012, 0.0127, 0.0134, 0.0141, 0.0148, 0.0155, 0.0162, 0.0169, 0.0176, 0.0183, 0.019, 0.0197]\n",
  5536. "22\n"
  5537. ]
  5538. },
  5539. {
  5540. "data": {
  5541. "text/plain": [
  5542. "0.01235"
  5543. ]
  5544. },
  5545. "execution_count": 68,
  5546. "metadata": {},
  5547. "output_type": "execute_result"
  5548. }
  5549. ],
  5550. "source": [
  5551. "l = list(np.arange(0.005, 0.02, 7e-4))\n",
  5552. "# l = np.logspace(np.log10(250e-6), np.log10(500e-3), num=15)\n",
  5553. "\n",
  5554. "l = [round(item, 7) for item in l]\n",
  5555. "#random.shuffle(l)\n",
  5556. "\n",
  5557. "print(l)\n",
  5558. "print(len(l))\n",
  5559. "np.mean(l)"
  5560. ]
  5561. },
  5562. {
  5563. "cell_type": "code",
  5564. "execution_count": null,
  5565. "metadata": {},
  5566. "outputs": [],
  5567. "source": [
  5568. "pixel = 5.86e-6\n",
  5569. "M = 0.6827\n",
  5570. "F = (1/(0.3725*8.4743e-14)) * (pixel / M)**2\n",
  5571. "NCount = 85000\n",
  5572. "AtomNumber = NCount * F / 1e8\n",
  5573. "print(AtomNumber)"
  5574. ]
  5575. },
  5576. {
  5577. "cell_type": "code",
  5578. "execution_count": null,
  5579. "metadata": {},
  5580. "outputs": [],
  5581. "source": [
  5582. "muB = 9.274e-24\n",
  5583. "hbar = 6.626e-34 / (2 * np.pi)\n",
  5584. "gJ = 1.24\n",
  5585. "\n",
  5586. "f = ufloat(10108.46982, 0.26282) \n",
  5587. "Delta = 2 * np.pi * f * 1e3\n",
  5588. "\n",
  5589. "Bz = (Delta*hbar) / (muB*gJ)\n",
  5590. "print(Bz * 1e4)"
  5591. ]
  5592. },
  5593. {
  5594. "cell_type": "code",
  5595. "execution_count": null,
  5596. "metadata": {},
  5597. "outputs": [],
  5598. "source": [
  5599. "muB = 9.274e-24\n",
  5600. "hbar = 6.626e-34 / (2 * np.pi)\n",
  5601. "gJ = 1.24\n",
  5602. "Bz = 5.8854 * 1e-4\n",
  5603. "(Bz*muB*gJ/hbar) / (2 * np.pi * 1e6)"
  5604. ]
  5605. },
  5606. {
  5607. "cell_type": "markdown",
  5608. "metadata": {},
  5609. "source": [
  5610. "## ODT 1 Calibration"
  5611. ]
  5612. },
  5613. {
  5614. "cell_type": "code",
  5615. "execution_count": null,
  5616. "metadata": {},
  5617. "outputs": [],
  5618. "source": [
  5619. "v_high = 2.7\n",
  5620. "\"\"\"High Power\"\"\"\n",
  5621. "P_arm1_high = 5.776 * v_high - 0.683\n",
  5622. "\n",
  5623. "v_mid = 0.2076\n",
  5624. "\"\"\"Intermediate Power\"\"\"\n",
  5625. "P_arm1_mid = 5.815 * v_mid - 0.03651\n",
  5626. "\n",
  5627. "v_low = 0.062\n",
  5628. "\"\"\"Low Power\"\"\"\n",
  5629. "P_arm1_low = 5271 * v_low - 27.5\n",
  5630. "\n",
  5631. "print(round(P_arm1_high, 3))\n",
  5632. "print(round(P_arm1_mid, 3))\n",
  5633. "print(round(P_arm1_low, 3))"
  5634. ]
  5635. },
  5636. {
  5637. "cell_type": "markdown",
  5638. "metadata": {},
  5639. "source": [
  5640. "## ODT 2 Power Calibration"
  5641. ]
  5642. },
  5643. {
  5644. "cell_type": "code",
  5645. "execution_count": null,
  5646. "metadata": {},
  5647. "outputs": [],
  5648. "source": [
  5649. "v = 0.842\n",
  5650. "P_arm2 = 2.302 * v - 0.06452\n",
  5651. "print(round(P_arm2, 3))"
  5652. ]
  5653. }
  5654. ],
  5655. "metadata": {
  5656. "kernelspec": {
  5657. "display_name": "Python 3 (ipykernel)",
  5658. "language": "python",
  5659. "name": "python3"
  5660. },
  5661. "language_info": {
  5662. "codemirror_mode": {
  5663. "name": "ipython",
  5664. "version": 3
  5665. },
  5666. "file_extension": ".py",
  5667. "mimetype": "text/x-python",
  5668. "name": "python",
  5669. "nbconvert_exporter": "python",
  5670. "pygments_lexer": "ipython3",
  5671. "version": "3.9.12"
  5672. },
  5673. "vscode": {
  5674. "interpreter": {
  5675. "hash": "c05913ad4f24fdc6b2418069394dc5835b1981849b107c9ba6df693aafd66650"
  5676. }
  5677. }
  5678. },
  5679. "nbformat": 4,
  5680. "nbformat_minor": 2
  5681. }