Upload files to "Mercury_iTC"
This commit is contained in:
@@ -0,0 +1,425 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "ba5dc10a",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import numpy as np\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"import matplotlib.animation as animation\n",
|
||||
"import itertools"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "7b745cfa",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from mercuryitc import MercuryITC\n",
|
||||
"\n",
|
||||
"### in laser room \n",
|
||||
"m1 = MercuryITC(\"TCPIP0::129.129.180.104::7020::SOCKET\")\n",
|
||||
"mod_index = 1\n",
|
||||
"\n",
|
||||
"### backup one \"lent\" \n",
|
||||
"# m1 = MercuryITC(\"TCPIP0::129.129.180.95::7020::SOCKET\")\n",
|
||||
"# mod_index = -1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "5bb3a598",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'180150228'"
|
||||
]
|
||||
},
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"m1.serl"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "468918c4",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[<MercuryITC_HTR(MB0.H1, <MercuryITC(TCPIP0::129.129.180.104::7020::SOCKET)>)>,\n",
|
||||
" <MercuryITC_TEMP(MB1.T1, <MercuryITC(TCPIP0::129.129.180.104::7020::SOCKET)>)>]"
|
||||
]
|
||||
},
|
||||
"execution_count": 4,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"m1.modules"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "f96ac280-3d06-494f-b9a6-376942bf3efe",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((295.6272, 'K'), (74.1056, 'R'), (0.0328, 'V'), (0.0, 'A'))"
|
||||
]
|
||||
},
|
||||
"execution_count": 5,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"m1.modules[mod_index].temp, m1.modules[mod_index].res, m1.modules[0].volt, m1.modules[0].curr\n",
|
||||
"# m1.modules[mod_index].temp[0]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "7bc187b1-b807-4661-a39e-8146e06a51f6",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### read Temperature only\n",
|
||||
"\n",
|
||||
"# %matplotlib notebook\n",
|
||||
"%matplotlib tk\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def data_gen():\n",
|
||||
" for cnt in itertools.count():\n",
|
||||
" t = cnt * interval_iTC\n",
|
||||
" temp = m1.modules[mod_index].temp[0] # check index = 1 or -1 \n",
|
||||
" yield t, temp\n",
|
||||
"\n",
|
||||
" \n",
|
||||
"def init():\n",
|
||||
" ax.set_ylim(2, 305)\n",
|
||||
" ax.set_ylabel('Temp/K')\n",
|
||||
" ax.set_xlim(0, 30)\n",
|
||||
" ax.set_xlabel('Time/s')\n",
|
||||
" del xdata[:]\n",
|
||||
" del ydata[:]\n",
|
||||
" line.set_data(xdata, ydata)\n",
|
||||
" return line,\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def update(frame):\n",
|
||||
" t, y = frame\n",
|
||||
" xdata.append(t)\n",
|
||||
" ydata.append(y)\n",
|
||||
" xmin, xmax = ax.get_xlim()\n",
|
||||
"\n",
|
||||
" if t >= xmax:\n",
|
||||
" ax.set_xlim(max(xmin, t-1000), t+30)\n",
|
||||
" ax.figure.canvas.draw()\n",
|
||||
" \n",
|
||||
" show_points = int(1000/interval_iTC)\n",
|
||||
" ax.set_ylim(min(ydata[-show_points:])-1, max(ydata[-show_points:])+1)\n",
|
||||
" ax.figure.canvas.draw()\n",
|
||||
" \n",
|
||||
" line.set_data(xdata, ydata)\n",
|
||||
" return line,\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"fig, ax = plt.subplots()\n",
|
||||
"xdata, ydata = [], []\n",
|
||||
"line, = ax.plot([], [], lw=2)\n",
|
||||
"ax.grid()\n",
|
||||
"\n",
|
||||
"interval_iTC = 2 # s \n",
|
||||
"\n",
|
||||
"# Only save last 100 frames, but run forever\n",
|
||||
"ani = animation.FuncAnimation(fig, update, frames=data_gen, interval=interval_iTC*1000, init_func=init, blit=True,\n",
|
||||
" save_count=300)\n",
|
||||
"plt.show()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"id": "ab621065-a9b2-4706-ab99-49453ea470a7",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"### read both Temperature and Resistance\n",
|
||||
"\n",
|
||||
"# %matplotlib notebook\n",
|
||||
"%matplotlib tk\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def data_gen():\n",
|
||||
" for cnt in itertools.count():\n",
|
||||
" t = cnt * interval_iTC\n",
|
||||
" temp = m1.modules[mod_index].temp[0] # check index = 1 or -1 \n",
|
||||
" res = m1.modules[mod_index].res[0] # check index = 1 or -1 \n",
|
||||
" yield t, temp, res\n",
|
||||
"\n",
|
||||
" \n",
|
||||
"def init():\n",
|
||||
" ax.set_ylim(2, 305)\n",
|
||||
" ax.set_ylabel('Temperature/K')\n",
|
||||
" # ax.set_xlim(0, 30)\n",
|
||||
" # ax.set_xlabel('Time/s')\n",
|
||||
"\n",
|
||||
" axR.set_ylim(70, 100)\n",
|
||||
" axR.set_ylabel('Resistance/Ohm')\n",
|
||||
" axR.set_xlim(0, 30)\n",
|
||||
" axR.set_xlabel('Time/s')\n",
|
||||
" \n",
|
||||
" del xdata[:]\n",
|
||||
" del ydata[:]\n",
|
||||
" del rdata[:]\n",
|
||||
" line.set_data(xdata, ydata)\n",
|
||||
" lineR.set_data(xdata, rdata)\n",
|
||||
" return line, lineR, \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def update(frame):\n",
|
||||
" t, y, r = frame\n",
|
||||
" xdata.append(t)\n",
|
||||
" ydata.append(y)\n",
|
||||
" rdata.append(r)\n",
|
||||
" xmin, xmax = ax.get_xlim()\n",
|
||||
"\n",
|
||||
" if t >= xmax:\n",
|
||||
" show_xrange = 600\n",
|
||||
" ax.set_xlim(max(xmin, t-show_xrange), t+30)\n",
|
||||
" ax.figure.canvas.draw()\n",
|
||||
" \n",
|
||||
" show_points = int(show_xrange/interval_iTC)\n",
|
||||
" ax.set_ylim(min(ydata[-show_points:])-1, max(ydata[-show_points:])+1)\n",
|
||||
" ax.figure.canvas.draw()\n",
|
||||
"\n",
|
||||
" axR.set_ylim(min(rdata[-show_points:])*0.95, max(rdata[-show_points:])*1.05)\n",
|
||||
" axR.figure.canvas.draw()\n",
|
||||
" \n",
|
||||
" line.set_data(xdata, ydata)\n",
|
||||
" lineR.set_data(xdata, rdata)\n",
|
||||
" return line, lineR, \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"fig, (ax, axR) = plt.subplots(nrows=2, sharex=True, figsize=[9*2,6*2])\n",
|
||||
"xdata, ydata, rdata = [], [], []\n",
|
||||
"\n",
|
||||
"line, = ax.plot([], [], lw=2)\n",
|
||||
"ax.grid()\n",
|
||||
"lineR, = axR.plot([], [], lw=2)\n",
|
||||
"axR.grid()\n",
|
||||
"\n",
|
||||
"interval_iTC = 2 # s \n",
|
||||
"\n",
|
||||
"# Only save last 100 frames, but run forever\n",
|
||||
"ani = animation.FuncAnimation(fig, update, frames=data_gen, interval=interval_iTC*1000, init_func=init, blit=True,\n",
|
||||
" save_count=300)\n",
|
||||
"\n",
|
||||
"fig.tight_layout()\n",
|
||||
"plt.show()\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"id": "506adde7",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<div>\n",
|
||||
"<style scoped>\n",
|
||||
" .dataframe tbody tr th:only-of-type {\n",
|
||||
" vertical-align: middle;\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" .dataframe tbody tr th {\n",
|
||||
" vertical-align: top;\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" .dataframe thead th {\n",
|
||||
" text-align: right;\n",
|
||||
" }\n",
|
||||
"</style>\n",
|
||||
"<table border=\"1\" class=\"dataframe\">\n",
|
||||
" <thead>\n",
|
||||
" <tr style=\"text-align: right;\">\n",
|
||||
" <th></th>\n",
|
||||
" <th>Time/s</th>\n",
|
||||
" <th>Temp/K</th>\n",
|
||||
" <th>Res/Ohm</th>\n",
|
||||
" </tr>\n",
|
||||
" </thead>\n",
|
||||
" <tbody>\n",
|
||||
" <tr>\n",
|
||||
" <th>0</th>\n",
|
||||
" <td>4500</td>\n",
|
||||
" <td>293.9467</td>\n",
|
||||
" <td>74.5006</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>1</th>\n",
|
||||
" <td>4502</td>\n",
|
||||
" <td>293.9444</td>\n",
|
||||
" <td>74.4991</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>2</th>\n",
|
||||
" <td>4504</td>\n",
|
||||
" <td>293.9504</td>\n",
|
||||
" <td>74.5002</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>3</th>\n",
|
||||
" <td>4506</td>\n",
|
||||
" <td>293.9425</td>\n",
|
||||
" <td>74.5006</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>4</th>\n",
|
||||
" <td>4508</td>\n",
|
||||
" <td>293.9443</td>\n",
|
||||
" <td>74.5002</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>...</th>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>14580</th>\n",
|
||||
" <td>33660</td>\n",
|
||||
" <td>4.2816</td>\n",
|
||||
" <td>4615.6528</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>14581</th>\n",
|
||||
" <td>33662</td>\n",
|
||||
" <td>4.2802</td>\n",
|
||||
" <td>4615.8411</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>14582</th>\n",
|
||||
" <td>33664</td>\n",
|
||||
" <td>4.2813</td>\n",
|
||||
" <td>4614.5352</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>14583</th>\n",
|
||||
" <td>33666</td>\n",
|
||||
" <td>4.2812</td>\n",
|
||||
" <td>4613.0924</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>14584</th>\n",
|
||||
" <td>33668</td>\n",
|
||||
" <td>4.2834</td>\n",
|
||||
" <td>4611.2716</td>\n",
|
||||
" </tr>\n",
|
||||
" </tbody>\n",
|
||||
"</table>\n",
|
||||
"<p>14585 rows × 3 columns</p>\n",
|
||||
"</div>"
|
||||
],
|
||||
"text/plain": [
|
||||
" Time/s Temp/K Res/Ohm\n",
|
||||
"0 4500 293.9467 74.5006\n",
|
||||
"1 4502 293.9444 74.4991\n",
|
||||
"2 4504 293.9504 74.5002\n",
|
||||
"3 4506 293.9425 74.5006\n",
|
||||
"4 4508 293.9443 74.5002\n",
|
||||
"... ... ... ...\n",
|
||||
"14580 33660 4.2816 4615.6528\n",
|
||||
"14581 33662 4.2802 4615.8411\n",
|
||||
"14582 33664 4.2813 4614.5352\n",
|
||||
"14583 33666 4.2812 4613.0924\n",
|
||||
"14584 33668 4.2834 4611.2716\n",
|
||||
"\n",
|
||||
"[14585 rows x 3 columns]"
|
||||
]
|
||||
},
|
||||
"execution_count": 8,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"\n",
|
||||
"iTC_curve = pd.DataFrame({'Time/s': xdata, 'Temp/K': ydata, 'Res/Ohm': rdata})\n",
|
||||
"\n",
|
||||
"# iTC_curve.to_csv(\"P:/Tianyang/Data_Thibaut_2026/20260527/cooling_sample.csv\", sep=',', header=True, index=False)\n",
|
||||
"# iTC_curve.to_csv(\"C:/RE_qubit_TS/SNSPD_UZH/20260515_DAQ_counts_compare/cooling_full.csv\", sep=',', header=True, index=False)\n",
|
||||
"\n",
|
||||
"iTC_curve"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "d11b7072",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"%matplotlib inline\n",
|
||||
"%matplotlib tk\n",
|
||||
"\n",
|
||||
"plt.plot(iTC_curve['Time/s'], iTC_curve['Temp/K'])\n",
|
||||
"plt.plot(iTC_curve['Time/s'], iTC_curve['Res/Ohm'])\n",
|
||||
"plt.grid()\n",
|
||||
"plt.ylim(3, 20)\n",
|
||||
"plt.show()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "67dcf7d4",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"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.12.7"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
@@ -0,0 +1,431 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"id": "ba5dc10a",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import numpy as np\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"import matplotlib.animation as animation\n",
|
||||
"import itertools"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"id": "7b745cfa",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from mercuryitc import MercuryITC\n",
|
||||
"\n",
|
||||
"### in laser room \n",
|
||||
"# m1 = MercuryITC(\"TCPIP0::129.129.180.104::7020::SOCKET\")\n",
|
||||
"# mod_index = 1\n",
|
||||
"\n",
|
||||
"### backup one \"lent\" \n",
|
||||
"m1 = MercuryITC(\"TCPIP0::129.129.180.95::7020::SOCKET\")\n",
|
||||
"mod_index = -1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"id": "5bb3a598",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'191650089'"
|
||||
]
|
||||
},
|
||||
"execution_count": 10,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"m1.serl"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"id": "468918c4",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[<MercuryITC_HTR(DB1.H1, <MercuryITC(TCPIP0::129.129.180.95::7020::SOCKET)>)>,\n",
|
||||
" <MercuryITC_HTR(DB2.H1, <MercuryITC(TCPIP0::129.129.180.95::7020::SOCKET)>)>,\n",
|
||||
" <MercuryITC_HTR(DB3.H1, <MercuryITC(TCPIP0::129.129.180.95::7020::SOCKET)>)>,\n",
|
||||
" <MercuryITC_TEMP(STILL_DB6.T1, <MercuryITC(TCPIP0::129.129.180.95::7020::SOCKET)>)>,\n",
|
||||
" <MercuryITC_TEMP(PT2_DB7.T1, <MercuryITC(TCPIP0::129.129.180.95::7020::SOCKET)>)>,\n",
|
||||
" <MercuryITC_TEMP(PT1_DB8.T1, <MercuryITC(TCPIP0::129.129.180.95::7020::SOCKET)>)>,\n",
|
||||
" <MercuryITC_HTR(MB0.H1, <MercuryITC(TCPIP0::129.129.180.95::7020::SOCKET)>)>,\n",
|
||||
" <MercuryITC_TEMP(MC_MB1.T18, <MercuryITC(TCPIP0::129.129.180.95::7020::SOCKET)>)>]"
|
||||
]
|
||||
},
|
||||
"execution_count": 11,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"m1.modules"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"id": "f96ac280-3d06-494f-b9a6-376942bf3efe",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((265.5432, 'K'), (95.8373, 'R'), (0.0437, 'V'), (0.0, 'A'))"
|
||||
]
|
||||
},
|
||||
"execution_count": 12,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"m1.modules[mod_index].temp, m1.modules[mod_index].res, m1.modules[0].volt, m1.modules[0].curr\n",
|
||||
"# m1.modules[mod_index].temp[0]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "7bc187b1-b807-4661-a39e-8146e06a51f6",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### read Temperature only\n",
|
||||
"\n",
|
||||
"# %matplotlib notebook\n",
|
||||
"%matplotlib tk\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def data_gen():\n",
|
||||
" for cnt in itertools.count():\n",
|
||||
" t = cnt * interval_iTC\n",
|
||||
" temp = m1.modules[mod_index].temp[0] # check index = 1 or -1 \n",
|
||||
" yield t, temp\n",
|
||||
"\n",
|
||||
" \n",
|
||||
"def init():\n",
|
||||
" ax.set_ylim(2, 305)\n",
|
||||
" ax.set_ylabel('Temp/K')\n",
|
||||
" ax.set_xlim(0, 30)\n",
|
||||
" ax.set_xlabel('Time/s')\n",
|
||||
" del xdata[:]\n",
|
||||
" del ydata[:]\n",
|
||||
" line.set_data(xdata, ydata)\n",
|
||||
" return line,\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def update(frame):\n",
|
||||
" t, y = frame\n",
|
||||
" xdata.append(t)\n",
|
||||
" ydata.append(y)\n",
|
||||
" xmin, xmax = ax.get_xlim()\n",
|
||||
"\n",
|
||||
" if t >= xmax:\n",
|
||||
" ax.set_xlim(max(xmin, t-1000), t+30)\n",
|
||||
" ax.figure.canvas.draw()\n",
|
||||
" \n",
|
||||
" show_points = int(1000/interval_iTC)\n",
|
||||
" ax.set_ylim(min(ydata[-show_points:])-1, max(ydata[-show_points:])+1)\n",
|
||||
" ax.figure.canvas.draw()\n",
|
||||
" \n",
|
||||
" line.set_data(xdata, ydata)\n",
|
||||
" return line,\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"fig, ax = plt.subplots()\n",
|
||||
"xdata, ydata = [], []\n",
|
||||
"line, = ax.plot([], [], lw=2)\n",
|
||||
"ax.grid()\n",
|
||||
"\n",
|
||||
"interval_iTC = 2 # s \n",
|
||||
"\n",
|
||||
"# Only save last 100 frames, but run forever\n",
|
||||
"ani = animation.FuncAnimation(fig, update, frames=data_gen, interval=interval_iTC*1000, init_func=init, blit=True,\n",
|
||||
" save_count=300)\n",
|
||||
"plt.show()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"id": "ab621065-a9b2-4706-ab99-49453ea470a7",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"### read both Temperature and Resistance\n",
|
||||
"\n",
|
||||
"# %matplotlib notebook\n",
|
||||
"%matplotlib tk\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def data_gen():\n",
|
||||
" for cnt in itertools.count():\n",
|
||||
" t = cnt * interval_iTC\n",
|
||||
" temp = m1.modules[mod_index].temp[0] # check index = 1 or -1 \n",
|
||||
" res = m1.modules[mod_index].res[0] # check index = 1 or -1 \n",
|
||||
" yield t, temp, res\n",
|
||||
"\n",
|
||||
" \n",
|
||||
"def init():\n",
|
||||
" ax.set_ylim(2, 305)\n",
|
||||
" ax.set_ylabel('Temperature/K')\n",
|
||||
" # ax.set_xlim(0, 30)\n",
|
||||
" # ax.set_xlabel('Time/s')\n",
|
||||
"\n",
|
||||
" axR.set_ylim(70, 100)\n",
|
||||
" axR.set_ylabel('Resistance/Ohm')\n",
|
||||
" axR.set_xlim(0, 30)\n",
|
||||
" axR.set_xlabel('Time/s')\n",
|
||||
" \n",
|
||||
" del xdata[:]\n",
|
||||
" del ydata[:]\n",
|
||||
" del rdata[:]\n",
|
||||
" line.set_data(xdata, ydata)\n",
|
||||
" lineR.set_data(xdata, rdata)\n",
|
||||
" return line, lineR, \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def update(frame):\n",
|
||||
" t, y, r = frame\n",
|
||||
" xdata.append(t)\n",
|
||||
" ydata.append(y)\n",
|
||||
" rdata.append(r)\n",
|
||||
" xmin, xmax = ax.get_xlim()\n",
|
||||
"\n",
|
||||
" if t >= xmax:\n",
|
||||
" show_xrange = 600\n",
|
||||
" ax.set_xlim(max(xmin, t-show_xrange), t+30)\n",
|
||||
" ax.figure.canvas.draw()\n",
|
||||
" \n",
|
||||
" show_points = int(show_xrange/interval_iTC)\n",
|
||||
" ax.set_ylim(min(ydata[-show_points:])-1, max(ydata[-show_points:])+1)\n",
|
||||
" ax.figure.canvas.draw()\n",
|
||||
"\n",
|
||||
" axR.set_ylim(min(rdata[-show_points:])*0.95, max(rdata[-show_points:])*1.05)\n",
|
||||
" axR.figure.canvas.draw()\n",
|
||||
" \n",
|
||||
" line.set_data(xdata, ydata)\n",
|
||||
" lineR.set_data(xdata, rdata)\n",
|
||||
" return line, lineR, \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"fig, (ax, axR) = plt.subplots(nrows=2, sharex=True, figsize=[9*2,6*2])\n",
|
||||
"xdata, ydata, rdata = [], [], []\n",
|
||||
"\n",
|
||||
"line, = ax.plot([], [], lw=2)\n",
|
||||
"ax.grid()\n",
|
||||
"lineR, = axR.plot([], [], lw=2)\n",
|
||||
"axR.grid()\n",
|
||||
"\n",
|
||||
"interval_iTC = 2 # s \n",
|
||||
"\n",
|
||||
"# Only save last 100 frames, but run forever\n",
|
||||
"ani = animation.FuncAnimation(fig, update, frames=data_gen, interval=interval_iTC*1000, init_func=init, blit=True,\n",
|
||||
" save_count=300)\n",
|
||||
"\n",
|
||||
"fig.tight_layout()\n",
|
||||
"plt.show()\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"id": "506adde7",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<div>\n",
|
||||
"<style scoped>\n",
|
||||
" .dataframe tbody tr th:only-of-type {\n",
|
||||
" vertical-align: middle;\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" .dataframe tbody tr th {\n",
|
||||
" vertical-align: top;\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" .dataframe thead th {\n",
|
||||
" text-align: right;\n",
|
||||
" }\n",
|
||||
"</style>\n",
|
||||
"<table border=\"1\" class=\"dataframe\">\n",
|
||||
" <thead>\n",
|
||||
" <tr style=\"text-align: right;\">\n",
|
||||
" <th></th>\n",
|
||||
" <th>Time/s</th>\n",
|
||||
" <th>Temp/K</th>\n",
|
||||
" <th>Res/Ohm</th>\n",
|
||||
" </tr>\n",
|
||||
" </thead>\n",
|
||||
" <tbody>\n",
|
||||
" <tr>\n",
|
||||
" <th>0</th>\n",
|
||||
" <td>0</td>\n",
|
||||
" <td>260.2910</td>\n",
|
||||
" <td>97.9353</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>1</th>\n",
|
||||
" <td>2</td>\n",
|
||||
" <td>257.2546</td>\n",
|
||||
" <td>99.1750</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>2</th>\n",
|
||||
" <td>4</td>\n",
|
||||
" <td>254.2851</td>\n",
|
||||
" <td>100.3421</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>3</th>\n",
|
||||
" <td>6</td>\n",
|
||||
" <td>251.1206</td>\n",
|
||||
" <td>101.7072</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>4</th>\n",
|
||||
" <td>8</td>\n",
|
||||
" <td>247.9910</td>\n",
|
||||
" <td>103.1198</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>...</th>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" <td>...</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>497</th>\n",
|
||||
" <td>994</td>\n",
|
||||
" <td>3.8249</td>\n",
|
||||
" <td>7741.1092</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>498</th>\n",
|
||||
" <td>996</td>\n",
|
||||
" <td>3.8194</td>\n",
|
||||
" <td>7748.9180</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>499</th>\n",
|
||||
" <td>998</td>\n",
|
||||
" <td>3.8205</td>\n",
|
||||
" <td>7735.3276</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>500</th>\n",
|
||||
" <td>1000</td>\n",
|
||||
" <td>3.8220</td>\n",
|
||||
" <td>7747.5457</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <th>501</th>\n",
|
||||
" <td>1002</td>\n",
|
||||
" <td>3.8219</td>\n",
|
||||
" <td>7760.5151</td>\n",
|
||||
" </tr>\n",
|
||||
" </tbody>\n",
|
||||
"</table>\n",
|
||||
"<p>502 rows × 3 columns</p>\n",
|
||||
"</div>"
|
||||
],
|
||||
"text/plain": [
|
||||
" Time/s Temp/K Res/Ohm\n",
|
||||
"0 0 260.2910 97.9353\n",
|
||||
"1 2 257.2546 99.1750\n",
|
||||
"2 4 254.2851 100.3421\n",
|
||||
"3 6 251.1206 101.7072\n",
|
||||
"4 8 247.9910 103.1198\n",
|
||||
".. ... ... ...\n",
|
||||
"497 994 3.8249 7741.1092\n",
|
||||
"498 996 3.8194 7748.9180\n",
|
||||
"499 998 3.8205 7735.3276\n",
|
||||
"500 1000 3.8220 7747.5457\n",
|
||||
"501 1002 3.8219 7760.5151\n",
|
||||
"\n",
|
||||
"[502 rows x 3 columns]"
|
||||
]
|
||||
},
|
||||
"execution_count": 7,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"\n",
|
||||
"iTC_curve = pd.DataFrame({'Time/s': xdata, 'Temp/K': ydata, 'Res/Ohm': rdata})\n",
|
||||
"\n",
|
||||
"# iTC_curve.to_csv(\"P:/Tianyang/Data_Thibaut_2026/20260527/cooling_SNSPD.csv\", sep=',', header=True, index=False)\n",
|
||||
"iTC_curve.to_csv(\"C:/RE_qubit_TS/SNSPD_UZH/20260529_/cooling_oscillating1.csv\", sep=',', header=True, index=False)\n",
|
||||
"\n",
|
||||
"iTC_curve"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "d11b7072",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"%matplotlib inline\n",
|
||||
"%matplotlib tk\n",
|
||||
"\n",
|
||||
"plt.plot(iTC_curve['Time/s'], iTC_curve['Temp/K'])\n",
|
||||
"plt.plot(iTC_curve['Time/s'], iTC_curve['Res/Ohm'])\n",
|
||||
"plt.grid()\n",
|
||||
"plt.ylim(3, 20)\n",
|
||||
"plt.show()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "67dcf7d4",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"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.12.7"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
Reference in New Issue
Block a user