analyseScript/Analyser/Joschka/20230630_Data_Analysis copy.ipynb

844 lines
764 KiB
Plaintext
Raw Normal View History

2023-09-14 14:13:49 +02:00
{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Import supporting package"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import xarray as xr\n",
"import numpy as np\n",
"import copy\n",
"\n",
"from uncertainties import ufloat\n",
"from uncertainties import unumpy as unp\n",
"from uncertainties import umath\n",
"import random\n",
"import matplotlib.pyplot as plt\n",
"plt.rcParams['font.size'] = 12\n",
"\n",
"from DataContainer.ReadData import read_hdf5_file\n",
"from Analyser.ImagingAnalyser import ImageAnalyser\n",
"from Analyser.FitAnalyser import FitAnalyser\n",
"from Analyser.FitAnalyser import NewFitModel, DensityProfileBEC2dModel\n",
"from ToolFunction.ToolFunction import *\n",
"\n",
"from scipy.optimize import curve_fit\n",
"\n",
"from ToolFunction.HomeMadeXarrayFunction import errorbar, dataarray_plot_errorbar\n",
"xr.plot.dataarray_plot.errorbar = errorbar\n",
"xr.plot.accessor.DataArrayPlotAccessor.errorbar = dataarray_plot_errorbar\n",
"\n",
"imageAnalyser = ImageAnalyser()\n",
"\n",
"import Analyser.FitAnalyser as fa\n",
"# %matplotlib notebook"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Start a client for parallel computing"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"dict_keys(['camera_3'])\n",
"The detected scaning axes and values are: \n",
"\n",
"{}\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.QuadMesh at 0x2729cb61be0>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAG/CAYAAACjYSiTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9f5RdV3nmiX9sydhXuKyosIvYBkv0WEYCq9opGASIcZmODKKJnQljrE5C3EoAJ/kO5QESYJzJLEJ60SSkQxYoDcFJdwQGOgIn3WAmOLEysTrIYELK7lKSqractgQ2xoVTsl2Oykay/f1jn6f2c967z723SlWyzNxnrbvuvefnPvvss/ez3/d533PK008//TR99NFHH3300Ucffczj1Ge6AH300UcfffTRRx8nG/oEqY8++uijjz766COgT5D66KOPPvroo48+AvoEqY8++uijjz766COgT5D66KOPPvroo48+AvoEqY8++uijjz766COgT5D66KOPPvroo48+AvoEqY8++uijjz766COgT5D66KOPPvroo48+AvoEqY8++uijjz766COgT5D66KOPPvroo4+e8Xd/93e8+c1v5p/9s3/GqlWrOPvss7n00ku5+eabe9r/4Ycf5tprr+Wcc87huc99Lq997WsZHx9f5lIvHCuf6QL00UcfffTRRx/PHhw6dIjZ2Vn+9b/+15x33nkcOXKEP/7jP+bKK6/kk5/8JNdee23jvk899RRvfOMb+W//7b/xnve8h7PPPpuPf/zjXHbZZfzN3/wN69evP4FX0hmn9F9W20cfffTRRx99HA+efPJJXvayl/H4448zNTXVuN3nP/95tm/fzhe+8AWuuuoqAL73ve9x0UUX8YY3vIHPfe5zJ6rIXdF3sfXRRx999NFHH8eFFStW8MIXvpCHH36443Y33XQTz3/+83nTm940v+ycc87h6quv5otf/CJPPPHEMpe0d/RdbD3iqaee4jvf+Q4DAwOccsopz3Rx+uijjz76OInx9NNPMzs7y3nnnceppy6PLeK//Jf/wqFDh5bkWD/xEz/BD/3QD9WWnX766Zx++umN+/zTP/0Tc3NzPPLII3zpS1/iK1/5Ctu3b+94njvvvJORkZG2OnnFK17BDTfcwN13382mTZsWfR1LiT5B6hHf+c53eOELX/hMF6OPPvroo49nEb797W/z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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"groupList = [\n",
" \"images/MOT_3D_Camera/in_situ_absorption\",\n",
" \"images/ODT_1_Axis_Camera/in_situ_absorption\",\n",
" \"images/ODT_2_Axis_Camera/in_situ_absorption\",\n",
" \"images/Vertical_Axis_Camera/in_situ_absorption\",\n",
"]\n",
"\n",
"dskey = {\n",
" \"images/MOT_3D_Camera/in_situ_absorption\": \"camera_0\",\n",
" \"images/ODT_1_Axis_Camera/in_situ_absorption\": \"camera_1\",\n",
" \"images/ODT_2_Axis_Camera/in_situ_absorption\": \"camera_2\",\n",
" \"images/Vertical_Axis_Camera/in_situ_absorption\": \"camera_3\"\n",
"}\n",
"\n",
"img_dir = '//DyLabNAS/Data/'\n",
"SequenceName = \"Evaporative_Cooling\" + \"/\"\n",
"folderPath = img_dir + SequenceName + '2023/08/30'# get_date()\n",
"\n",
"shotNum = f\"0077\"\n",
"filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
"\n",
"dataSetDict = {\n",
" dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i])\n",
" for i in [3]\n",
"}\n",
"print(dataSetDict.keys())\n",
"\n",
"dataSet = dataSetDict[\"camera_3\"]\n",
"\n",
"\n",
"print_scanAxis(dataSet)\n",
"\n",
"scanAxis = get_scanAxis(dataSet)\n",
"\n",
"dataSet = auto_rechunk(dataSet)\n",
"\n",
"dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
"\n",
"imageAnalyser.center = (550, 750)\n",
"imageAnalyser.span = (900, 900)\n",
"imageAnalyser.fraction = (0.1, 0.1)\n",
"\n",
"dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
"dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
"\n",
"dataSet_cropOD.plot.pcolormesh(cmap='jet', col=scanAxis[0], row=scanAxis[1], vmin=0, vmax=3)\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.QuadMesh at 0x20902035310>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dataSet_cropOD.plot.pcolormesh(cmap='jet', col=scanAxis[0], row=scanAxis[1], vmin=0, vmax=1)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"from scipy.ndimage import rotate"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"data_rot = copy.deepcopy(dataSet_cropOD)\n",
"data_rot.data = rotate(data_rot.data, 36, reshape=False)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"x = dataSet_cropOD.x.data\n",
"y = dataSet_cropOD.y.data\n",
"\n",
"X,Y = np.meshgrid(x,y)\n",
"X_ = X.flatten()\n",
"Y_ = Y.flatten()\n",
"# print(y)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"ename": "type",
"evalue": "only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[25], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m params\u001b[39m.\u001b[39;49mdata[\u001b[39m'\u001b[39;49m\u001b[39mx0_bec\u001b[39;49m\u001b[39m'\u001b[39;49m]\n",
"\u001b[1;31mIndexError\u001b[0m: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices"
]
}
],
"source": [
"params.data['x0_bec']"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"shape: (900, 900)\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"x smaller y, 1d fit along x\n",
"\n",
"1d fit initialization\n",
"center = [419. 428.]\n",
"BEC widths: [ 80 339]\n",
"\n",
"1d init fit values\n",
"Name Value Min Max Stderr Vary Expr Brute_Step\n",
"amp_bec 1.145 0 2.977 None True None None\n",
"amp_th 1.145 0 2.977 None True None None\n",
"deltax 240 0 900 None True None None\n",
"sigma_bec 65.57 0 160 None True None None\n",
"sigma_th 165.8 0 inf None False 0.632*sigma_bec + 0.518*deltax None\n",
"x0_bec 419 409 429 None True None None\n",
"x0_th 419 409 429 None True None None\n",
"1d fitted values\n",
"x0_bec: 421.007, (init = 419.000), bounds = [409.00 : 429.00] \n",
"x0_th: 409.000, (init = 419.000), bounds = [409.00 : 429.00] \n",
"amp_bec: 1.923, (init = 1.145), bounds = [0.00 : 2.98] \n",
"amp_th: 0.351, (init = 1.145), bounds = [0.00 : 2.98] \n",
"sigma_bec: 63.902, (init = 65.574), bounds = [0.00 : 160.00] \n",
"sigma_th: 40.386, (init = 165.763), bounds = [0.00 : inf] \n",
"\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Init Params\n",
"Name Value Min Max Stderr Vary Expr Brute_Step\n",
"amp_bec 2.348 0 3.812 None True None None\n",
"amp_th 0.4282 0 3.812 None True None None\n",
"atom_number_bec 5.239e+04 -inf inf None False amp_bec / 5 * 2 * 3.14159265359 * sigmax_bec * sigmay_bec None\n",
"atom_number_th 3211 -inf inf None False amp_th * 2 * 3.14159265359 * 1.20206 / 1.643 * sigma_th * sigma_th None\n",
"condensate_fraction 0.9423 -inf inf None False atom_number_bec / (atom_number_bec + atom_number_th) None\n",
"rot_angle -36 -66 -6 None False None None\n",
"sigma_th 40.39 0 900 None True None None\n",
"sigmax_bec 63.9 0 160 None True None None\n",
"sigmay_bec 277.9 0 678 None True None None\n",
"x0_bec 419 409 429 None True None None\n",
"x0_th 419 409 429 None True None None\n",
"y0_bec 428 418 438 None True None None\n",
"y0_th 428 418 438 None True None None\n",
"\n",
"bval first fit\n",
"amp_bec: 2.632, (init = 2.348), bounds = [0.00 : 3.81] \n",
"amp_th: 0.000, (init = 0.428), bounds = [0.00 : 3.81] \n",
"x0_bec: 409.000, (init = 419.000), bounds = [409.00 : 429.00] \n",
"y0_bec: 438.000, (init = 428.000), bounds = [418.00 : 438.00] \n",
"x0_th: 409.002, (init = 419.000), bounds = [409.00 : 429.00] \n",
"y0_th: 438.000, (init = 428.000), bounds = [418.00 : 438.00] \n",
"sigmax_bec: 69.914, (init = 63.902), bounds = [0.00 : 160.00] \n",
"sigmay_bec: 283.514, (init = 277.869), bounds = [0.00 : 678.00] \n",
"sigma_th: 65.907, (init = 40.386), bounds = [0.00 : 900.00] \n",
"rot_angle: -36.000, (init = -36.000), bounds = [-66.00 : -6.00] \n",
"\n"
]
}
],
"source": [
"data = dataSet_cropOD\n",
"fitModel = DensityProfileBEC2dModel(is_debug=True)\n",
"fitAnalyser_1 = FitAnalyser(fitModel, fitDim=2)\n",
"params = fitAnalyser_1.guess(data, guess_kwargs=dict(rot_angle=36, vary_rot=False, pre_check=False, post_check=False))\n",
"result = fitAnalyser_1.fit(data, paramsArray=params)\n",
"# result = fitModel.fit(data.data.flatten('F'), x= X_, y=Y_)\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'plt' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[1], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m# fig, axs = plt.subplots(shape[0] , 5, figsize=(14, 4 * shape[0] ),dpi = 100)\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m fig, axs \u001b[39m=\u001b[39m plt\u001b[39m.\u001b[39msubplots(\u001b[39m1\u001b[39m , \u001b[39m3\u001b[39m, figsize\u001b[39m=\u001b[39m(\u001b[39m13\u001b[39m,\u001b[39m4\u001b[39m ),dpi \u001b[39m=\u001b[39m \u001b[39m100\u001b[39m)\n\u001b[0;32m 4\u001b[0m vmax\u001b[39m=\u001b[39m\u001b[39m2\u001b[39m\n\u001b[0;32m 5\u001b[0m cropOD \u001b[39m=\u001b[39m data\u001b[39m.\u001b[39mto_numpy()\n",
"\u001b[1;31mNameError\u001b[0m: name 'plt' is not defined"
]
}
],
"source": [
"# fig, axs = plt.subplots(shape[0] , 5, figsize=(14, 4 * shape[0] ),dpi = 100)\n",
"fig, axs = plt.subplots(1 , 3, figsize=(13,4 ),dpi = 100)\n",
"\n",
"vmax=2\n",
"cropOD = data.to_numpy()\n",
"\n",
"\n",
"# axs[i,0].set_title(f'image {i}, cond. frac = {Fitmodel.cond_frac(result[i], X, Y) *1e2:.2f} %', loc='left', fontsize=18)\n",
"man_fit = fa.density_profile_BEC_2d(X,Y, amp_bec=2.348, amp_th=0.4282, sigma_th=40.39, sigmax_bec=64, sigmay_bec=278, \n",
" x0_bec=419,x0_th=419,y0_bec=428, y0_th=428, rot_angle=-36)\n",
"\n",
"\n",
"ax = axs[0]\n",
"ax.pcolormesh(X, Y, cropOD.T, vmin=0, vmax=3, cmap='jet', shading='auto')\n",
"#plt.colorbar(art, ax=ax, label='z')\n",
"\n",
"\n",
"# Plot gaussian 2d Fit + legend including Width parameters\n",
"ax = axs[1]\n",
"\n",
"ax.pcolormesh(X, Y, man_fit, cmap='jet', shading='auto')\n",
"#plt.colorbar(art, ax=ax, label='z')\n",
"\n",
"ax = axs[2]\n",
"\n",
"ax.pcolormesh(X, Y, man_fit-cropOD.T, vmin=0, vmax=0.2, cmap='jet', shading='auto')\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"0\n",
"0.5\n",
"0.2\n",
"0.5\n",
"0.2\n",
"1.3375883632180532\n",
"\n",
"30\n",
"0.5\n",
"0.2\n",
"0.5330127018922194\n",
"-0.07679491924311221\n",
"1.3375883632180532\n",
"\n",
"60\n",
"0.5\n",
"0.2\n",
"0.4232050807568878\n",
"-0.33301270189221926\n",
"1.3375883632180534\n",
"\n",
"90\n",
"0.5\n",
"0.2\n",
"0.20000000000000004\n",
"-0.5\n",
"1.3375883632180532\n",
"\n",
"120\n",
"0.5\n",
"0.2\n",
"-0.07679491924311213\n",
"-0.5330127018922193\n",
"1.3375883632180536\n",
"\n",
"150\n",
"0.5\n",
"0.2\n",
"-0.3330127018922194\n",
"-0.42320508075688773\n",
"1.3375883632180532\n"
]
}
],
"source": [
"import Analyser.FitAnalyser as fa\n",
"import numpy as np\n",
"for angle in np.arange(0,180,30):\n",
" print()\n",
" print(angle)\n",
" print(fa.density_profile_BEC_2d(0.5,0.2, rot_angle=angle))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"x = dataSet_cropOD.x.data\n",
"y = dataSet_cropOD.y.data\n",
"\n",
"X,Y = np.meshgrid(x,y)\n",
"X_ = X.flatten()\n",
"Y_ = Y.flatten()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"keys = ['amp_bec', 'amp_th','x0_bec','y0_bec','x0_th','y0_th','sigmax_bec','sigmay_bec','sigma_th','rot_angle']"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'amp_bec': 2.63233857911176, 'amp_th': 2.2068623923891248e-06, 'x0_bec': 409.00000000030843, 'y0_bec': 437.9999999999945, 'x0_th': 409.00151243134604, 'y0_th': 437.99999780448076, 'sigmax_bec': 69.91365732143392, 'sigmay_bec': 283.51382854536473, 'sigma_th': 65.90653264163306, 'rot_angle': -36.0}\n"
]
}
],
"source": [
"res = fitAnalyser_1.get_fit_value(result)\n",
"bval = {}\n",
"for key in keys:\n",
" bval[key] = float(res[key].data)\n",
"print(bval)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 2000x400 with 5 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# fig, axs = plt.subplots(shape[0] , 5, figsize=(14, 4 * shape[0] ),dpi = 100)\n",
"shape = [1]\n",
"fig, axs = plt.subplots(shape[0] , 5, figsize=(20,4 * shape[0] ),dpi = 100)\n",
"# fig.suptitle(f'{file}_{saveprefix}: ν = ({data_x.trap_f[0]}, {data_x.trap_f[1]}, {data_x.trap_f[2]}) Hz, T = {data_x.temp[0]*1e9:.0f}nK, tof = {data_x.tof * 1e3:.0f}ms, a = {data_x.a_fac :.0f}a$_0$, N = {data_x.N:.0e} ', y=-0.005*shape[0]+0.965, fontsize=24)\n",
"# fig.suptitle('test', va='bottom')\n",
"cropOD = data.to_numpy()\n",
"for i in range(0,shape[0]):\n",
"\n",
" # axs[i,0].set_title(f'image {i}, cond. frac = {Fitmodel.cond_frac(result[i], X, Y) *1e2:.2f} %', loc='left', fontsize=18)\n",
" man_fit = fa.density_profile_BEC_2d(X,Y, amp_bec=2.348, amp_th=0.4282, sigma_th=40.39, sigmax_bec=64, sigmay_bec=278, \n",
" x0_bec=419,x0_th=419,y0_bec=428, y0_th=428, rot_angle=-36)\n",
" \n",
" # bval = result.best_values\n",
" fit = fa.density_profile_BEC_2d(X,Y, **bval)\n",
" vmax = np.max(cropOD)\n",
" # vmax = 1\n",
"\n",
" if bval['amp_bec'] > bval['amp_th']:\n",
" cen_str = 'bec'\n",
" else:\n",
" cen_str = 'th'\n",
" cen_x = round(bval[f'x0_{cen_str}'])\n",
" cen_y = round(bval[f'y0_{cen_str}'])\n",
"\n",
" ax = axs[0]\n",
" ax.pcolormesh(X, Y, cropOD.T, vmin=0, vmax=vmax, cmap='jet', shading='auto')\n",
" #plt.colorbar(art, ax=ax, label='z')\n",
"\n",
"\n",
" # Plot gaussian 2d Fit + legend including Width parameters\n",
" ax = axs[1]\n",
"\n",
" ax.pcolormesh(X, Y, fit, cmap='jet', shading='auto')\n",
" #plt.colorbar(art, ax=ax, label='z')\n",
"\n",
" ax = axs[2]\n",
"\n",
" ax.pcolormesh(X, Y, fit-cropOD.T, vmin=0, vmax=0.2, cmap='jet', shading='auto')\n",
"\n",
" for i in range(0,2):\n",
" axs[i].hlines(bval['y0_bec'], 0,900)\n",
" axs[i].hlines(bval['y0_th'], 0,900)\n",
"\n",
" axs[i].vlines(bval['x0_bec'], 0,900)\n",
" axs[i].vlines(bval['x0_th'], 0,900)\n",
"\n",
" axs[i].vlines(419, 0,900, color='red')\n",
" axs[i].hlines(428, 0,900, color='red')\n",
"\n",
" ax = axs[3]\n",
"\n",
" ax.plot(x, cropOD.T[cen_y, :])\n",
" ax.plot(x, fit[cen_y, :], label='bimodal')\n",
" ax.plot(x, fa.thermal(x, bval['x0_th'], bval['amp_th'], bval['sigma_th']), label='thermal')\n",
" ax.legend(fontsize=8)\n",
"\n",
" ax = axs[4]\n",
"\n",
" ax.plot(y, cropOD.T[:, cen_x])\n",
" ax.plot(y, fit[:, cen_x], label='bimodal')\n",
" ax.plot(y, fa.thermal(y, bval['y0_th'], bval['amp_th'], bval['sigma_th']), label='thermal')\n",
" ax.legend(fontsize=8)\n",
"\n",
"\n",
"t_fonts=20\n"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.527851655733842e-109"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fit[300, 400]"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0, 1, 2, ..., 897, 898, 899],\n",
" [ 0, 1, 2, ..., 897, 898, 899],\n",
" [ 0, 1, 2, ..., 897, 898, 899],\n",
" ...,\n",
" [ 0, 1, 2, ..., 897, 898, 899],\n",
" [ 0, 1, 2, ..., 897, 898, 899],\n",
" [ 0, 1, 2, ..., 897, 898, 899]], dtype=int64)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib notebook\n",
"shotNum = \"0024\"\n",
"filePath = folderPath + \"/\" + shotNum + \"/*.h5\"\n",
"\n",
"dataSetDict = {\n",
" dskey[groupList[i]]: read_hdf5_file(filePath, groupList[i], excludeAxis = ['sweep_start_freq', 'sweep_stop_freq'])\n",
" for i in [0]\n",
"}\n",
"\n",
"dataSet = dataSetDict[\"camera_0\"]\n",
"\n",
"print_scanAxis(dataSet)\n",
"\n",
"scanAxis = get_scanAxis(dataSet)\n",
"\n",
"dataSet = auto_rechunk(dataSet)\n",
"\n",
"dataSet = imageAnalyser.get_absorption_images(dataSet)\n",
"\n",
"imageAnalyser.center = (135, 990)\n",
"imageAnalyser.span = (250, 250)\n",
"imageAnalyser.fraction = (0.1, 0.1)\n",
"\n",
"dataSet_cropOD = imageAnalyser.crop_image(dataSet.OD)\n",
"dataSet_cropOD = imageAnalyser.substract_offset(dataSet_cropOD).load()\n",
"\n",
"Ncount = imageAnalyser.get_Ncount(dataSet_cropOD)\n",
"Ncount_mean = calculate_mean(Ncount)\n",
"Ncount_std = calculate_std(Ncount)\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.gca()\n",
"Ncount_mean.plot.errorbar(ax=ax, yerr = Ncount_std, fmt='ob')\n",
"\n",
"plt.ylabel('NCount')\n",
"plt.tight_layout()\n",
"#plt.ylim([0, 3500])\n",
"plt.grid(visible=1)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"l = list(np.arange(0.15, 0.25, 0.005))\n",
"# l = np.logspace(np.log10(250e-6), np.log10(500e-3), num=15)\n",
"\n",
"l = [round(item, 7) for item in l]\n",
"random.shuffle(l)\n",
"\n",
"print(l)\n",
"print(len(l))\n",
"np.mean(l)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"[10.25, 10.255, 10.26, 10.265, 10.27, 10.275, 10.28, 10.285, 10.29, 10.295, 10.3, 10.305, 10.31, 10.315, 10.32, 10.325, 10.33, 10.335, 10.34, 10.345, 10.35, 10.355]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pixel = 5.86e-6\n",
"M = 0.6827\n",
"F = (1/(0.3725*8.4743e-14)) * (pixel / M)**2\n",
"NCount = 85000\n",
"AtomNumber = NCount * F / 1e8\n",
"print(AtomNumber)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"muB = 9.274e-24\n",
"hbar = 6.626e-34 / (2 * np.pi)\n",
"gJ = 1.24\n",
"Delta = 2 * np.pi * 100 * 1e3\n",
"\n",
"Bz = (Delta*hbar) / (muB*gJ)\n",
"print(Bz * 1e4)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## ODT 1 Calibration"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"v_high = 2.7\n",
"\"\"\"High Power\"\"\"\n",
"P_arm1_high = 5.776 * v_high - 0.683\n",
"\n",
"v_mid = 0.2076\n",
"\"\"\"Intermediate Power\"\"\"\n",
"P_arm1_mid = 5.815 * v_mid - 0.03651\n",
"\n",
"v_low = 0.0587\n",
"\"\"\"Low Power\"\"\"\n",
"P_arm1_low = 5271 * v_low - 27.5\n",
"\n",
"print(round(P_arm1_high, 3))\n",
"print(round(P_arm1_mid, 3))\n",
"print(round(P_arm1_low, 3))"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## ODT 2 Power Calibration"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"v = 0.7607\n",
"P_arm2 = 2.302 * v - 0.06452\n",
"print(round(P_arm2, 3))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.13"
},
"vscode": {
"interpreter": {
"hash": "c05913ad4f24fdc6b2418069394dc5835b1981849b107c9ba6df693aafd66650"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}